Написать пост

Вышел Perl 5.38

Аватарка пользователя Дух айтишной эмо школы

Разработчики Perl анонсировали версию 5.38.0, в которую вошли 290 000 строк изменений в 1 500 файлах от 100 авторов.

Команда Perl опубликовала в своём блоге анонс стабильной версии 38.0 для Perl 5. Загрузить её можно через CPAN по этой ссылке.  

Разработчики Perl 5.38.0 работали в течение 12 месяцев для выпуска стабильной версии после Perl 5.36.0. В неё вошли 290 000 строк изменений в 1 500 файлах от 100 авторов.

Ожидается, что первый снапшот Perl v5.39 будет выпущен 20 июля 2023 года. Следующий стабильный релиз Perl должен появиться в первой половине 2024 года.

Вы когда-нибудь писали код на Perl?
Да, я и есть Perl-программист
Да, но я не работаю на Perl
Нет, никогда

Что изменилось в Perl 5.38:

  1. Доступен новый экспериментальный синтаксис для определения объектных классов, в котором данные на основе экземпляра сохраняются в «поле» переменных, которые ведут себя как лексические переменные.
  2. Поддерживается Unicode 15.0.
  3. Теперь все предупреждения об устаревании имеют свою собственную конкретную категорию устаревания, которую можно отключать индивидуально.
  4. Введен новый хэш под названием %{^HOOK}. Он нужен для простого создания обертки подпрограммы для некоторых ключевых слов Perl. Когда ключевое слово поддерживает какой-либо специальный хук, этот хук будет находиться в новом хэше. В этом выпуске поддерживаются два хука: requirebefore и requireafter. Они предоставляются для упрощения выполнения задач до и после оператора require.
  5. Добавлена новая переменная среды PERLRANDSEED, которая может использоваться для создания повторяемости в Perl-программе, использующей функцию rand без явного вызова функции srand() или использующей функцию srand() без аргументов.
  6. Можно назначать значение по умолчанию для параметра в подписи подпрограммы с использованием операторов //= или ||=, чтобы применять значения по умолчанию в случае, если вызывающая сторона предоставила значение undefined или false (соответственно), а не только если параметр совсем отсутствует.
  7. Запрещено пытаться покинуть блок defer или finally с помощью return или goto.
  8. Появились две новые функции API optimize_optree и finalize_optree для работы с фрагментами оптри, обеспечивая возможность вызова необходимых частей процесса генерации оптри, которые в противном случае могли бы не вызываться (например, при создании пользовательского LOGOP). 
  9. В Perl версии 5.36.0 были добавлены блоки “defer” и ключевое слово “finally”, которое также позволяет добавлять аналогичное поведение к синтаксису try/catch. Использование оператора goto разрешено, если они имеют постоянную метку назначения и эта метка находится внутри блока. 
  10. На платформах с расширением GNU LC_NAME теперь можно использовать в качестве параметра категории для “setlocale” в POSIX, чтобы установить и запросить свою локаль.

Полный список изменений доступен по этой ссылке.

Следите за новыми постами
Следите за новыми постами по любимым темам
230 открытий676 показов