Выпуск 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 | Содержание | Интервью с Алексеем Капрановым →