Erlang/OTP 19

这个版本的 Erlang/OTP 可以从源代码构建,或者使用适用于你的操作系统的预构建包或第三方工具(例如kerlasdf)安装。

docker run -it erlang:19

亮点

  • 编译器,stdlib:
    • 新的预处理器宏 ?FUNCTION_NAME?FUNCTION_ARITY
    • 新的预处理器指令 -error(Term)-warning(Term) 分别用于引起编译错误或警告。
  • gen_statem:一种新的状态机行为
  • mnesia_ext:mnesia 的外部存储解决方案插件
  • crypto:在 OpenSSL 中使用 EVP 接口,通常会带来更好的性能并支持硬件加速
  • ssh:性能改进,使用新的 gen_statem 行为
  • ssl:增强的错误日志消息
  • dialyzer:对 maps 的支持大大扩展了类型规范语法和类型分析。
  • erts:
    • erlang:open_port(spawn, ...) 快 3-5 倍
    • 追踪,大量改进(可伸缩性、速度、发送/接收时的匹配规范、对 lttng 的支持,...)
    • 改进的脏调度器
    • 每个进程可配置的消息队列处理
    • 快速加载多个模块
    • max_heap_size 进程标志
  • erts/kernel:对 Unix 域套接字的实验性支持
    示例:gen_udp:open(0, [{ifaddr,{local,"/tmp/socket"}}])