Erlang/OTP 19

This release of Erlang/OTP can be built from source or installed using pre-built packages for your OS or third-party tools (such as kerl or asdf).

docker run -it erlang:19


  • compiler, stdlib:
    • New preprocessor macros ?FUNCTION_NAME, ?FUNCTION_ARITY
    • New preprocessor directives -error(Term) and -warning(Term) to cause a compilation error or warning, respectively.
  • gen_statem a new state machine behavior
  • mnesia_ext: plugin of external storage solutions to mnesia
  • crypto: uses EVP interface in OpenSSL resulting in generally better performance and support for HW acceleration
  • ssh: performance improvements, uses the new gen_statem behavior
  • ssl: enhanced error log messages
  • dialyzer: the support for maps is very much extended both the type specification syntax and the type analysis.
  • erts:
    • erlang:open_port(spawn, ...) 3-5 times faster
    • tracing, extensive improvements (scalability, speed, match specifications on send/receive, support for lttng, …)
    • dirty schedulers improved
    • per process configurable handling of message_queue
    • fast loading of multiple modules
    • max_heap_size process flag
  • erts/kernel: Experimental support for Unix Domain Sockets
    Example: gen_udp:open(0, [{ifaddr,{local,"/tmp/socket"}}])