perldelta - perl v5.8.9 の新機能

目次


名前

perldelta - perl v5.8.9 の新機能


説明

このドキュメントでは 5.8.8 リリースと 5.8.9 リリースとでの相異点を 説明します.


非互換となる修正

5.8.8 と意図的な非互換はありません. もしなにか非互換と思われる事項が ありましたら, それらはバグでしょう. ぜひ報告をお願いします.


コアの機能拡張

Unicode 文字データベース 5.1.0.

Perl 5.8 に含まれる Unicode 文字データベースのコピーは 4.1.0 から 5.1.0 に更新されました. 主な変更点は http://www.unicode.org/versions/Unicode5.1.0/#NotableChanges を参照してください.

ディレクトリハンドルに対する stat 及び -X

ディレクトリハンドルに対して stat 及び -X ファイルstat演算を 行えるようになりました. ディレクトリ及びファイルハンドルが共に ベアワードだった場合には, どちらになるかはあいまいです. その様なときにはファイルハンドルとしての動作が優先されます. どちらでも *FILE ファイルハンドルのように *FILE{IO} として扱われます.

@INC でのソースフィルタ

フックによって開かれて返されたファイルハンドルに対して ソースフィルタを加えることで @INC での関数によるフックの メカニズムを強化できるようになりました. この機能は長い間予定は立てられていましたが, これまでは実装されていませんでした. 詳細は perlfunc 内 "require" [CPAN] を参照してください. (Nicholas Clark)

定数畳み込み時の例外

定数畳み込み処理が例外ハンドラに補足されるようになり, 畳み込み時に例外が投げられた場合には(例えば 0/0 の評価時), perl はプログラム全体を中断するのではなく その時点の optree を維持するようになりました. この変更 なしには, プログラムは例外を生成する式を持っているプログラムを, たとえその式が実行時に到達しない箇所であったとしても コンパイルできません. (Nicholas Clark, Dave Mitchell)

no VERSION

特定のバージョンより古い perl を使いたいときに no に続けてバージョン番号を指定することで できるようになりました.

内部の UTF-8 キャッシュコードの改善

文字列に於いて文字オフセットのために算出された UTF-8 バイトオフセット のキャッシュを行うコードが書き直されました. いくつかのバグは落ち着き削除され, そしてコードはそこに持っている情報をより良く, そして高速に使えるように なりました. 特に, 文字列のオフセットを計算する前に 文字列の最後まで計算しないために, 長い文字列に於いて高速になりました. また実行時に疑わしい問題の原因かどうかを確認できるように, キャッシュ部分のコードを無効にできるようになりました.

実行時再配置インストール

Configure は実行時に再配置可能な perl tree の設置をサポートしました. "再配置可能なインストール" を参照してください.

新しい内部変数

${^CHILD_ERROR_NATIVE}

この変数は最後のパイプクローズ, バックティックコマンド(``), wait若しくはwaitpidの成功した呼び出し, 若しくはsystem演算子 からのネイティブなステータスを返します. 詳細は perlvar [CPAN] を参照してください. (Gisle Aas より提供)

${^UTF8CACHE}

この変数は内部の UTF-8 オフセットキャッシュコードの状態を 制御します. 1で有効に(デフォルト), 0 で無効に, -1 で線形探索の結果と比較することでキャッシュコードのデバッグを行い, それ以外の値ではpanicします.

readpipe() がオーバーライド可能になりました

組み込み関数 readpipe() がオーバーライド可能になりました. これによってこれに対応する演算子, qx// (a.k.a. ``) もオーバーライドすることができます.

簡単な例外処理マクロ

Perl 5.8.9 (及び 5.10.0 より以降)では XS モジュールでの とても基本的な例外処理を行うためのいくつかのマクロが提供されます. croak するかもしれない処理を呼ぶけれど, Perl に制御を戻す前に クリーンアップ処理を行いたい時にこれらのマクロを使うことが出来ます. 詳細は perlguts 内 "Exception Handling" [CPAN] を参照してください.

-D オプションの強化

XS補助による SWASHGET

