Как управляются основные библиотеки Perl?
По моему пониманию, Perl традиционно включает только основные функции, и люди устанавливают дополнительные библиотеки, чтобы делать всевозможные полезные (а иногда и очень простые) вещи. Но в какой-то момент стали появляться "основные библиотеки", которые поставляются с Perl по умолчанию, поэтому вы можете использовать эти библиотеки, не устанавливая их.
Из Python Мне любопытно, как это управляется. В частности:
- Как выбраны библиотеки?
- У библиотек все еще есть свои номера версий и расписания выпуска?
- Какие гарантии обратной совместимости вы используете при использовании этих библиотек?
- Общеизвестно ли обновление или понижение этих библиотек в системе? Это делается общесистемно или более конкретно?
- Если исправление ошибки требует изменения API, как это происходит?
- Как функциональность добавлена в эти основные библиотеки (если она вообще есть)?
Ответы
Ответ 1
- В настоящее время только библиотеки, необходимые для загрузки/установки других библиотек, входят в основной список.
- Некоторые из них находятся только в репозитории Perl git. Некоторые из них имеют двойную жизнь в CPAN и в репо. Иногда в репо исправляются ошибки, и изменения приводятся в версию CPAN. Иногда в CPAN появляется новый релиз, и поддерживающий Perl проверяет модуль в репо.
- Вы можете полагаться на основной модуль. Там очень длительный срок устаревания перед удалением, недавний выдающийся пример был
Switch
.
- Пакеты (например, люди, которые создают RPM для дистрибутива Linux) никогда не могли получить это право; неправильный порядок включенных путей (
@INC
) не является их ошибкой, а наконец-то исправлен с 5.12. Это причина, по которой приходит рекомендация, чтобы скомпилировать ваш собственный perl и не путать с установкой системы. С 5.12 вы должны просто использовать CPAN для установки обновленной версии основного модуля, и она будет добавлена до того, как она будет отправлена вместе с системой, но поскольку новый идет до старого в пути включения, новый один загружается, когда вы use
/require
.
- Выведено в perlpolicy.
- Запрограммируйте функциональность и тесты для него, запишите документ, затем отпустите в CPAN или, соответственно, сопровождающий примените набор изменений. Это сопровождается обсуждением p5p.