pkgsrc/lang/erlang/PLIST.hipe
fhajny d9c70b5163 Update lang/erlang* to 20.0.
Potential Incompatibilities
---------------------------

- ERTS:
  - The non SMP Erlang VM is deprecated and not built by default
  - Remove deprecated erlang:hash/2
  - erlang:statistics/1 with scheduler_wall_time now also includes
    info about dirty CPU schedulers.
  - The new purge strategy introduced in OTP 19.1 is mandatory and
    slightly incompatible for processes holding funs
  - The NIF library reload is not supported anymore.
  - Atoms can now contain arbitrary unicode characters which means
    that the DFLAG_UTF8_ATOMS capability in the distribution protocol
    must be supported if an OTP 20 node should accept the connection
    with another node or library.
- Asn1: Deprecated module and functions removed (asn1rt,
  asn1ct:encode/3 and decode/3)
- Ssh: client only option in a call to start a daemon will now fail

Highlights
----------

- Erts:
  - Dirty schedulers enabled and supported on VM with SMP support.
  - support for "dirty" BIFs and "dirty" GC.
  - erlang:garbage_collect/2 for control of minor or major GC
  - Erlang literals are no longer copied when sending messages.
  - Improved performance for large ETS tables, >256 entries (except
    ordered_set)
  - erlang:system_info/1 atom_count and atom_limit
  - Reduced memory pressure by converting sub-binaries to
    heap-binaries during GC
  - enif_select, map an external event to message
  - Improvements of timers internally in the VM resulting in reduced
    memory consumption and more efficient administration for timers
- Compiler:
  - Code generation for complicated guards is improved.
  - Warnings for repeated identical map keys. #{'a'=>1, 'b'=>2,
    'a'=>3} will warn for the repeated key a.
  - By default there is now a warning when export_all is used. Can be
    disabled
  - Pattern matching for maps is optimized
  - New option deterministic to omit path to source + options info the
    BEAM file.
  - Atoms may now contain arbitrary unicode characters.
  - compile:file/2 has an option to include extra chunks in the BEAM
    file.
- Misc other applications
  - Significantly updated string module with unicode support and many
    new functions
  - crypto now supports OpenSSL 1.1
  - Unnamed ets tables optimized
  - gen_fsm is deprecated and replaced by gen_statem
  - A new event manager to handle a subset of OS signals in Erlang
  - Optimized sets add_element, del_element and union
  - Added rand:jump/0-1
  - When a gen_server crashes, the stacktrace for the client will be
    printed to facilitate debugging.
  - take/2 has been added to dict, orddict, and gb_trees.
  - take_any/2 has been added to gb_trees
  - erl_tar support for long path names and new file formats
  - asn1: the new maps option changes the representation of SEQUENCE
    to be maps instead of records
  - A TLS client will by default call
    public_key:pkix_verify_hostname/2 to verify the hostname
  - ssl: DTLS documented in the API, experimental
  - ssh: improving security, removing and adding algorithms
  - New math:fmod/2
2017-07-04 11:40:48 +00:00

207 lines
13 KiB
Text

