General-purpose programming language and runtime environment

Edit Package erlang
http://www.erlang.org

Erlang is a general-purpose programming language and runtime environment. Erlang has built-in support for concurrency, distribution and fault tolerance. Erlang is used in several large telecommunication systems from Ericsson.

Refresh
Refresh
Source Files
Filename Size Changed
OTP-27.1.tar.gz 0062154805 59.3 MB
README.SUSE 0000001095 1.07 KB
_constraints 0000000117 117 Bytes
epmd-user.conf 0000000062 62 Bytes
epmd.service 0000000709 709 Bytes
epmd.socket 0000000150 150 Bytes
erlang-not-install-misc.patch 0000001352 1.32 KB
erlang-rpmlintrc 0000000170 170 Bytes
erlang.changes 0000392110 383 KB
erlang.spec 0000018704 18.3 KB
erlang.sysconfig 0000000373 373 Bytes
ex_doc_otp_26 0002120971 2.02 MB
macros.erlang 0000000455 455 Bytes
otp-R16B-rpath.patch 0000000533 533 Bytes
Latest Revision
Matwey Kornilov's avatar Matwey Kornilov (matwey) accepted request 1204536 from Matwey Kornilov's avatar Matwey Kornilov (matwey) (revision 138)
- Changes for 27.1:
  * crypto: crypto built with --enable-fips will now accept an
    OpenSSL 3 lib without fips provider as long as fips mode is not
    enabled.
  * crypto: Added a warning in the documentation to avoid calling
    crypto:start/0 as it does not work for FIPS mode. Use
    application:start(crypto) instead.
  * crypto: Deprecation of RSA encryption functions has been
    reverted, as there still exists legitimate use cases with other
    padding modes than PKCS-1.
  * crypto: Compiler warnings for some removed functions have been
    corrected to point out the correct replacement functions.
  * ssh: The SSh daemon started with a TCP port number argument
    will now re-try obtaining a listen socket before returning an
    error to the user.
  * ssh: Robustness has been improved by monitoring the connection
    handler process before casting the socket control notification.
  * ssl: A race in the kTLS flavour of SSL distribution has been
    fixed so that inet_drv.c doesn't read ahead too much data,
    which could cause the kTLS encryption to be activated too late
    when some encrypted data had already been read into the
    inet_drv.c buffer as unencrypted.
  * ssl: All TLS-1.3 terminations are now graceful (previous TLS
    version terminations already were).
  * ssl: It is now possible to use a verification fun of arity 4,
    giving the user fun access to both encoded and decoded versions
    of the certificate. This is desirable as a workaround for
    encoding errors preventing re-encoding from being reliable.
    This also saves some work load if the encoded version is
    needed.
  * ssl: Compiler warnings for some removed functions have been
    corrected to point out the correct replacement functions.
  * ssl: Include more information in logging of SNI (Server Name
    Indication) mismatch error.
  * diameter: Function specs for the main API module has been
    updated.
  * diameter: Man pages are now available for erl, erlc, dialyzer,
    and all other programs that are included in Erlang/OTP.
  * diameter: diameter:stop_service/1 has been made more
    synchronous.
  * wx: Documentation has been improved.
  * public_key: For completeness handle rsa_pss implicit default
    value, although this will probably not be commonly used as it
    provides very weak security.
  * public_key: The public_key:cacerts_load() function could in
    some error cases return undefined instead of {error, Reason}.
  * public_key: Added support for DragonFly.
  * public_key: Deprecation of RSA encryption functions has been
    reverted, as there still exists legitimate use cases with other
    padding modes than PKCS-1.
  * public_key: It is now possible to use a verification fun of
    arity 4, giving the user fun access to both encoded and decoded
    versions of the certificate. This is desirable as a workaround
    for encoding errors preventing re-encoding from being reliable.
    This also saves some work load if the encoded version is
    needed.
  * snmp: Man pages are now available for erl, erlc, dialyzer, and
    all other programs that are included in Erlang/OTP.
  * snmp: Figures in the documentation have been improved.
  * tftp: The legacy dependency to m:error_logger has been removed.
    m:logger is now used.
  * ftp: Eliminated a race condition that sometimes resulted in
    ftp:recv_bin/2 returning ok instead of {ok, Data}.
  * odbc: Figures in the documentation have been improved.
  * compiler: Fixed a crash in an optimization pass relating to
    appending binaries.
  * compiler: Fixed a bug in the compiler's alias analysis pass
    that could make it emit unsafe code.
  * common_test: Groups with empty list specifying groups and test
    cases no longer crash execution.
  * common_test: The Common_Test documentation and type specs have
    been polished.
  * common_test: Man pages are now available for erl, erlc,
    dialyzer, and all other programs that are included in
    Erlang/OTP.
  * dialyzer: Man pages are now available for erl, erlc, dialyzer,
    and all other programs that are included in Erlang/OTP.
  * xmerl: Corrected export functions from internal structure to
    XML so xmlText items of type cdata are handled correctly. They
    were just exported as normal text instead of output in a CDATA
    section.
  * xmerl: The type spec for xmerl_sax_parser:file/2 has been
    corrected to indicate that it can return an {error, _} tuple.
  * runtime_tools: Fixed a bug where dbg sessions on remote nodes
    were terminated prematurely.
  * inets: The documentation for the m:httpd module has been
    improved, along with correction of headings and types.
  * inets: Userinfo is now properly percent-decoded before usage in
    headers.
  * stdlib: The help printout for incorrect t:io:format/0 strings
    now handles the k modifier correctly.
  * stdlib: Fixed a bug that caused the shell completion to crash
    when keyword and tuple appeared on the same line.
  * stdlib: Due to PR-7419/OTP-18671, the cached internal value of
    the callback_mode started leaking out to logger reports, which
    could cause logger handlers to crash.  This has now been fixed
    to show the value that was set, as before caching.
  * stdlib: Fixed an emulator crash relating to compressed ETS
    tables.
  * stdlib: The error description for maps:update/3 will no longer
    insist that the third argument is not a map when a key could
    not be found
  * stdlib: Multiple issues have been corrected in the markdown
    parser that creates documentation for the shell.
  * stdlib: Fixed category for some codepoint ranges in
    unicode_util.
  * stdlib: Fixed m:argparse to print sub-commands help when
    available.
  * stdlib: Class annotation to HTML from fenced blocks have been
    added.
  * stdlib: Added JSON formatting functions for indented output.
  * stdlib: Improved illegal pattern error for accidental map
    associations.
  * stdlib: Progress reports for a dynamically started supervisor
    will now be logged at debug level.
  * stdlib: The m:zip module has been updated with support for:
  * edoc: Broken links in release notes have been mended.
  * tools: m:tprof no longer crashes when using
    pause/restart/continue when profiling all modules.
  * tools: On systems supporting native coverage, calls to m:cover
    could hang or crash if cover-compiled module had been reloaded
    from outside cover. This has been corrected so that cover now
    recovers from the error and and sends a report to the logger
    about the failure to retrieve coverage information.
  * tools: Figures in the documentation have been improved.
  * erts: The erl -man example has been corrected to not consider
    values set in ERL_ZFLAGS and stop parsing arguments when a --
    is encountered.
  * erts: Compiler warnings for  Windows I/O back-end have been
    silenced.
  * erts: Bugs related to return_to trace have been fixed. It did
    not work for more than once trace session and it did sometimes
    not trigger for exceptions.
  * erts: Potential deadlocks while writing a crash dump have been
    eliminated.
  * erts: When loading a damaged or too old BEAM file, the runtime
    system could crash.
  * erts: A scheduler thread could get stuck when deleting a memory
    allocator carrier when adjacent carriers were deleted and/or
    inserted simultaneously by other schedulers. This in turn could
    cause the other schedulers to get stuck as well.
  * erts: Statistics for number of carriers in a shared pool after
    calling instrument:allocations or instrument:carriers are now
    correct. Also, a potential bug in carrier block scanning was
    eliminated.
  * erts: A race in the kTLS flavour of SSL distribution has been
    fixed so that inet_drv.c doesn't read ahead too much data,
    which could cause the kTLS encryption to be activated too late
    when some encrypted data had already been read into the
    inet_drv.c buffer as unencrypted.
  * erts: Fixed an emulator crash relating to compressed ETS
    tables.
  * erts: A function (encode_sockaddr) was called with superfluous
    argument, on Windows, in the net nif.
  * erts: Fixed a crash that could happen on reallocation failure.
  * erts: Man pages are now available for erl, erlc, dialyzer, and
    all other programs that are included in Erlang/OTP.
  * erts: A previous correction in the Erlang/OTP 27.0.1 emergency
    patch had the unfortunate side effect of sometimes causing an
    unnecessary fullsweep (major) garbage collection instead of a
    generation (minor) garbage collection. This has been corrected.
  * erts: Fixed trace matchspec functions trace and enable_trace to
    use the session tracer when enabling trace flags on untraced
    processes.
  * erts: Fixed a typo in the type spec for
    t:erlang:garbage_collection_defaults/0.
  * erts: Corrected socket:ioctl for genaddr (SIOCGENADDR).
  * erts: The support for Transparent Huge Pages has been disabled
    on non-amd64 Linux systems.
  * erts: Fixed a race condition on Windows when upgrading from
    -noshell to a shell that would cause Erlang to crash with the
    error:
  * erts: Added functions getservbyname and getservbyport to the
    net module.
  * erts: Introduced enet | esock variants of m:inet functions,
    either when called with sockets, with explicit inet_backend
    config or with the e inet_backend kernel config option.
  * erts: Optimize process and port creation when such tracing is
    not enabled by any trace session.
  * erts: Compiler warnings for some removed functions have been
    corrected to point out the correct replacement functions.
  * erts: A boolean option read_ahead has been implemented for
    gen_tcp, default true, to facilitate not reading past (caching
    data) the end of a packet.  In particular, for kTLS, caching
    data could read in data that was supposed to be decrypted by
    the platform's network stack, before crypto parameters could be
    activated.
  * erts: The m:zip module has been updated with support for:
  * kernel: A faulty assertion was corrected in the prim_tty
    module. This assertion could trigger when invalid UTF-8 was
    read from stdin just as the mode was changed from unicode to
    latin1.
  * kernel: Opening a disk_log file and combining head_func with
    rotate options did not work.
  * kernel: Fixed an error info printout for
    erlang:is_process_alive/1 on non-local pids.
  * kernel: A race in the kTLS flavour of SSL distribution has been
    fixed so that inet_drv.c doesn't read ahead too much data,
    which could cause the kTLS encryption to be activated too late
    when some encrypted data had already been read into the
    inet_drv.c buffer as unencrypted.
  * kernel: Fixed a deadlock when an application crashes during
    startup and log messages were sent to standard out. Logger
    would fail to print the messages to standard out and instead
    print them to standard error.
  * kernel: The -proto_dist init parameter will no longer be
    ignored when specified multiple times. It will now log a
    warning and use the first specified value.
  * kernel: Corrected socket:ioctl for genaddr (SIOCGENADDR).
  * kernel: Added functions getservbyname and getservbyport to the
    net module.
  * kernel: Introduced enet | esock variants of m:inet functions,
    either when called with sockets, with explicit inet_backend
    config or with the e inet_backend kernel config option.
  * kernel: The function socket:i/0 now uses the m:net module
    (instead of the m:inet module) for service translation.
  * kernel: A boolean option read_ahead has been implemented for
    gen_tcp, default true, to facilitate not reading past (caching
    data) the end of a packet.  In particular, for kTLS, caching
    data could read in data that was supposed to be decrypted by
    the platform's network stack, before crypto parameters could be
    activated.
  * syntax_tools: The documentation for syntax_tools has been
    polished after the migration to the new documentation system.
  * asn1: Fixed a cosmetic but harmless issue with the ASN.1
    compiler passing on the undec_rest option to the Erlang
    compiler.
