July 6th, 2018

Book

Новости перловодства-3

Вчера методом научного тыка обнаружил, что в рантайме нужны всего 6 из 17 созданных зависимостей.

Сегодня с утра при попытке найти что-то, что бы позволило мне отфильтровать зависимости автоматически, попробовал проинсталлировать Module-Depends и наткннулся на баг годичной давности, с патчем: https://rt.cpan.org/Public/Bug/Display.html?id=119324 Тьфу!

Но в результате использовал не его, а MetaCPAN-Client, который аж третья попытка написать эту либу, две прошлые задепрекейчены.

Применив скрипт к другим используемым мной либам, обнаружил и зарепортил баг в метаданных у Event-RPC: https://rt.cpan.org/Ticket/Display.html?id=125770

Добавляет педерастии то, что есть distributions, modules and packages. Packages это вообще невероятная хуета, не хочу даже начинать о неограниченных возможностях пидарасов по помещению более одного пакаджа в модуль и прочем говне. Если считать, что модули с пакаджами (которые выглядят одинаково, но есть контексты в которых это не одно и то же) мы не путаем - то остается возможность спутать модули с дистрибьюшенами. В результате "cpanp o" выдает список устаревших дистров, но делает вид, что выдает список устаревших модулей. То есть, для каждого дистра вместо имени пакаджа дистра он пишет имя "главного" модуля в нём. Ну и чтобы обновить модуль, надо делать обратный лукап из модуля в дистр. Тьфу!

Список установленных дистров получить не представляется возможным, на SO советуют использовать cpan -a (не путать с cpanp), внутри которого такое говно и палки, которое можно вывесить (выложить?) в палате мер и весов как пример вылизанного за годы говна на перле. Короче, тот способ энумерации дистров, который делает CPAN, применять нельзя просто потому что это кал. В-общем решил пока не энумерировать установленные дистры :)

Основная идея энумерации - посмотреть на то, какие зависимости устанавливаемого дистра стоят, но устарели. Чтобы можно было выбрать, обновлять их или нет.