Выпуск 9. Ноябрь 2013
← Обзор изменений Perl 5.19.5 | Содержание | Интервью с Marc Lehmann. Часть 1 →Обзор CPAN за октябрь 2013 г.
Рубрика с обзором интересных новинок CPAN за прошедший месяц.
Статистика
- Новых дистрибутивов — 236
- Новых выпусков — 939
Новые модули
ReturnValue Модуль
ReturnValue
, позволяющий возвращать структурированное значение об ошибке или успехе из функций. Может быть удобен, чтобы унифицировать подход к реализации функций, которым требуется возвращать сложный набор информации, включая информация об успехе, возвращаемых данных и прочей мета-информации о результатах. Вероятно это попытка сделать замену устаревшему и глючномуReturn::Value
.Devel::Confess Модуль
Devel::Confess
— это небольшое подспорье при отладке, заставляетdie
иwarn
делать более детальный выхлоп, включающий трассировку вызовов.$ perl -d:Confess -e 'sub foo { die }; foo' Died at -e line 1. main::foo() called at -e line 1
Linux::Socket::Accept4 Модуль является обёрткой к системному вызову
accept4(2)
, доступный в системах GNU/Linux.constant::override Оказалось, что константы обладают существенным недостатком — их значения нельзя изменить. Поэтому появился модуль, который позволяет переопределять или удалять константы.
DateTime::Moonpig Этот модуль является обёрткой к
DateTime
, но с более вменяемым интерфейсом. Так, методы, которые меняли объект при вызове (add_duration
,set_*
), теперь вызывают фатальную ошибку (защита от выстрела себе в ногу). Также переопределены операции сложения и вычитания, позволяя упростить вычисления длительности между датами и расчёта новых дат. Добавлено несколько новых методов.Crypt::DSA::GMP Новая реализация стандарта DSA для проверки цифровой подписи. Модуль реализован на чистом Perl и является обратно совместимым с модулем
Crypt::DSA
. В отличие отCrypt::DSA
, данный модуль при возможности следует стандарту FIPS 186-4 и поддерживает несколько новых методов хеширования.Redis::Fast Очередная реализация клиента для redis, созданная на базе C-клиента
hiredis
, совместимая с модулемRedis
. Утверждается, что в бенчмарках данный модуль на 50-300% быстрееRedis
.Router::Boom Matsuno Tokuhiro выпустил альтернативу своему собственному модулю
Router::Simple
. Алгоритм поиска маршрута данного модуля имеет сложность O(1), позволяя в бенчмарках на порядок обгонятьRouter::Simple
.mop Вышел пробный релиз модуля реализации Metaobject Protocol (MOP) для Perl 5, который имеет все шансы для попадания в базовый дистрибутив Perl.
CBOR::XS Perl-модуль с реализацией компактного бинарного формата данных CBOR для межсистемного обмена. Упор в стандарте сделан на простоту кодировщика/декодировщика, компактность сообщений и однозначное (де)кодирование различных типов данных без схем описаний.
Обновлённые модули
AnyEvent::Filesys::Notify 0.24 В новом релизе модуля для мониторинга изменений директорий и файлов произошёл переход с
Moose
наMoo
.XML::TreeBuilder 5.0 Вышел новый мажорный релиз модуля
XML::TreeBuilder
, в котором была добавлена поддержка XML-каталогов и раскрытия XML-сущностей (entities). Кроме того, были удалены излишние зависимости (для xt-тестов).Path::IsDev 1.000000 Первый стабильный релиз модуля для определения, является ли заданный путь каталогом, в котором находятся разрабатываемый исходный код. Изменения значительны, и вполне вероятно, что ранее использовавший этот модуль код может оказаться сломанным.
Text::Xslate 3.0.0 Новый мажорный выпуск шаблонизатора Text::Xslate включает несколько исправлений ошибок, в том числе проблему с использованием ключей хешей в многобайтовой кодировке в шаблонах.
HTML::Mason 1.52 Вышло обновление для стабильной ветки 1.x модуля
HTML::Mason
с исправлением ошибок. В частности исправлена проблема, связанная с рандомизацией ключей хеша в Perl 5.18+.Mouse 1.13 Исправлена сборка модуля на Perl 5.19.4.
Test::Mocha 0.21 Несмотря на название, это довольно интересный модуль для быстрого создания заглушек и мок-объектов при тестировании, похожий на Mockito из Java-мира. В новом релизе модуль полностью избавился от зависимости от
Moose
.Promises 0.04 В новом релизе модуля реализации Promises для Perl функция
when
объявлена устаревшей, и взамен предлагается использоватьcollect
. Связано это в первую очередь с конфликтом с существующим ключевым словомwhen
в Perl 5.10+.SNMP 5.0404 Непонятно, почему этот модуль до сих пор не удалили со CPAN, ведь актуальная версия 5.7.2 поставляется только в составе продукта Net-SNMP. Модуль на CPAN был обновлён с версии 5.0401 до 5.0404; судя по изменениям в коде был приложен патч для устранения старой уязвимости с переполнением буфера CVE-2008-2292.
Pinto 0.091 В новой версии модуля Pinto для управления репозиториями добавлена поддержка внешних https-репозиториев.
JSON::XS 3.01 Вышел новый мажорный релиз модуля JSON::XS. В новой версии появилась возможность (де)сериализовать Perl-объекты за счёт использования нестандартного расширения к JSON-синтаксису. Окончательно выкинуты функции
from_json
иto_json
(используйтеencode_json
иdecode_json
). Модуль получил зависимость отTypes::Serialiser
, который предоставляет булевы константыtrue
иfalse
.
← Обзор изменений Perl 5.19.5 | Содержание | Интервью с Marc Lehmann. Часть 1 →