Выпуск 17. Июль 2014
← Использование портов GPIO в Raspberry Pi. Часть 1 | Содержание | Интервью с Питэром Рэббитсоном (Peter Rabbitson) →Обзор CPAN за июнь 2014 г.
Рубрика с обзором интересных новинок CPAN за прошедший месяц.
Статистика
- Новых дистрибутивов — 247
- Новых выпусков — 768
Новые модули
HTTP::Tiny::Paranoid
является надстройкой над HTTP::Tiny
, которая перед подключением выполняет разрешение имени хоста в Net::DNS::Paranoid, что позволяет исключить подключение к ip-адресам из диапазонов приватных сетей, а также выполнять проверку по чёрным/белым спискам хостов.
Компания Juniper выпустила свой первый официальный модуль на CPAN для управления конфигурацией сетевого оборудования своего производства. Не совсем понятна, какова лицензия продукта, но код открыто доступен.
BusyBird
— это веб-приложение для просмотра ленты статусов/сообщений. Это своеобразный симбиоз twitter’а и RSS-агрегатора. BusyBird сам не выполняет сбор сообщений, но имеет API для их получения. Таким образом, пользователь должен быть немного программистом, чтобы написать модули, которые бы собирали данные, например, твиты, почтовые сообщения, RSS-ленты и передавали в BusyBird, задача которого уже отображать эти данные.
Protocol::OTR
— это обвязка к библиотеке libotr v4, реализующая криптографический протокол Off-the-Record для систем мгновенных сообщений, позволяющая безопасно обмениваться сообщениями, аутентифицировать собеседников, защищать историю переписки при компрометации ключей.
Etcd является perl-клиентом для высокодоступного сервиса хранения пар ключей-значений для разделяемых конфигураций etcd.
Cookieville — это веб-приложение на базе Mojolicious, реализующее REST-интерфейс к базе данных. Для работы должен быть создан класс схемы DBIx::Class
.
Devel::Trace::Syscall
позволяет выводить трассировку системных вызовов, которые вызываются в вашей Perl-программе. Модуль использует вызов ptrace
и работает только на Linux, также требуется Perl 5.18.0 или старше.
$ perl -d:Trace::Syscall=open my-script.pl
open("somefile", 0x0, 0666) = -2 at my-script.pl line 4
Protocol::Gearman
— это ещё одна реализация протокола, а также клиента и рабочего процесса для сервера задач Gearman.
Модуль Async::Chain
позволяет организовать группу вложенных функций обратного вызова в плоскую структуру, более наглядную и удобную для сопровождения. Вместо написания
async_func1 cb => sub {
async_func2 cb => sub {
...
}
}
Указывается ключевое слово chain
и далее следует последовательность функций:
chain
sub {
async_func1 cb => shift;
},
'optional name of sub' => sub {
async_func2 cb => shift;
},
...
;
Прагма warnings::pedantic
добавляет шесть новых предупреждений для сомнительных конструкций: grep, close, print в пустом контексте, некорректный прототип для sort-функции, присвоение массиву ссылки на массив, использование констант с правой стороны «жирной запятой» или в качестве ключа хеша.
Обновлённые модули
- Coro 6.39
В новой версии реализации сопрограмм Coro
улучшена совместимость с Perl 5.20.
- Sereal 3.001
Новый мажорный релиз модуля (де)сериализации Sereal
включает поддержку сжатия zlib и новый магический заголовок данных для лучшего детектирования закодированных в UTF-8 данных.
- Mango 1.01
Первый мажорный релиз драйвера MongoDB Mango
официально больше не считается экспериментальным.
- IO::AIO 4.31
Обновлён модуль асинхронного ввода/вывода IO::AIO
. В новом релизе сделаны исправления для работы с Perl 5.20.
- App::perlbrew 0.69
Новый релиз утилиты perlbrew для инсталляции и управления версиями Perl в домашнем каталоге исправляет проблему с установкой perl 5.21, а также проблемы при работе со сломанной версией local::lib
.
- AnyEvent::HTTP 2.21
В новом релизе исправлена ошибка в формировании заголовка Connection
. Добавлена поддержка кода перенаправления 308, а также всех допустимых идемпотентных методов HTTP/1.1 в запросе (их на сегодняшний день 34).
- B::C 1.47
Новый релиз компилятора Perl B::C
содержит множество исправлений, включая исправления байткода для Perl 5.18, лексических подпрограмм для Perl с поддержкой тредов, работы модуля Coro. Существенно уменьшен генирируемый код за счёт исключения ненужных зависимостей.
- Email::Address 1.905
Новый релиз модуля Email::Address
для проверки email-адреса в соответствии с RFC 2822 исправляет ошибку в безопасности CVE-2014-0477, которая позволяла организовать DoS-атаку на сервисы, использующий данный модуль. Функция Email::Address::parse
затрачивала существенное время при разборе, если встречалась последовательность из двух двойных кавычек ""
.
- perl 5.21.1
В новый релиз perl для разработчиков 5.21.1 включена поддержка Unicode 7.0, а также реализовано API для вывода трассировки вызовов внутренних функций perl при предупреждениях, аналогичный выводу gdb:
$ env PERL_C_BACKTRACE_ON_WARN=10 perl -we '$x=1'
0 496712:0012 Perl_dump_c_backtrace util.c:6138 perl
1 4967b7:0047 Perl_mess_sv util.c:1382 perl
2 497786:0006 Perl_vwarn util.c:1810 perl
3 497c87:0087 Perl_warner util.c:1902 perl
4 44a8a5:0215 Perl_gv_check gv.c:2304 perl
5 4487fc:14fc S_parse_body perl.c:2314 perl
6 42b630:0080 main perlmain.c:113 perl
7 7f031f593ad5:00f5 - - /lib64/libc.so.6
8 42b6ed _start start.S:126 perl
Name "main::x" used only once: possible typo at -e line 1.
- Readonly 1.61
Для обновлённого Readonly
больше не требуется Readonly::XS
. Также исправлено множество ошибок в коде и неточностей в документации.
← Использование портов GPIO в Raspberry Pi. Часть 1 | Содержание | Интервью с Питэром Рэббитсоном (Peter Rabbitson) →