Релиз языка программирования Perl 5.34.0

После 11 месяцев разработки состоялся релиз новой стабильной ветки языка программирования Perl — 5.34. При подготовке нового выпуска было изменено около 280 тыс. строк кода, изменения затронули 2100 файлов, в разработке приняли участие 78 разработчиков.

Ветка 5.34 выпущена в соответствии с утверждённым восемь лет назад фиксированным графиком разработки, подразумевающим выпуск новых стабильных веток раз в год и корректирующих релизов — раз в три месяца. Примерно через месяц планируется выпустить первый корректирующий релиз Perl 5.34.1, в котором будут исправлены наиболее значительные ошибки, выявленные в процессе внедрения Perl 5.34.0. Одновременно с выходом Perl 5.34 прекращена поддержка ветки 5.30, для которой в будущем могут быть выпущены обновления только в случае выявления критических проблем с безопасностью. Также начался процесс разработки экспериментальной ветки 5.35, на базе которой в мае или июне 2022 года будет сформирован стабильный релиз Perl 5.36, если Perl 5 не заменит ветка Perl 7.

Ключевые изменения:

  • Добавлена экспериментальная поддержка синтаксиса try/catch для обработки исключений, который можно использовать вместо не очевидных манипуляций с «eval». Блок «try» включает блок с выполняемым кодом, а блок «catch» с кодом для обработки любого исключения, которое может возникнуть при выполнении первого блока. В «catch» определяется переменная, содержащая данные, переданные при формировании исключения (например, при срабатывании исключения на вызов «die» будет передана указанная в качестве аргумента строка). Внутри блоков «try» и «catch» разрешены операторы переходов, включая return, goto, next, last и redo.

       use feature 'try';
     
       try {
           a_function();
       } catch ($e) {
           warn "An error occurred: $e";
       }
    
  • Разрешено использование пустой нижней границы диапазона в блоках »{a, n}», в том числе используемых в регулярных выражениях. Например, теперь можно указывать »{,3}».

  • Внутри параметров с фигурными скобками {m, n}, \b{}, \g{}, \k{}, \N{}, \o{} и \x{} разрешено использование пробелов, если пробел прилегает к фигурной скобке или запятой, для двойного экранирования или в шаблонах регулярных выражений, например, теперь можно указывать «qr/a{ 5, 7 }/» или »\x{ FFFC }» без заключения значений в кавычки.

  • В дополнение к шестнадцатеричным (0xddddd) и двоичным (0bddddd) литералам предложен новый синтаксис для задания восьмеричных чисел — »0oddddd», в которых для наглядности можно указывать подчёркивания (0o123_456). Поддержка нового синтаксиса также добавлена в функцию builtin oct ().

  • В движке регулярных выражений устранена утечка памяти.
  • Обновлены версии модулей, входящих в базовую поставку. В состав включён модуль ExtUtils: PL2Bat для преобразования perl-скриптов в bat-файлы для запуска в Windows.
  • Добавлена поддержка сборки Perl для системы 9front (форк Plan9). Улучшена поддержка Plan9 и macOS. Прекращена поддержка ОС Symbian.



Источник: http://www.opennet.ru/opennews/art.shtml? num=55188

© OpenNet