Вышел Perl 5.30.0


Вышел Perl 5.30.0

Через год после релиза Perl 5.28.0 состоялся релиз Perl 5.30.0.

Важные изменения:

  • Добавлена поддержка Unicode версий 11, 12 и чернового варианта 12.1;
  • Верхний предел «n», задаваемый в квантификаторе регулярного выражения в форме «{m, n}», был удвоен до 65534;
  • Метасимволы в спецификациях значений свойств Unicode теперь частично поддерживаются;
  • Добавлена поддержка qr’N{name}’;
  • Теперь можно скомпилировать Perl, чтобы всегда использовать потокобезопасные операции локали;
  • Ограниченная длина переменной в сопоставлении с образцом регулярного выражения теперь поддерживается экспериментально;
  • Теперь используется более быстрый метод для конвертирования в UTF-8;
  • Тюркские локали UTF-8 теперь поддерживаются без проблем;
  • Исключено использование макроса opASSIGN из ядра;

Функционал, который был удалён, и несовместимые изменения:

  • Удалены модули: Math::BigInt::CalcEmu, arybase, Locale::Code, B::Debug;
  • Разделители шаблонов теперь должны быть графемами;
  • Разделители теперь должны быть графемами;
  • Некоторые ранее устаревшие способы использования неэкранированной левой скобки «{» в шаблонах регулярных выражений теперь запрещены;
  • Назначение ненулевого значения переменной $[ (индекс первого элемента массива) теперь фатально;
  • Ранее устаревшие sysread()/syswrite() при обработке :utf8 теперь фатальны.
  • my() в ложных условиях теперь запрещена;
  • Считается устаревшим $* (переменная использовалась для включения поиска многострочных соответствий и была удалена в Perl v5.10.0) и $# (переменная использовалась для форматирования выводимых чисел и была удалена в Perl v5.10.);
  • Считается устаревшим неквалифицированное использование dump();
  • Удалена File::Glob::glob();
  • pack() больше не может возвращать некорректный UTF-8;
  • Любой набор цифр в общем скрипте допустим в скрипте, выполняемом другим скриптом;
  • JSON::PP по умолчанию включает allow_nonref;

Устаревший функционал:

  • Теперь нельзя в коде XS использовать различные макросы, которые обрабатывают UTF-8;

Источник: linux.org.ru