Выпуск 25. Март 2015

Модули в Perl 6 | Содержание | Интервью с Владимиром Леттиевым

Обзор CPAN за февраль 2015 г.

Рубрика с обзором интересных новинок CPAN за прошедший месяц.

Статистика

  • Новых дистрибутивов — 202
  • Новых выпусков — 815

Новые модули

Crypt::U2F::Server

Модуль Crypt::U2F::Server является обёрткой к C-библиотеке libu2f-server. Модуль реализует серверную часть протокола U2F, предназначенного для универсальной реализации двухфакторной аутентификации, когда пользователь помимо ввода пароля в браузере использует ещё физическое устройство (например, USB-донгл), которое доступно браузеру через специальное Javascript API.

Plack::Middleware::Antibot

Antibot — это набор фильтров для PSGI-приложений, которые позволяют бороться с отправкой форм роботами:

  • FakeField — проверка, что было отправлено скрытое поле;
  • Static — проверка, что был загружен статический файл (например, css-стили) до отправки формы;
  • TextCapcha — проверка, что была правильно решена текстовая капча;
  • TooFast — проверка, что форма была отправлена очень быстро;
  • TooSlow — проверка, что форма была отправлена через большой интервал времени.

Inline::Perl6

Inline::Perl6, как следует из названия, позволяет выполнять из Perl 5 код на языке Perl 6, а также загружать модули и выполнять методы объектов Perl 6. Для работы модуля требуется установить Rakudo с включённым бекендом MoarVM.

Promises6

Promises6 — довольно любопытная реализация спецификации Promises/A+, предоставляющая синтаксис обещаний в соответствии со спецификацией ECMAScript 6. Модуль требует для работы Perl не ниже 5.20.0.

AnyEvent::TLS::SNI

AnyEvent::TLS::SNI — это модуль, который добавляет поддержку TLS-расширения SNI в AnyEvent::TLS. Указав параметр host_name, можно задать имя сервера, к которому будет производиться подключение. Поддержка SNI работает только для стороны клиента.

use AnyEvent::HTTP;
use AnyEvent::TLS::SNI;

AnyEvent::HTTP::http_get
    'https://www.goggle.com/',
    tls_ctx => {
        verify => 1,
        verify_peername => 'https',
        host_name => 'www.google.com'
    },
    ...

Обновлённые модули

Gtk2 1.2495

Обновление Perl-интерфейса к библиотеке Gtk2 вышло в конце января 2015, но только в феврале вендоры обратили внимание, что исправленная ошибка с некорректным управлением памятью в Gtk2::Gdk::Display::list_devices может потенциально быть использована для выполнения произвольного кода. Всем пользователям рекомендуется обновиться.

perl 5.20.2

Вышел корректирующий релиз стабильной версии Perl 5.20.2.

  • Обновлён модуль Data::Dumper, в котором исправлена проблема CVE-2014-4330, приводящая к рекурсии при дампе глубоко вложенных структур данных.
  • Исправлен крах в PerlIO::Sacalar при задании файловой позиции за пределами скаляра.
  • Появился новый документ perlunicook, который содержит исчерпывающую информацию о работе с Юникодом в Perl.
  • Восстановлена работоспособность сборки на платформах IRIX и Tru64.
  • Исправлены несколько ошибок assert в отладочных сборках Perl.
  • Исправлен крах при вызове gmtime() с параметром NaN.
  • Исправлено переполнение буфера и крах при компиляции определённых шаблонов в регулярных выражениях.
  • Устранена утечка памяти в некоторых регулярных выражениях, появившаяся в Perl 5.20.1.

Role::Tiny 2.000000

Вышел второй мажорный релиз модуля для создания классов-ролей Role::Tiny. Основное несовместимое изменение — теперь Role::Tiny не делает предупреждения фатальными для классов-ролей, созданных с его помощью. Прагмы strict и warnings по-прежнему включены.

strictures 2.000000

Вслед за Roly::Tiny новая версия прагмы strictures отказывается от полной фатализации предупреждений. Следующие виды предупреждений больше не вызывают аварийное завершение работы:

  • exec
  • recursion
  • internal
  • malloc
  • newline
  • experimental
  • deprecated
  • portable

Mojolicious 6.0

Выпущен шестой мажорный релиз веб-фреймворка Mojolicious с кодовым названием «Clinking Beer Mugs» (звенящие пивные кружки). Вопреки традиции, разработчики не стали ждать мая (последние мажорные релизы выпускались с промежутком около одного года). Удалён внушительный список устаревших методов, переименовано множество других методов. Будьте внимательны при обновлении.

Plack 1.0034

В новом релизе «суперклея» для веб-фреймворков Plack исправлена проблема в безопасности при использовании Plack::App::File на платформе Win32. Дело в том, что в некоторых версиях Windows возможно использование больше двух точек в фрагменте пути для перехода в вышестоящие каталоги.

Compress::Bzip2 2.22

Вышел новый релиз обёртки к библиотеке сжатия Bzip2. Новая версия содержит исправление крупной утечки памяти, возникавшей при декомпрессии.

Perl::Critic 1.124

Новый релиз модуля для проверки исходного Perl-кода на соответствие принятым стандартам Perl::Critic содержит обновление для политики ProhibitUnusedPrivateSubroutines (запрет на неиспользуемые приватные подпрограммы), в которой появилась возможность задать исключение для некоторых файлов с помощью опции skip_when_using, если они используют определённый модуль. Это может быть полезно для классов-ролей, где определённые приватные методы могут использоваться в классах, использующих эту роль.

Кроме того, политики RequireUseStrict и RequireUseWarnings теперь учитывают, что Moose, Moo, Mouse, Dancer, Mojolicious и некоторые другие модули автоматически включают прагмы strict и warnings.

Владимир Леттиев


Модули в Perl 6 | Содержание | Интервью с Владимиром Леттиевым
Нас уже 1393. Больше подписчиков — лучше выпуски!

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