Unicode プロパティや transliteration mapping を得るために 正規表現エンジンが使ういくつかの pure-perl コードが XS で再実装されました. (SADAHIRO Tomoyuki)

定数関数

インタプリタは埋め込み可能な定数のよりもっとメモリ効率の良い形式を 内部的にサポートしました. シンボルテーブルに定数値へのリファレンスを 格納することは定数関数を参照する完全なタイプグロブと等価ですが, 400 バイトのメモリ削減となります. このproxyされた定数関数は 必要であれば実際のタイプグロブへと自動的にアップグレードされます. ここで取ったアプローチは既に行われている関数スタブ宣言において 完全なタイプグロブを置く代わりに単なるスカラーを格納する 空間最適化と似ています.

しかしながら, シンボルテーブルにタイプグロブ以外の物が入っていることを (悪いことに)予期していない既存のコードの下位互換を助けるために, コアではれぐれっしょんてすと以外ではこの機能は使っていません.

5.005 からは, プロトタイプ付きの関数のスタブはシンボルテーブルにプレインテキストとして 格納され, プロトタイプのないスタブは数値 -1 で格納されます, つまりコアがシンボルテーブルにタイプグロブのみを置くと前提にしている コードは, 10年にわたって誤った前提を取っていることになります.


新しいプラットフォーム

追加されたコンパイルサポート:


モジュールとプラグマ

新しいモジュール

更新されたモジュール


ユーティリティの変更点

デバッガが 1.30 へと更新されました

Andreas König はデバッガの履歴を保存及び読み込む2つの機能を 提供してくれました.

perlthanks

Perl 5.8.9 は新しいユーティリティ perlthanks を加えました, これは perlbug と似たような物ですが, バグ報告ではない物を作者及び Perl のメンテナに送ります. バグ報告がこないとちょっとがっかりしたりします - これが何か変えてくれると思います.

perlbug

perlbug はコア以外のモジュールの報告かをチェックし, 代わりにそれを CPAN author に送るかどうかを提案します.

h2xs

h2ph


新しいドキュメント

いつものように, このドキュメントは訂正, 明確化及びその他の nitfixes の 共有を受け入れます. インデックス用に タグが追加されます.

perlunitut [CPAN] は Juerd Waalboer によって書かれた Unicode に関連する用語及び Perl スクリプトにおいて Unicode を正しく扱う方法です.

perlunicode [CPAN] はユーザ定義プロパティの節が更新されました.

perluniintro [CPAN] は特定のエンコーディングとして正しくないデータを 検出する例を更新しました.

perlcommunity [CPAN] は一層の情報に沿って Perl コミュニティの 概要を提供します.

CORE [CPAN] は Perl のコア機能のための擬似的な名前空間を記述しています.


既存のドキュメントに対する修正

perlglossary [CPAN] に 廃止されたモジュール及び機能 及び 取り除かれるモジュール が追加されました.

perlhack [CPAN] は更新され, smoke testing の情報が追加されました.

The Perl FAQs (perlfaq1..perlfaq9) が更新されました.

perlcheat [CPAN] は \w, \d, 及び \s に関するより詳細を更新しました.

perldebug [CPAN] はデバッガの呼び方に関する情報を更新しました.

perldiag [CPAN] ドキュメントは exists 及び delete の引数における アンパサンド付きの関数及び警告に関するいくつかの用語を更新しました.

perlfork [CPAN] では疑似プロセス内における exec の制限を記述しました.

perlfunc [CPAN]:

perllocale [CPAN] は Debian バグ #379463 に対応するための 数値のローカライゼーションと POSIX::setlocale に関して調整.

perlmodlib [CPAN] は CPAN::API::HOWTO 及び Sys::Syslog::win32::Win32 と共に更新されました.

perlre [CPAN] は [[:xxxxx:]]\p{IsXxxxx} マッチの違いを 反映して更新されました. /g 及び /c 修飾子の節も追加されました.

perlreguts [CPAN] は正規表現エンジンの内部を記述します. これは Yves Orton から提供されました.

perlrebackslash [CPAN] は全ての perl 正規表現におけるバックスラッシュ及び エスケープシーケンスを記述します.

