Выпуск 12. Февраль 2014
← Обход дерева директорий на Perl и Haskell (часть 2) | Содержание | Интервью с Рэнделом Шварцем (Randal Schwartz) →Обзор CPAN за январь 2014 г.
Рубрика с обзором интересных новинок CPAN за прошедший месяц.
В этом месяце произошёл сбой с дисковым хранилищем сервера PAUSE. С 8 по 11 января сервер был отключён, и у авторов не было возможности выкладывать модули на CPAN. Тем не менее, проблема была решена, и сейчас PAUSE работает в штатном режиме.
Статистика
- Новых дистрибутивов — 213
- Новых выпусков — 1028
Новые модули
Обвязка к C-библиотеке libshardcache для создания распределённого хранилища пар ключей-значений. Библиотека была вдохновлена идеями и логикой groupcache, которая используется в Google и написана на языке Go.
Альтернативная реализация очередей Thread::Queue
. Благодаря использованию «умной» сереализации (Sereal
) удаётся добиться повышения производительности, не жертвуя гибкостью.
Модуль расширения для синтаксиса Markdown, который добавляет два элемента M<Module>
и A<Author>
, которые после преобразования в HTML раскрываются в ссылки на соответственно страницу модуля и автора на metacpan.org.
Создание простого CRUD веб-интерфейса к базе данных ещё никогда не было столь простым:
$ hyle.pl --dsn'dbi::SQLite::dbname=file.db'
$ curl http://localhost:8000/collection/id/7
...
Модуль для Plack, который устанавливает переменную окружения robot_client
, если клиент является роботом. Модуль использует список регулярных выражений из проекта анализатора веб-логов AWStats.
Strict::Perl
накладывает ограничения на использование устаревших и небезопасных конструкция в коде. Для Perl старше 5.12 это соответствует:
use strict;
use warnings qw(FATAL all);
use autodie;
Запрещаются к использованию ключевые слова goto
, until
, foreach
, format
и другие устаревшие и небезопасные операторы. Запрещены также некоторые специальные переменные ($[
, $#
, …) и оператор умного сравнения ~~
.
В противоположность предыдущему модулю Moo::Lax
пытается облегчить жизнь тем, кому не нравится, что модуль Moo
делает все предупреждения фатальными. Для этого достаточно вместо загрузки Moo
загружать Moo::Lax
.
Lembas
— это тестовый фреймворк для приложений командной строки, близкий по духу Cram из мира python. Файлы с записанной shell-сессией, состоящей из команд и их вывода, используются для тестирования консольных программ. Для создания тестов из выполняемых команд используется Test::Builder
.
Ещё один HTTP/1.1 веб-сервер, использующий prefork-модель для рабочих процессов. Создан как форк тредового веб-сервера Thrall
, который в свою очередь является форком prefork веб-сервера Starlet
. Пройдя этот «испорченный телефон» форков, Starlight
позиционируется как веб-сервер с зависимостью только от Plack
.
Обновлённые модули
- Type::Tiny 0.038
Хороший модуль для описания и проверки типов данных. Релиз примечателен тем, что он был самым первым в этом году на CPAN. Автор выложил его буквально через две минуты после полуночи. А остались ли у вас воспоминания о том, что вы делали в новогоднюю ночь?
- Imager 0.98
Обновился модуль для создания изображений Imager
. В новом релизе присутствует несовместимое изменение в возвращаемом значении setpixel()
. В случае ошибки возвращается пустой список и устанавливается сообщение об ошибке в errstr()
, иначе возвращается число нарисованных пикселей или строка 0 but true
если ни один пиксель не нарисован (например, за пределами изображения).
- Net::DNS 0.74
В новом релизе исправлена ошибка с крахом днс-сервера на основе Net::DNS
при получении специально сформированного UDP-пакета.
- Pod::Perldoc 3.21
Команда perldoc
получила новый ключ командной стоки -a
для поиска по функциям Perl API.
- DBIx::Class 0.8270
После длительного перерыва обновился модуль DBIx::Class
с огромным списком изменений и исправлений. Документация модуля пополнилась мануалом DBIx::Class::Manual::QuickStart о том, как разобраться с DBIC за 10 минут.
- perl 5.18.2
В этом году вышел новый стабильный релиз Perl 5.18.2, в котором исправлено несколько регрессий и ошибок.
- Net::SSLeay 1.58
Обновился модуль для работы с openssl из Perl. В числе изменений множество исправлений, включая проблемы, потенциально затрагивающие безопасность (крах в SSL_get_peer_cert_chain
и использование указателя после освобождения в next_proto_select_cb_invoke
).
- B::C 1.43
Почти два года потребовалось Reini Urban, чтобы выпустить новый релиз компилятора/транслятора Perl-кода в C. Данный релиз поддерживает Perl 5.16 и частично поддерживает 5.18 и 5.20 (blead).
- Promises 0.08
Множество улучшений и изменений в новых релизах Promises
, реализации спецификации Promise/A+. Улучшено взаимодействие с реализациями мультиплексоров событий для поддержки асинхронного разрешения событий. Добавлены новые методы: done
, finally
, catch
.
← Обход дерева директорий на Perl и Haskell (часть 2) | Содержание | Интервью с Рэнделом Шварцем (Randal Schwartz) →