{"rsdb":{"rid":"352868","subhead":"","postdate":"0","aid":"250386","fid":"88","uid":"1","topic":"1","content":"
\n
\n OTP 22.0<\/span><\/strong>\n <\/div> \n
\n Erlang\/OTP 22\u662f\u4e00\u4e2a\u65b0\u7684\u4e3b\u8981\u7248\u672c\uff0c\u5177\u6709\u65b0\u7684\u7279\u6027\u548c\u6539\u8fdb\uff0c\u540c\u65f6\u4e5f\u5177\u6709\u4e0d\u517c\u5bb9\u6027\u3002<\/span>\n <\/div> \n
\n \u8981\u66f4\u6df1\u5165\u5730\u4e86\u89e3OTP 22\u53d1\u884c\u7248\u7684\u4eae\u70b9\uff0c\u60a8\u53ef\u4ee5\u9605\u8bfb\u6211\u4eec\u7684\u535a\u5ba2:<\/span>\n <\/div> \n
\n http:\/\/blog.erlang.org\/OTP-22-Highlights\/<\/span>\n <\/div> \n
\n \u6f5c\u5728\u7684\u4e0d\u517c\u5bb9<\/span><\/span>\n <\/div> \n
\n
    \n
  • gen_*\u884c\u4e3a\uff1a\u5982\u679c\u901a\u8fc7sys:log\/2,3\u8bb0\u5f55\u670d\u52a1\u5668\u4e0a\u7684\u6700\u540eN\u6761\u6d88\u606f\u662f\u6d3b\u52a8\u7684\uff0c\u5219\u6b64\u65e5\u5fd7\u5305\u542b\u5728\u7ec8\u6b62\u62a5\u544a\u4e2d\u3002<\/li> \n
  • reltool\uff1a\u4e00\u4e2a\u65b0\u5143\u7d20Opts\u73b0\u5728\u53ef\u4ee5\u5305\u542b\u5728reltool\u53d1\u884c\u7248\u7279\u5b9a\u914d\u7f6e\u683c\u5f0f\u7684rel\u5143\u7ec4\u4e2d\uff1a{rel, Name, Vsn, RelApps, Opts}\u3002<\/li> \n
  • \u7531erlang:list_to_pid\u548c\u7c7b\u4f3c\u51fd\u6570\u521b\u5efa\u7684\u6240\u6709\u5916\u90e8pid\/port\/ref\u73b0\u5728\u90fd\u4e0e\u8be5\u8282\u70b9\u4e2d\u5177\u6709\u76f8\u540c\u7f16\u53f7\u7684\u5176\u4ed6pid\/port\/ref\u8fdb\u884c\u6bd4\u8f83\u3002<\/li> \n
  • \u65e7\u7684\u9057\u7559erl_interface\u5e93\u5728otp22\u4e2d\u88ab\u5f03\u7528\uff0c\u5e76\u5c06\u5728otp23\u4e2d\u5220\u9664\u3002\u8fd9\u4e0d\u9002\u7528\u4e8eei\u5e93\u3002<\/li> \n
  • VxWorks\u5728otp22\u4e2d\u88ab\u5f03\u7528\uff0c\u5c06\u5728otp23\u4e2d\u5220\u9664\u3002<\/li> \n <\/ul> \n <\/div> \n
    \n ERTS\uff1a<\/span>\n <\/div> \n
    \n
      \n
    • \u652f\u6301Erlang\u5206\u53d1\u534f\u8bae\uff0c\u5c06\u5927\u4fe1\u53f7\u7684\u6709\u6548\u8d1f\u8f7d\u62c6\u5206\u4e3a\u591a\u4e2a\u7247\u6bb5\u3002<\/li> \n
    • ETS\u9009\u9879write_concurrency\u73b0\u5728\u4e5f\u5f71\u54cd\u548c\u6539\u8fdb\u4e86ordered_set\u8868\u7684\u53ef\u4f38\u7f29\u6027\u3002<\/li> \n
    • length\/1 BIF\u7528\u4e8e\u4e00\u6b21\u6027\u8ba1\u7b97\u5217\u8868\u7684\u957f\u5ea6\uff0c\u5373\u4f7f\u5217\u8868\u975e\u5e38\u957f\uff0c\u4e5f\u4e0d\u4f1a\u653e\u5f03\u3002\u73b0\u5728\uff0c\u5f53\u8c03\u7528\u957f\u5217\u8868\u65f6\uff0c\u5b83\u5c06\u653e\u5f03\u3002<\/li> \n
    • \u4ecb\u7ecd\u4e86\u4e00\u79cd\u65b0\u7684(\u4ecd\u5904\u4e8e\u5b9e\u9a8c\u9636\u6bb5)\u6a21\u5757socket\u3002\u5b83\u88ab\u5b9e\u73b0\u4e3a\u4e00\u4e2aNIF\uff0c\u5176\u601d\u60f3\u662f\u5b83\u5e94\u8be5\u201c\u5c3d\u53ef\u80fd\u63a5\u8fd1\u201dOS\u7ea7\u5957\u63a5\u5b57\u63a5\u53e3\u3002<\/li> \n
    • \u6dfb\u52a0\u4e86NIF\u51fd\u6570enif_term_type\uff0c\u901a\u8fc7\u8fd4\u56de\u7ed9\u5b9a\u9879\u7684\u7c7b\u578b\uff0c\u53ef\u4ee5\u5e2e\u52a9\u907f\u514denif_is_xyz\u7684\u957f\u5e8f\u5217\u3002\u8fd9\u5bf9\u4e8e\u5e8f\u5217\u5316\u672f\u8bed(\u5982JSON\u7f16\u7801\u5668)\u7684NIFs\u5c24\u5176\u6709\u7528\uff0c\u5b83\u53ef\u4ee5\u63d0\u9ad8\u6027\u80fd\u548c\u53ef\u8bfb\u6027\u3002<\/li> \n <\/ul> \n <\/div> \n
      \n Compiler\uff1a<\/span>\n <\/div> \n
      \n
        \n
      • \u7f16\u8bd1\u5668\u88ab\u91cd\u5199\u4e3a\u5728\u5185\u90e8\u4f7f\u7528\u57fa\u4e8e\u9759\u6001\u5355\u8d4b\u503c(SSA)\u7684\u4e2d\u95f4\u8868\u793a\u5f62\u5f0f\u3002\u65b0\u7684\u4e2d\u95f4\u8868\u793a\u4f7f\u66f4\u591a\u7684\u4f18\u5316\u6210\u4e3a\u53ef\u80fd\u3002<\/li> \n
      • \u65b0\u7684\u4e2d\u95f4\u8868\u793a\u4f7f\u66f4\u591a\u7684\u4f18\u5316\u6210\u4e3a\u53ef\u80fd<\/li> \n
          \n
        • \u4e8c\u8fdb\u5236\u5339\u914d\u4f18\u5316\u73b0\u5728\u6bd4\u4ee5\u524d\u9002\u7528\u4e8e\u66f4\u591a\u7684\u73af\u5883\u3002<\/li> \n
        • \u7c7b\u578b\u4f18\u5316\u73b0\u5728\u8de8\u672c\u5730\u51fd\u6570\u8c03\u7528\u5e94\u7528\uff0c\u5e76\u5c06\u6bd4\u4ee5\u524d\u5220\u9664\u66f4\u591a\u7684\u5197\u4f59\u7c7b\u578b\u6d4b\u8bd5\u3002<\/li> \n <\/ul> \n
        • \u53ef\u4ee5\u5728\u6e90\u6587\u4ef6\u4e2d\u7ed9\u51fa\u7684\u6240\u6709\u7f16\u8bd1\u5668\u9009\u9879\u73b0\u5728\u90fd\u53ef\u4ee5\u5728erlc\u547d\u4ee4\u884c\u4e0a\u7684\u9009\u9879\u5217\u8868\u4e2d\u7ed9\u51fa\u3002<\/li> \n
        • \u5728OTP 22\u4e2d\uff0cHiPE(\u672c\u673a\u4ee3\u7801\u7f16\u8bd1\u5668)\u6ca1\u6709\u5b8c\u5168\u53d1\u6325\u529f\u80fd\u3002\u539f\u56e0\u662fHiPE\u672c\u673a\u4ee3\u7801\u7f16\u8bd1\u5668\u4e0d\u652f\u6301\u7528\u4e8e\u4e8c\u8fdb\u5236\u5339\u914d\u7684\u65b0\u7684BEAM\u6307\u4ee4\u3002\u5982\u679c\u4f7f\u7528+native\u9009\u9879\u8c03\u7528erlc\uff0c\u5e76\u4e14\u4f7f\u7528\u4efb\u4f55\u65b0\u7684\u4e8c\u8fdb\u5236\u5339\u914d\u6307\u4ee4\uff0c\u7f16\u8bd1\u5668\u5c06\u53d1\u51fa\u8b66\u544a\u5e76\u751f\u6210\u4e00\u4e2a\u6ca1\u6709native\u4ee3\u7801\u7684BEAM\u6587\u4ef6\u3002<\/li> \n <\/ul> \n <\/div> \n
          \n \u6807\u51c6\u5e93\uff1a<\/span>\n <\/div> \n
          \n
            \n
          • Cover\u73b0\u5728\u4f7f\u7528\u8ba1\u6570\u5668\u6a21\u5757\u800c\u4e0d\u662fets\u6765\u66f4\u65b0\u8ba1\u6570\u5668\u3002\u65b0\u51fd\u6570cover:local_only\/0\u5141\u8bb8\u4ee5\u53d7\u9650\u4f46\u66f4\u5feb\u7684\u672c\u5730\u6a21\u5f0f\u8fd0\u884ccover\u3002\u901f\u5ea6\u7684\u63d0\u9ad8\u5c06\u6839\u636e\u88ab\u8986\u76d6\u7f16\u8bd1\u7684\u4ee3\u7801\u7c7b\u578b\u800c\u6709\u6240\u4e0d\u540c\uff0c\u4f8b\u5982\u7f16\u8bd1\u5668\u6d4b\u8bd5\u5957\u4ef6\u5728\u65b0\u8986\u76d6\u4e0b\u8fd0\u884c\u7684\u901f\u5ea6\u5c06\u662f\u539f\u6765\u7684\u4e24\u500d\u591a\u3002<\/li> \n
          • \u901a\u8fc7\u5957\u63a5\u5b57\u6a21\u5757\u63d0\u4f9b\u4e86\u4e00\u4e2a\u7b80\u5355\u7684\u5957\u63a5\u5b57API\u3002\u8fd9\u662f\u4e00\u4e2a\u4f4e\u7ea7\u522b\u7684API\uff0c\u4e0d\u53d6\u4ee3gen_[tcp|udp|sctp]\u3002\u5b83\u7684\u76ee\u7684\u662f\u201c\u6700\u7ec8\u201d\u66ff\u6362inet\u9a71\u52a8\u7a0b\u5e8f\u3002\u5b83\u8fd8\u63d0\u4f9b\u4e86\u4e00\u4e2a\u57fa\u672c\u7684API\uff0c\u4fbf\u4e8e\u5b9e\u73b0TCP\u3001UDP\u548cSCTP\u4e4b\u5916\u7684\u5176\u4ed6\u534f\u8bae\u3002\u5df2\u77e5\u95ee\u9898;\u4e0d\u652f\u6301Windows\u64cd\u4f5c\u7cfb\u7edf(\u76ee\u524d)\uff0c\u4e00\u4e2a\u5c0f\u7684\u672f\u8bed\u6cc4\u6f0f\u3002\u8fd9\u4e2a\u7279\u6027\u5c06\u88ab\u5f52\u4e3aotp22\u4e2d\u7684\u5b9e\u9a8c\u6027\u7279\u6027\u3002<\/li> \n
          • SSL\uff1a\u73b0\u5728\u4f7f\u7528\u65b0\u7684logger API\uff0c\u5305\u62ec\u65e5\u5fd7\u7ea7\u522b\u548c\u8be6\u7ec6\u7684\u8c03\u8bd5\u65e5\u5fd7\u8bb0\u5f55\u3002<\/li> \n
          • SSL\uff1a\u5b9e\u9a8c\u4f7f\u7528\u7684\u5bf9TLS 1.3\u670d\u52a1\u5668\u7684\u57fa\u672c\u652f\u6301\u3002<\/li> \n
          • crypto\uff1a\u65b0\u7684hash_info\/1\u548ccipher_info\/1\u51fd\u6570\u8fd4\u56de\u53c2\u6570\u4e2d\u5305\u542b\u6563\u5217\u6216\u5bc6\u7801\u4fe1\u606f\u7684\u6620\u5c04\u3002<\/li> \n <\/ul> \n <\/div> \n
            \n  <\/span><\/strong>\n <\/div> \n
            \n OTP 21.3<\/span><\/strong>
            <\/span><\/strong>\n <\/div> \n
            \n Erlang\/OTP 21.3\u662fversion 21\u53d1\u884c\u7248\u7684\u7b2c\u4e09\u4e2a\u670d\u52a1\u53d1\u884c\u7248\uff0c\u6709\u4e00\u4e9b\u6539\u8fdb\u548c\u4e00\u4e9b\u7279\u6027!<\/span>\n <\/div> \n
            \n \u91cd\u70b9<\/span>\n <\/div> \n
            \n kernel\uff1a\n <\/div> \n
            \n         \u6807\u51c6\u7684logger\u5904\u7406\u7a0b\u5e8flogger_std_h\u73b0\u5728\u6709\u4e00\u4e2a\u65b0\u7684\u5185\u90e8\u7279\u6027\uff0c\u7528\u4e8e\u65e5\u5fd7\u65cb\u8f6c\u3002\u6709\u5173\u8be6\u7ec6\u4fe1\u606f\uff0c\u8bf7\u53c2\u9605\u6587\u6863\u3002<\/span>\n <\/div> \n
            \n SSL\uff1a<\/span>\n <\/div> \n
            \n
              \n
            • \u8fde\u63a5\u548c\u63e1\u624b\u51fd\u6570\u8fd4\u56de\u9519\u8bef\u7684\u90e8\u5206\u539f\u56e0\u5177\u6709\u66f4\u597d\u7684\u6587\u6863\u683c\u5f0f\u3002\u8fd9\u662f\u6f5c\u5728\u7684\u4e0d\u517c\u5bb9\u3002\u89c1\u6587\u6863\u3002<\/li> \n
            • \u72b6\u6001\u5904\u7406\u7684\u91cd\u6784\u63d0\u9ad8\u4e86TLS\u5e94\u7528\u7a0b\u5e8f\u7684\u6570\u636e\u541e\u5410\u91cf\uff0c\u964d\u4f4e\u4e86CPU\u5f00\u9500<\/li> \n
            • \u4ee3\u7801\u4f18\u5316\u964d\u4f4e\u4e86\u52a0\u5bc6\/\u89e3\u5bc6\u7684CPU\u8d1f\u8f7d\uff0c\u7279\u522b\u662f\u5bf9\u4e8eErlang\u7684TLS\u5206\u53d1\u534f\u8bae<\/li> \n
            • \u73b0\u5728\u652f\u6301 active N<\/li> \n <\/ul> \n <\/div> \n
              \n Erl_interface\uff1a<\/span>\n <\/div> \n
              \n         \u6dfb\u52a0\u4e86\u5bf9\u7528\u6237\u63d0\u4f9b\u7684\u5957\u63a5\u5b57\u5b9e\u73b0\u63d2\u4ef6\u7684\u652f\u6301\u3002<\/span>\n <\/div> \n
              \n OTP\uff1a<\/span>\n <\/div> \n
              \n
                \n
              • HTML\u53c2\u8003\u6587\u6863\u73b0\u5728\u663e\u793a\u4e86\u6700\u521d\u5f15\u5165\u6a21\u5757\u548c\u51fd\u6570\u7684OTP\u7248\u672c\u3002<\/li> \n
              • \u5728\u53c2\u8003\u6587\u6863\u4e2d\u6ca1\u6709\u663e\u793a\u6bd4R13B04\u66f4\u8001\u7684OTP\u7248\u672c<\/li> \n <\/ul> \n <\/div> \n
                \n  <\/span><\/strong>\n <\/div> \n
                \n OTP 21.2<\/span><\/strong>\n <\/div> \n
                \n SSH\uff1a\n <\/div> \n
                \n \u516c\u94a5\u65b9\u6cd5\uff1a\u6dfb\u52a0\u4e86ssh-ed25519\u548cssh-ed448\u3002\u5728OTP\u5e94\u7528\u7a0b\u5e8f\u4e0b\u9700\u8981OpenSSL 1.1.1\u6216\u66f4\u9ad8\u7248\u672c\u4f5c\u4e3acryptolib\n <\/div> \n
                \n SSL\uff1a\n <\/div> \n
                \n ssl\u73b0\u5728\u5728\u5185\u90e8\u4f7f\u7528active n\u6765\u63d0\u5347\u6027\u80fd\u3002\u901a\u8fc7\u8bbe\u7f6e\u5e94\u7528\u7a0b\u5e8f\u53d8\u91cf\u53ef\u4ee5\u6062\u590d\u65e7\u7684\u6d3b\u52a8\u4e00\u6b21\u884c\u4e3a\u3002\n <\/div> \n
                \n ERTS\uff0cKernel\uff1a\n <\/div> \n
                \n \u65b0\u7684\u8ba1\u6570\u5668\u548c\u539f\u5b50\u6a21\u5757\u63d0\u4f9b\u5bf9\u53ef\u53d8\u56fa\u5b9a\u5b57\u5927\u5c0f\u53d8\u91cf\u7684\u9ad8\u6548\u64cd\u4f5c\u7684\u8bbf\u95ee\u3002\n <\/div> \n
                \n \u65b0\u6a21\u5757persistent_term\uff01\u3002\u67e5\u627e\u662f\u5728\u6052\u5b9a\u7684\u65f6\u95f4\uff01\u6ca1\u6709\u590d\u5236Terms\uff01\n <\/div> \n
                \n \u7528\u4e8e\u5904\u7406\u4f7f\u7528{active\uff0ctrue}\u6216{active\uff0cN}\u7684\u5957\u63a5\u5b57\u7684\u65b0pollset\u3002\u7531\u666e\u901a\u7684\u8c03\u5ea6\u7a0b\u5e8f\u6295\u7968\uff01\n <\/div> \n
                \n  \n <\/div> \n
                \n \u5728fds\u4e0a\u4e0d\u518d\u6709ONESHOT\u673a\u5236\u5f00\u9500\uff01\u4ec5\u9002\u7528\u4e8eLinux\u548cBSD\u3002\n <\/div> \n
                \n  \n <\/div> \n
                \n OTP 21.1<\/span><\/strong>\n <\/div> \n
                \n SSH\uff1a\n <\/div> \n
                \n \u5982\u679c\u5c06OpenSSL 1.1.1\u6216\u66f4\u9ad8\u7248\u672c\u7528\u4f5ccryptolib\uff0c\u5219\u73b0\u5728\u652f\u6301\u5bc6\u7801'chacha20-poly1305@openssh.com'\u3002\n <\/div> \n
                \n \u5b9e\u73b0\u4e86\u5bc6\u94a5\u4ea4\u6362\u65b9\u6cd5'curve25519-sha256@libssh.org'\uff0c'curve25519-sha256'\u548c'curve448-sha512'\u3002\n <\/div> \n
                \n \u5b83\u4eec\u90fd\u53d6\u51b3\u4e8e\u7528\u4f5ccryptolib\u7684OpenSSL 1.1.1\u6216\u66f4\u9ad8\u7248\u672c\u3002\n <\/div> \n
                \n Crypto\uff1a\n <\/div> \n
                \n \u952e\u5165\u52a0\u5bc6\u548cpublic_key\u5e94\u7528\u7a0b\u5e8f\u5c06\u88ab\u91cd\u65b0\u8bbe\u7f6e\u5e76\u66f4\u6b63\u3002\n <\/div> \n
                \n \u7528\u6237\u6307\u5357\u4e2d\u6709\u5173\u7b97\u6cd5\u8be6\u7ec6\u4fe1\u606f\u7684\u65b0\u7ae0\u8282\n <\/div> \n
                \n ERTS\uff0cKernel\uff1a\n <\/div> \n
                \n \u5957\u63a5\u5b57\u9009\u9879recvtos\uff0crecvttl\uff0crecvtclass\u548cpktoptions\u5df2\u5728\u5957\u63a5\u5b57\u6a21\u5757\u4e2d\u5b9e\u73b0\u3002\n <\/div> \n
                \n \u6709\u5173\u66f4\u591a\u4fe1\u606f\uff0c\u8bf7\u53c2\u9605gen_tcp\uff0cgen_udp\u548cinet\u6a21\u5757\u4e2d\u7684\u6587\u6863\uff01\n <\/div> \n
                \n  \n <\/div> \n
                \n OTP 21<\/strong><\/span>\n <\/div> \n
                \n Erlang\/OTP 21\u662f\u4e00\u4e2a\u65b0\u7684\u4e3b\u8981\u7248\u672c\uff0c\u5177\u6709\u65b0\u7279\u6027\u3001\u6539\u8fdb\u548c\u4e0d\u517c\u5bb9\u6027\u3002\n <\/div> \n
                \n \u6f5c\u5728\u7684\u4e0d\u517c\u5bb9<\/span>\n <\/div> \n
                \n