perlrecharclass [CPAN] は Perl 正規表現エンジンでの文字クラスの構文及び 使い方を記述します.

perlrun [CPAN] はハッシュシード PERL_HASH_SEED を明確になるように 更新しました. また -x 及び -u オプションの説明も増えました.

perlsub [CPAN] の例は opendir 構文でレキシカル変数を使うように 更新されました.

perlvar [CPAN] は実GID(real GID; $()と実行GID(effective GID; $))に 関する混乱を修正しました.

perlthrtut 内 "Queues: Passing Data Around" [CPAN] 及び perlothrtut [CPAN] における Perl スレッドチュートリアルの例が修正されました.

perlhack [CPAN] ドキュメントは Jarkko Hietaniemi 及びその他の人によって 多く改善されました.

perltoot [CPAN] は @UNIVERSAL::ISA の変更の際に関する情報を提供します.

perlport [CPAN] は Windows における kill(-9, ...) セマンティクスの 違いを含めるように拡張されました. これは Win32 及び cygwin において dump がサポートされていないことを明確に言及しています.

INSTALL は更新され今っぽくなりました.


パフォーマンスの強化


インストールとコンフィグレーションの改善

再配置可能なインストール

Configure は再配置可能な perl ツリーの作成をサポートしました. Configure-Duserelocatableinc を指定することで @INC (及び %Configure のその他の物)のパスに追加で perl 実行形式からのパスを置くことが出来ます.

起動時には, @INC 若しくは Config にある Configure が 再配置可能とマークした(".../"で始まっている)全てのパスは $^X のディレクトリで前置されます. これは再配置は ディレクトリ別で設定可能であり, -Duserelocatableinc の デフォルトは全てが再配置されます. 初期インストールは最初に設定された プレフィックスへと行われます.

設定の改善

Configure は一時ファイルをよりちゃんと削除するようになりました. Tom Callaway (RedHat より)もまたコンパイラ及びリンカに渡される フラグのセットを補完するパッチを提供してくれ, 特に Linux で -fPIC が有効になりました. また /dev/null がデバイスでないときに croak するようになりました.

新しい設定変数 d_pseudoforkConfigure に追加され, これは Config モジュールの $Config{d_pseudofork} として 提供されます. これは実際の fork サポートなのか Windows プラットフォームにおける疑似エミュレーションなのかを識別します.

Config.pod 及び config.sh はクロスコンパイルに適切な位置に 配置されるようになりました.

$Config{useshrplib} は共有 perl ライブラリを使うときは 'yes' ではなく 'true' になります.

コンパイルの改善

平行 make が正しく動作するようになりました, けれども make test が平行に実行されるとまた問題があります.

多くのコンパイル時警告がきれいになりました. S_emulate_eaccess() のとても頑固なコンパイラ警告は 6回の試行の後に沈静化しました. g++ サポートも, 特にFreeBSDの為にチューニングされました.

mkppport が統合され, コアにある全ての ppport.h ファイルはビルド時に自動生成されるようになりました (そしてクリーンアップで削除されます).

インストールの改善

installman-Duserelocatableinc 及び DESTDIR と共に 動作するようになりました.

installperl か以下の物をインストールしなくなりました:

プラットフォーム関係の変更点

AIX, Cygwin, DEC/OSF, FreeBSD, HP/UX, Irix 6 Linux, MachTen, NetBSD, OS/390, QNX, SCO, Solaris, SunOS, System V Release 5.x (UnixWare 7, OpenUNIX 8), Ultrix, UMIPS, uts 及び VOS に対する ヒントの改善があります.

FreeBSD

Solaris

VMS

Windows


バグ修正のピックアップ

Unicode

内部 Unicode 実装 (UTF-8) に関連する多くの多くのバグが修正されました. 特に, 長く残っていた tie, オーバーロード 若しくは $@ から Unicode を返す関連のバグがいなくなりました, いくつかは報告には あがったことはありません.

unpack は内部的には数値型のUTF-8から文字列に変換し戻すように なりました. これは 5.10 との完全な一貫性と 現在の振る舞いとの妥協です, これは文字列型の"機能"として しばしば使われています.

