Python 3.1 alpha 1のWhat's newを訳してみた

Python 3.1」でググると二番目にヒットする(2009/3/8現在)けど信頼できないから注意してね!

英検準二級の厨房による訳だから信頼性は0だと思っていい。なんで翻訳してみようと思ったのか自分でも分からない。

というかまだCore and Builtinsしか訳せてない。

原文。7割がた日本語でおk状態なので間違いは思いっきり指摘してくだしあ><


What's New in Pyhon 3.1 alpha 1

リリース日:2009年3月7日

1.言語コアと組み込み

  • ioモジュールが速度向上のためにCで実装されました。
  • 辞書に対して情報量の多い __repr__ を与えました。
  • Issue #5247: str.format() に文字列、整数、浮動小数点数の引数とともに不明なフォーマットが使われた際のエラーメッセージを改善します。
  • Issue #5249: Windowsにおいて、time.strftime に対しフォーマット文字列に非ASCII文字が含まれていたとき、time.strftime は化けた文字列を返しました。
  • Issue #4626: もしソースが既に文字列に解読されているならば、compile, exec, eval は"coding cookie"を無視します。
  • Issue #5186: __hash__ メソッドなしで、オブジェクトポインタを4bit右ローテートすることでハッシュの衝突を減らします。
  • Issue #4575: Py_IS_INFINITY マクロがx87 FPU上でも正しく動作するように修正します:無限かどうかのテストの際、引数の値が2倍になることを強制します。
  • Issue #5137: __len__ メソッドが非数を返した場合、len()が TypeError を raise するようにします。
  • Issue #5182: memoryview.__str__ が廃止されました。
  • Issue #1717: 組み込みのcmp関数が廃止されました。また tp_compareスロットがなくなり、C API関数である PyObject_Compare, PyUnicode_Compareと型cmpfunc が廃止されました。tp_compareスロットはtp_reservedに名前を変えられ、将来のために予約されています。
  • Issue #1242657: いくつかのツール内での__len__()と__length_hint__()の呼び出しは全ての例外を抑えていました。これらはlist()やbytearray()を含みます。
  • Issue #4707: round(x, n) は x が整数ならば整数を返します。前までは浮動小数点数を返していました。
  • Issue #4753: '--with-computed-gotos'オプションをサポートされているコンパイラ(gcc, SunPro, iccなど)で有効にすることによって、バイトコードの評価ループが新しいメカニズムになります。このメカニズムは色々なシステム上でのベンチマークで、最大20%のスピードアップを示します。
  • Issue #4874: 組み込みのデコーダのほとんどは現在、Unicodeの入力を拒絶します。
  • Issue #4842: 文字列から整数をつくるとき、接尾辞の 'L' は許されません。
  • Issue #4991: os.fdopen は現在、無効なファイル記述子に対して OSError を raise します。
  • Issue #4838: モジュールがデアロケート(割り当てを解除)されるとき、オプションのモジュールの状態を保持しているメモリを解放します。
  • Issue #4910: nb_long スロットが nb_reservedに名前を変えられました。また型が void * に変えられました。
  • Issue #4935: expandtabs()メソッド内のオーバーフローチェック用コードがコンパイラによって最適化されることができました。そして、インタプリタはエラーを raise する代わりにセグメンテーション違反を起こします。
  • Issue #3720: イテレータがそのクラスを修正してそのクラス内の __next__メソッドを削除するときのクラッシュを修正します。
  • Issue #4910: 組み込みのint()関数とAPI関数 PyNumber_Long, PyNumber_Int はオブジェクトを整数に変換するのに __long__ スロットを呼び出しません。__int__スロットと__trunc__スロットのみ検査されます。
  • Issue #4893: CE上でNTスレッディングを使用します。
  • Issue #4915: Windows CEのためのsysmoduleを持ちます。
  • Issue #4868: utf-8, utf-16, latin1 のデコードが2倍から4倍速くなりました。普通の例は、ループ展開などの手法によって最適化されます。
  • Issue #4074: それらを破棄することなくたくさんのオブジェクトを割り当てるのに二次関数時間がかからないよう、Full GCの基準を変えます。これはhttp://mail.python.org/pipermail/python-dev/2008-June/080579.htmlでのMartin von Lowisの提案に基づきます。
  • Issue #4604: I/Oライブラリのうち、それがクローズされた後であっても使われるオブジェクトがあるものがあります(たとえば、read() は前にバッファリングしたデータを返します)。Dmitry Vasilievによるパッチ。
  • Issue #4705: -u(バッファのないバイナリのstdout, stderr)コマンドラインが正しく動くよう修正します。さらに、-uを明記するとき、テキストのstdout,stderrストリームは行ごとのバッファリングを可能にします。
  • 内部テーブル _PyLong_DigitValue は現在、intの代わりにunsigned charの配列です。(そのサイズを減らすことによってPython全体のメモリ使用量を減らしています)
  • Issue #1180193: 対応する.pyファイルによって、.pycまたは.pyoファイルからモジュールをインポートするとき、もしオリジナルのファイル名が推奨されないもの(これはそのファイルが名前を変えられたか移動された、または異なるパスでアクセスされるときに起こり得ます)ならばコード全体の co_filename アトリビュートを上書きしてください。Ziga SelinachtとJena-Paul Calderoneによるパッチ。
  • Issue #4580: アイテムの大きさが1バイトを超えるときのmemoryviewsのスライシングを修正します。また、len()の意味もバイト単位のサイズよりもアイテムの個数を返すように修正します。
  • Issue #4075: Py_FatalError内でOutputDebugStringWを使います。
  • Issue #4747: ターミナルがutf-8を使っていないとき、非ASCII文字を名前に持つファイルを実行すると "SyntaxError: None" というエラーで失敗します。
  • Issue #4797: Windows上で _fileio.FileIO が'bytes'というファイル名のファイルのオープンに失敗したとき、IOError.filenameはセットされませんでした。
  • Issue #3680: 辞書、set、dequeのイテレータによってできる循環参照はガーベジコレクトされませんでした。
  • Issue #4701: PyObject_Hash は現在、tp_hashスロットとtp_dictスロットが共にNULLであるような型において、暗黙的に PyType_Ready を呼び出します。
  • Issue #4759: Noneは現在、bytearray.translate()の第一引数として許されます。また、bytes.translate()に対しても許されます。
  • 書き込み用に開いたファイルからの読み込みが失敗することを確かめるためのテストケースを追加しました。
  • Issue #3106: 少しの比較を高速化しました。(文字列/文字列 と 整数/整数)
  • Issue #2183: リスト、辞書、setのバイトコードの単純化と最適化を行いました。Neal Norwitzによるリストに対するオリジナルのパッチ。
  • Issue #2467: gc.DEBUG_STATS は無効な経過時間を報告します。また、あるオブジェクトが回収できないかそれに到達できない時だけでなく、常に経過時間を表示します。Neil Schemenauerによるオリジナルのパッチ。
  • Issue #3439: intにbit_lengthメソッドが追加されます。
  • Issue #2173: 装置符号化のとき、nl_langinfoの戻り値が空の文字列でないことを確認してください。これはOS X上でビルドの失敗を引き起こします。
  • Issue #4597: 例外を伝達できていなかった演算子を修正しました。
  • Issue #4589: コンテキストマネージャの__exit__関数がboolに変換できない値を返したときのための例外処理を修正しました。
  • Issue #4445: メモリをbytesのインスタンスにメモリを割り当てる際に "sizeof(PyBytesObject)" を "offsetof(PyBytesObject, ob_sval) - 1" に置き換えます。これは普通、ひとつのbytesインスタンスにメモリ割り当てを行う際に平均して3バイトのメモリを節約します。
  • Issue #4533: ゆっくり読み込むバッファのせいで、ファイル読み込みはとても遅かったです。Python 2.xと同じアルゴリズムを用いて修正しました。
  • Issue #4509: バッファのエクスポートがあるbytearrayオブジェクトのリサイズ周りの諸問題。
  • Issue #4233: _fileio.FileIO の close() メソッドのセマンティックは closefd=False を指定したファイルオブジェクトに変えられました。ファイル記述子はまだ開いていますが、ファイルオブジェクトは閉じたファイルのように振舞います。また、FileIOオブジェクトは新しい読み込み専用アトリビュート closefd を追加されました。
  • Issue #4569: memoryviewを1より大きなアイテムのサイズで変更させるとき、インタプリタがクラッシュします。
  • Issue #4748: ラムダジェネレータは値を返しません。
  • re.sub(), re.subn(), re.split() 関数は現在、フラグパラメータを許可します。