Выпуск 13. Март 2014
← Сигнатура функции в Perl 5.20 | Содержание | Интервью с Брено де Оливейра (Breno G. de Oliveira) →Обзор CPAN за февраль 2014 г.
Рубрика с обзором интересных новинок CPAN за прошедший месяц.
В этом месяце замечена активность по исправлению некоторых базовых модулей для корректной работы на платформе Android (IO::Compress
, DateTime
, Module::Build
и некоторые другие). Новый релиз Perl 5.19.9 для разработчиков включил поддержку нативных сигнатур функций. Известный модуль CGI
ищет нового мейнтейнера.
Статистика
- Новых дистрибутивов — 200
- Новых выпусков — 855
Новые модули
Модуль warnings::MaybeFatal
позволяет сделать предупреждения фатальными только на этапе компиляции. Это может быть полезно, если требуется поймать возможные ошибки при запуске, но не прерывать работу программы, когда она уже запущена.
use strict;
use warnings qw(all);
use warnings::MaybeFatal;
# Неинициализированное значение при конкатенации строк
# Предупреждение во время исполнения, поэтому нефатальное
print undef . "string";
# Бесполезное использование константы в пустом контексте
# Предупреждение во время компиляции, поэтому фатальное
42;
В полку валидаторов структур прибавление — модуль Data::DynamicValidator
позволяет выполнять сложные проверки структур данных. Благодаря использованию динамических правил, возможен обход всех листьев ветки структуры или только части, удовлетворяющих определённым условиям.
Появился модуль для обработки и конвертирования языка разметки Nimble в html. Структурированный язык разметки Nimble в чём-то схож с Wiki и Markdown, но имеет ряд интересных возможностей. Например, макросы для создания сложных повторяющихся фрагментов, и метаданные документа, доступные как хеш с набором атрибутов на выходе парсера.
По аналогии с экзоскелетом, Exobrain
, вероятно, означает внешний мозг. Данный проект является свободным аналогом сервиса IFTTT, позволяя автоматически реагировать на различные события (например, слать твиты друзьям, которые живут в городе, в который вы сейчас прибыли, используя данные Foursquare и Twitter).
Модуль Localizer
— это новый фреймворк для создания локализации, отличающийся простотой интерфейса и реализации.
Raisin
— это микро веб-фреймворк, ориентированный на создание RESTful API сервисов. По синтаксису DSL он напоминает фреймворк Grape из мира Ruby.
Обновлённые модули
- XML::LibXML 2.0110
Небольшое косметическое изменение появилось в дистрибутиве XML-LibXML
— все модули в его составе обзавелись прагмами use strict
+ use warnings
. Лучше поздно, чем никогда.
- Pod::Markdown 2.000
Вышел новый мажорный релиз модуля Pod::Markdown
для конвертирования документов формата POD в Markdown. В новой версии произошёл переход на Pod::Simple
вместо Pod::Parser
. Появились некоторые несовместимые изменения, в частности, встречаемые теги E<>
теперь просто конвертируются в соответствующие UTF-8 символы, символы табуляции заменяются пробелами.
- Pod::Parser 1.62
Документация новой версии включает упоминание о том, что модуль является устаревшим и рекомендует использовать Pod::Simple
.
- Pod::Perldoc 3.23
В новом perldoc был восстановлен флаг -U
, который позволяет не сбрасывать привилегии программы в случае запуска от root
. Опасно ли не сбрасывать привилегии программе, которая только читает код, вопрос отдельный, но иметь такую возможность иногда требуется.
- Mail::SpamAssassin 3.4.0
Почти три года прошло с последнего стабильного релиза антиспам системы SpamAssassin. В новой версии появилась нативная поддержка IPv6, улучшена технология блокировки по DNS-именам и добавлена поддержка работы Байесовых фильтров с использованием бэкенда на Redis.
- Elasticsearch 1.0.4
Обновился официальный клиент системы поиска и анализа Elasticsearch
. Новая мажорная версия поддерживает новое API сервиса версии 1.0 и использует его по умолчанию. Для использования старой версии API 0.90.x необходимо явно указывать это в параметрах подключения.
- Catalyst 5.90060
Новый стабильный релиз веб-фреймворка Catalyst содержит ряд заметных изменений. Прежде всего это изменение в способе передаче данных ответа Plack-серверу. Раньше для этого всегда использовался потоковый интерфейс, теперь же, если тело ответа это простой скаляр, объект или файловый дескриптор, то он передаётся в Plack-сервер как есть. В некоторых случаях это может повысить скорость отдачи данных, корректно заработает chunked encoding, если сервер её поддерживает. Начата миграция части кода Catalyst на использование аналогичного по функционалу Plack Middleware.
- Module::Runtime 0.014
В новом релизе Module::Runtime
исправлено несколько ошибок. Одно из исправлений меняет логику работы use_module()
, передавая значение version для проверки версии модуля, даже если оно имеет значение undef
. Некоторые существующие системы могут быть завязаны на старом поведении, что неизбежно приведёт к их поломке при обновлении данного модуля. В частности, так оказался сломан Moose
.
- Capture::Tiny 0.24
Данный релиз исправляет ошибку безопасности при работе с временными файлами. При открытии временного файла на запись существовала возможность переписать существующий файл пользователя при использовании атаки symlink race.
- Moose 2.1204
Moose
был исправлен в связи с изменением поведения нового Module::Runtime
.
- mop 0.03
Очередной экспериментальный релиз реализации метаобъектного протокола для базового Perl. В новом релизе присутствует множество внутренних улучшений. Также включены конфигурационные файлы для корректной подсветки синтаксиса в редакторах vim, emacs и textmate.
- perlsecret 1.008
Новый релиз документации по секретным операторам в Perl содержит два новых оператора: Эббот и Костелло и Наклонившийся Эббот и Костелло.
← Сигнатура функции в Perl 5.20 | Содержание | Интервью с Брено де Оливейра (Breno G. de Oliveira) →