Выпущен Perl 5.24.0


Несмотря на то, что Рикардо Сигнес ушел с поста Pumpking Perl 5, ответственного за циклы выпуска Perl, ему все же удалось выпустить последний стабильный выпуск Perl, 5.24, вместе с выпуском разработки, 5.25, который в течение следующего года превратится в 5.26.0.

Убедитесь, что вы поймали интервью GeekUni с Рикардо для получения более подробной информации о деятельности Pumpking.

Версия 5.24.0 содержала примерно 360 000 строк изменений с момента последней версии 5.22 (за исключением изменений в версиях 5.22.1 и 5.22.2 для обслуживания), а Perl 5.22 содержал примерно 590 000 строк изменений по сравнению со своим предшественником, и все это за 23-месячный период. Таким образом, за последние два года было проделано много работы в этом важном выпуске. Согласно perlhist, первый релиз Perl состоялся 18 декабря 1987 года, что сделало следующий 2017 год знаковым для Perl с его 30-летием. 

Perl-один из немногих проектов, которые имеют такую прочную основу, которая не только поддерживала его жизнь и работу в течение многих лет, но в то же время позволяла ему развиваться и омолаживаться, не только идти в ногу с последними достижениями отрасли, но и задавать темп, по-прежнему продвигая инновации вперед.

Примером этого является раннее принятие Unicode 8.0, только что выпущенного в июне прошлого года. Perl 5.24 также предвещает дополнительные функции, ориентированные на работу с текстом, такие как введение нового класса \b{lb}, который соответствует разрывам строк Unicode, функции, которая до сих пор подключалась через модуль, но теперь нашла свой путь в ядро.

Новая версия включает в себя заметные устаревания и удаления:

Вложенные объявления теперь запрещены, например, они теперь фатальны:

мой ($x, мой($y));

наш (мой $x);

Класс символов /\C/ был удален, и дескрипторы sysread (), syswrite(), recv() и send() on :utf8 устарели.

Эти изменения могут не вызвать суеты, но имейте в виду, что функция autoderef, с помощью которой вы могли бы написать, например, ключи($ref) вместо ключей(%$ref), полезная для вызова функций push, pop, shift и т. Д. В скалярном аргументе, Могла бы найти более широкое применение, поэтому ее устаревание может иметь некоторые волновые эффекты.

Но это удаление, вероятно, связано с тем, что постфиксное разыменование больше не считается экспериментальным и нашло свой путь в ядро, что делает autoderef неуместным.

Некоторые реализации кишок Perl были переработаны, но были приняты меры, чтобы не повлиять на их общедоступный интерфейс, в то время как многие основные модули также были обновлены до их новейшей версии, например Win32 с версии 0.51 до 0.52, Win32API::File с 0.1202 до 0.1203, utf8 с версии 1.17 до 1.19 и сокет с версии 2.018 до 2.020_03.

Были исправлены некоторые распространенные уязвимости и уязвимости (CVE), такие как «доступ вне границ при обработке пути Win32», CVE-2015-8608 и «потеря порчи в canonpath», CVE-2015-8607.

Другие изменения касаются документации и конфигураций, специфичных для конкретной платформы. Производительность привлекла много внимания в последние пару лет, когда RPerl, урезанная версия Perl, внесла огромные улучшения, но, к сожалению, RPerl не связан с официальным Perl.

Тем не менее, официальный Perl также улучшил производительность за счет ускорения некоторых конструкций; например, на платформах, поддерживающих реализацию libc memchr (), которая хорошо использует базовую аппаратную поддержку. Шаблоны, которые включают фиксированные подстроки, теперь часто будут намного быстрее.  Арифметические операции, такие как сложение, вычитание и умножение, также стали быстрее, в то время как само ядро при сравнительном анализе привело к +20% по сравнению с Python в этом конкретном эксперименте.   


Добавить комментарий