16

私の理解では、Perlには伝統的にコア機能しか含まれておらず、人々はあらゆる種類の便利な(そして時には非常に基本的な)ことを行うために追加のライブラリをインストールします。しかし、ある時点で、デフォルトでPerlに同梱されている「コアライブラリ」が登場しました。そのため、これらのライブラリをインストールせずに使用できます。

Pythonから来て、これがどのように管理されているのか興味があります。具体的には:

  1. ライブラリはどのように選択されますか?
  2. ライブラリにはまだ独自のバージョン番号とリリーススケジュールがありますか?
  3. これらのライブラリを使用する場合、どのような下位互換性が保証されますか?
  4. システム内のこれらのライブラリをアップグレードまたはダウングレードするのは一般的ですか?これはシステム全体で行われていますか、それともより具体的に行われますか?
  5. APIの変更が必要なバグ修正がある場合、それはどのように発生しますか?
  6. これらのコアライブラリに機能はどのように追加されますか(ある場合)?
4

1 に答える 1

16
  1. 現在、他のライブラリをブートストラップ/インストールするために必要なライブラリのみがコアリストに追加されます。
  2. 一部はPerlgitリポジトリにのみあります。いくつかはCPANとリポジトリでのデュアルライフです。バグがリポジトリで修正され、変更がCPANバージョンにバックポートされることがあります。CPANに新しいリリースがあり、Perlメンテナがモジュールをリポジトリにチェックインすることがあります。
  3. コアモジュールに頼ることができます。1つが削除されるまでに非常に長い非推奨期間があり、最近の顕著な例はでしたSwitch
  4. パッケージャ(たとえば、Linuxディストリビューション用のRPMを構築する人々)は、これを正しく行うことはできませんでした。インクルードパス(@INC)の順序が間違っていて、それらの障害ではなく、最終的に5.12で修正されました。これが、システムのインストールを台無しにするのではなく、独自のperlをコンパイルすることを推奨する理由です。5.12では、CPANを使用してコアモジュールのアップグレードバージョンをインストールすることになっていますが、システムに付属しているものに追加でインストールされますが、新しいものはインクルードパスで古いものよりも前にあるため、新しいものはあなたuse/それをするときに1つがロードされますrequire
  5. perlpolicyでレイアウトされています。
  6. 機能をプログラムしてテストし、文書化してからCPANでリリースするか、それぞれメンテナに変更セットを適用してもらいます。これには、p5pに関する議論が伴います。
于 2010-06-03T17:03:30.650 に答える