Выпуск 31. Сентябрь 2015

Прецизионные бенчмарки Perl | Содержание | Интервью с Алексеем Капрановым

Обзор CPAN за август 2015 г.

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

Статистика

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

Новые модули

HTTP::PublicKeyPins

Модуль HTTP::PublicKeyPins позволяет генерировать специальные HTTP-заголовки для привязки публичного ключа сервера в соответствии с RFC 7469. Это позволяет веб-браузерам запоминать на некоторое время сертификат веб-ресурса и противостоять возможным MITM-атакам (например, в случае компрометации центра сертификации).

C::Blocks

С помощью C::Blocks становится возможным делать вставки C-кода внутри Perl-программ. В отличии от схожих по функционалу модулей, как например, Inline::C, в C::Blocks возможно использовать также Perl-переменные внутри C-кода:

# расчёт суммы целых положительных чисел от 1 до 100
my $N = 100;
my $result;
cblock {
    int i;
    int result = 0;
    int N = SvIV($N); /* скаляр $N */
    for (i = 1; i < N; i++) result += i;
    sv_setiv($result, result); /* скаляр $result */
}
print "Сумма чисел от 1 до $N = $result\n";

Crypt::HSXKPasswd

Модуль содержит утилиту hsxkpasswd, которая позволяет создавать надёжные пароли, устойчивые к атакам грубым перебором и по словарю, но при этом их достаточно просто запомнить. Идея модуля возникла по мотивам известного комикса XKCD №936 и online-сервиса grc по оценке сложности пароля.

# Какие ассоциации вызывает у вас следующий пароль?
$ hsxkpasswd
==89&drink&PATTERN&holland&17==

Menlo

Menlo — это кодовое имя для CPAN-клиента cpanm версии 2.0. Основная предпосылка для создания menlo — упростить дальнейшее развитие cpanm с возможностью создания плагинов, хуков, скриптового API. Всё это было раньше затрудненно из-за способа реализации cpanm: огромный класс и зависимые модули, упакованные в один исполняемый файл. На данный момент Menlo — это отдельная ветка в git-репозитории cpanm и пока находится в стадии разработки.

HTTP::Headers::Fast::XS

HTTP::Headers::Fast::XS — это XS-реализация модуля HTTP::Headers::Fast. Судя по бенчмарку, модуль в несколько раз быстрее HTTP::Headers/HTTP::Headers::Fast.

PDLA

PDLA — это форк известного модуля PDL — языка данных Perl для научных расчётов и работы с многомерными массивами данных. Акроним PDLA расшифровывается как PDL Agile, и основная цель форка ускорить и упростить разработку PDL. Текущий PDL будет поддерживаться, все исправления в PDL будут портироваться в PDLA. Отказ от использования имени PDL3 в пользу DPLA был мотивирован отрицательным примером Perl 5 с Perl 6.

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

DBI 1.634

Новый релиз универсального интерфейса к базам данным DBI содержит несколько небольших исправлений и улучшений. Кроме того, теперь каждый модуль дистрибутива содержит прагму use strict, и хотя это изменение достаточно тривиальное, есть вероятность того, что это сломает чей-то работающий код. Поэтому следует внимательно протестировать релиз перед отправкой в рабочее окружение.

Devel::NYTProf 6.02

Обновлён мощный профайлер Perl-кода Devel::NYTProf. В новой версии появилась возможность поиска по имени функции на генерируемых страницах «огненных графиков» (Flame Graph). Также обновлена зависимость с JSON::Any (модуль устарел и не поддерживается) на JSON::MaybeXS.

ExtUtils::MakeMaker 7.06

После 29 пробных релизов вышел новый стабильный релиз модуля ExtUtils::MakeMaker для генерации мейк-файлов. Выпуск содержит множество исправлений ошибок, а также новые возможности, например, PREREQS теперь поддерживает указание диапазона версий. Переработана поддержка XS-модулей, появилась опция XSMULTI=>1, которая позволяет помещать несколько xs-файлов в одном каталоге в lib.

Mouse 2.4.5

Новые версии Mouse содержит важные исправления для работы модуля на Perl ≥ 5.22.0 с поддержкой тредов, также исправлена сборка модуля на старых версиях Perl ≤ 5.14. Теперь новый майнтейнер — Syohei Yoshida, который подхватил сопровождение модуля у Fuji Goro.

Text::Xslate 3.3.7

Обновлённая версия шаблонизатора Text::Xslate также была выпущена новым майнтейнером: Syohei Yoshida. Исправлена работа на Perl ≥ 5.22.0 и возвращена возможность сборки на Perl 5.8.8. Исправлена ошибка в работе директивы INCLUDE внутри фильтров.

Git::CPAN::Patch 2.2.0

Вышла новая версия утилиты git-cpan, которая позволяет импортировать любой CPAN-модуль в локальный git-репозиторий с полной историей релизов и одной командой отправлять патчи в CPAN RT-трекер. В новой версии появилась возможность интерактивного вызова send-email (например, чтобы ввести smtp-пароль), а также сохранение имени модуля в конфиге git.

Feersum 1.403

Обновлён PSGI-совместимый веб-сервер Feersum. В новой версии появилась поддержка метода OPTIONS.

Mail::IMAPClient 3.37

После длительного перерыва вышло обновление популярного IMAP-клиента Mail::IMAPClient. Исправлено множество ошибок, долгое время висевших в RT-трекере, включая исправление ошибки аутентификации для пользователей с обратным слешем в имени.

Perl::Tidy 20150815

Perl::Tidy — модуль для разбора и форматирование исходного кода на Perl. В новой версии исправлено множество ошибок. Появилась новая опция -utf8, которая интерпретирует входной и выходной поток как текст в кодировке UTF-8, что, в частности, исправляет проблему с форматированием юникодных строк в исходном коде, позволяя правильно вычислять их ширину.

Pod::Markdown 3.002

Вышла новая мажорная версия модуля Pod::Markdown для конвертирования POD-документации в формат Markdown. Есть определённые изменения в API, исправлены проблема с кодированием символов & и < в ситуациях, когда они не должны трактоваться как HTML-разметка. В состав дистрибутива теперь входит модуль Pod::Perldoc::ToMarkdown, что позволяет отображать POD-документацию в формате Markdown с помощью команды perldoc:

$ perldoc -o Markdown Plack::Handler

App::Sqitch 0.9993

Утилита sqitch — это полноценная система для управления изменениями в базе данных, позволяющая проводить контролируемые обновления и откаты схемы и данных, независимая от используемой СУБД, ОРМ и фреймворков. В новой версии множество исправлений и улучшений, также появилась концепция «каталога переделок» (reworked directory), когда при большом числе переделок становится тяжело визуально (или в IDE) отслеживать другие скрипты изменений, теперь можно перенести все переделки в отдельный каталог.

Image::ExifTool 10.00

Вышел новый мажорный релиз модуля Image::ExifTool для чтения и записи мета-информации для множества форматов файлов, создаваемых цифровыми камерами различных производителей. Новый релиз содержит информацию о новых типах камер и объективов. Версия 10.00 отмечена как текущая стабильная версия.

HTML::Shakan 2.02

Обновлён модуль генератора и валидатора HTML-форм HTML::Shakan. В новой версии исправлена XSS-уязвимость в формировании виджета textarea.

Win32 0.52

Вышел новый релиз модуля Win32 для доступа к Win32 API на платформе Windows. В новой версии реализована базовая поддержка Windows 10.

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


Прецизионные бенчмарки Perl | Содержание | Интервью с Алексеем Капрановым
Нас уже 1393. Больше подписчиков — лучше выпуски!

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