2009-11-26

PEP 3003 Python Language Moratorium

PEP 3003 Python Language Moratorium が accept されたようです。この PEP は、当分の間、 Python 3.x の文法を変えませんよ宣言するものです。この変更の一時停止期間をモラトリアムと呼んでいます。



モラトリアムの意図は、Jython や IronPython などが、Python 3.x を実装しやすくするためです。しばらくしたら、IronPython の 3.x 系が出てくるかも。以下、おおざっぱなまとめ。



  • Python 3.1 リリース以降、2年間は Python の文法、セマンティクス、ビルトイン関連の変更を行わない。


  • Python 3.2 リリースはモラトリアム期間内なので、言語への変更はない。


  • Python 3.3 リリースはモラトリアム期間外なので、言語への変更が起こりうる。


変更しないもの



  • 新しいビルトイン


  • 文法: 文法ファイルは不変とし、あいまいな理由で修正をしてはならない。


  • セマンティクス: 特定の例外(下記を参照)をのぞいて、言語としての動作は現状を維持する。


  • __future__ でインポートできるもの: 言語の文法やセマンティクスに影響するので。


場合によっては変更するもの



  • ビルトインの新規メソッド


  • 不適切なセマンティクスの修正: 言語のセマンティクスがあいまいだったり、元々の設計に反して、不適切に実装されている場合は、セマンティクスの変更してもよい。


  • セマンティクスの実装が、著しく困難な場合: CPython 以外で、Python 3.x を実装することが著しく困難な場合には、他の VM にがPython 3.xの採用を容易できるようにしてよい。


変更してもよいもの



  • C API


  • 標準ライブラリ


  • 3.x から 2.x へのバックポート


  • import のセマンティクス