Новая вСрсия ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π° GNU Awk 5.2

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ Π½ΠΎΠ²Ρ‹ΠΉ выпуск Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ языка программирования AWK ΠΎΡ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° GNU — Gawk 5.2.0. AWK Π±Ρ‹Π» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ Π² 70-Ρ… Π³ΠΎΠ΄Π°Ρ… ΠΏΡ€ΠΎΡˆΠ»ΠΎΠ³ΠΎ Π²Π΅ΠΊΠ° ΠΈ Π½Π΅ ΠΏΡ€Π΅Ρ‚Π΅Ρ€ΠΏΠ΅Π» Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ с сСрСдины 80-Ρ… Π³ΠΎΠ΄ΠΎΠ², Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π±Ρ‹Π» ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ основной костяк языка, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ Π½Π° протяТСнии послСдних дСсятилСтий ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π²ΠΎΠ·Π΄Π°Π½Π½ΡƒΡŽ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ простоту языка. НСсмотря Π½Π° ΠΏΡ€Π΅ΠΊΠ»ΠΎΠ½Π½Ρ‹ΠΉ возраст, AWK Π΄ΠΎ сих ΠΏΠΎΡ€ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ администраторами для выполнСния Ρ€ΡƒΡ‚ΠΈΠ½Π½Ρ‹Ρ… Ρ€Π°Π±ΠΎΡ‚, связанных с Ρ€Π°Π·Π±ΠΎΡ€ΠΎΠΌ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ Ρ€ΠΎΠ΄Π° тСкстовых Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ нСслоТной Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΉ статистики.

ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ измСнСния:

  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π° памяти pma (persistent malloc), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π³ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, массивов ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ запусками awk.
  • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΠΊΠΈ высокой точности, рСализуСмая ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ MPFR, Π²Ρ‹Π²Π΅Π΄Π΅Π½Π° ΠΈΠ· области отвСтствСнности ΡΠΎΠΏΡ€ΠΎΠ²ΠΎΠΆΠ΄Π°ΡŽΡ‰Π΅Π³ΠΎ GNU Awk ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π° стороннСму энтузиасту. ΠžΡ‚ΠΌΠ΅Ρ‡Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ рСализация Ρ€Π΅ΠΆΠΈΠΌΠ° MPFR Π² GNU Awk рассматриваСтся ΠΊΠ°ΠΊ ошибка. Π’ случаС измСнСния состояния с сопровоТдСниСм планируСтся ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π΄Π°Π½Π½ΡƒΡŽ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΠ· GNU Awk.
  • ΠžΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ‹ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ сборочной инфраструктуры Libtool 2.4.7 ΠΈ Bison 3.8.2.
  • ИзмСнСна Π»ΠΎΠ³ΠΈΠΊΠ° сравнСния чисСл, которая ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π° Π² соотвСтствиС с Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ, примСняСмой Π² языкС Π‘ΠΈ. Для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² основном Π·Π°Ρ‚Ρ€Π°Π³ΠΈΠ²Π°Π΅Ρ‚ сравнСниС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Infinity ΠΈ NaN с ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌΠΈ числами.
  • ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования Ρ…ΡΡˆ-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ FNV1-A Π² ассоциативных массивах, Π²ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΠ°Ρ ΠΏΡ€ΠΈ выставлСнии ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ окруТСния AWK_HASH Π² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ «fnv1a».
  • Π£Π΄Π°Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° сборки с использованиСм CMake (ΠΊΠΎΠ΄ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Cmake оказался Π½Π΅ вострСбован ΠΈ ΠΏΡΡ‚ΡŒ Π»Π΅Ρ‚ Π½Π΅ обновлялся).
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° функция mkbool() для создания Π±ΡƒΠ»Π΅Π²Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ числами, Π½ΠΎ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ Ρ‚ΠΈΠΏ Boolean.
  • Π’ Ρ€Π΅ΠΆΠΈΠΌΠ΅ BWK ΠΏΡ€ΠΈ указания Ρ„Π»Π°Π³Π° «—traditional» ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ для опрСдСлСния Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠ², Ρ€Π°Π½Π΅Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹Ρ… ΠΎΠΏΡ†ΠΈΠ΅ΠΉ «-r» («—re-interval»).
  • Π’ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΈ rwarray ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Ρ‹ Π½ΠΎΠ²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ writeall() ΠΈ readall() для записи ΠΈ чтСния Ρ€Π°Π·ΠΎΠΌ всСх ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ массивов.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ скрипт gawkbug для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ….
  • ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½ΠΎ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎΠ΅ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² случаС опрСдСлСния синтаксичСских ошибок, Ρ‡Ρ‚ΠΎ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с использованиСм инструмСнтов для fuzzing-тСстирования.
  • ΠŸΡ€Π΅ΠΊΡ€Π°Ρ‰Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм OS/2 ΠΈ VAX/VMS.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru