Kentaro Shirakata
argra****@users*****
2006年 4月 13日 (木) 05:23:51 JST
Index: docs/perl/5.8.4/perl58delta.pod diff -u docs/perl/5.8.4/perl58delta.pod:1.2 docs/perl/5.8.4/perl58delta.pod:1.3 --- docs/perl/5.8.4/perl58delta.pod:1.2 Wed Apr 12 20:49:49 2006 +++ docs/perl/5.8.4/perl58delta.pod Thu Apr 13 05:23:51 2006 @@ -443,7 +443,7 @@ =head2 pack/unpack D/F recycled -(pack/unpackのD/Fを再利用) +(pack/unpack の D/F を再利用) =begin original @@ -454,10 +454,10 @@ =end original -文書化されていなかったpack/unpackのテンプレートの文字D/Fはよりよい用途の +文書化されていなかった pack/unpack のテンプレートの文字 D/F はよりよい用途の ために再利用されました。現在これらはlong double(もしプラットフォームによって -サポートされていれば)と?V(Perlの内部浮動小数点型)を意味します。 -(これらは以前はd/fの別名でしたが、皆さんは知らなかったでしょう。) +サポートされていれば)と NV (Perl の内部浮動小数点型)を意味します。 +(これらは以前は d/f の別名でしたが、皆さんは知らなかったでしょう。) =head2 glob() now returns filenames in alphabetical order @@ -470,11 +470,11 @@ =end original -glob() (あるいは<...>)から得られるファイル名のリストは、cshに従って +glob() (あるいは<...>)から得られるファイル名のリストは、csh に従って デフォルトでアルファベット順にソートされるようになりました(これは大部分の -UNIXプラットフォームで以前に起こったことです)。(bsd_glob()は、 -GLOB_ALPHASORTが指定されなければ、いまだプラットフォーム依存でASCII順 -またはEBCDIC順でソートします。) [561] +UNIX プラットフォームで以前に起こったことです)。(bsd_glob() は、 +GLOB_ALPHASORT が指定されなければ、いまだプラットフォーム依存で ASCII 順 +または EBCDIC 順でソートします。) [561] =head2 Deprecations @@ -491,7 +491,7 @@ =end original -bless(REF, REF)の意味は不明瞭なので、誰かがなんらかの意味をなすことを +bless(REF, REF) の意味は不明瞭なので、誰かがなんらかの意味をなすことを 証明するまでは禁止とします。 =item * @@ -522,7 +522,6 @@ unintended chdir() to the home directory, therefore this behaviour is deprecated. - =item * =begin original @@ -534,9 +533,9 @@ =end original -組み込み関数dump()は時代の流れにしたがって大半の有用性が失われて -来ました。コアダンプの関数は明示的にC<CORE::dump()>を呼び出すことが -可能になっても残ることでしょうが、将来のリリースでは無条件にC<dump()>を +組み込み関数 dump() は時代の流れにしたがって大半の有用性が失われて +来ました。コアダンプの関数は明示的に C<CORE::dump()> を呼び出すことが +可能になっても残ることでしょうが、将来のリリースでは無条件に C<dump()> を 呼び出した際、そのふるまいが変更されるかも知れません。 =item * @@ -550,7 +549,7 @@ =end original -eg/ディレクトリに入っているつまらない例は削除されました。おもしろい例を +eg/ ディレクトリに入っているつまらない例は削除されました。おもしろい例を 提案することは歓迎しますが、主となる問題は例はドキュメントが書かれること、 及びテストされることと(一番大切なことですが)保守が必要だと言うことです。 @@ -564,9 +563,9 @@ =end original -(偽の)エスケープシーケンス\8と\9はオプショナルの警告("Unrecognized +(偽の)エスケープシーケンス \8 と \9 はオプショナルの警告("Unrecognized escape passed through") を与えるようになりました。どの C<\w> 文字も -\-escapeする必要はありません。 +\-escape する必要はありません。 =item * @@ -592,7 +591,7 @@ C<package;> 構文(引数のない C<package>)は非推奨になりました。 そのセマンティクスは明瞭でなく、その実装はさらに明瞭ではありませんでした。 -もしこの特徴をfully qualified variablesでないものを全て許さないために +もしこの特徴を完全修飾変数名でないものを全て許さないために 使っているのであれば、かわりに C<use strict;> を使ってください。 =item * @@ -606,7 +605,7 @@ =end original -実装されていないPOSIX正規表現の機能[[.cc.]]と[[=c=]]は、いまだ +実装されていない POSIX 正規表現の機能[[.cc.]]と[[=c=]]は、いまだ 認識されますが致命的エラーを出すようになりました。デフォルトで無視し 要求があれば警告を出すという以前の動作は、ある意味ではその機能が 使えていたと誤って思わせていたため、歓迎しがたいものでした。 @@ -621,8 +620,8 @@ =end original -PerlIOを意識しないXSモジュールは、将来リリースされるPerlで完全にサポート -されなくなる可能性があります。PerlIOはソースコードレベルではstdioの +PerlIO を意識しない XS モジュールは、将来リリースされる Perl で完全にサポート +されなくなる可能性があります。PerlIO はソースコードレベルでは stdio の ちょっとした置き換えでしかないので、これはそれほど大変な変更には ならないはずです。 @@ -678,8 +677,8 @@ しまいます。C<fields> プラグマのインターフェースは利用可能なまま残る でしょう。I<restricted hashes> のインターフェースは代用のインターフェース (L<Hash::Util> を参照してください)になると考えられています。もし既存の -プログラムが根底にある実装に依存しているのであれば、CPANの -L<Class::PseudoHash>を使うことを考慮してください。 +プログラムが根底にある実装に依存しているのであれば、CPAN の +L<Class::PseudoHash> を使うことを考慮してください。 =item * @@ -689,7 +688,7 @@ =end original -構文C<< @a->[...] >>とC<< %h->{...} >>は非推奨になりました。 +構文 C<< @a->[...] >> と C<< %h->{...} >> は非推奨になりました。 =item * @@ -701,9 +700,9 @@ =end original -数年の試みの後、suidperlは本当に安全であると見なすには複雑になりすぎて -いると考えられています。おそらくsuidperlの機能は将来のリリースで -取り除かれるでしょう。 +数年の試みの後、suidperl は本当に安全であると見なすには複雑になりすぎて +いると考えられています。 +おそらく suidperl の機能は将来のリリースで取り除かれるでしょう。 =item * @@ -716,9 +715,9 @@ =end original -5.005のスレッドモデル(モジュール C<Thread>)は非推奨となり、Perl 5.10 で -取り除かれる予定です。マルチスレッド化されたコードは新しいithreadモデルに -移るべきです(L<threads>, L<threads::shared>, L<perlthrtut>を参照してください)。 +5.005 のスレッドモデル(モジュール C<Thread>)は非推奨となり、Perl 5.10 で +取り除かれる予定です。マルチスレッド化されたコードは新しい ithread モデルに +移るべきです(L<threads>, L<threads::shared>, L<perlthrtut> を参照してください)。 =item * @@ -815,7 +814,7 @@ Unicode は全体的に Perl 5.6.0(あるいは 5.6.1 さえ)よりもさらに使えるように なったはずです。Unicode はハッシュキー中に使われることが可能で、正規表現での Unicode、tr/// での Unicode、I/O での Unicode は動作するようになったはずです。 -入門についてはL<perluniintro>を、詳細についてはL<perluniintro>を +入門については L<perluniintro> を、詳細については L<perluniintro> を 参照してください。 =over 4 @@ -833,7 +832,7 @@ Perl に付属する Unicode Character Database は Unicode 3.2.0 に アップグレードされました。 さらなる情報が欲しい場合は http://www.unicode.org/ を参照してください。 -[561+] (5.6.1ではUCD 3.0.1でした。) +[561+] (5.6.1 では UCD 3.0.1 でした。) =item * @@ -960,7 +959,7 @@ =end original -もしプラットフォームがfork()をサポートしていれば、パイプに対してリスト +もしプラットフォームが fork() をサポートしていれば、パイプに対してリスト 形式の C<open> を使うことができます。例えば: open KID_PS, "-|", "ps", "aux" or die $!; @@ -973,7 +972,7 @@ =end original -これはps(1)コマンドを(open() に対して引数が 3 つよりも多いので、シェルを +これは ps(1) コマンドを(open() に対して引数が 3 つよりも多いので、シェルを 起動することなしに)fork し、その標準出力を C<KID_PS> ファイルハンドルを 通して読み出します。L<perlipc> を参照してください。 @@ -1022,11 +1021,11 @@ =end original -もし環境変数(LC_ALL, LC_CTYPE, LANG)がUTF-8を使いたがっているように +もし環境変数(LC_ALL, LC_CTYPE, LANG)が UTF-8 を使いたがっているように 見える(それらの変数のいずれかが C</utf-?8/i> にマッチする)ならば、 -ハンドルSTDIN, STDOUT, STDERRおよびデフォルトのopen層(L<open> を -参照してください)はUTF-8にマークされます。(この機能は、UnicodeとI/Oを -結びつける他の新機能と同じように、PerlIOを使っている場合にのみ働きますが、 +ハンドル STDIN, STDOUT, STDERR およびデフォルトの open 層(L<open> を +参照してください)は UTF-8 にマークされます。(この機能は、Unicode と I/O を +結びつける他の新機能と同じように、PerlIO を使っている場合にのみ働きますが、 しかしそれがデフォルトです。) =begin original @@ -1038,10 +1037,10 @@ =end original -このPerl以降は本当に全てをUTF-8だと仮定することに注意してください。 -例えば、もしそうでない入力ハンドルがあれば、Perlはおそらくすぐに +この Perl 以降は本当に全てを UTF-8 だと仮定することに注意してください。 +例えば、もしそうでない入力ハンドルがあれば、Perl はおそらくすぐに 入力データについて"Malformed UTF-8 ..."というように不平を言い出します。 -なぜなら以前の8ビットのデータは全てUTF-8を満たしていないからです。 +なぜなら以前の 8 ビットのデータは全て UTF-8 を満たしていないからです。 =begin original @@ -1053,11 +1052,11 @@ =end original -コード作者に対する注意: ユーザがUTF-8をデフォルトのエンコーディングと -して使えるようにしたいが、コードにはいまだ(例えば画像やzipファイルのような) -8ビットのI/Oストリームがある場合、open()やbinmode()に対して明示的に +コード作者に対する注意: ユーザが UTF-8 をデフォルトのエンコーディングと +して使えるようにしたいが、コードにはいまだ(例えば画像や zip ファイルのような) +8 ビットの I/O ストリームがある場合、open() や binmode() に対して明示的に C<:bytes> (L<perlfunc/open> と L<perlfunc/binmode> を参照してください)を -つけるか、あるいは単にC<binmode(FH)>を使うことができます (5.8.0以前の +つけるか、あるいは単に C<binmode(FH)> を使うことができます (5.8.0 以前の 後方互換性にとって良いでしょう)。 =item * @@ -1069,8 +1068,8 @@ =end original -ファイルハンドルは読み書きの際":encoding()"層経由でPerlの内部的な -Unicode形式に、あるいは内部的なUnicode形式から変換することが可能です。 +ファイルハンドルは読み書きの際":encoding()"層経由で Perl の内部的な +Unicode 形式に、あるいは内部的な Unicode 形式から変換することが可能です。 =item * @@ -1080,7 +1079,7 @@ =end original -ファイルハンドルをPerlのスカラーに保持されている"メモリ内"ファイルに +ファイルハンドルを Perl のスカラーに保持されている"メモリ内"ファイルに 対して開くことができます。 open($fh,'>', \$variable) || ... @@ -1155,7 +1154,7 @@ リストリクトハッシュは使用するキーをある集合に制限し、 集合に含まれないキーを追加をすることを防ぎます。 さらにそれぞれのキーに対して削除や値の変更を制限することができます。 -Hash::Utilモジュールがそのインターフェイスになり、 +Hash::Util モジュールがそのインターフェイスになり、 新しい構文は複雑にはなりません。 =head2 Safe Signals @@ -1189,7 +1188,7 @@ この変更は、シグナルが Perl をただちに中断させなくなったため、驚くべき 副作用を持っているかもしれません。現在の Perl は、最初に例えば(sort() のような) -内部操作や(I/O 操作のような)外部操作を1つ完了することによって今行っている +内部操作や(I/O 操作のような)外部操作を 1 つ完了することによって今行っている ことを終わらせ、その後にのみ(そして次の操作を開始する前に)受け取った シグナルを調べます。現在の操作が必ず初めに終わらせられるので内部状態の 改変は無くなりましたが、シグナルが効果を発揮するためにはより多くの時間が @@ -1230,7 +1229,7 @@ Perl は、数の変換や基本計算(+ - * /)において、もし引数が整数ならば内部的に 整数値を使うように努め、さらに、内部的に整数として記憶された結果を 保持するように努めるようになりました。この変更により、わずかに速くなる -ことがよく起こり、常にless lossy arithmeticsになります。 +ことがよく起こり、常に less lossy arithmetics になります。 (Perl は以前は常に計算時には浮動小数点数を優先していました。) =head2 Arrays now always interpolate into double-quoted strings [561] @@ -1261,7 +1260,7 @@ =end original -(リテラル@exampleはバックスラッシュが必要になりました) でした。 +(リテラル @example はバックスラッシュが必要になりました) でした。 バージョン 5.004_01 から 5.6.0 では、そのエラーは In string, @example now must be written as \@example @@ -1275,7 +1274,7 @@ =end original -(文字列内では、@exampleは\@exampleと書かなければならなくなりました) で +(文字列内では、@example は \@example と書かなければならなくなりました) で した。これは、リテラルの記号 C<$> が欲しければ C<"Give me back my \$5"> と 必ず書いているように、リテラルの記号 C<@> が欲しければ C<"fred\@example.com"> と書く癖を人々に身に付けさせるためのものでした。 @@ -1305,7 +1304,7 @@ =end original -(意図しない可能性のある文字列内での@exampleの展開) +(意図しない可能性のある文字列内での @example の展開) これは、もし C<@> にバックスラッシュを付けなければ C<"fred****@examp*****"> は C<fred.com> に変わるだろうという警告です。この経緯についての詳細は http://www.plover.com/~mjd/perl/at-error.html を参照してください。 @@ -1325,6 +1324,9 @@ =end original +AUTOLOAD は左辺値になれるようになりました。 +つまり AUTOLOAD サブルーチンに :lvalue 属性を追加したり、 +AUTOLOAD 返り値を割り当てたり出来るようになりました。 =item * @@ -1338,6 +1340,12 @@ =end original +$Config{byteorder}(と config.h における対応する BYTEORDER)は +sizeof(long) が 4 で sizeof(IV) が 8 のプラットフォームでは +間違っていました。バイトオーダーは sizeof(long) バイト長だけでした +(1234 か 4321)が、正しく sizeof(IV) バイト長になりました +(112345678 か 87654321)。 +(これは Windows プラットフォームには影響を与えません。) =begin original @@ -1347,17 +1355,20 @@ =end original +また、$Config{byteorder} は動的に算出されるようになりました-- +これにより、複数のバイナリプラットフォームを含む実行イメージである +"fat binaries"やクロスコンパイル時により頑強になりました。 =item * -=begin original +=begin original C<perl -d:Module=arg,arg,arg> now works (previously one couldn't pass in multiple arguments.) =end original -C<perl -d:Module=arg,arg,arg>が使用可能になりました。 +C<perl -d:Module=arg,arg,arg> が使用可能になりました。 (以前は複数の引数を渡すことができませんでした。) =item * @@ -1371,6 +1382,11 @@ =end original +C<do> の後に裸の単語が続く場合、この単語はキーワードではないことが +保証されるようになりました(これは C<do q(foo.pl)> が C<q> という +名前のサブルーチンを呼び出そうとするバグを防ぐためです)。 +つまり、C<do format()> ではなく C<do &format()> と書かなければならない +ことを意味します。 =item * @@ -1386,13 +1402,13 @@ =end original -組み込みのdump()は現在オプショナルな警告である +組み込みの dump() は現在オプショナルな警告である C<dump() better written as CORE::dump()>を出すようになりました。 それはデフォルトのC<dump(...)>によるものはユーザーによって -定義された(可能性のある)C<sub dump>としてではなく -coreを出して中断する組み込みのdump()として解決されると言う意味です。 -前者を呼び出すためにはC<&dump(...)>として下さい。 -(dump()という形式全体が非推奨とされていますので、将来のリリースに備えて +定義された(可能性のある) C<sub dump> としてではなく +core を出して中断する組み込みの dump() として解決されると言う意味です。 +前者を呼び出すためには C<&dump(...)> として下さい。 +(dump() という形式全体が非推奨とされていますので、将来のリリースに備えて 可能な限り消去・変更するようにして下さい。) =item * @@ -1406,8 +1422,8 @@ =end original -chomp()及びchop()はオーバーライド可能になりました。しかしながら、 -プロトタイプ(C<prototype("CORE::chomp")>によって与えられるもの)が +chomp() 及び chop() はオーバーライド可能になりました。しかしながら、 +プロトタイプ(C<prototype("CORE::chomp")> によって与えられるもの)が 未定義で、理由はそれを表現することは不可能で、組み込まれているものを オーバーライドする以外の方法が本当に無いからだと言うことに注意して下さい。 @@ -1423,6 +1439,11 @@ =end original +END ブロックは BEGIN ブロックで exit/die しても実行されるようになりました。 +内部では、END ブロックの実行は PL_exit_flags & PERL_EXIT_DESTRUCT_END で +制御されるようになりました。これによって組み込み Perl での +新しい振る舞いが有効になります。これは 5.10 ではデフォルトになる予定です。 +L<perlembed> を参照してください。 =item * @@ -1432,6 +1453,7 @@ =end original +フォーマットはゼロ埋めされた数値フィールドに対応しました。 =item * @@ -1444,10 +1466,10 @@ =end original -"すべきではない"のですが、Perlのハッシュキーの順序に依存したコードを -書くことが可能でした(Data::Dumperが行っています)。新しいアルゴリズムで -ある"One-at-a-Time"では違ったハッシュキーの順序になります。より詳しくは -L</"Performance Enhancements"> にあります。 +"すべきではない"のですが、Perl のハッシュキーの順序に依存したコードを +書くことが可能でした(Data::Dumper が行っています)。 +新しい"一期一会"アルゴリズムでは違ったハッシュキーの順序になります。 +より詳しくは L</"Performance Enhancements"> にあります。 =item * @@ -1458,7 +1480,7 @@ =end original -lstat(FILEHANDLE)という操作は意味を成さないので警告を出すようになりました。 +lstat(FILEHANDLE) という操作は意味を成さないので警告を出すようになりました。 将来のリリースでは致命的エラーになるかもしれません。 =item * @@ -1470,7 +1492,7 @@ =end original -glob()が最初にFile::Globをロードさせる要因となるという状況で、 +glob() が最初に File::Glob をロードさせる要因となるという状況で、 誤った構文エラーが生成されることが修正されました。[561] =item * @@ -1482,6 +1504,9 @@ =end original +左辺値のサブルーチンがリストコンテキストで C<undef> を返すことが +出来るようになりました。しかし、左辺値サブルーチン機能は +未だ実験的です。[561+} =item * @@ -1493,7 +1518,7 @@ =end original 失われた警告"Can't declare ... dereference in my"が復活しています。 -(初期のPerlはその警告を出しますが、その後のリリースでは失われていました。) +(初期の Perl はその警告を出しますが、その後のリリースでは失われていました。) =item * @@ -1504,6 +1529,8 @@ =end original +新しい特別な正規表現変数が導入されました: +C<$^N> にはもっとも最近の閉じたグループ(部分マッチ)の内容が入ります。 =item * @@ -1515,8 +1542,8 @@ =end original -C<no Module;>はモジュールがunimport()メソッドを持っていない際でもエラーを -発生させません。これはC<use>の振る舞いがC<import>と比較して +C<no Module;> はモジュールが unimport() メソッドを持っていない際でもエラーを +発生させません。これは C<use> の振る舞いが C<import> と比較して 類似しているからです。[561] =item * @@ -1528,7 +1555,7 @@ =end original -数を比較する演算子でどちらかのオペランドがNaNの場合C<undef>を返すように +数を比較する演算子でどちらかのオペランドが NaN の場合 C<undef> を返すように なりました。以前はその振る舞いが不定でした。 =item * @@ -1541,9 +1568,9 @@ =end original -C<our>は複数のインタプリタ間でどのようにグローバル変数が共有されるかに -影響を及ぼす実験的でオプショナルな属性C<unique>を設定可能になりましたので、 -L<perlfunc/our>を参照してください。 +C<our> は複数のインタプリタ間でどのようにグローバル変数が共有されるかに +影響を及ぼす実験的でオプショナルな属性 C<unique> を設定可能になりました。 +L<perlfunc/our> を参照してください。 =item * @@ -1555,7 +1582,7 @@ =end original 次に挙げる組み込み関数はオーバーライド可能になりました: each(), keys(), -pop(), push(), shift(), splice(), unshift(). [561] +pop(), push(), shift(), splice(), unshift() [561] =item * @@ -1566,6 +1593,8 @@ =end original +C<pack() / unpack()> はテンプレート文字を C<()> でまとめて、 +グループに対して繰り返し/カウント修飾子を適用できるようになりました。 =item * @@ -1577,6 +1606,10 @@ =end original +C<pack() / unpack()> は Perl 内部数値タイプである IV, UV, NV を +処理できるようになりました。プラットフォームがサポートしていれば +long double も処理できます。 +テンプレート文字はそれぞれ C<j>, C<J>, C<F>, C<D> です。 =item * @@ -1586,6 +1619,8 @@ =end original +C<pack('U0a*', ...)> は文字列を UTF-8 に強制するために使えるように +なりました。 =item * @@ -1595,7 +1630,7 @@ =end original -my __PACKAGE__ $obj が動作するようになりました。 +my __PACKAGE__ $obj が動作するようになりました。[561] =item * @@ -1607,8 +1642,8 @@ =end original -sleepした秒数を返すCORE::sleep()とは逆に、POSIX::sleep()は -I<sleepしなかった>秒数を返すようになりました(POSIXが標準でそうするように)。 +sleep した秒数を返す CORE::sleep() とは逆に、POSIX::sleep() は +(POSIX が標準でそうするように)I<sleep しなかった>秒数を返すようになりました。 =item * @@ -1619,8 +1654,8 @@ =end original -printf()とsprintf()はC<%\d+\$>とC<*\d+\$>と言う構文を用いることによって -パラメーターの並べ替えができるようになりました。例えば、 +printf() と sprintf() は C<%\d+\$> と C<*\d+\$> と言う構文を用いることによって +パラメータの並べ替えができるようになりました。例えば、 printf "%2\$s %1\$s\n", "foo", "bar"; @@ -1633,7 +1668,7 @@ =end original は"bar foo\n"を表示します。この形式は国際化されたソフトウェアを書く際の -助けとなり、一般的にはパラメーターを並びを変化させることができます。 +助けとなり、一般的にはパラメータの並びを変化させることができます。 =item * @@ -1655,7 +1690,7 @@ =end original プロトタイプ(\[$@%&])は暗黙にリファレンスを作成することが可能になりました -(tie()のインターフェースをエミュレートしたい場合に便利です)。 +(tie() のインターフェースをエミュレートしたい場合に便利です)。 =item * @@ -1669,12 +1704,12 @@ =end original -新しいコマンドラインオプションであるC<-t>が使用可能になりました。 -これはC<-T>のちょっとした弟分で、汚染違反の嵐で強制終了 +新しいコマンドラインオプションである C<-t> が使用可能になりました。 +これは C<-T>の ちょっとした弟分で、汚染違反の嵐で強制終了 させる代わりにレキシカル警告を発生させます。 -B<これは古いレガシーなアプリケーションのコードが安全である限り +B<これは古いレガシーなアプリケーションのコードを安全にする間 一時的なデバッグするのを助けるものであることを意味するだけです。 --Tの代わりにはなりません。> +-T の代わりにはなりません。> =item * @@ -1689,6 +1724,14 @@ =end original +汚染に関するその他のニュースとしては、 +C<exec LIST> と C<system LIST> は危険すぎると考えることに +なりました(C<exec @ARGV> を考えてみてください: あらゆるプログラムを +あらゆる引数で起動できます)。そしてレキシカル警告化では +このような形は警告を発生させます。 +正当性を保証するために引数を注意深く洗浄するべきです。 +将来のリリースでは Perl はこのような形式は致命的エラーとなるので、 +今のうちに洗浄を検討してください。 =item * @@ -1699,7 +1742,7 @@ =end original -tieされたハッシュのインターフェースは現在EXISTSとDELETEメソッドを +tie されたハッシュのインターフェースは EXISTS と DELETE メソッドを 持っていることが要求されるようになりました(それ自身か継承される対象の どちらかがです)。 @@ -1712,6 +1755,7 @@ =end original +tr/// が単に文字を数えるだけの場合、ターゲットを変更しません。 =item * @@ -1722,8 +1766,8 @@ =end original -untie()は現在UNTIE()フックが存在すれば、それを呼び出します。 -詳細はL<perltie>を参照してください。 +untie() は UNTIE() フックが存在すれば、それを呼び出すようになりました。 +詳細は L<perltie> を参照してください。 =item * @@ -1734,8 +1778,8 @@ =end original -L<utime>は現在ファイルのタイムスタンプを現在の時刻に変更するために -C<utime undef, undef @files>をサポートします。 +L<utime> はファイルのタイムスタンプを現在の時刻に変更するために +C<utime undef, undef, @files> をサポートするようになりました。 =item * @@ -1748,7 +1792,7 @@ =end original 定数のアンダースコア(アンダーバー)に関するのルールは緩和され -シンプルになりました: 現在単純にB<数字の間>であれば +シンプルになりました: 単純に B<数字の間> であれば アンダースコアを含んでも構いません。 =item * @@ -1761,6 +1805,11 @@ =end original +$^X は、C の argv[0](フルパス名が含まれていないかもしれません)に +依存するのではなく、オペレーティングシステムに問い合わせることで +設定するようになりました。 +(Linux では F</proc/self/exe>、FreeBSD では F</proc/curproc/file> を +読み込みます。) =item * @@ -1781,7 +1830,7 @@ =end original -ビルトインのreadline()がオーバーライド可能になり、<FILEHANDLE>といった +ビルトインの readline() がオーバーライド可能になり、<FILEHANDLE>といった 角括弧の演算子も同時にオーバーライドします。 =item * @@ -1793,7 +1842,7 @@ =end original -コマンドラインオプションである-sと-Fはshebang(#!)行を認識する +コマンドラインオプションである -s と -F は shebang(#!) 行を認識する ようになりました。 =item * @@ -1805,6 +1854,8 @@ =end original +C</c> マッチ修飾子を C</g> を使わずに使った場合、警告を発生させます: +C<Use of /c modifier is meaningless without /g>。 =begin original @@ -1813,6 +1864,8 @@ =end original +C</c> を置換で用いた場合、C</g> と共に使っても +C<Use of /c modifier is meaningless in s///> を発生させます。 =begin original @@ -1821,6 +1874,8 @@ =end original +C</g> を C<split> で使用すると +C<Use of /g modifier is meaningless in split> を発生させます。 =item * @@ -1836,6 +1891,13 @@ =end original +Support for the C<CLONE> special subroutine had been added. +With ithreads, when a new thread is created, all Perl data is cloned, +however non-Perl data cannot be cloned automatically. In C<CLONE> you +can do whatever you need to do, like for example handle the cloning of +non-Perl data, if necessary. C<CLONE> will be executed once for every +package that has it defined or inherited. It will be called in the +context of the new thread, so all modifications are made in the new area. =begin original @@ -1843,6 +1905,7 @@ =end original +L<perlmod> を参照してください。 =back @@ -1865,9 +1928,8 @@ =end original -C<Attribute::Handlers>は、元々Damian Conwayが作ったものですが -現在Arthur Bergmanによって保守されており、属性ハンドラを -定義することができます。 +Damian Conway が作成し、現在 Arthur Bergman によって保守されている +C<Attribute::Handlers> は、属性ハンドラを定義できます。 =begin original @@ -1887,7 +1949,7 @@ # その後、あるpackageでMyPackを使う、あるいは継承すると... - my MyPack $Fluffy : Wolf; # 属性ハンドラWolfが呼び出されるでしょう + my MyPack $Fluffy : Wolf; # 属性ハンドラWolfが呼び出されます =begin original @@ -1899,9 +1961,9 @@ =end original 変数とルーチンの両方とも属性ハンドラを持つことが可能です。ハンドラは -ある型(SCALAR, ARRAY, HASH, CODEのいずれか)に特有であるか、あるいは -まさにその編簒段階(BEGIN, CHECK, INITまたはEND)に特有である -可能性があります。L<Attribute::Handlers>を参照してください。 +ある型(SCALAR, ARRAY, HASH, CODE のいずれか)に特有であるか、あるいは +まさにそのコンパイルフェーズ(BEGIN, CHECK, INIT, END のいずれかに特有である +可能性があります。L<Attribute::Handlers> を参照してください。 =item * @@ -1913,6 +1975,9 @@ =end original +C<B::Concise>, by Stephen McCamant, is a new compiler backend for +walking the Perl syntax tree, printing concise info about ops. +The output is highly customisable. See L<B::Concise>. [561+] =item * @@ -1924,9 +1989,9 @@ =end original -Telsによる新しいbignum, bigint, bigratプラグマですが、 -透過的なbignumサポートを実装しています(the Math::BigInt, -Math::BigFloat, そしてMath::BigRatをバックエンドで使うことによって)。 +Tels による新しい bignum, bigint, bigrat プラグマは +(the Math::BigInt, Math::BigFloat, Math::BigRat を +バックエンドで使うことによって)透過的な bignum サポートを実装しています。 =item * @@ -1937,8 +2002,9 @@ =end original -Sean BrukeによるC<Class::ISA>ですが、クラスのISAツリーのサーチパスを -レポートするためのモジュールです。L<Class::ISA>を参照してください。 +Sean Bruke による C<Class::ISA> は、クラスの ISA ツリーのサーチパスを +レポートするためのモジュールです。 +L<Class::ISA> を参照してください。 =item * @@ -1950,6 +2016,9 @@ =end original +C<Cwd> now has a split personality: if possible, an XS extension is +used, (this will hopefully be faster, more secure, and more robust) +but if not possible, the familiar Perl implementation is used. =item * @@ -1962,11 +2031,12 @@ =end original -C<Devel::PPPort>は、もともとKenneth Albanowskiによって作られましたが -現在はPaul Marquessによって保守されているのですが、追加されることに -なりました。このモジュールは異なるバージョン間でのXSモジュールにおける -携帯性を向上させるためにC<h2xs>によって優先的に使用されます。 -L<Devel::PPPort>を参照してください。 +Kenneth Albanowski によって作成され、 +現在は Paul Marquess によって保守されている +C<Devel::PPPort> が追加されました。 +このモジュールは異なるバージョン間での XS モジュールにおける +移植性を向上させるために C<h2xs> によって優先的に使用されます。 +L<Devel::PPPort> を参照してください。 =item * @@ -1977,9 +2047,9 @@ =end original -C<Digest>はダイジェスト(チェックサム)を計算するためのフロントエンドの -モジュールで、Gisle Aasによるものですが、追加されることになりました。 -L<Digest>を参照してください。 +Gisle Aas による、ダイジェスト(チェックサム)を計算するための +フロントエンドのモジュールである C<Digest> が追加されました。 +L<Digest> を参照してください。 =item * @@ -1990,8 +2060,9 @@ =end original -Gisle AasによるC<Digest::MD5>はRFC 1321に従ってMD5ダイジェスト(チェックサム)の -算出を行いますが、追加されることになりました。L<Digest::MD5>を参照してください。 +Gisle Aas による、RFC 1321 に従って MD5 ダイジェスト(チェックサム)の +算出を行う C<Digest::MD5> が追加されました。 +L<Digest::MD5> を参照してください。 use Digest::MD5 'md5_hex'; @@ -2006,7 +2077,7 @@ =end original -注意: 過去互換性のためのC<MD5>モジュールはこの先 +注意: 過去互換性のための C<MD5> モジュールはこの先 使われる見込みがなくなったため意図的に含まれていません。 =begin original @@ -2033,16 +2104,16 @@ =end original -C<Encode>は元々Nick Ing-Simmonsによって作られたものですが、現在Dan Kogaiに -よって保守されており、異なるキャラクターエンコーディング間を変換する -メカニズムを提供します。Unicode, ISO-8859-1及びASCIIをサポートし -モジュール内にまとめられています。他のいくつかのエンコーディング -(ISO-8859, CP*/Win*, Mac, KOI8-R, 3通りのEBCDIC, 中国語, 日本語, +Nick Ing-Simmons によって作成され、現在 Dan Kogai によって保守されている +C<Encode> は異なる文字エンコーディング間を変換する +機構を提供します。Unicode, ISO-8859-1, ASCII のサポートは +コンパイル時にモジュール内に含まれます。他のいくつかのエンコーディング +(ISO-8859, CP*/Win*, Mac, KOI8-R, 3 通りの EBCDIC, 中国語, 日本語, そして韓国語エンコーディングのような一部のもの)は含まれており -ランタイムによってロードすることが可能です。(スペースを考えて、 -一番大きい中国語のエンコーディングは独自のCPANモジュールである -Encode::HanExtraとして隔離されており、Encodeは利用可能な -場合利用するでしょう)。L<Encode>を参照してください。 +実行時にロード可能です。(スペースを考えて、 +一番大きい中国語のエンコーディングは独自の CPAN モジュールである +Encode::HanExtra として隔離されており、Encode は利用可能な +場合利用するでしょう)。L<Encode> を参照してください。 =begin original @@ -2051,8 +2122,8 @@ =end original -Encodeモジュールによってサポートされたいかなるエンコーディングも -PerlIOが使用されている場合":encoding()"層が使用可能です。 +Encode モジュールによってサポートされたいかなるエンコーディングも +PerlIO が使用されている場合":encoding()"層が使用可能です。 =item * @@ -2064,9 +2135,9 @@ =end original -C<Hash::Util>は新しいI<制限ハッシュ>へのインターフェースです。 -(Jeffrey Friedl, Nick Ing-Simmons,そしてMichael Schwernによるものです。) -L<Hash::Util>を参照してください。 +C<Hash::Util> は新しい I<制限ハッシュ> へのインターフェースです。 +(Jeffrey Friedl, Nick Ing-Simmons, Michael Schwern によるものです。) +L<Hash::Util> を参照してください。 =item * @@ -2077,6 +2148,8 @@ =end original +C<I18N::Langinfo> はロケール情報の問い合わせに使えます。 +L<I18N::Langinfo> を参照してください。 =item * @@ -2087,8 +2160,8 @@ =end original -C<I18N::LangTags>はSean Brukeによるものですが、RFC3066スタイルの -言語タグを扱うための関数を持ちます。L<I18N::LangTags>を参照してください。 +C<I18N::LangTags> は Sean Bruke によるもので、RFC3066 スタイルの +言語タグを扱うための関数を持ちます。L<I18N::LangTags> を参照してください。 =item * @@ -2100,6 +2173,9 @@ =end original +C<ExtUtils::Constant>, by Nicholas Clark, is a new tool for extension +writers for generating XS code to import C header constants. +See L<ExtUtils::Constant>. =item * @@ -2110,9 +2186,9 @@ =end original -C<Filter::Simple>はDamian Conwayによるものですが、フロントエンドで -Filter::Util::Callを簡単に扱えるようにしたものです。<Filter::Simple>を -参照してください。 +C<Filter::Simple> は Damian Conway によるもので、フロントエンドで +Filter::Util::Call を簡単に扱えるようにしたものです。 +L<Filter::Simple> を参照してください。 =begin original @@ -2174,9 +2250,9 @@ =end original -C<File::Temp>はTim Jennessによるものですが、簡単かつ移殖性があり +C<File::Temp> は Tim Jenness によるもので、簡単かつ移殖性があり セキュアな方法でテンポラリファイル及びディレクトリを作ることを可能にします。 -L<File::Temp>を参照してください。 +L<File::Temp> を参照してください。 =item * @@ -2188,10 +2264,10 @@ =end original -C<Filter::Util::Call>はPaul Marquessによるものですが、I<source filters> -をPerlで書くためのフレームワークを提供します。大抵の場合には -フロントエンドのFilter::Simpleを使う方法が好まれます。 -<Filter::Util::Call>を参照してください。 +C<Filter::Util::Call> は Paul Marquess によるもので、I<source filters> を +Perl で書くためのフレームワークを提供します。大抵の場合には +フロントエンドの Filter::Simple を使う方法が好まれます。 +<Filter::Util::Call> を参照してください。 =item * @@ -2202,7 +2278,7 @@ =end original -C<if>はIlya Zakharevichによるものですが、一定条件下でのモジュールの +C<if> は Ilya Zakharevich によるもので、モジュールの条件付き インクルードを実現するための新しいプラグマです。 =item * @@ -2216,10 +2292,10 @@ =end original -L<libnet>はGraham Barrによるものですが、ネットワークプログラミング関連の -Perl5モジュールを集めたものです。L<Net::FTP>とL<Net::NNTP>及び、 -L<Net::Ping>(libnetの一部ではありませんが、関連しています。)、 -L<Net::POP3>、L<Net::SMTP>を参照してください。 +L<libnet> は Graham Barr によるもので、ネットワークプログラミング関連の +Perl5 モジュールを集めたものです。 +L<Net::FTP>, L<Net::NNTP>, L<Net::Ping>(libnet の一部では +ありませんが、関連しています), L<Net::POP3>, L<Net::SMTP> を参照してください。 =begin original @@ -2228,8 +2304,8 @@ =end original -Perlのインストールではlibnetが設定されないまま放置されます;設定するためには -F<libnetcfg>を使って下さい。 +Perl のインストールでは libnet は設定されません; +設定するためには F<libnetcfg> を使って下さい。 =item * @@ -2241,9 +2317,10 @@ =end original -C<List::Util>はGraham Barrによるものですが、sum()やmin(), first()及び -shuffle()などのようなリストに関する一般的なユーティリティサブルーチンが -集まったものです。L<List::Util>を参照してください。 +C<List::Util> は Graham Barrによるもので、sum(), min(), first(), +shuffle() などのようなリストに関する一般的なユーティリティサブルーチンが +集まったものです。 +L<List::Util> を参照してください。 =item * @@ -2345,7 +2422,7 @@ =end original -L<MIME::Base64>を参照してください。 +L<MIME::Base64> を参照してください。 =item * @@ -2358,7 +2435,7 @@ =end original C<MIME:QuotedPrint> は Gisle Aas によるもので、 -RFC 2045 - I<MIME(Multipurpose Internet Mail Extensions)>で +RFC 2045 - I<MIME(Multipurpose Internet Mail Extensions)> で 定義されている quoted-printable encoding でデータをエンコードすることを 可能にします。 @@ -2376,7 +2453,7 @@ =end original -<PerlIO::via::QuotedPrint>も併せて参照してください。 +<PerlIO::via::QuotedPrint> も併せて参照してください。 =item * @@ -2399,7 +2476,7 @@ =end original -C<open>はopen()のためのデフォルトのI/O層をセットするための +C<open> は open() のためのデフォルトの I/O 層をセットするための 新しいプラグマです。 =item * @@ -2442,8 +2519,8 @@ =end original -C<PerlIO::via::QuotedPrint>はElizabeth Mattijsenによるものですが、 -C<PerlIO::via>クラスの一例です: +C<PerlIO::via::QuotedPrint> は Elizabeth Mattijsen によるもので、 +C<PerlIO::via> クラスの一例です: use PerlIO::via::QuotedPrint; open($fh,">:via(QuotedPrint)",$path); @@ -2455,8 +2532,8 @@ =end original -これは自動的にC<$fh>への全ての出力をQuoted-Printableにコンバートします。 -L<PerlIO::via>及びL<PerlIO::via::QuotedPrint>を参照してください。 +これは自動的に C<$fh> への全ての出力を Quoted-Printable にコンバートします。 +L<PerlIO::via> 及び L<PerlIO::via::QuotedPrint> を参照してください。 =item * @@ -2468,9 +2545,8 @@ =end original -C<Pod::ParseLink>はRuss Allberyによるもので、新しい -pod内で新しいperlpod仕様として記述されるLZ<><>リンクを -パースするためのものですが、追加されることになりました。 +Russ Allbery による、新しい podpodspec 内で記述されている LZ<><> リンクを +パースするための C<Pod::ParseLink> が追加されました。 =item * @@ -2482,9 +2558,9 @@ =end original -Joe Smith による C<Pod::Text::Overstrike>が追加されました。 -PODデータをフォーマットされた overstrike 文章にコンバートします。 -L<Pod::Text::Overstrike>を参照してください。 +Joe Smith による C<Pod::Text::Overstrike> が追加されました。 +POD データをフォーマットされた overstrike 文章にコンバートします。 +L<Pod::Text::Overstrike> を参照してください。[561+] =item * @@ -2495,9 +2571,9 @@ =end original -C<Scalar::Util>はblessed(), reftype()やtainted()のような、 +C<Scalar::Util> は blessed(), reftype(), tainted() のような、 一般的に使われるスカラーサブルーチンを選り集めたものです。 -L<Scalar::Util>を参照してください。 +L<Scalar::Util> を参照してください。 =item * @@ -2507,7 +2583,7 @@ =end original -C<sort>はsort()の振る舞いを制御する新しいプラグマです。 +C<sort> は sort() の振る舞いを制御する新しいプラグマです。 =item * @@ -2553,7 +2629,7 @@ =end original -と宣言することによってC<switch>とC<case>がPerlで利用可能になります。 +と宣言することによって C<switch> と C<case> が Perl で利用可能になります。 use Switch; @@ -2577,7 +2653,7 @@ =end original -L<Switch>を参照してください。 +L<Switch> を参照してください。 =item * @@ -2601,8 +2677,8 @@ =end original -C<Test::Simple>は Michael Schwern によるテストを書くための基礎となる -ユーティリティです。L<Test::Simple>を参照してください。 +C<Test::Simple> は Michael Schwern によるテストを書くための基礎となる +ユーティリティです。L<Test::Simple> を参照してください。 =item * @@ -2626,7 +2702,7 @@ =end original -$aは"'never say never'"なり、 $bは', he never said'になるでしょう。 +$a は"'never say never'"になり、 $b は', he never said'になるでしょう。 =begin original @@ -2638,10 +2714,11 @@ =end original -extract_delimited()に加えて、extract_quotelike(), extract_variable(), -extract_tagged(), extract_multople(), gen_delimited_pat(),及びgen_extract_tagged() -も存在します。これらによって、より発展したパースのアルゴリズムを実装することが -可能になります。L<Text::Balanced>を参照してください。 +extract_delimited() に加えて、extract_quotelike(), extract_variable(), +extract_tagged(), extract_multople(), gen_delimited_pat(), +gen_extract_tagged() も存在します。これらによって、 +より発展したパースのアルゴリズムを実装することが可能になります。 +L<Text::Balanced> を参照してください。 =item * @@ -2659,7 +2736,7 @@ インターフェースです。インタプリタスレッド(ithreads)は Perl5.6 で導入された 新しいスレッドモデルでしたが拡張機能を書く人に対して内部形式の インターフェースのみしか利用できませんでした -(また、Win32のPerlではC<fork()>のエミュレーションのためのものでした)。 +(また、Win32 の Perl では C<fork()> のエミュレーションのためのものでした)。 L<threads>, L<threads::shared>, L<perlthrtut> を参照してください。 =item * @@ -2671,8 +2748,9 @@ =end original -C<threads::shared>はArtur Bergmanによるものですが、インタプリタスレッドで -データを共有することを可能にします。<threads::shared>を参照してください。 +C<threads::shared> は Artur Bergman によるものですが、インタプリタスレッドで +データを共有することを可能にします。 +L<threads::shared>を参照してください。 =item * @@ -2710,10 +2788,10 @@ =end original -C<Tie::RefHash::Nestable>はEdward Avisによるもので、ハッシュのリファレンスを -格納することを可能にします(標準の Tie::RefHash とは異なるものです)。 -本モジュールは Tie::Refhash に含まれています。 -L<Tie::RefHash>を参照してください。 +C<Tie::RefHash::Nestable> は Edward Avis によるもので、ハッシュの +リファレンスを格納することを可能にします(標準の Tie::RefHash とは +異なるものです)。本モジュールは Tie::Refhash に含まれています。 +L<Tie::RefHash> を参照してください。 =item * @@ -2724,9 +2802,9 @@ =end original -C<Time::HiRes>はDouglas E. Wegcheidによるもので、高精度の -時間操作(ualarm, usleep, and gettimeofday)を提供します。 -L<Time::HiRes>を参照してください。 +C<Time::HiRes> は Douglas E. Wegcheid によるもので、高精度の +時間操作(ualarm, usleep, gettimeofday)を提供します。 +L<Time::HiRes> を参照してください。 =item * @@ -2737,8 +2815,9 @@ =end original -C<Unicode::UCD>はUnicode文字のデータベースへのクエリーのインターフェースを -提供します。L<Unicode::UCD>を参照してください。 +C<Unicode::UCD> は Unicode 文字のデータベースへのクエリーの +インターフェースを提供します。 +L<Unicode::UCD> を参照してください。 =item * @@ -2831,7 +2910,7 @@ =end original -attributes::reftype()は現在を持って tie された引数で動作するようになりました。 +attributes::reftype() は tie された引数で動作するようになりました。 =item * @@ -2841,7 +2920,7 @@ =end original -AutoLoader は C<no AutoLoader;>によって無効にすることが +AutoLoader は C<no AutoLoader;> によって無効にすることが 可能になりました。 =item * @@ -2882,7 +2961,7 @@ =end original -Class::Structはコンパイル時にクラスを定義できるようになりました。 +Class::Struct はコンパイル時にクラスを定義できるようになりました。 =item * @@ -2893,7 +2972,7 @@ =end original -Class::StructはアクセサがB<単一で>配列/ハッシュの要素の引数を伴って、 +Class::Struct はアクセサが B<単一で> 配列/ハッシュの要素の引数を伴って、 呼び出された場合、その配列/ハッシュの要素を割り当てます。 =item * @@ -2904,7 +2983,7 @@ =end original -Cwd::fastcwd()の返り値は汚染されるようになりました。 +Cwd::fastcwd() の返り値は汚染されるようになりました。 =item * @@ -2914,7 +2993,7 @@ =end original -Data::Dumperにはハッシュをソートするオプションがつきました。 +Data::Dumper にはハッシュをソートするオプションがつきました。 =item * @@ -2976,7 +3055,7 @@ =end original -(もちろん、問題のある C<$`>, C<$&>, or C<$'> を使わないことを仮定しています。.) +(もちろん、問題のある C<$`>, C<$&>, or C<$'> を使わないことを仮定しています。) また、C<@-> と C<@+> の別名として C<@LAST_MATCH_START> と C<@LAST_MATCH_END> が導入されました。 @@ -2992,7 +3071,7 @@ =end original ExtUtils::MakeMaker は大幅にクリーンアップされ、修正されました。 -拡張されたバージョンはPerl の以前のリリースにもバックポートされ、 +拡張されたバージョンは Perl の以前のリリースにもバックポートされ、 CPAN に登録されたので、以前のリリースでも修正を享受できます。 =item * @@ -3034,9 +3113,9 @@ =end original -Fnctl, Socket,及びSys::SyslogはNicholas Clarkによって +Fnctl, Socket, Sys::Syslog は Nicholas Clark によって 新しいスタイルの継続的なディスパッチセクションを用いるため書き直されました -(L<ExtUtils::Constant>を参照してください)。 +(L<ExtUtils::Constant> を参照してください)。 これはより強力で高速化が期待されることを意味します。 =item * @@ -3047,7 +3126,8 @@ =end original -File::Findのシンボリックリンクの追跡の際のchdir()の動作が正確になりました。[561] +File::Find のシンボリックリンクの追跡の際の chdir() の動作が +正確になりました。[561] =item * @@ -3111,6 +3191,8 @@ =end original +File::Glob は、返されるファイル名のリストのサイズを制限するための +C<GLOB_LIMIT> 定数に対応しました。 =item * @@ -3120,6 +3202,7 @@ =end original +IPC::Open3 で数値のファイル記述子が使えるようになりました。 =item * @@ -3131,6 +3214,9 @@ =end original +IO::Socket に atmark() メソッドが追加され、ソケットが out-of-band マークの +位置にある場合に真を返します。 +このメソッドは sockatmark() 関数としてエクスポートされます。 =item * @@ -3141,6 +3227,9 @@ =end original +IO::Socket::INET はサービス名が不明な場合、特定のポートを開くのに +失敗していました。 +与えられたポート番号そのままを使うように修正されました。[561] =item * @@ -3152,6 +3241,9 @@ =end original +IO::Socket::INET が(プラットフォームが対応していれば) ReusePort オプションに +対応しました。Reuse オプションは ReuseAddr というエイリアスを持ちます。 +明確化のために、ReuseAddr の方を使いたいと思うかもしれません。 =item * @@ -3162,6 +3254,8 @@ =end original +IO::Socket::INET は C<LocalPort> にゼロを指定できるようになりました +(普通これはオペレーティングシステムが値を決定することを意味します)。 =item * @@ -3172,6 +3266,8 @@ =end original +'use lib' は @INC と全く同じように動作するようになりました。 +'no lib' でディレクトリを削除できるようになりました。 =item * @@ -3183,7 +3279,9 @@ =end original - +Math::BigFloat と Math::BigInt は Tels によって完全に書き直されました。 +大きく高速化され、バックエンドとして GMP や PARI のような +さまざまな bignum ライブラリに対応しました。 =item * =begin original @@ -3192,6 +3290,7 @@ =end original +Math::Complex は inf, NaN などをよりよく扱うようになりました。 =item * @@ -3207,6 +3306,14 @@ =end original +Net::Ping は Rob Brown によってかなり拡張されました: +マルチホーミングに対応し、Win32 の機能が改善され、 +時間計測機能(TIme::HiRes を使った高精度計測にも対応しています)が +追加されました。 +また、外部 ping ユーティリティを使って出力をパースする、 +Net::Ping::External モジュールによって「外部」プロトコルに +対応しました。 +Net::Ping::External は CPAN で入手可能です。 =begin original @@ -3219,6 +3326,12 @@ =end original +Net::Ping のテストの一部は Perl ディストリビューションで +実行するときに無効になっていることに注意してください。 +これは、localhost の有効な echo ポート、完全なインターネット接続性、 +同情的なファイアウォールといった情報を仮定できないためです。 +Perl テストスイートを実行する前に環境変数 PERL_TEST_Net_Ping を "1" に +設定することで Net::Ping の全てのテストが有効になります。 =item * @@ -3230,6 +3343,9 @@ =end original +POSIX::sigaction() はより柔軟で頑強になりました。 +コードリファレンス、'DEFAULT', 'IGNORE' のハンドラや、 +アトミックでない新しいハンドラを設定できます。 =item * @@ -3240,6 +3356,8 @@ =end original +Safe では、use/require が動くように C<%INC> は Safe コンパートメントの +中ではローカル化されます。 =item * @@ -3251,6 +3369,10 @@ =end original +DOS 風プラットフォームでの SDBM_File において、 +"穴"のあるファイルに対応していないためにキーのいくつかが +失われていました。 +この問題の回避策が追加されました。 =item * @@ -3261,6 +3383,8 @@ =end original +Search::Dict において、検索された行のためのプリプロセスフックが +追加されました。 =item * @@ -3270,6 +3394,7 @@ =end original +Shell モジュールに OO インターフェースが追加されました。 =item * @@ -3281,6 +3406,8 @@ =end original +Sys::Syslog において、メッセージのロギングに成功するまで +次の接続を行うというフェイルオーバー機構が追加されました。 =item * @@ -3290,6 +3417,7 @@ =end original +Test モジュールは大幅に拡張されました。 =item * @@ -3301,6 +3429,9 @@ =end original +Time::Local::timelocal() はもはや小数の秒を扱いません。 +この理由は、localtime() が対応していないということと、 +timelocal() と localtime() は互いに対称であると想定されるからです。 =item * @@ -3311,6 +3442,8 @@ =end original +vars プラグマは完全修飾変数の宣言に対応しました。 +(C<our()> は対応せず、対応の予定もありません。) =item * @@ -3323,6 +3456,9 @@ =end original +C<utf8::> 名前空間は(プラグマのように) Perl の内部 Unicode 表現への +低レベルアクセスを提供するさまざまな Perl から呼び出せる関数を提供します。 +現在のところ length() のみが実装されています。 =back @@ -3341,6 +3477,8 @@ =end original +Emacs perl mode (emacs/cperl-mode.el) はバージョン 4.31 に +更新されました。 =item * @@ -3350,6 +3488,7 @@ =end original +F<emacs/e2ctags.pl> は遥かに速くなりました。 =item * @@ -3360,6 +3499,8 @@ =end original +C<enc2xs> は Encode モジュールに独自のエンコーディングを追加するための +ツールです。 =item * @@ -3369,6 +3510,7 @@ =end original +C<h2ph> は C トライグラフに対応しました。 =item * @@ -3378,6 +3520,7 @@ =end original +C<h2xs> は README のテンプレートを生成するようになりました。 =item * @@ -3388,6 +3531,8 @@ =end original +C<h2xs> は Perl の異なるバージョンの間での移植性を高めるために +C<Devel::PPPort> を使うようになりました。 =item * @@ -3405,6 +3550,15 @@ =end original +C<h2xs> uses the new L<ExtUtils::Constant|ExtUtils::Constant> module +which will affect newly created extensions that define constants. +Since the new code is more correct (if you have two constants where the +first one is a prefix of the second one, the first constant B<never> +got defined), less lossy (it uses integers for integer constant, +as opposed to the old code that used floating point numbers even for +integer constants), and slightly faster, you might want to consider +regenerating your extension code (the new scheme makes regenerating +easy). L<h2xs> now also supports C trigraphs. =item * @@ -3414,6 +3568,7 @@ =end original +libnet を設定するために C<libnetcfg> が追加されました。 =item * @@ -3424,6 +3579,8 @@ =end original +C<perlbug> はより頑強になりました。 +また、perl.com ではなく perl.org にバグレポートを送信します。 =item * @@ -3437,6 +3594,10 @@ =end original +C<perlcc> は書き直され、ユーザーインターフェース(つまりコマンドライン)は +より UNIX C コンパイラである cc と近いものになりました。 +(perlbc ツールは削除されました。代わりに C<perlcc -B> を使ってください。) +B<perlcc はいまだ非常に実験的で未サポートであることに注意してください。> [561] =item * @@ -3447,6 +3608,8 @@ =end original +C<perlivp> は Perl インストール後にいつでも使える +新しいインストール検証手順ユーティリティです。 =item * @@ -3457,6 +3620,8 @@ =end original +C<piconv> は文字変換ユーティリティ C<iconv> の実装で、 +新しい Encode モジュールのデモ用です。 =item * @@ -3466,6 +3631,7 @@ =end original +C<pod2html> はキャッシュディレクトリを指定できるようになりました。 =item * @@ -3475,6 +3641,7 @@ =end original +C<pod2html> は XHTML 1.0 を生成できるようになりました。 =item * @@ -3485,6 +3652,8 @@ =end original +C<pod2html> は異なる改行コード(PC 風の CRLF と UNIX 風の LF と +MacClassic 風の CR)で書かれた POD を理解するようになりました。 =item * @@ -3496,6 +3665,9 @@ =end original +C<s2p> は完全に Perl で書き直されました。 +(これは実際のところ sed の Perl による完全な実装です: +C<psed> ユーティリティを使うことで sed の機能を使うことができます。) =item * @@ -3506,6 +3678,8 @@ =end original +C<xsubpp> は *.xs に組み込まれた POD ドキュメントを理解するように +なりました。 =item * @@ -3515,11 +3689,14 @@ =end original +C<xsubpp> は OUT キーワードに対応しました。 =back =head1 New Documentation +(新しいドキュメント) + =over 4 =item * @@ -3531,6 +3708,7 @@ =end original +perl56delta はリリース 5.005 と 5.6.0 の違いに関する詳細です。 =item * @@ -3542,6 +3720,8 @@ =end original +prtlclib は標準 C ライブラリ関数の内部置き換えについてのドキュメントです。 +(拡張を書く人と Perl コアのハッカーにのみ興味があるものです。)[561+] =item * @@ -3551,6 +3731,7 @@ =end original +perldebtut は Perl デバッグのチュートリアルです。[561+] =item * @@ -3561,6 +3742,8 @@ =end original +perlebcdic は Perl を EBCDIC プラットフォームで動作させる場合に +考慮するべきことを記述しています。[561+] =item * @@ -3570,6 +3753,7 @@ =end original +perlintro は Perl の穏やかな説明です。 =item * @@ -3579,6 +3763,7 @@ =end original +perliol は PerlIO と層の内部について記述しています。 =item * @@ -3588,6 +3773,7 @@ =end original +perlmodstyle はモジュールを書くときのスタイルガイドです。 =item * @@ -3597,6 +3783,8 @@ =end original +perlnewmod は新しいモジュールを書いて、登録する方法を +記述しています。[561+] =item * @@ -3606,6 +3794,7 @@ =end original +perlpacktut は pack() のチュートリアルです。 =item * @@ -3616,6 +3805,8 @@ =end original +perlpod はより明確にするためと、何年にも渡って行われてきた +ベストプラクティスを記録するために書き直されました。 =item * @@ -3627,6 +3818,8 @@ =end original +perlpodspec は pod フォーマットに関するよりフォーマルな仕様書で、 +主に pod を書く人ではなく、pod アプリケーションを書く人のためのものです。 =item * @@ -3636,6 +3829,7 @@ =end original +perlretut は正規表現のチュートリアルです。[561+] =item * @@ -3646,6 +3840,8 @@ =end original +perlrequick は正規表現のクイックスタートガイドです。 +実際、perlretut より遥かに素早く始められます。[561] =item * @@ -3655,6 +3851,7 @@ =end original +perltodo は更新されました。 =item * @@ -3665,6 +3862,9 @@ =end original +perltootc は perltooc に名前が変わりました +(ファイル名が"8.3"に制限されているファイルシステムで perltoot と +競合しないためです)。 =item * @@ -3676,6 +3876,8 @@ =end original +perluniintro は Perl で Unicode を使うための説明です。 +(perlunicode はより詳細なリファレンスと背景情報です) =item * @@ -3686,6 +3888,8 @@ =end original +perlutil は Perl ディストリビューションと共に配布されている +コマンドラインユーティリティの説明です。[561+] =back @@ -3697,6 +3901,9 @@ =end original +以下のプラットフォーム固有のドキュメントが利用可能です。 +インストール前は README.I<platform>、インストール後は +perlI<platform> という名前です。 perlaix perlamiga perlapollo perlbeos perlbs2000 perlce perlcygwin perldgux perldos perlepoc perlfreebsd perlhpux @@ -3712,6 +3919,9 @@ =end original +これらのドキュメントは通常以下のような内容の詳細がが記されています: +設定、ビルド、テスト、インストール、そのプラットフォームで Perl を +動かすときに関係する内容。 =begin original @@ -3723,6 +3933,11 @@ =end original +東アジアの Perl ユーザーは自身の言語で迎えられることになりました: +README.jp (日本語), README.ko (韓国語), README.cn (簡体中国語), +README.tw (繁体中国語) は通常の pod として書かれていますが、 +それぞれ EUC-JP, EUC-KR, EUC-CN, Big5 でエンコードされています。 +これらは以下の名前でインストールされます。 perljp perlko perlcn perltw @@ -3737,6 +3952,8 @@ =end original +POSIX-BC プラットフォームのドキュメントは "BS2000" と呼ばれます。 +Perl POSIX モジュールと混乱しないためです。 =item * @@ -3748,6 +3965,9 @@ =end original +WinCE プラットフォームのドキュメントは perlce (ソースコードキットでは +README.ce) という名前です。 +8.3 制限のファイルシステムで perlwin32 ドキュメントと混乱しないためです。 =back @@ -3767,7 +3987,7 @@ =end original -map()は生成した結果のリストが元のリストよりも大きいときに +map() は生成した結果のリストが元のリストよりも大きいときに 病的に遅くなることがありました。 そのパフォーマンスが一般的な場面において改善されました。[561] @@ -3781,7 +4001,7 @@ =end original -sort()は、sort関数自身がsort()を呼ぶことができるという意味で、 +sort() は、sort 関数自身が sort() を呼ぶことができるという意味で、 完全に再入可能です。 それは以前のリリースでは確実には動作しませんでした。[561] @@ -3801,6 +4021,15 @@ =end original +sort() は今まではクイックソートでしたが、代わりにマージソートを +使うようになりました。非常に小さいリストではソート時間が少し +遅くなりますが、一般的には少なくとも 20% は高速化されるはずです。 +追加の利点としては最悪の場合の sort() の振る舞いが改善されます +(コンピュータ科学の表現では、クイックソートでは最悪の場合に +実行時に Theta(N**2) かかっていたものが O(N log N) になります)。 +そして sort() は安定したものになります +(つまり同じキーを持つ要素はソート前と同じ順序になります)。 +詳しくは C<sort> プラグマを参照してください。 =begin original @@ -3809,6 +4038,7 @@ =end original +詳細を検討するための想定: 円周率の一部を自分で提供したいと仮定します。 @digits = ( 3,1,4,1,5,9 ); @@ -3822,6 +4052,11 @@ =end original +A numerical sort of the digits will yield (1,1,3,4,5,9), as expected. +Which C<1> comes first is hard to know, since one C<1> looks pretty +much like any other. You can regard this as totally trivial, +or somewhat profound. However, if you just want to sort the even +digits ahead of the odd ones, then what will sort { ($a % 2) <=> ($b % 2) } @digits; @@ -3839,6 +4074,15 @@ =end original +yield? The only even digit, C<4>, will come first. But how about +the odd numbers, which all compare equal? With the quicksort algorithm +used to implement Perl 5.6 and earlier, the order of ties is left up +to the sort. So, as you add more and more digits of Pi, the order +in which the sorted even and odd digits appear will change. +and, for sufficiently large slices of Pi, the quicksort algorithm +in Perl 5.8 won't return the same results even if reinvoked with the +same input. The justification for this rests with quicksort's +worst case behavior. If you run sort { $a <=> $b } ( 1 .. $N , 1 .. $N ); @@ -3858,6 +4102,17 @@ =end original +(something you might approximate if you wanted to merge two sorted +arrays using sort), doubling $N doesn't just double the quicksort time, +it I<quadruples> it. Quicksort has a worst case run time that can +grow like N**2, so-called I<quadratic> behaviour, and it can happen +on patterns that may well arise in normal use. You won't notice this +for small arrays, but you I<will> notice it with larger arrays, +and you may not live long enough for the sort to complete on arrays +of a million elements. So the 5.8 quicksort scrambles large arrays +before sorting them, as a statistical defence against quadratic behaviour. +But that means if you sort the same large array twice, ties may be +broken in different ways. =begin original @@ -3868,6 +4123,10 @@ =end original +Because of the unpredictability of tie-breaking order, and the quadratic +worst-case behaviour, quicksort was I<almost> replaced completely with +a stable mergesort. I<Stable> means that ties are broken to preserve +the original order of appearance in the input array. So sort { ($a % 2) <=> ($b % 2) } (3,1,4,1,5,9); @@ -3890,6 +4149,20 @@ =end original +will yield (4,3,1,1,5,9), guaranteed. The even and odd numbers +appear in the output in the same order they appeared in the input. +Mergesort has worst case O(N log N) behaviour, the best value +attainable. And, ironically, this mergesort does particularly +well where quicksort goes quadratic: mergesort sorts (1..$N, 1..$N) +in O(N) time. But quicksort was rescued at the last moment because +it is faster than mergesort on certain inputs and platforms. +For example, if you really I<don't> care about the order of even +and odd digits, quicksort will run in O(N) time; it's very good +at sorting many repetitions of a small number of distinct elements. +The quicksort divide and conquer strategy works well on platforms +with relatively small, very fast, caches. Eventually, the problem gets +whittled down to one that fits in the cache, from which point it +benefits from the increased memory speed. =begin original @@ -3903,6 +4176,13 @@ =end original +Quicksort was rescued by implementing a sort pragma to control aspects +of the sort. The B<stable> subpragma forces stable behaviour, +regardless of algorithm. The B<_quicksort> and B<_mergesort> +subpragmas are heavy-handed ways to select the underlying implementation. +The leading C<_> is a reminder that these subpragmas may not survive +beyond 5.8. More appropriate mechanisms for selecting the implementation +exist, but they wouldn't have arrived in time to save quicksort. =item * @@ -3919,6 +4199,14 @@ =end original +ハッシュは Bob Jenkins の"一期一会"ハッシュキーアルゴリズム +( http://burtleburtle.net/bob/hash/doobs.html )を使うようになりました。 +このアルゴリズムは十分に高速で、古いハッシュアルゴリズム +(Chris Torek によって書かれ、後に Ilya Zakharevich に変更されたもの)より +値の拡散がよいです。 +このアルゴリズムによる全ての 3 文字の印字可能な ASCII 文字によるキーの +ハッシュ値は DIEHARD 乱数生成テストをほとんど通過するものです。 +perlbench によれば、この変更は Perl 全体の速度に影響を与えません。 =item * @@ -3928,7 +4216,7 @@ =end original -unshift()は目立つほど速くなったはずです。 +unshift() は目立つほど速くなったはずです。 =back @@ -5333,13 +5621,8 @@ =item * -=begin original - BSDI 4.* -=end original - - =begin original Perl now works on post-4.0 BSD/OSes. @@ -5349,13 +5632,8 @@ =item * -=begin original - All BSDs -=end original - - =begin original Setting C<$0> now works (as much as possible; see L<perlvar> for details). @@ -5365,13 +5643,8 @@ =item * -=begin original - Cygwin -=end original - - =begin original Numerous updates; currently synchronised with Cygwin 1.3.10. @@ -5390,13 +5663,8 @@ =item * -=begin original - EPOC -=end original - - =begin original EPOC now better supported. See README.epoc. [561] @@ -5406,13 +5674,8 @@ =item * -=begin original - FreeBSD 3.* -=end original - - =begin original Perl now works on post-3.0 FreeBSDs. @@ -5422,13 +5685,8 @@ =item * -=begin original - HP-UX -=end original - - =begin original README.hpux updated; C<Configure -Duse64bitall> now works; @@ -5439,13 +5697,8 @@ =item * -=begin original - IRIX -=end original - - =begin original Numerous compilation flag and hint enhancements; accidental mixing @@ -5456,13 +5709,8 @@ =item * -=begin original - Linux -=end original - - =over 8 =item * @@ -5489,13 +5737,8 @@ =item * -=begin original - Mac OS Classic -=end original - - =begin original Compilation of the standard Perl distribution in Mac OS Classic should @@ -5508,13 +5751,8 @@ =item * -=begin original - MPE/iX -=end original - - =begin original MPE/iX update after Perl 5.6.0. See README.mpeix. [561] @@ -5535,13 +5773,8 @@ =item * -=begin original - NetBSD/sparc -=end original - - =begin original Perl now works on NetBSD/sparc. @@ -5551,13 +5784,8 @@ =item * -=begin original - OS/2 -=end original - - =begin original Now works with usethreads (see INSTALL). [561] @@ -5567,13 +5795,8 @@ =item * -=begin original - Solaris -=end original - - =begin original 64-bitness using the Sun Workshop compiler now works. @@ -5583,13 +5806,8 @@ =item * -=begin original - Stratus VOS -=end original - - =begin original The native build method requires at least VOS Release 14.5.0 @@ -5602,13 +5820,8 @@ =item * -=begin original - Tru64 (aka Digital UNIX, aka DEC OSF/1) -=end original - - =begin original The operating system version letter now recorded in $Config{osvers}. @@ -5621,13 +5834,8 @@ =item * -=begin original - Unicos -=end original - - =begin original Fixed various alignment problems that lead into core dumps either @@ -5640,13 +5848,8 @@ =item * -=begin original - VMS -=end original - - =begin original See L</"Socket Extension Dynamic in VMS"> and L</"IEEE-format Floating Point @@ -5726,13 +5929,8 @@ =item * -=begin original - Windows -=end original - - =over 8 =item * @@ -6595,6 +6793,14 @@ =end original +いくつかの新しいテストが追加されました。特に F<lib> と F<ext> +サブセクションのためのものです。 +現在およそ 69000 個のテスト(700 ほどのテストスクリプトに +拡散しています)と、退行テスト(5.6.1 は 258 テストスクリプトに 11700 テストが +あります)があります。 +正確な数はプラットフォームと Perl の設定によります。 +多くの新しいテストはもちろん新しいモジュールのためのものですが、 +一般的な Perl も更なるテストを受けています。 =begin original @@ -6606,6 +6812,9 @@ =end original +テストの数が多いので、退行テストは予想よりかなり時間がかかります: +perl 5.6 の 4-5 倍長い時間がかかります。 +本当に速いマシンでのみ(壁時計時間で) 6-8 分で終了する望みがあります。 =begin original @@ -6615,6 +6824,9 @@ =end original +テストは以前の Perl と違う順番で報告します。 +(これは t/lib 以下のテストスクリプトがテストするライブラリ/拡張に +より近い位置に移動したからです。) =head1 Known Problems @@ -6622,6 +6834,8 @@ =head2 The Compiler Suite Is Still Very Experimental +(コンパイラスイートは未だ非常に実験的です) + =begin original The compiler suite is slowly getting better but it continues to be @@ -6629,6 +6843,8 @@ =end original +コンパイラスイートは少しずつ良いものになっていますが、 +非常に実験的なままです。製品環境に使うことは薦められません。 =head2 Localising Tied Arrays and Hashes Is Broken @@ -6673,6 +6889,19 @@ =end original +Some extensions like mod_perl are known to have issues with +`largefiles', a change brought by Perl 5.6.0 in which file offsets +default to 64 bits wide, where supported. Modules may fail to compile +at all, or they may compile and work incorrectly. Currently, there +is no good solution for the problem, but Configure now provides +appropriate non-largefile ccflags, ldflags, libswanted, and libs +in the %Config hash (e.g., $Config{ccflags_nolargefiles}) so the +extensions that are having problems can try configuring themselves +without the largefileness. This is admittedly not a clean solution, +and the solution may not even work at all. One potential failure is +whether one can (or, if one can, whether it's a good idea to) link +together at all binaries with different ideas about file offsets; +all this is platform-dependent. =head2 Modifying $_ Inside for(..) @@ -6686,6 +6915,9 @@ =end original +これが警告なしに動作します。そうあるべきではありません。 +(ループ中の左辺値要素のみが変更可能であるべきです。) +1..5 を 1, 2, 3, 4, 5 に置き換えると正しい振る舞いを見ることが出来ます。 =head2 mod_perl 1.26 Doesn't Build With Threaded Perl @@ -6695,6 +6927,7 @@ =end original +mod_perl 1.27 以降を使ってください。 =head2 lib/ftmp-security tests warn 'system possibly insecure' @@ -6704,6 +6937,7 @@ =end original +あわてるな。INSTALL の 'make test' の項目を読んでください。 =head2 libwww-perl (LWP) fails base/date #51 @@ -6713,6 +6947,7 @@ =end original +libwww-perl 5.65 以降を使ってください。 =head2 PDL failing some tests @@ -6722,6 +6957,7 @@ =end original +PDL 2.3.4 以降を使ってください。 =head2 Perl_get_sv @@ -6786,6 +7022,10 @@ =end original +このテストが失敗する場合、libc(C ライブラリ)がスレッドセーフでないことを +示しています。このテストはスレッドセーフかどうかを検出するために +localtime() コールにストレステストをかけます。 +さらなる情報については L<perlthrtut> を参照してください。 =head2 Failure of Thread (5.005-style) tests @@ -6798,9 +7038,9 @@ =end original B<5.005スタイルでのスレッド操作は非推奨事項になり、 -試験的にではありますがほとんどサポート外となったと言うことを -覚えておいて下さい。5.10では、削除されることが期待されています。 -あなたのコードはithreadに移行すべきです。> +試験的でほとんどサポート外となったと言うことを +覚えておいて下さい。5.10では、削除される予定です。 +ithread に移行すべきです。> =begin original @@ -6810,8 +7050,8 @@ =end original -以下のテストは5.005のスレッド操作の実行における根本的な問題の結果失敗する -ことが知られています。これらは新しい失敗事例ではありません--Perl5.005_0xでも +以下のテストは 5.005 のスレッド操作の実行における根本的な問題の結果失敗する +ことがわかっています。これらは新しい失敗事例ではありません--Perl5.005_0x でも 同じバグを持っていたのですが、テストされなかったのです。 ../ext/B/t/xref.t 255 65280 14 12 85.71% 3-14 @@ -6838,8 +7078,9 @@ =end original -これらの失敗は5.005スタイルのスレッドの根本的な部分が破綻していると -見なされているため、修正される見込みは薄いです。(基本的に起こることとしては、 +5.005 スタイルのスレッドは根本的な部分が破綻していると +見なされているため、これらの失敗が修正される見込みは薄いです。 +(基本的に起こることとしては、 矛盾したスレッドがグローバルに共有された状態を壊す可能性が あります。一つの良い例としては正規表現エンジンの状態です。) @@ -6886,6 +7127,12 @@ =end original +普通の配列に対して C<$foo = \$bar[1]> とすると、 +(以前に存在していなかったとして) C<$bar[1]> には C<undef> が割り当てられます。 +しかし、autovivification のような tied/magical 配列やハッシュの場合は +このようにはなりません。現在のところリファレンスの作成を捕まえる方法が +ないためです。同じ問題は tied/magical 配列/ハッシュで存在しない +インデックス/キーを切り取る場合にも影響を与えます。 =head2 Unicode in package/class and subroutine names does not work @@ -6900,10 +7147,10 @@ =end original -識別名をつける際にUnicodeを用いることは可能ですが、package/class又は +識別名をつける際に Unicode を用いることは可能ですが、package/class 又は サブルーチンの名前に関しては不可能です。これに対する制限が存在するのは -Perl5.8.0からですが、意図的と言うよりもむしろ偶発的なものであると言えます; -つまり、これまでに述べた目的でのUnicodeの使用に関してはサポートされません。 +Perl5.8.0 からですが、意図的と言うよりもむしろ偶発的なものであると言えます; +つまり、これまでに述べた目的での Unicode の使用に関してはサポートされません。 =begin original @@ -6915,14 +7162,16 @@ =end original -これが未完成である一つの理由としては本来の移植性(現時点においての)が +この不完全性の理由の一つとしては、本来の移植性(現時点においての)が 無くなってしまうからです: パッケージとサブルーチンの名前はファイルと -ディレクトリの名前と対応させる必要があるため、ファイルシステムのUnicode能力が +ディレクトリの名前と対応させる必要があるため、ファイルシステムの Unicode 能力が 重要となります。そして、不幸なことに移植性を重視した答えと言うものは 存在しないのです。 =head1 Platform Specific Problems +(プラットフォーム固有の問題) + =head2 AIX =over 4 @@ -6956,13 +7205,8 @@ =item * -=begin original - vac 5.0.0.0 May Produce Buggy Code For Perl -=end original - - =begin original The AIX C compiler vac version 5.0.0.0 may produce buggy code, @@ -7267,6 +7511,8 @@ =end original +Perl 5.8.0 をインストールした後、以下のような未定義シンボルの +警告が出る場合: dyld: perl Undefined symbols _perl_sv_2pv @@ -7282,6 +7528,12 @@ =end original +おそらく古い Perl 5.8.0 以前のバージョン(あるいはその一部)が +/Library/Perl にインストールされています(未定義シンボルは +5.8.0 以前の Perl で使われています)。 +なぜか "make install" の時に完全に /Library/Perl 以下のファイルを +上書きときがあるようです。古い Perl 共有ライブラリを以下のようにして +外すことが出来ます: cd /Library/Perl/darwin/CORE mv libperl.dylib libperlold.dylib @@ -7295,6 +7547,11 @@ =end original +それからもう一度 "make install" してください。 +この方法は /usr/local/bin/perl を使っている場合は完全に破壊的であることに +注意してください。 +もしこれでもだめなら、/Library/Perl 以下の全ての .bundle ファイルを +削除して、もう一度 "make install" する必要があります。 =head2 OS/2 Test Failures @@ -7305,6 +7562,9 @@ =end original +以下のテストは SUPER-UX で失敗することがわかっています +(明確化しておくと、エラーメッセージ全体ではなく失敗することのみを +記しています): ../lib/ExtUtils/t/Mkbootstrap.t 1 256 18 1 5.56% 8 ../lib/ExtUtils/t/Packlist.t 1 256 34 1 2.94% 17 @@ -7322,6 +7582,10 @@ =end original +op/sprintf テスト 91, 129, 130 はプラットフォームによっては +失敗することがわかっています。 +例としては、sfio を使うあらゆるプラットフォームおよび、 +Compaq/Tandem の NonStop-UX です。 =begin original @@ -7330,6 +7594,9 @@ =end original +Test 91 は QNX6 (nto) で失敗することがわかっています。 +理由は C<sprintf '%e',0> が C<0.000000e+00> ではなく、 +誤って C<0.000000e+0> を生成するからです。 =begin original @@ -7341,6 +7608,11 @@ =end original +For tests 129 and 130, the failing platforms do not comply with +the ANSI C Standard: lines 19ff on page 134 of ANSI X3.159 1989, to +be exact. (They produce something other than "1" and "-1" when +formatting 0.6 and -0.6 using the printf format "%.0f"; most often, +they produce "0" and "-0".) =head2 SCO @@ -7350,6 +7622,7 @@ =end original +socketpair テストは SCO 3.2v5.0.4 で不幸になることがわかっています: ext/Socket/socketpair.t...............FAILED tests 15-45 @@ -7363,6 +7636,9 @@ =end original +未だに Solaris 2.5(またの名を SunOS 5.5)を使っている場合、 +lib/locale.t で(core dump の)テストが失敗するかもしれません。 +お勧めの対応策は Solaris をアップグレードすることです。 =head2 Solaris x86 Fails Tests With -Duse64bitint @@ -7373,6 +7649,8 @@ =end original +Perl を 64 bit 整数を使うように設定した場合、 +以下のテストが Solaris x86 で失敗することがわかっています: ext/Data/Dumper/t/dumper.............FAILED at test 268 ext/Devel/Peek/Peek..................FAILED at test 7 @@ -7385,6 +7663,7 @@ =end original +以下のテストは SUPER-UX で失敗することがわかっています: op/64bitint...........................FAILED tests 29-30, 32-33, 35-36 op/arith..............................FAILED tests 128-130 @@ -7407,15 +7686,23 @@ =end original +op/pack の失敗 ("Cannot compress negative numbers at op/pack.t line 126") は +重大ですがまだ解決していません。 +問題いくつかは C コンパイラの符号の扱いによるもので、 +64bitint, arith, pow で失敗します。 +残りの問題のほとんどは SysV IPC の問題です。 =head2 Term::ReadKey not working on Win32 +(Term::ReadKey が Win32 で動かない) + =begin original Use Term::ReadKey 2.20 or later. =end original +Term::ReadKey 2.20 以降を使ってください。 =head2 UNICOS/mk @@ -7429,6 +7716,7 @@ =end original +Configure の途中で、以下のテスト: Guessing which symbols your C compiler and preprocessor define... @@ -7438,6 +7726,7 @@ =end original +が以下のようなメッセージを出して失敗するかもしれません: CC-20 cc: ERROR File = try.c, Line = 3 The identifier "bad" is undefined. @@ -7460,6 +7749,13 @@ =end original +This is caused by a bug in the awk utility of UNICOS/mk. You can ignore +the error, but it does cause a slight problem: you cannot fully +benefit from the h2ph utility (see L<h2ph>) that can be used to +convert C headers to Perl libraries, mainly used to be able to access +from Perl the constants defined using C preprocessor, cpp. Because of +the above error, parts of the converted headers will be invisible. +Luckily, these days the need for h2ph is rare. =item * @@ -7473,6 +7769,11 @@ =end original +If building Perl with interpreter threads (ithreads), the +getgrent(), getgrnam(), and getgrgid() functions cannot return the +list of the group members due to a bug in the multithreaded support of +UNICOS/mk. What this means is that in list context the functions will +return only three values, not four. =back @@ -7497,6 +7798,10 @@ =end original +Perl が VOS Release 14.5.0 と GNU C++/GNU Tools 2.0.1 でネイティブな +ビルドプロセスを使ってビルドされた場合、全てのテストは通過するか、 +TODO (無視) 失敗の結果となります。 + =head2 VMS @@ -7508,6 +7813,9 @@ =end original +デフォルト設定ではテスト失敗の報告はないはずですが、 +更なるデバッグや移殖作業が必要な分野を示すために多くのテストが +TODO にマークされています。 =head2 Win32 @@ -7518,6 +7826,8 @@ =end original +マルチ CPU マシンでは、I/O バッファリングに問題があります: +出力が複数出る場合があります。 =head2 XML::Parser not working @@ -7527,6 +7837,7 @@ =end original +XML::Parser 2.31 以降を使ってください。 =head2 z/OS (OS/390) @@ -7538,6 +7849,9 @@ =end original +z/OS has rather many test failures but the situation is actually much +better than it was in 5.6.0; it's just that so many new modules and +tests have been added. Failed Test Stat Wstat Total Fail Failed List of Failed --------------------------------------------------------------------------- @@ -7567,6 +7881,13 @@ =end original +The failures in dumper.t and downgrade.t are problems in the tests, +those in io_unix and sprintf are problems in the USS (UDP sockets and +printf formats). The pat, tr, and fold failures are genuine Perl +problems caused by EBCDIC (and in the pat and fold cases, combining +that with Unicode). The Constant and Embed are probably problems in +the tests (since they test Perl's ability to build extensions, and +that seems to be working reasonably well.) =head2 Unicode Support on EBCDIC Still Spotty @@ -7579,6 +7900,10 @@ =end original +Though mostly working, Unicode support still has problem spots on +EBCDIC platforms. One such known spot are the C<\p{}> and C<\P{}> +regular expression constructs for code points less than 256: the +C<pP> are testing for Unicode code points, not knowing about EBCDIC. =head2 Seen In Perl 5.7 But Gone Now @@ -7637,6 +7962,12 @@ =end original +C<threads::shared::queue> と C<threads::shared::semaphore> は +5.8.0 の直前に C<Thread::Queue> と C<Thread::Semaphore> に名前が +変わりました。主な理由は、スレッドモジュールを通常の命名法である +C<Thread::>に従わせるためです +(C<threads> と C<threads::shared> はよりプラグマっぽく、コンパイル時に +影響を与えるため、小文字のままです)。 =head1 Reporting Bugs @@ -7649,11 +7980,10 @@ =end original -もしバグだと思ったら、comp.lang.perl.miscニュースグループに -投稿された最近の記事と、http://bugs.perl.org/にある -perl bug databaseを確認してください。 -Perlのホームページであるhttp://www.perl.com/にも -情報があるかもしれません。 +もしバグと思われるものが見つかったら、 comp.lang.perl.misc ニュースグループに +最近投稿された記事や http://bugs.perl.org にある perl バグデータベースを +確認してください。 +Perl ホームページ、http://www.perl.com にも情報があります。 =begin original @@ -7665,12 +7995,11 @@ =end original -未報告のバグがあると確信した場合は、あなたが持っている -リリースに含まれるB<perlbug>プログラムを実行してください。 -きっと、小さいですが十分なテストケースを整えてくれます。 -あなたのバグレポートはC<perl -V>による出力の他に、 -Perl porting teamによって解析されるためにperlb****@perl*****へ -送信されることでしょう。 +もしまだ報告されていないバグだと確信したら、そのリリースに含まれている +perlbug プログラムをを実行してください。 +バグの再現スクリプトを十分小さく、しかし有効なコードに切りつめることを +意識してください。バグレポートは perl -V の出力と一緒に +perl****@perl***** に送られ Perl porting チームによって解析されます。 =head1 SEE ALSO @@ -7680,6 +8009,7 @@ =end original +F<Changes> ファイルに変更点の完全な詳細があります。 =begin original @@ -7687,6 +8017,7 @@ =end original +F<INSTALL> ファイルに Perl のビルド方法があります。 =begin original @@ -7694,6 +8025,7 @@ =end original +F<README> ファイルに一般的なことがあります。 =begin original @@ -7701,6 +8033,7 @@ =end original +F<Artistic> 及び F<Copying> ファイルに著作権情報があります。 =head1 HISTORY @@ -7710,10 +8043,10 @@ =end original +Jarkko Hietaniemi <F<jhi****@iki*****>> によって書かれました。 =cut - =begin meta Update: Kentaro Shirakata <argra****@ub32*****>