αž€αžΆαžšαž…αŸαž‰αž•αŸ’αžŸαžΆαž™ Erlang / OTP 25

αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž˜αž½αž™αž†αŸ’αž“αžΆαŸ†αž“αŸƒαž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸ αž—αžΆαžŸαžΆαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž˜αž»αžαž„αžΆαžš Erlang 25 αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αŸαž‰αž•αŸ’αžŸαžΆαž™ αžŠαŸ‚αž›αž˜αžΆαž“αž”αŸ†αžŽαž„αž”αž„αŸ’αž€αžΎαžαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŠαŸ‚αž›αž…αŸ‚αž€αž…αžΆαž™ αž“αž·αž„αž’αžαŸ‹αž±αž“αž…αŸ†αž–αŸ„αŸ‡αž€αŸ†αž αž»αžŸ αžŠαŸ‚αž›αž•αŸ’αžαž›αŸ‹αž“αžΌαžœαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŸαŸ’αžšαž”αž‚αŸ’αž“αžΆαž“αŸƒαžŸαŸ†αžŽαžΎαž€αŸ’αž“αž»αž„αž–αŸαž›αžœαŸαž›αžΆαž‡αžΆαž€αŸ‹αžŸαŸ’αžαŸ‚αž„αŸ” αž—αžΆαžŸαžΆαž”αžΆαž“αžšαžΈαž€αžšαžΆαž›αžŠαžΆαž›αž“αŸ…αž€αŸ’αž“αž»αž„αž•αŸ’αž“αŸ‚αž€αžŠαžΌαž…αž‡αžΆ αž‘αžΌαžšαž‚αž˜αž“αžΆαž‚αž˜αž“αŸ αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž’αž“αžΆαž‚αžΆαžš αž–αžΆαžŽαž·αž‡αŸ’αž‡αž€αž˜αŸ’αž˜αž’αŸαž‘αž·αž…αžαŸ’αžšαžΌαž“αž·αž€ αž‘αžΌαžšαžŸαŸαž–αŸ’αž‘αž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžš αž“αž·αž„αž€αžΆαžšαž•αŸ’αž‰αžΎαžŸαžΆαžšαž—αŸ’αž›αžΆαž˜αŸ—αŸ” αž€αŸ’αž“αž»αž„αž–αŸαž›αž‡αžΆαž˜αž½αž™αž‚αŸ’αž“αžΆαž“αŸαŸ‡αž€αžΆαžšαž…αŸαž‰αž•αŸ’αžŸαžΆαž™ OTP 25 (αžœαŸαž‘αž·αž€αžΆαž‘αžΌαžšαž‚αž˜αž“αžΆαž‚αž˜αž“αŸαž”αžΎαž€αž…αŸ†αž ) αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αŸαž‰αž•αŸ’αžŸαžΆαž™ - αžŸαŸ†αžŽαž»αŸ†αž”αžŽαŸ’αžŽαžΆαž›αŸαž™αž“αž·αž„αžŸαž˜αžΆαžŸαž—αžΆαž‚αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž…αŸ‚αž€αž…αžΆαž™αž‡αžΆαž—αžΆαžŸαžΆ Erlang αŸ”

αž€αžΆαžšαž…αŸ’αž“αŸƒαž”αŸ’αžšαžŒαž·αžαžŸαŸ†αžαžΆαž“αŸ‹αŸ—αŸ–

  • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° новая конструкция Β«maybe … endΒ» для Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π² ΠΎΠ΄Π½ΠΎΠΌ Π±Π»ΠΎΠΊΠ΅, похоТая Π½Π° Β«begin … endΒ», Π½ΠΎ Π½Π΅ приводящая ΠΊ экспорту ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈΠ· Π±Π»ΠΎΠΊΠ°.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π²Ρ‹Π±ΠΎΡ€ΠΎΡ‡Π½ΠΎΠΉ Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ возмоТностСй, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ постСпСнно Π²Π½Π΅Π΄Ρ€ΡΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ ΠΈ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ Π½Π°Ρ€ΡƒΡˆΠ°ΡŽΡ‰ΠΈΠ΅ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ возмоТности языка ΠΈ runtime Π±Π΅Π· Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΊΠΎΠ΄Π°. ВозмоТности ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ Π²ΠΎ врСмя компиляции, Ρ‚Π°ΠΊ ΠΈ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ feature() Π² Ρ„Π°ΠΉΠ»Π°Ρ… с ΠΊΠΎΠ΄ΠΎΠΌ. НапримСр, для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ выраТСния maybe Π² ΠΊΠΎΠ΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Β«feature(maybe_expr,enable)Β».
  • Π’ JIT-компиляторС Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° основС ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Ρ‚ΠΈΠΏΠ°Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° 64-разрядных процСссоров ARM (AArch64). Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ perf ΠΈ gdb, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ обСспСчСна ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° свСдСний ΠΎ Π½ΠΎΠΌΠ΅Ρ€Π°Ρ… строк Π² ΠΊΠΎΠ΄Π΅.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ Π½ΠΎΠ²Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ peer с функциями для запуска связанных ΡƒΠ·Π»ΠΎΠ² Erlang. ПослС ΠΏΠΎΡ‚Π΅Ρ€ΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅Π³ΠΎ соСдинСния с ΡƒΠ·Π»ΠΎΠΌ Ρ€Π°Π±ΠΎΡ‚Π° ΡƒΠ·Π»Π° автоматичСски Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° OpenSSL 3.0.
  • Π’ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ maps Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ groups_from_list/2 ΠΈ groups_from_list/3 для Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠΈ списка элСмСнтов.
  • Π’ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ lists Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ uniq/1, uniq/2, enumerate/1 ΠΈ enumerate/2 для отсСивания Π΄ΡƒΠ±Π»ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ…ΡΡ элСмСнтов Π² спискС ΠΈ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ списка ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ΅ΠΉ с Π½ΠΎΠΌΠ΅Ρ€Π°ΠΌΠΈ элСмСнтов.
  • Π’ ΠΌΠΎΠ΄ΡƒΠ»Π΅ rand Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΡ‡Π΅Π½ΡŒ быстрый Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ псСвдослучайных чисСл.

αž”αŸ’αžšαž—αž–: opennet.ru

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