Выпуск 34. Декабрь 2015
← Использование Rust из Perl | Содержание | Интервью с Дмитрием Шаматриным →Обзор CPAN за ноябрь 2015 г.
Рубрика с обзором интересных новинок CPAN за прошедший месяц.
Статистика
- Новых дистрибутивов — 154
- Новых выпусков — 778
Новые модули
HTTP::Cookies::PhantomJS
HTTP::Cookies::PhantomJS
— расширение для HTTP::Cookies
, которое позволяет использовать файлы с куками формата, которые применяются в веб-скрапере PhantomJS. Это бывает полезно, когда куки устанавливаются в результате работы js-кода на стороне клиента при загрузке ресурса в PhantomJS, а последующие ресурсы можно загрузить, используя полученные куки, с помощью более легковесного веб-клиента, например, LWP::UserAgent
.
GCCJIT
GCCJIT
— это обвязка к библиотеке libgccjit, которая позволяет на лету формировать и компилировать код в машинные инструкции.
Locale::TextDomain::OO::Extract::Xslate
Locale::TextDomain::OO::Extract::Xslate
позволяет извлекать строки для перевода из шаблонов Text::Xslate
для последующего использования в Locale::TextDomain::OO
.
DOM::Tiny
DOM::Tiny
— это минималистичный HTML/XML DOM-парсер с поддержкой CSS-селекторов.
my $dom = DOM::Tiny->new(<<EOF);
<div>
<p id="a">Test</p>
<p id="b">123</p>
</div>
EOF
say $dom->at('#b')->text; # 123
$dom->find('div p')->last->append('<p id="c">456</p>');
say $dom->at('#c')->text; # 456
App::remarkpl
App::remarkpl
— это утилита, позволяющая запустить локальный веб-сервер на основе Mojolicious для отображения презентаций на основе remark. В качестве параметра указывается путь к файлу с презентации в формате Markdown, после запуска презентация может быть открыта в браузере по адресу localhost:3000
Devel::Trepan::Deparse
Devel::Trepan::Deparse
— это плагин для отладчика Devel::Trepan
, который добавляет две новые команды: deparse и deval. Команда deparse позволяет показать какой код будет выполняться в следующей инструкции, что бывает полезно, когда отладчик остановился на строке, в которой несколько операций и не ясно какая из них будет выполняться на следующем шаге:
if ( grep { $_ eq 'foo' } @bar ) {...}
выражение внутри if
или уже блок кода grep
для какого-то текущего значения @bar
? Команда deparse покажет какая именно операция будет выполняться следующей:
: deparse
# code to be run next...
$_
# contained in...
$_ eq 'foo'
Mail::DKIM::Iterator
Модуль Mail::DKIM::Iterator
позволяет организовать проверку DKIM-записей в почтовых сообщениях и добавлять DKIM-подпись к ним. Основное отличие от Mail::DKIM
— это возможность организовать неблокирующуюся потоковую обработку писем.
Unix::Pledge
Недавно появившийся в OpenBSD системный вызов pledge(2) теперь можно использовать в perl-программах, которые будут работать на этой платформе, с помощью модуля Unix::Pledge
. Модуль позволяет наложить ограничения на процесс, например, запретить чтение или запись файлов, с указанием списка файлов-исключений.
Perl6::Export
Perl6::Export
реализует Perl 6 роль is export
для Perl 5 модулей, позволяя изящно экспортировать функции модуля. Например, сравнение с Exporter:
package My::Module; | package My::Module;
use Exporter; | use Perl6::Export;
|
our @EXPORT = qw(foo bar); | sub foo is export(:MANDATORY);
| sub bar is export(:MANDATORY);
|
our @EXPORT_OK = qw(baz); | sub baz is export(:DEFAULT :qux);
our %EXPORT_TAGS = |
qw(qux => [qw(baz)]); |
Pg::Reindex
Индексы Postgresql должны периодически пересоздаваться для достижения оптимальной производительности. Например, это можно сделать с помощью команды REINDEX
, но в этом случае потребуется эксклюзивная блокировка всей таблицы.
Модуль Pg::Reindex
выполняет создание индекса с помощью CREATE INDEX CONCURRENTLY
, который может выполняться без блокировки. Затем он начинает транзакцию, в которой удаляет старый индекс и переименовывает новый. Таким образом достигается пересоздание индекса без длительной блокировки.
Обновлённые модули
Sereal 3.010
Вышло обновление (де)сериализатора Sereal
. В новых выпусках исправлено множество багов, включая несколько случаев краха десериализатора, которые были обнаружены при тестирование с помощью фазера AFL.
JSON::Validator 0.63
Модуль JSON::Validator
позволяет проводить проверку данных в формате JSON на соответствие JSON-схеме. В новой версии удалена поддержка использования модулей YAML
и YAML::Tiny
для загрузки JSON-схемы в формате yaml (поддерживаются только YAML::XS
и YAML::Syck
). Связано это с тем, что YAML
и YAML::Tiny
в некоторых случаях некорректно выполняют разбор формата yaml.
PathTools 3.60
Вышло обновление дистрибутива PathTools, включающий модули для работы с путями на различных поддерживаемых в Perl платформах. В новой версии включён модуль File::Spec::AmigaOS
для поддержки платформы AmigaOS.
MIME-Types 2.12
В новой версии дистрибутива MIME-Types
обновлена база данных MIME-типов, в соответствии с текущим состоянием в IANA. Требования к версии Perl снижены до 5.6.
utf8::all 0.017
Прагма utf8::all
тотально включает UTF-8: для исходного кода программы, перекодирует открываемые файлы и аргументы, переданные в командной строке, разрешает использование последовательностей \N{...}
для задания юникод-символов по их имени и т.д. В новой версии появилась возможность отключать эффект прагмы, с помощью no utf8::all
.
PDL 2.015
Вышел новый релиз PDL
— модуля для работы научных вычислений и отображения данных. Как указано в журнале изменений — это отполированный релиз с исправлением всех замечаний обнаруженных в предыдущей версии с улучшенной поддержкой 64-битных целых.
perl 5.23.5
Вышла новая версия Perl 5.23.5 для разработчиков. В новом релизе проведена оптимизация, которая ускорила выполнение арифметических операций, таких как сложение, вычитание и умножение. Кроме того, теперь быстрее стали работать операции ++
и --
. Исправлено несколько ошибок с крахом интерпретатора, например, в функции pack: perl -e 'pack "WH200000", \0'
App::perlbrew 0.74
Обновился менеджер Perl-инсталляций perlbrew. В новой версии появилась поддержка переменной окружения PERLBREW_LIB_PREFIX
, которая позволяет добавить каталог с библиотеками, имеющей приоритет над локальными каталогами библиотек perlbrew (т.е. ./lib:$PERL5LIB
). Теперь при загрузке файлов будет отдаваться предпочтение https-ресурсам и обязательно проверяться их сертификат.
podlators 4.00
Вышел новый мажорный релиз утилит для конвертирования POD-файлов. Теперь все входящие в дистрибутив модули используют единую версию. Релиз содержит большое количество исправлений, накопившихся с последнего релиза, вышедшего два года назад.
← Использование Rust из Perl | Содержание | Интервью с Дмитрием Шаматриным →