Π Π΅Π»ΠΈΠ· Erlang/OTP 25

ПослС Π³ΠΎΠ΄Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ cостоялся Ρ€Π΅Π»ΠΈΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ языка программирования Erlang 25, Π½Π°Ρ†Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ распрСдСлённых отказоустойчивых ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ запросов Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Π―Π·Ρ‹ΠΊ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» распространСниС Π² Ρ‚Π°ΠΊΠΈΡ… областях, ΠΊΠ°ΠΊ Ρ‚Π΅Π»Π΅ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΈ, банковскиС систСмы, элСктронная коммСрция, ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Π°Ρ тСлСфония ΠΈ организация ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΠΌΠ΅Π½Π° сообщСниями. ΠžΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½ Ρ€Π΅Π»ΠΈΠ· OTP 25 (Open Telecom Platform) — ΡΠΎΠΏΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Π½Π°Π±ΠΎΡ€Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ распрСдСлённых систСм Π½Π° языкС 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

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