Perl 5.18

LinuxDoc.Ru,
После года разработки представлена новая стабильная ветка языка программирования - Perl 5.18. В рамках подготовки нового выпуска было изменено около 400 тыс. строк кода, изменения затронули 2100 файлов, в разработке приняли участие 113 разработчиков.

Ветка 5.18 выпущена в соответствии с утверждённым три года назад фиксированным графиком разработки, подразумевающим выпуск новых стабильных веток раз в год и корректирующих релизов - раз в три месяца. 20 июня планируется выпустить первый корректирующий релиз Perl 5.18.1, в котором будут исправлены наиболее значительные ошибки, выявленные в процессе внедрения Perl 5.18.0. Одновременно с выходом Perl 5.18 прекращена поддержки ветки 5.14, для которой в будущем могут быть выпущены обновления только в случае выявления критических проблем с безопасностью. Также начался процесс разработки экспериментальной ветки 5.19, на базе которой в мае 2014 года будет сформирован стабильный релиз Perl 5.20.

Ключевые улучшения, добавленные в Perl 5.18:


Переработанная реализация хэшей. Одним из самых заметных изменений является обеспечение рандомизации в используемых хэш-функциях, что положительно влияет на безопасность (например, защитит от DoS-атак через манипуляции с коллизиями хэшей), но приводит к непредсказуемому порядку вывода элементов функциями keys(), values() и each(). Данное изменение может повлиять на работу приложений, пользующихся недокументированным свойством сохранения порядка записей в разных хэшах (в официальной документации хэши позиционируется как неупорядоченные структуры). Отныне порядок следования идентичных записей в разных хэшах и в одних и тех же хэшах при разных запусках скрипта будут отличаться. Уровень рандомизации может быть настроен через переменную окружения PERL_PERTURB_KEYS (при присвоении значения 0 рандомизация ключей отключается и поведение perl становится как в прошлых выпусках).

Из других изменений можно отметить реализацию возможности использования альтернативных хэш-функций. В качестве алгоритма хэширования по умолчанию задействован SIPHASH. Кроме того, в состав включено несколько альтернативных алгоритмов, но они рекомендуются пока только для экспериментов, так как содержат определённые проблемы с безопасностью;


Новый механизм для активации экспериментальных возможностей и новая категория предупреждений "experimental", управляющая выводом уведомлений для тестовой функциональности. Например, для включения новых экспериментальных возможностей и скрытия связанных с ними предупреждений следует указывать директивы:

no warnings "experimental::feature_name";
use feature "feature_name";


Поддержка экспериментального расширения в системе регулярных выражений, позволяющего осуществлять сопоставления с использованием расширенных правил пересечения, исключения и объединения множеств символов. Например, '[A-Z - W]' - символы от A до Z за исключением W. Более сложный пример формирования множества символов: '[p{Latin} & p{L&} - A-Z]'. Функциональность совпадает по возможностям с модулем Unicode::Regex::Set;

Экспериментальная поддержка лексических подпрограмм ("lexical_subs"), позволяющая определять при помощи выражения "state sub" подпрограммы, видимые только в области лексической видимости блока в котором подпрограмма была создана. В отличие от "my sub" процедуры "state sub" работают заметно быстрее, так как они не создаются при каждом входе в блок и совместно используются между вызовами других подпрограмм;

Возможность использования в операторах next, last и redo динамически вычисляемых меток, формируемых в процессе выполнения скрипта на основе произвольного выражения. Ранее любые отличные от константы аргументы next, last и redo воспринимались как пустая строка;

В непереопределяемое пространство имён "CORE::" включены функции defined, delete, exists, glob, pos, protoytpe, scalar, split, study и undef;


Поддержка Unicode 6.2 и реализация возможности определения собственных имён символов для использования в N{...}, charnames::vianame() и т.п. При задании имён могут быть задействованы знаки из диапазона Unicode, т.е. имена символов теперь можно определить не только на английском языке. Использование неизвестных имён символов в N{...} теперь приводит к ошибке, вместо предупреждения. Указание $/ = N для функции readline() теперь приводит к чтению N-символов, а не N-байт. Проведены заметные оптимизации скорости работы регулярных выражений в которых присутствуют Unicode символы, например, скорость выполнения операции X увеличилась на 35-40%;



Интеграция новых контрольных точек для использования в системе динамической отладки DTrace: op-entry, loading-file, loaded-file;

Добавлена новая служебная переменная ${^LAST_FH} для доступа к последнему прочитанному файловому дескриптору;
Вертикальная табуляция (cK) теперь отнесена к множеству символов пробела (s).
Обновлены версии большого числа входящих в базовую поставку модулей;

Объявлены устаревшими модули: encoding, Archive::Extract,
B::Lint*,
Devel::InnerPackage,
Log::Message*, Module::Pluggable*,
Object::Accessor,
Pod::LaTeX,
Term::UI*. Прекращена поддержка напрямую вызываемых из системной библиотеки функций для проверки класса символов, например, is_uni_alnum и т.п.; Прекращается поддержка платформ Windows CE, z/OS, DG/UX и NeXT;

