Как управляются основные библиотеки Perl? - PullRequest
16 голосов
/ 03 июня 2010

Насколько я понимаю, Perl традиционно включает только основные функциональные возможности, и люди устанавливают дополнительные библиотеки, чтобы выполнять всевозможные полезные (а иногда и очень простые) вещи. Но в какой-то момент появились «базовые библиотеки», которые поставляются с Perl по умолчанию - так что вы можете использовать эти библиотеки без их установки.

Исходя из Python, мне любопытно, как это делается. В частности:

  1. Как выбираются библиотеки?
  2. Есть ли у библиотек собственные номера версий и графики выпуска?
  3. Какие гарантии обратной совместимости вы имеете при использовании этих библиотек?
  4. Обычно ли обновлять или понижать эти библиотеки в системе? Это делается в масштабе всей системы или более конкретно?
  5. Если есть исправление ошибки, которое требует изменения API, как это происходит?
  6. Как функциональность добавляется в эти основные библиотеки (если она вообще есть)?

1 Ответ

16 голосов
/ 03 июня 2010
  1. В настоящее время в список ядра .
  2. Некоторые есть только в репозитории Perl git. Некоторые имеют двойную жизнь на CPAN и в репо. Иногда ошибки исправляются в репозитории, а изменения переносятся в версию CPAN. Иногда в CPAN выходит новый выпуск, и сопровождающий Perl проверяет модуль в репозитории.
  3. Вы можете положиться на основной модуль. Существует очень длительное время устаревания, прежде чем его удаляют, недавний выдающийся пример был Switch.
  4. Упаковщики (например, люди, которые создают RPM для дистрибутива Linux) никогда не могли получить это право; неправильный порядок включаемых путей (@INC) не является их ошибкой, а окончательно фиксируется с 5.12 . Это причина, по которой исходит рекомендация собирать свой собственный Perl, а не путать его с установкой системы. В версии 5.12 предполагается, что вы просто используете CPAN для установки обновленной версии основного модуля, и он устанавливается дополнительно к тому, который поставляется с системой, но, поскольку новый предшествует старому в пути включения, новый один загружается, когда вы use / require это.
  5. Выложено в perlpolicy .
  6. Программируйте функциональность и тестируйте ее, документируйте ее, затем выпускайте на CPAN или, соответственно, сопровождающий применяет набор изменений. Это сопровождается обсуждением p5p .
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...