@comment $NetBSD: PLIST.hipe,v 1.5 2017/07/04 11:40:48 fhajny Exp $
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/elf_format.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_adj_list.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_amd64_assemble.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_amd64_defuse.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_amd64_encode.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_amd64_frame.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_amd64_liveness.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_amd64_main.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_amd64_pp.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_amd64_ra.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_amd64_ra_finalise.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_amd64_ra_ls.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_amd64_ra_naive.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_amd64_ra_postconditions.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_amd64_ra_sse2_postconditions.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_amd64_registers.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_amd64_specific.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_amd64_specific_sse2.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_amd64_specific_x87.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_amd64_spill_restore.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_amd64_sse2.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_amd64_subst.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_amd64_x87.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_arm.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_arm_assemble.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_arm_cfg.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_arm_defuse.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_arm_encode.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_arm_finalise.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_arm_frame.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_arm_liveness_gpr.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_arm_main.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_arm_pp.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_arm_ra.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_arm_ra_finalise.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_arm_ra_ls.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_arm_ra_naive.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_arm_ra_postconditions.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_arm_registers.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_arm_specific.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_arm_subst.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_bb_weights.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_coalescing_regalloc.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_data_pp.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_graph_coloring_regalloc.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_icode2rtl.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_icode_heap_test.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_ig.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_ig_moves.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_jit.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_llvm.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_llvm_liveness.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_llvm_main.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_llvm_merge.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_ls_regalloc.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_moves.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_node_sets.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_optimistic_regalloc.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_pack_constants.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_ppc.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_ppc_assemble.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_ppc_cfg.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_ppc_defuse.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_ppc_encode.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_ppc_finalise.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_ppc_frame.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_ppc_liveness_all.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_ppc_liveness_fpr.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_ppc_liveness_gpr.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_ppc_main.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_ppc_pp.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_ppc_ra.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_ppc_ra_finalise.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_ppc_ra_ls.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_ppc_ra_naive.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_ppc_ra_postconditions.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_ppc_ra_postconditions_fp.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_ppc_registers.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_ppc_specific.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_ppc_specific_fp.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_ppc_subst.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_profile.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_range_split.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_reg_worklists.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_regalloc_loop.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_regalloc_prepass.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_restore_reuse.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_rtl.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_rtl_arch.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_rtl_arith_32.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_rtl_arith_64.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_rtl_binary.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_rtl_binary_construct.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_rtl_binary_match.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_rtl_cfg.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_rtl_cleanup_const.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_rtl_exceptions.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_rtl_lcm.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_rtl_liveness.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_rtl_mk_switch.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_rtl_primops.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_rtl_ssa.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_rtl_ssa_avail_expr.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_rtl_ssa_const_prop.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_rtl_ssapre.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_rtl_symbolic.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_rtl_to_amd64.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_rtl_to_arm.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_rtl_to_llvm.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_rtl_to_ppc.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_rtl_to_sparc.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_rtl_to_x86.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_rtl_varmap.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_sdi.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_segment_trees.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_sparc.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_sparc_assemble.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_sparc_cfg.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_sparc_defuse.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_sparc_encode.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_sparc_finalise.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_sparc_frame.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_sparc_liveness_all.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_sparc_liveness_fpr.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_sparc_liveness_gpr.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_sparc_main.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_sparc_pp.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_sparc_ra.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_sparc_ra_finalise.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_sparc_ra_ls.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_sparc_ra_naive.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_sparc_ra_postconditions.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_sparc_ra_postconditions_fp.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_sparc_registers.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_sparc_specific.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_sparc_specific_fp.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_sparc_subst.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_spillcost.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_spillmin.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_spillmin_color.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_spillmin_scan.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_tagscheme.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_temp_map.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_vectors.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_x86.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_x86_assemble.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_x86_cfg.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_x86_defuse.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_x86_encode.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_x86_frame.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_x86_liveness.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_x86_main.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_x86_postpass.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_x86_pp.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_x86_ra.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_x86_ra_finalise.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_x86_ra_ls.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_x86_ra_naive.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_x86_ra_postconditions.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_x86_registers.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_x86_specific.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_x86_specific_x87.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_x86_spill_restore.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_x86_subst.beam
lib/erlang/lib/hipe-${VERSION.hipe}/ebin/hipe_x86_x87.beam
lib/erlang/lib/hipe-${VERSION.hipe}/icode/hipe_icode_heap_test.erl
lib/erlang/lib/hipe-${VERSION.hipe}/llvm/elf32_format.hrl
lib/erlang/lib/hipe-${VERSION.hipe}/llvm/elf64_format.hrl
lib/erlang/lib/hipe-${VERSION.hipe}/llvm/elf_format.erl
lib/erlang/lib/hipe-${VERSION.hipe}/llvm/elf_format.hrl
lib/erlang/lib/hipe-${VERSION.hipe}/llvm/hipe_llvm.erl
lib/erlang/lib/hipe-${VERSION.hipe}/llvm/hipe_llvm_arch.hrl
lib/erlang/lib/hipe-${VERSION.hipe}/llvm/hipe_llvm_liveness.erl
lib/erlang/lib/hipe-${VERSION.hipe}/llvm/hipe_llvm_main.erl
lib/erlang/lib/hipe-${VERSION.hipe}/llvm/hipe_llvm_merge.erl
lib/erlang/lib/hipe-${VERSION.hipe}/llvm/hipe_rtl_to_llvm.erl
lib/erlang/lib/hipe-${VERSION.hipe}/main/hipe.erl
lib/erlang/lib/hipe-${VERSION.hipe}/misc/hipe_data_pp.erl
lib/erlang/lib/hipe-${VERSION.hipe}/misc/hipe_pack_constants.erl
lib/erlang/lib/hipe-${VERSION.hipe}/misc/hipe_sdi.erl
lib/erlang/lib/hipe-${VERSION.hipe}/misc/hipe_segment_trees.erl
lib/erlang/lib/hipe-${VERSION.hipe}/rtl/hipe_icode2rtl.erl
lib/erlang/lib/hipe-${VERSION.hipe}/rtl/hipe_literals.hrl
lib/erlang/lib/hipe-${VERSION.hipe}/rtl/hipe_rtl.erl
lib/erlang/lib/hipe-${VERSION.hipe}/rtl/hipe_rtl_arch.erl
lib/erlang/lib/hipe-${VERSION.hipe}/rtl/hipe_rtl_arith_32.erl
lib/erlang/lib/hipe-${VERSION.hipe}/rtl/hipe_rtl_arith_64.erl
lib/erlang/lib/hipe-${VERSION.hipe}/rtl/hipe_rtl_binary.erl
lib/erlang/lib/hipe-${VERSION.hipe}/rtl/hipe_rtl_binary_construct.erl
lib/erlang/lib/hipe-${VERSION.hipe}/rtl/hipe_rtl_binary_match.erl
lib/erlang/lib/hipe-${VERSION.hipe}/rtl/hipe_rtl_cfg.erl
lib/erlang/lib/hipe-${VERSION.hipe}/rtl/hipe_rtl_cleanup_const.erl
lib/erlang/lib/hipe-${VERSION.hipe}/rtl/hipe_rtl_exceptions.erl
lib/erlang/lib/hipe-${VERSION.hipe}/rtl/hipe_rtl_lcm.erl
lib/erlang/lib/hipe-${VERSION.hipe}/rtl/hipe_rtl_liveness.erl
lib/erlang/lib/hipe-${VERSION.hipe}/rtl/hipe_rtl_mk_switch.erl
lib/erlang/lib/hipe-${VERSION.hipe}/rtl/hipe_rtl_primops.erl
lib/erlang/lib/hipe-${VERSION.hipe}/rtl/hipe_rtl_ssa.erl
lib/erlang/lib/hipe-${VERSION.hipe}/rtl/hipe_rtl_ssa_avail_expr.erl
lib/erlang/lib/hipe-${VERSION.hipe}/rtl/hipe_rtl_ssa_const_prop.erl
lib/erlang/lib/hipe-${VERSION.hipe}/rtl/hipe_rtl_ssapre.erl
lib/erlang/lib/hipe-${VERSION.hipe}/rtl/hipe_rtl_symbolic.erl
lib/erlang/lib/hipe-${VERSION.hipe}/rtl/hipe_rtl_varmap.erl
lib/erlang/lib/hipe-${VERSION.hipe}/rtl/hipe_tagscheme.erl
lib/erlang/lib/hipe-${VERSION.hipe}/util/hipe_vectors.erl