- Changes for 27.0.1:
  * ssh: With this change, race condition between connection
    closing and automatic window adjustment is fixed.
  * ssl: Check  for TLS-1.3 support should check minimum
    requirements.
  * ssl: If both TLS-1.3 and TLS-1.2 is supported and TLS-1.2
    negotiated convert TLS-1.3 ECDSA schemes to TLS-1.2 hash and
    signature pairs for increased interoperability.
  * ssl: TLS-1.3 negotiation now uses SNI based options correctly
    instead of ignoring them.
  * ssl: Make it easier to distinguish between a invalid signature
    and unsupported signature.
  * ssl: Enhance ALERT logs to help understand what causes the
    alert.
  * ssl: When the default value for signature_algs is used, default
    the signature_algs_cert to the default value + rsa_pkcs1_sha1
    to allow this algorithms for certificates but not for the TLS
    protocol. This is for better interoperability.  If
    signature_algs is set explicitly signature_algs_cert must also
    be set explicitly if they should be different.
  * public_key: Fix bug in dnsName constraint check, could cause
    valid cert to be considered bad during path validation.
  * compiler: One of the compiler's optimization passes would get
    very slow when compiling certain modules. The compiler will now
    automatically disable that pass for input that would trigger
    the slowdown.
  * compiler: Fix +deterministic to work properly with
    documentation attributes.
  * stdlib: Fix so that missing -doc({file, File}) files only
    result in a warning and not an error.
  * stdlib: Fixed m:json bugs, json:encode_key_value_list/2 did not
    generate arrays and json:decode/3 did not invoke the user
    callback for 0.
  * edoc: Fix broken makefile dependency when building HTML
    documentation.
  * erts: In rare circumstances the JIT could do an unsafe in-place
    update of a tuple.
  * erts: When a port command crashed in the inet driver during
    gen_tcp:send/2, a monitor 'DOWN' message could be left
    lingering in the caller's mailbox. This has now been fixed.
  * erts: 'DOWN' messages originating from a monitored port,
    contained the atom process instead of the atom port as the
    third element when the exit reason was not an immediate term.
  * erts: Fix so that the options to enable Transparent Huge Page
    alignment of the Erlang VM executable are only applied to the
    Erlang VM and not other native programs such as erlc and
    dialyzer. This bug was introduced in Erlang/OTP 27.0.
  * erts: When [*no time warp mode*](time_correction.md#no-time-
    warp-mode) was enabled, a smaller Erlang monotonic time could
    be read than a previously read time, i.e., breaking the
    monotonic property. The runtime system will abort when
    detecting an issue like this since OTP 24.3.4.17 and OTP 25.0.
  * erts: When calling trace:function(Session, _, true, [meta]) the
    meta tracer was incorrectly set to be the calling process. Now
    it's set to the session tracer as expected.
  * kernel: Polish the m:logger documentation.