В документацию по использованию модуля Storable добавлен пункт, предупреждающий о недопустимости десериализации данных, полученных из недоверительных внешних источников, так как в процессе подобной обработки можно организовать выполнение perl-кода и загрузку модулей;
linux

Программы для Linux

. Perl 5.18 Perl 5.18
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
Если Вы обнаружите в опубликованных документах ошибки, опечатки, несоответствия и неточности - сообщите о них.
>>> После года разработки и 29 экспериментальных версий представлен стабильный релиз открытой реализации Win32 API - Wine 6.0, который вобрал в себя более 8300 изменений. Из ключевых достижений новой версии отмечается поставка базовых модулей Wine в формате PE, бэкенд на основе графического API Vulkan для WineD3D, новая реализация текстовой консоли, поддержка DirectShow и фреймворка Media Foundation.
>>> Состоялся релиз Alpine Linux 3.13, минималистичного дистрибутива, построенного на базе системной библиотеки Musl и набора утилит BusyBox. Дистрибутив отличается повышенными требованиями к обеспечению безопасности и собран с защитой SSP (Stack Smashing Protection). В качестве системы инициализации используется OpenRC, для управления пакетами применяется собственный пакетный менеджер apk. Alpine применяется для формирования официальных образов контейнеров Docker. Загрузочные iso-образы (x86_64, x86, armhf, aarch64, armv7, ppc64le, s390x, mips64) подготовлены в пяти вариантах: стандартном (130 МБ), с ядром без патчей (150 МБ), расширенном (570 МБ) и для виртуальных машин (40 МБ).
>>> Описание приложения MSN Погода
MSN Погода – это легкое и удобное мобильное приложение для владельцев Android-смартфонов, которое позволяет получить прогноз погоды на ближайшие 5-10 дней, независимо от того, где именно находится человек. Утилита информирует об изменениях температуры воздуха, силе ветра, уровне влажности, возможных осадках и т. п.
>>> Началась подготовка к предстоящей заморозке пакетной базы выпуска Debian 11 "Bullseye", релиз которого ожидается летом 2021 года. Первая стадия заморозки пакетной базы намечена на 12 января 2021 года. На данном этапе будет прекращено выполнение "transitions" (обновление пакетов, требующее корректировки зависимостей у других пакетов, которое приводит к временному удалению пакетов из Testing), а также прекращено обновление пакетов, необходимых для сборки (build-essential).


Редакция портала:

Добро пожаловать на сайт, посвященный документации к ОС Linux, ее переводу и распространению. Мы надеемся, что Вы найдете тут всю необходимую информацию. Здесь представлены три основных вида документации на русском языке: руководства (man-pages), HOWTO и mini-HOWTO. В скором будущем возможно появление и других видов документации.
Авторские права на представленные документы принадлежат авторам перевода и распространяются в соответствии со Стандартной Общественной Лицензией, если в документе не указано обратное.
Если Вы обнаружите в опубликованных документах ошибки, опечатки, несоответствия и неточности - сообщите о них.


Живая лента

Киберпанк уже наступил

STFW.Ru: Президент Microsoft Брэд Смит сказал о наличии свидетельств о том, что российская разведка причастна к массовой кибератаке на системы американских ведомств федерального правительства и ...

NAVI потеряла первое место в рейтинге CS:GO, в России проводят интенсив по Dota 2

STFW.Ru: В самом разгаре турнир IEM Katowice 2021 по CS:GO. Этот ивент является знаковым в календаре всех команд этой кибердисциплине, поскольку на турнире разыграют призовой фонд в размере одного ...

Компания Microsoft запатентовала способ цифровой реинкарнации любого человека

STFW.Ru: По документации, которая доступна на ресурсе Ведомства по патентам и товарным знакам США (USPTO), трудно судить, на какой стадии находится разработка. Но описанный функционал системы ...

02:11 Что может случиться с ноутбуком и как решить проблему


03:06 В Chrome предложен новый интерфейс PDF-просмотрщика и добавлена поддержка AVIF


03:06 Релиз дистрибутива Linux Mint 20


03:06 Chrome, Firefox и Safari ограничат время жизни TLS-сертификатов 13 месяцами


12:03 Второй выпуск Glimpse, форка графического редактора GIMP


12:03 Опубликован web-браузер Min 1.13


12:03 Выпуск дистрибутива Zorin OS 15.2


12:03 Объявлено об объединении проектов FreeNAS и TrueNAS


06:01 Из Kali Linux уберут права root по умолчанию


06:01 Tails 4.2.2 - экстренный релиз


06:01 РЖД закупит 15 000 компьютеров с российскими процессорами «Эльбрус»


06:01 Минкомсвязи утвердило требования к российским DNS


08:11 Выпуск Debian 9.6