Выпуск 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
Нас уже 1393. Больше подписчиков — лучше выпуски!

Комментарии к статье