- Version 27.0:
  * Triple-Quoted Strings has been implemented as per EEP 64 to
    allow a string to encompass a complete paragraph.
  * Adjacent string literals without intervening white space is now
    a syntax error, to avoid possible confusion with triple-quoted
    strings.
  * Sigils on string literals (both ordinary and triple-quoted)
    have been implemented as per EEP 66. For example, ~"Björn" or
    ~b"Björn" are now equivalent to <<"Björn"/utf8>>.
  * The compiler will now merge consecutive updates of the same
    record.
  * Safe destructive update of tuples has been implemented in the
    compiler and runtime system. This allows the VM to update
    tuples in-place when it is safe to do so, thus improving
    performance by doing less copying but also by producing less
    garbage.
  * The maybe expression is now enabled by default, eliminating the
    need for enabling the maybe_expr feature.
  * Native coverage support has been implemented in the JIT. It
    will automatically be used by the cover tool to reduce the
    execution overhead when running cover-compiled code. There are
    also new APIs to support native coverage without using the
    cover tool.
  * The compiler will now raise a warning when updating record/map
    literals to catch a common mistake. For example, the compiler
    will now emit a warning for #r{a=1}#r{b=2}.
  * The erl command now supports the -S flag, which is similar to
    the -run flag, but with some of the rough edges filed off.
  * By default, escripts will now be compiled instead of
    interpreted. That means that the compiler application must be
    installed.
  * The default process limit has been raised to 1048576 processes.
  * The erlang:system_monitor/2 functionality is now able to
    monitor long message queues in the system.
  * The obsolete and undocumented support for opening a port to an
    external resource by passing an atom (or a string) as first
    argument to open_port(), implemented by the vanilla driver, has
    been removed. This feature has been scheduled for removal in
    OTP 27 since the release of OTP 26.
  * The pid field has been removed from erlang:fun_info/1,2.
    Multiple trace sessions are now supported.
  * There is a new module json for encoding and decoding JSON.
  * Several new functions that accept funs have been added to module timer.
  * The functions is_equal/2, map/2, and filtermap/2 have been
    added to the modules sets, ordsets, and gb_sets.
  * There are new efficient ets traversal functions with guaranteed
    atomicity. For example, ets:next/2 followed by ets:lookup/2 can
    now be replaced with ets:next_lookup/1.
  * The new function ets:update_element/4 is similar to
    ets:update_element/3, but takes a default tuple as the fourth
    argument, which will be inserted if no previous record with
    that key exists.
  * binary:replace/3,4 now supports using a fun for supplying the
    replacement binary.
  * The new function proc_lib:set_label/1 can be used to add a
    descriptive term to any process that does not have a registered
    name. The name will be shown by tools such as c:i/0 and
    observer, and it will be included in crash reports produced by
    processes using gen_server, gen_statem, gen_event, and gen_fsm.
  * Added functions to retrieve the next higher or lower
    key/element from gb_trees and gb_sets, as well as returning
    iterators that start at given keys/elements.
  * common_test: Calls to ct:capture_start/0 and ct:capture_stop/0
    are now synchronous to ensure that all output is captured.
  * common_test: The default CSS will now include a basic dark mode
    handling if it is preferred by the browser.
  * crypto: The functions crypto_dyn_iv_init/3 and
    crypto_dyn_iv_update/3 that were marked as deprecated in
    Erlang/OTP 25 have been removed.
  * dialyzer: The --gui option for Dialyzer has been removed.
  * ssl: The ssl client can negotiate and handle certificate status
    request (OCSP stapling support on the client side).
  * tools: There is a new tool tprof, which combines the
    functionality of eprof and cprof under one interface. It also
    adds heap profiling.
  * xmerl: As an alternative to xmerl_xml, a new export module
    xmerl_xml_indent that provides out-of-the box indented output
    has been added.
Comments 0
openSUSE Build Service is sponsored by