IO レイヤで :crlf 及び UTF-16 の同時使用は動作するように なりました.

Unicode /\s+/ 及び / \0/ におけるsplit の問題は修正されました.

修正されたバグ RT #40641 - 正規表現における Unicode のエンコーディング (encoding of Unicode characters in regular expressions).

正規表現で特定のパターンを使うとパニックになるバグの修正. [RT #45337]

Perl はロケールの文字が UTF-8 でないと(無限内部再帰によって)長い間 segfault していました [RT #41442]:

    use open ':locale';
    print STDERR "\x{201e}"; # „

PerlIO

PerlIO が Unix ファイルディスクリプタの追跡を維持するために使う リファレンスカウンタ及び XS FILE *を得たり解放したりするのに 使う API の非一貫性が修正されました.

Magic

tie, 汚染(taint) 及びスレッド共有等の機能の実装に使われている 内部システムである Magic に関連するいくつかのバグが修正されました.

いくつかのビット演算はその引数がmagicにかかっているかを検証しない. [RT #24816]

Magic は式 \&$x によって二度呼ばれることはなくなりました

大きな値を割り当てるとtaintが解決されるバグ. [RT #40708]

MAGIC vtable に新しいエントリ svt_local が追加されました. これは magic を local の間に新しい値に複製した時に 使われます. これは共有変数を local するときの問題を有効にします.

実装の詳細は perlguts 内 "Magic Virtual Tables" [CPAN] を参照してください.

オーバーロードされたオブジェクトの再ブレスが可能に

内部的には, perl のオブジェクト性はリファレンスではなく 参照された先のオブジェクトにあります, メソッドはリファレンスを通してのみ呼び出すことができますが. しかしながら, オーバーロードのオリジナルの実装では オーバーロードに関連するフラグをリファレンスに格納していました, リファレンスが複製される若しくは新しいリファレンスの作成時に設定される時は フラグを中継して複製されます. これは明らかにバグの中にあります - もしオブジェクトをオーバーロードを持っているクラスから 持っていないクラスへとブレスし直すと, 他の既存のリファレンスは(そのまま)オーバーロードされたオブジェクトを 示していると考え, その C コードパスを通り, エラーを投げます. 同じように, 他のリファレンスが存在しているときにオーバーロードされている クラスへとブレスするとオーバーロードを使っていないかのようになります.

この実装は 5.10 で修正されました, しかしこれはフラグビットの意味を変更してしまいます, そのためバイナリ互換が維持されず, 5.8.9 へは適用できません. けれども, 5.8.9 は同じバグ修正の実装の回避方法があります. 参照される実体が複数のリファレンスを持っているのなら, 全ての他のリファレンスは検索され, 訂正されます. 完全な検索は現在の関数から外にレキシカル及び引数スタックのスキャンによって 可能であればいつでも回避されます.

あるよく知られた Linux ベンダーはこのバグ修正の不完全な物を 彼らの /usr/bin/perl に適用し, アップストリームに相談することなく パフォーマンスに関するレポートをそうそうに閉じてしまいました. これは十分ではなく, 彼らはその後そのリリースされていない変更に 対する必要な修正を11ヶ月にわたって無視し続けました, 長く苦しめられた支払い顧客から, 広く知られたブログやスラッシュドットでその不手際が取り上げられた ことに触発されて, 大規模な圧力がかけられるまで.

strict は文字列 eval にも波及するように

5.8.8 以前において:

    $ perl -e 'use strict; eval "use foo bar" or die $@'
    Can't locate foo.pm in @INC (@INC contains: ... .) at (eval 1) line 2.
    BEGIN failed--compilation aborted at (eval 1) line 2.

5.8.9 以降において:

    $ ./perl -Ilib -e 'use strict; eval "use foo bar" or die $@'
    Bareword "bar" not allowed while "strict subs" in use at (eval 1) line 1.

これはエラーメッセージをパースしていて間違った振る舞いを当てにしていた プログラムで問題となるかもしれません.

その他の修正

プラットフォーム固有の修正

Darwin / MacOS X

OS/2

Tru64

RedHat Linux

Solaris/i386

VMS

Windows

小さな修正


新しく追加された及び変更された診断メッセージ

panic: sv_chop %s

この新しい致命的なエラーは C ルーティン Perl_sv_chop() に スカラーの文字列バッファにない位置が渡されたときに発生します. これはバグっている XS コードによって引き起こされ, ここからの 修復は出来ません.

Maximal count of pending signals (%s) exceeded

この新しい致命的なエラーは perl プロセスが 待機中のシグナルが増えすぎて, これは perl がさらにくるシグナルを安全に処理できるようにしなければ ならなくてアボートする時に発生します.

panic: attempt to call %s in %s

この新しい致命的なエラーは ACL バージョンファイルテスト演算子が 現在のプラットフォームで提供されていない時に発生します. 早期のチェックでこれは発生しないはずです.

FETCHSIZE returned a negative value

この新しいエラーはタイされた配列が負の数の要素を持つと主張したことを 示します.

Can't upgrade %s (%d) to %d

これまでの SV アップグレードコードからの内部エラーは少ない情報 Can't upgrade that kind of scalar しか返していませんでした. これは現在の内部タイプ及び要求された新しいタイプを報告します.

%s argument is not a HASH or ARRAY element or a subroutine

誤った引数が exists に渡されたときに投げられるこのエラーは, "or a subroutine" を適切に含むようになりました. [RT #38955]

Cannot make the non-overridable builtin %s fatal

Fatal にあるこのエラーは以前は問い合わせにある組み込みの 名前を表示していませんでした(これは %s で出力されるようになります).

Unrecognized character '%s' in column %d

以前のこのエラーはカラムについて言及していませんでした.

Offset outside string

これは PerlIO::scalar を使っているファイルハンドルに対する seek でも生成されるようになりました.

Invalid escape in the specified encoding in regexp; marked by <-- HERE in m/%s/

新しいエラー, 正規表現コメントの Unicode 文字のエンコーディング処理 RT #40641 の修正の一部として導入.

Your machine doesn't support dump/undump.

Win32 及び Cygwin において dump を呼び出したときに より情報を持った致命的なエラーとして発行されます. (dump の目的はコアダンプを生成してアボートすることで, これらのプラットフォームではコアダンプは生成されません, これは静かに終了するよりは役に立つでしょう.)


内部処理の変更

localされている/代入されているmagic変数へのset magicは コンテナのmagicのみ起動されるようになります, すなわち, $#array ではなく %ENV 若しくは %SIG になります.

新しい API マクロ newSVpvs()newSVpvn("ISA", 3) といった 構築の代わりに使います. 単一の文字列定数を受け取り, C のコンパイル時にその長さが決定されます.

新しい API 関数 Perl_newSV_type() は次の一般的な慣用句の より効率的な置き換えとして使えます

    sv = newSV(0);
    sv_upgrade(sv, type);

同じように Perl_newSVpvn_flags()Perl_newSVpv()Perl_sv_2mortal() 若しくは等価な Perl_sv_newmortal()Perl_sv_setpvn() の連結として使えます.

二つの新しいマクロ mPUSHs() 及び mXPUSHs() が追加されました, これらを使うことで mortal SV をスタックに簡単に積めるようになります. これらはスタックに積まれているけれど mortal 化されていない値に 関連するいくつかのバグを修正するのにも使えるでしょう.

Perl_signbit() 関数が NV の符号テストのために追加されました. これは有効であればシステムから提供されている物に対応します.

Perl_av_reify(), Perl_lex_end(), Perl_mod(), Perl_op_clear(), Perl_pop_return(), Perl_qerror(), Perl_setdefout(), Perl_vivify_defelem() 及び Perl_yylex() は拡張から見えるようになりました. これは Windows において Data::Alias が動作するために必要でした.

Perl_find_runcv() は perl コアの拡張から見えるようになりました. これは Sub::Current が Windows で動作するために必要でした.

ptr_table* 関数がスレッドでない perl で提供されるようになりました. Storable はこれを利用します.

内部で多くの小さなクリーンアップが施されました. 特に Perl_sv_upgrade() は出来るだけ単純化され, まっすぐのコードパス, 新しい本体の初期化のために複数の 一時変数から代入するのではなく memset() 及び memcpy() を 使うようになりました. これはアリーナ管理コードの単純か及び 重複除去の利点ももたらしました.

コードベースにおける数多くの小さな改善が Coverity 静的コードアナライザ からの報告で施されました.

Perl_gv_stashpv(), Perl_gv_stashpvn(), Perl_gv_stashsv() 関数の正しい使い方とドキュメント (最後のパラメータは 真偽値ではなくビットマスクです).

PERL_SYS_INIT, PERL_SYS_INIT3 及び PERL_SYS_TERM マクロは 関数へと変更されました.

PERLSYS_TERM はコンテキストを必要としません. PerlIO_teardown() はコンテキスト無しに呼ばれます, そしてこの関数におけるデバッグ出力はそれがインタプリタが 提供されていることを必要とすしてそれは終了時としては 誤った要求であるため無効になりました.

バイナリ互換に影響する全てのコンパイル時のオプションは グローバル変数 (PL_bincompat_options)へと一緒にグループ化されました.

PERL_REVISION, PERL_VERSION 及び PERL_SUBVERSION の値は グローバル変数へと戻りました (そして従って共有 perl ライブラリにも 入ります). 加えて MULTIPLICITY においては, perl 実行形式は インタプリタ構造のサイズ(全体, そしてこのバージョン)を記録するように なりました. PL_bincompat_options と共にこれは 5.8.10 (及びそれ以降)に 対して共有 perl ライブラリと共にビルドされたときに main() で 共有ライブラリが本当にバイナリ互換かを検証して確認することを可能にします.

シンボリックリファレンスは NUL を埋め込めるようになりました. 新しい公開関数 Perl_get_cvn_flags() をその処理が必要であれば 拡張から使えるようになりました.

マクロの整理

コアのコード及び ext 内のXSコードのうち CPAN との二重生活でないものでは, PL_na, NEWSV(), Null(), Nullav, Nullcv, Nullhv, Nullhv etc 等のマクロを使わないようになりました. これらは新しいコードでは推奨されておらず, 特に PL_na は 小さなパフォーマンスへの打撃があります.


新しいテスト

CPAN から更新された多くのモジュールが 新しいテストを組み込みました. いくつかのコアテストが追加されています:

ext/DynaLoader/t/DynaLoader.t

DynaLoader モジュールのテスト.

t/comp/fold.t

実行時の定数たたみ込みのテスト.

t/io/pvbm.t

内部タイプ PVBM 及び PVGV の相互動作に 例外がないことを確認する 5.10.0 から組み込まれたテスト.

t/lib/proxy_constant_subs.t

新しい形式の定数関数のテスト.

t/op/attrhand.t

Attribute::Handlers のテスト.

t/op/dbm.t

dbmopen のテスト.

t/op/inccode-tie.t

最初に @INC を tie した後に t/op/inccode.t の 全てのテストを呼び出し.

t/op/incfilter.t

@INC のコードリファレンスから帰ってきたソースフィルタのテスト.

t/op/kill0.t

RT #30970 のテスト.

t/op/qrstack.t

RT #41484 のテスト.

t/op/qr.t

qr// 構築子のテスト.

t/op/regexp_qr_embed.t

他の正規表現で構築された qr// のテスト.

t/op/regexp_qr.t

qr// 構築子のテスト.

t/op/rxcode.t

RT #32840 のテスト.

t/op/studytied.t

tie されたスカラーにおける study のテスト.

t/op/substT.t

-T モードで実行時の subst のテスト.

t/op/symbolcache.t

関数若しくはメソッドでなければならないスタッシュエントリにおける undef 及び delete のテスト.

t/op/upgrade.t

Perl_sv_upgrade() のテスト.

t/pod/twice.t

Pod::Parser が二度呼ばれたときのテスト.

t/run/cloexec.t

ファイルディスクリプタの exec 経由での継承に関するテスト (close-on-exec).

t/uni/cache.t

UTF-8 キャッシュコードのテスト.

t/uni/chr.t

Perl_pp_chr() がひっくり返らない奇妙なエンコーディングのテスト.

t/uni/greek.t

RT #40641 のテスト.

t/uni/latin2.t

RT #40641 のテスト.

t/uni/overload.t

オーバーロードされた値から Unicode を返すテスト.

t/uni/tie.t

tie された変数から Unicode を返すテスト.


既知の問題

新しいバグはありません.

けれども, 修正されたバグを利用していたプログラムは問題を抱える かもしれません. また, 5.10.0 で施されているバグ修正の多くは 5.8.x ブランチにはバックポート出来ません, なぜならその適用には バイナリ非互換を伴う若しくはその変更は長大で組み入れるにはリスクが高い ためです.

私たちは制限のあるボランティア作業者のみであり, メンテナンスの労務はますます複雑になっています. 従って今回のリリースが 5.8.x シリーズにおける 最後の大きなリリースとなるでしょう. 5.8.x の今後のリリースは恐らくセキュリティに関する物か プラットフォームにおけるビルド不具合のみの対応となるでしょう. 従って 5.10.x への統合をまだ始めていないのなら考えるべきでしょう. 他の方法としてはビジネス要件が 5.8.x の継続を必要としているのなら, ActiveState といった法人からの商用サポートを望むかもしれません.


プラットホーム固有の問題

Win32

readdir(), cwd(), $^X 及び @INC は 長い名前が現在のコードページ外だった場合に代用の(短い)ファイル名を 使います (Jan Dubois).

更新されたモジュール

OS/2

更新されたモジュール

VMS

更新されたモジュール


死亡告知

長い間 Perl ハッカーであり, Tk 及び Encode モジュール, コアにおける perlio.c の作者, そして 5.003_02 pumpking であった Nick Ing-Simmons は心臓発作により2006年9月25日にこの世を去りました. 彼の死は惜しまれます.


謝辞

このリリースにおけるいくつかの作業は TPF grant からの資金によります.

Steve Hay はコアモジュールと, そのCPANリリースと, 前のコアリリースとの 違いを調べ, それらをただす最適解を探してくれました. でももう一度はやりたくないそうです. 今回私にかわってやってくれたことを とてもうれしく思います.

Paul Fenwick は 18 のボランティアチームのとりまとめをして, このドキュメントを書いた後に解いてくれました. 特に, Bradley Dean, Eddy Tan そして Vincent Pit は チームの貢献の半分を提供してくれました.

Andreas König 及び Slaven Rezić の crack Berlin ベースのQAチームは休むことなくスナップショットを 更新し続け, それらの CPAN のほとんどをテストし, どのモジュールでのレグレッションテストをすべき変更かと特定し, 最初のリリース候補が出されるまでにいくつかの最悪なバグをつぶしてくれました.

他のコアコミッタも変更の多くを提供してくれ, AUTHORS に上げられている数多くの提供者から送られてきた パッチを適用してくれました.

そして言うまでもないことですが, Larry Wall に, 彼無しには私たちは Perl をもてませんでした.


バグ報告

もしバグと思われるものが見つかったら, comp.lang.perl.misc ニュース グループに最近投稿された記事や http://bugs.perl.org にある perl バグデータベースを確認してください. Perl ホームページ, http://www.perl.org にも情報はあります.

もしまだ報告されていないバグだと確信したら, そのリリースに含まれている perlbug プログラムをを実行してください. バグの再現スクリプトを 十分小さく, しかし有効なコードに切りつめることを意識してください. バグレポートは perl -V の出力と一緒に perlbug@perl.org に送られ Perl porting チームによって解析されます. Perl 5 のバグについては http://bugs.perl.org/ で閲覧及び検索することができます.


関連項目

Changes には完全な変更箇所があります.

INSTALL には Perl をビルドする方法があります.

README には一般的な事項があります.

Artistic 及び Copying には著作権情報があります.


和訳

 山科 氷魚 (YAMASHINA Hio) <hio@hio.jp>

原典: perl VERSION 5.8.9-RC1. 翻訳日: 2008-11-11.

perldelta - perl v5.8.9 の新機能

索引

perldelta - perl v5.8.9 の新機能