Выпуск 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.

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

Хороший модуль для описания и проверки типов данных. Релиз примечателен тем, что он был самым первым в этом году на CPAN. Автор выложил его буквально через две минуты после полуночи. А остались ли у вас воспоминания о том, что вы делали в новогоднюю ночь?

Обновился модуль для создания изображений Imager. В новом релизе присутствует несовместимое изменение в возвращаемом значении setpixel(). В случае ошибки возвращается пустой список и устанавливается сообщение об ошибке в errstr(), иначе возвращается число нарисованных пикселей или строка 0 but true если ни один пиксель не нарисован (например, за пределами изображения).

В новом релизе исправлена ошибка с крахом днс-сервера на основе Net::DNS при получении специально сформированного UDP-пакета.

Команда perldoc получила новый ключ командной стоки -a для поиска по функциям Perl API.

После длительного перерыва обновился модуль DBIx::Class с огромным списком изменений и исправлений. Документация модуля пополнилась мануалом DBIx::Class::Manual::QuickStart о том, как разобраться с DBIC за 10 минут.

В этом году вышел новый стабильный релиз Perl 5.18.2, в котором исправлено несколько регрессий и ошибок.

Обновился модуль для работы с openssl из Perl. В числе изменений множество исправлений, включая проблемы, потенциально затрагивающие безопасность (крах в SSL_get_peer_cert_chain и использование указателя после освобождения в next_proto_select_cb_invoke).

Почти два года потребовалось Reini Urban, чтобы выпустить новый релиз компилятора/транслятора Perl-кода в C. Данный релиз поддерживает Perl 5.16 и частично поддерживает 5.18 и 5.20 (blead).

Множество улучшений и изменений в новых релизах Promises, реализации спецификации Promise/A+. Улучшено взаимодействие с реализациями мультиплексоров событий для поддержки асинхронного разрешения событий. Добавлены новые методы: done, finally, catch.

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


Обход дерева директорий на Perl и Haskell (часть 2) | Содержание | Интервью с Рэнделом Шварцем (Randal Schwartz)
Нас уже 1393. Больше подписчиков — лучше выпуски!

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