perl perl-core

¿Cómo se gestionan las bibliotecas centrales de Perl?



perl-core (1)

  1. Actualmente, solo las bibliotecas que son necesarias para arrancar / instalar otras bibliotecas entran en la lista central .
  2. Algunos están solo en el repositorio de Perl git. Algunos son de doble vida en CPAN y en el repositorio. A veces, los errores se corrigen en el repositorio y los cambios se devuelven a la versión CPAN. A veces hay una nueva versión en CPAN y un mantenedor de Perl verifica el módulo en el repositorio.
  3. Puede confiar en un módulo de núcleo. Hay un período de tiempo de desaprobación muy largo antes de que se elimine uno, el ejemplo más reciente fue Switch .
  4. Los empaquetadores (por ejemplo, las personas que crean RPM para una distribución de Linux) nunca pudieron hacer esto correctamente; el orden incorrecto de las rutas de inclusión ( @INC ) no es su culpa, y finalmente se corrigió con 5.12 . Esta es la razón de la que proviene la recomendación de compilar su propio perl y no meterse con la instalación del sistema. Con 5.12, se supone que solo debe usar CPAN para instalar una versión actualizada de un módulo central, y se instala adicionalmente al que se incluye con el sistema, pero como el nuevo viene antes que el anterior en la ruta de inclusión, el nuevo uno se carga cuando lo use / lo require .
  5. Establecido en perlpolicy .
  6. Programe la funcionalidad y las pruebas para ello, documente la cosa, luego libérela en CPAN o, respectivamente, haga que un mantenedor aplique el conjunto de cambios. Esto se acompaña con una discusión en p5p .

Según tengo entendido, tradicionalmente, Perl solo ha incluido la funcionalidad central, y las personas instalan bibliotecas adicionales para hacer todo tipo de cosas útiles (ya veces muy básicas). Pero en algún momento llegó a haber "bibliotecas centrales" que se envían con Perl de forma predeterminada, por lo que puede usar estas bibliotecas sin instalarlas.

Viniendo de Python tengo curiosidad por cómo se maneja esto. Específicamente:

  1. ¿Cómo se eligen las bibliotecas?
  2. ¿Las bibliotecas todavía tienen sus propios números de versión y horarios de lanzamiento?
  3. ¿Qué tipo de garantías de compatibilidad con versiones anteriores tiene al usar estas bibliotecas?
  4. ¿Es común actualizar o degradar estas bibliotecas en un sistema? ¿Se hace esto en todo el sistema o más específicamente?
  5. Si hay una corrección de errores que requiere un cambio de API, ¿cómo sucede eso?
  6. ¿Cómo se agrega la funcionalidad a estas bibliotecas centrales (si es que lo son)?