Состоялся релиз языка программирования Perl 5.28
Новости
Среди ключевых изменений — поддержка Unicode 10.0, новые методы хеширования ключей и обновление модулей в базовой поставке.
927 открытий940 показов
Спустя 13 месяцев разработки вышла стабильная ветка языка программирования Perl 5.28. Для создания нового выпуска разработчики изменили около 730 тысяч строк кода в 2200 файлах.
Ключевые изменения
- Поддержка Unicode 10.0.
- Дополнительные bitwise-операторы для побитовой работы со строками
&. |. ^. ~.и числами& | ^ ~утратили экспериментальный статус. Поскольку новые числовые операторы явно привязываются к контексту, они доступны только при указании флагаuse feature bitwiseилиuse v5.28, а также при запуске интерпретатора с опцией-E. - В режиме редактирования файлов
perl -iрезультат записывается в новый файл, который заменяет исходный только после успешного завершения записи. Ранее перед сохранением входной файл переименовывался или удалялся, что иногда приводило к потере данных. - Экспериментальные средства в регулярных выражениях помогают находить смешивания классов Unicode-символов в строке. Чтобы ограничить области значений одним типом символов, можно использовать выражения вида
qr/(*script_run: \d+ \b )/xилиqr/(*sr: \b \w+ \b )/x. - Постоянные лексические массивы и хеши можно инициализировать с помощью выражения
state @a = qw(x y z). - По умолчанию используется метод хеширования SBOX для ключей до 24 символов, для остальных — метод StadtX в 64-разрядных сборках и Zaphod32 в 32-разрядных. В общем виде предлагается четыре базовые реализации хешей: Siphash 2-4, Siphash 1-3, Zaphod32 и StadtX, а также SBOX32 для коротких строк.
- Выражения с несколькими операциями соединения строк, операции
sprintf, циклыfor(), шаблоны регулярных выражений со свойствами с Unicode-символами\p{...}и блоки require для уже ранее загруженных модулей выполняются быстрее. - Повышена эффективность работы функций
ref()в булевом иkeys()в скалярном контекстах, добавлены специальные оптимизации для операций сравнения результатаindex()с-1, снижены накладные расходы при выполнении модуляFile::Glob, ускорено выполнение блоковrequireдля ранее загруженных модулей, оптимизирован код разбора регулярных выражений и обработки строк UTF-8. - Обновлены версии модулей в базовой поставке.
Предыдущие версии и будущее
Поддержка версии Perl 5.24 прекращена, и теперь разработчики взялись за экспериментальную ветку 5.29, которая поможет выпустить стабильный релиз Perl 5.30 в 2019 году.
В апреле 2018 года составители рейтинга TIOBE назвали язык непопулярным из-за неуверенности программистов в его будущем развитии.
927 открытий940 показов

