Kentaro Shirakata
argra****@users*****
2006年 4月 17日 (月) 03:59:52 JST
Index: docs/perl/5.8.4/perl58delta.pod diff -u docs/perl/5.8.4/perl58delta.pod:1.5 docs/perl/5.8.4/perl58delta.pod:1.6 --- docs/perl/5.8.4/perl58delta.pod:1.5 Sun Apr 16 04:54:18 2006 +++ docs/perl/5.8.4/perl58delta.pod Mon Apr 17 03:59:52 2006 @@ -5652,6 +5652,8 @@ =end original +$& を使うと状況によってはコアダンプを引き起こすことがありました。 +これは修正されました。[561] =item * @@ -5663,6 +5665,9 @@ =end original +正規表現が捕らえた部分マッチング($1, $2, ...)は、マッチングが +失敗したとき、間違ったデータが入っていましたが、 +より一貫してリセットされるようになりました。[561] =item * @@ -5674,6 +5679,9 @@ =end original +"slurp" モードでオープンしたファイルに対する readline() が、 +ある種の状況では余分の "" (空行) を返すことがありました。 +これは修正されました。[561] =item * @@ -5685,6 +5693,9 @@ =end original +(C<${$num}> での) L<perlvar> に記述された特殊変数の +シンボリックリファレンスの自動活性化が図らずも無効になっていました。 +これは再び動作するようになりました。[561] =item * @@ -5705,6 +5716,8 @@ =end original +マルチスレッドでの同時に $AUTOLOAD, sort(), lock() およびサブプロセスの +起動を行ってもスレッドセーフになりました。 =item * @@ -5724,6 +5737,8 @@ =end original +修正されない tr/// の左側に読み込み専用文字列を置くことが +できるようになりました。 =item * @@ -5734,6 +5749,8 @@ =end original +C<STDERR> を tie したとき、C<warn> と C<die> による警告が +正しく渡されるようになりました。 =item * @@ -5757,6 +5774,10 @@ =end original +Perl ファイル(スクリプト、モジュール) が BOM(byte order marks) で +始まっていても透過的にスキップするようになりました。 +UTF-16 と UCS-2 でエンコードされた Perl ファイルも正しく +読み込めるようなりました。 =item * @@ -5779,6 +5800,10 @@ =end original +utf8 データの比較は、非 utf8 データを utf8 に自動的にアップグレード +していませんでした。(これは例えば I/O からのデータと Unicode データを +混ぜるときに問題になります: 出力は自動的に UTF-8 としてエンコード +されているかもしれません。) =item * @@ -5789,6 +5814,8 @@ =end original +U+FFFE, や UTF-16 サロゲートのような、不正な Unicode コードポイントの +生成にオプションの警告を出力するようになりました。 =item * @@ -5798,6 +5825,8 @@ =end original +C<IsAlnum>, C<IsAlpha>, and C<IsWord> がtitlecase にマッチするように +なりました。 =item * @@ -5809,6 +5838,9 @@ =end original +変数変換、C<eq>, C<substr>, C<reverse>, C<quotemeta>, C<x> 演算子、 +C<s///> による変換、シングルクオートされた UTF-8 経由での +C<.> 演算子による連結が動作するようになりました。 =item * @@ -5819,6 +5851,8 @@ =end original +C<tr///> 演算子が動作するようになりました。 +C<tr///CU> の機能は取り除かれました(pack('U0', ...) を参照してください)。 =item * @@ -5839,6 +5873,8 @@ =end original +Perl 5.6.0 は m/\x{ab}/ を間違って解釈し、間違った警告を出していました。 +これは修正されました。[561] =item * @@ -5848,6 +5884,7 @@ =end original +C<IsDigit> のような Unicode クラスにゼロエントリがありませんでした。 =back @@ -5860,6 +5897,8 @@ =end original +大きな符号なし数(2**31 以上) が、符号なしであるという情報が +失われてしまい、数値演算子でおかしな結果を引き起こすことがありました。[561] =item * @@ -5871,6 +5910,9 @@ =end original +Perl パーサはランダム入力とマルコフ連鎖入力の両方を使った +ストレステストを受け、発見されたいくつかのクラッシュとハングアップが +修正されました。 =back @@ -5890,6 +5932,7 @@ =end original +Perl は 4.0 以降の BSD/OS でも動作するようになりました。 =item * @@ -5901,6 +5944,8 @@ =end original +C<$0> が動作するようになりました(できるだけは; 詳細については +L<perlvar>を参照してください)。 =item * @@ -5912,6 +5957,7 @@ =end original +大量の更新が行われました; 現在のところ Cygwin 1.3.10 と同期しています。 =item * @@ -5921,6 +5967,7 @@ =end original +以前は DYNIX/ptx は Configure による 非ブロック I/O の検出に問題がありました。 =item * @@ -5932,6 +5979,7 @@ =end original +EPOC 対応が改善されました。 README.epoc を参照してくだっさい。[561] =item * @@ -5943,6 +5991,7 @@ =end original +3.0 以降の FreeBSD でも動作するようになりました。 =item * @@ -5955,6 +6004,9 @@ =end original +README.hpux が更新されました; C<Configure -Duse64bitall> が +動作するようになりました; Perl malloc ではなく HP-UX malloc を +使うようになりました。 =item * @@ -5967,6 +6019,9 @@ =end original +大量のコンパイルフラグとヒントが拡張されました; +図らずも 32-bit と 64-bit のライブラリが混ざっていた(破滅的な試みです)のが +より強固になりました。 =item * @@ -5982,6 +6037,7 @@ =end original +long double が動作するようになりました (INSTALL を参照してください)。[561] =item * @@ -5993,6 +6049,8 @@ =end original +Linux では accept(), recvfrom() (Perl での: recv()), getpeername(), +getsockname() を使うときに sockaddrlen に関する問題がありました。 =back @@ -6009,6 +6067,10 @@ =end original +標準 Perl ディストリビューションの Mac OS Classic での +コンパイルは Metrowerks 開発環境があって、 +Mac 固有のツールキットがなくても行えるようになりました。 +詳細は maclperl メーリングリストに接触してください。 =item * @@ -6020,6 +6082,8 @@ =end original +MPE/iX は Perl 5.6.0 から更新されました。README.mpeix を +参照してください。[561] =item * @@ -6031,7 +6095,9 @@ =end original - +NetBSD/threads: GNU pth をインストール(パッケージコレクションからか +http://www.gnu.org/software/pth/ )して、 +Configure に -Duseithreads を指定してください。 =item * NetBSD/sparc @@ -6042,6 +6108,7 @@ =end original +Perl は NetBSD/sparc で動作するようになりました。 =item * @@ -6053,6 +6120,7 @@ =end original +usethreads で動作するようになりました (INSTALL を参照してください)。[561] =item * @@ -6064,6 +6132,7 @@ =end original +Sun Workshop コンパイラを使った 64-bit 化が動作するようになりました。 =item * @@ -6078,6 +6147,10 @@ =end original +ネイティブビルドメソッドでは最低 VOS リリース 14.5.0 と +GNU C++/GNU Tools 2.0.1 以降が必要です。 +Perl の pack 関数はオーバーフローした値を +infinity に、 +アンダーフローした値を -infinity に割り当てるようになりました。 =item * @@ -6092,6 +6165,11 @@ =end original +オペレーティングシステムバージョン文字が $Config{osvers} に +記録されるようになりました。 +gcc でコンパイルできるようになりました (以前は明示的に禁止されていました)。 +バグったコードが出力されるので gcc でのコンパイルは +たとえ gcc 2.95.2 でも未だ薦められません。 =item * @@ -6106,6 +6184,11 @@ =end original +ビルド時やその後にコアダンプを引き起こしていた +さまざまなアライメント問題を修正しました; +実行時の演算エラーで die しなくなりました; +完全な 4 バイト整数 (64 bits) を使うようになりました。 +以前は速度のために 46 bit だけを使っていました。 =item * @@ -6118,6 +6201,9 @@ =end original +ここに上げられていない重要な変更については +L</"Socket Extension Dynamic in VMS"> と L</"IEEE-format Floating Point +Default on OpenVMS Alpha"> を参照してください。 =begin original @@ -6126,6 +6212,9 @@ =end original +chdir() は CRT バグにも関わらずよりよく動作するようになりました; +MULTIPLICITY で動作するようになりました(INSTALL を参照してください); +Perl の malloc で動作するようになりました。 =begin original @@ -6134,6 +6223,9 @@ =end original +C<keys> や C<values> による C<%ENV> 要素の汚染は以前は +実装されていませんでした。 +現在はドキュメント通りに動作するようになりました。 =begin original @@ -6143,6 +6235,9 @@ =end original +C<waitpid> エミュレーションが改良されました。 +(修正された)最悪のバグは pid に -1 を指定すると +システムの全てのプロセスのワイルドカード検索を引き起こしていたことでした。 =begin original @@ -6151,6 +6246,8 @@ =end original +POSIX-スタイルのシグナルは VMS バージョン 7.0 以前で +はるかによくエミュレートされるようになりました。 =begin original @@ -6159,6 +6256,8 @@ =end original +C<system> 関数とバッククォート演算子は +機能が改善し、エラー処理もよりよくなりました。[561] =begin original @@ -6169,6 +6268,11 @@ =end original +ファイルアクセステストはユーザーのデフォルト権限ではなく +現在のプロセスの権限で行われるようになりました。 +これにより、以前は報告されるアクセスと実際のアクセスに +時々不整合が起きていました。 +この改良は VMS v6.0 以降でのみ利用可能です。 =begin original @@ -6179,6 +6283,11 @@ =end original +古い VMS システム (7.0 以前) で C<kill> を単に強制的に終了させるのではなく +シグナルを送ることができるようになる、 +C<sys$sigprc> を基とした新しい C<kill> が実装されました。 +この実装より、最近のシステムでシグナルハンドラの中で +C<kill> を使えるようにもなりました。 =begin original @@ -6187,6 +6296,8 @@ =end original +繰り返しされる論理名変換 は SHOW LOGICAL とその他の OpenVMS 機能の +制限により、10 回の変換に制限されるようになりました。 =item * @@ -6204,6 +6315,9 @@ =end original +シグナルの扱いがよりよく動作するようになりました。 +Windows のメッセージループを使って実装されたため、 +ランダムなクラッシュが発生しにくくなりました。 =item * @@ -6214,6 +6328,9 @@ =end original +fork() エミュレーションはより頑強になりましたが、 +未だにいくつか難解なバグと欠点があります。 +詳細については L<perlfork> を参照してください。[561+] =item * @@ -6223,6 +6340,8 @@ =end original +(擬似)fork に失敗すると、undef を返し、errno に EAGAIN を +セットするようになりました。[561] =item * @@ -6232,6 +6351,7 @@ =end original +以下のモジュールが Windows で動作するようになりました。 ExtUtils::Embed [561] IO::Pipe @@ -6247,6 +6367,8 @@ =end original +IO::File::new_tmpfile() はもはやプロセス毎に 32767 回の起動に制限 +されなくなりました。 =item * @@ -6256,6 +6378,7 @@ =end original +存在しないディレクトリへの chdir() の返り値が改善されました。 =item * @@ -6265,6 +6388,8 @@ =end original +64-bit プラットフォーム SDK を使った Perl のコンパイルに +対応しました。 =item * @@ -6276,6 +6401,9 @@ =end original +組み込みの Win32::SetChildShowWindow() が、子プロセスによって +作成されたウィンドウの可視性を制御するために利用可能になりました。 +詳細については L<Win32> を参照してください。 =item * @@ -6286,6 +6414,8 @@ =end original +子プロセス(または 擬似プロセス)のための非ブロックウェイトが +C<waitpid($pid, &POSIX::WNOHANG)> で対応されました。 =item * @@ -6299,6 +6429,11 @@ =end original +The behavior of system() with multiple arguments has been rationalized. +Each unquoted argument will be automatically quoted to protect whitespace, +and any existing whitespace in the arguments will be preserved. This +improves the portability of system(@args) by avoiding the need for +Windows C<cmd> shell specific quoting in perl programs. =begin original @@ -6311,6 +6446,12 @@ =end original +Note that this means that some scripts that may have relied on earlier +buggy behavior may no longer work correctly. For example, +C<system("nmake /nologo", @args)> will now attempt to run the file +C<nmake /nologo> and will fail when such a file isn't found. +On the other hand, perl will now execute code such as +C<system("c:/Program Files/MyApp/foo.exe", @args)> correctly. =item * @@ -6322,6 +6463,10 @@ =end original +perl のヘッダファイルは Microsoft Visual C++ コンパイラからの +共通の警告を抑制しなくなりました。 +これにより XS コードをコンパイルするときに追加の警告が +出力されるかもしれません。 =item * @@ -6333,6 +6478,9 @@ =end original +Borland C++ v5.5 のコンパイラを使っての Perl のビルドに対応しました。 +しかし、作成されたバイナリはその他の対応コンパイラ(GCC と Visual C++)で +作成したものと互換性がありません。[561] =item * @@ -6343,6 +6491,8 @@ =end original +open(F, ">&MYSOCK") でのソケットハンドルの複製が +Windows 9x で動作するようになりました。[561] =item * @@ -6353,6 +6503,8 @@ =end original +%ENV のカレントディレクトリのエントリが子プロセスに正しく伝播するように +なりました。[561] =item * @@ -6362,6 +6514,7 @@ =end original +新しい %env エントリがサブプロセスに伝播するようになりました。[561] =item * @@ -6372,6 +6525,9 @@ =end original +ドライブのルートでは、Win32::GetCwd() は C: ではなく正しく C:\ を +返すようになりました。chdir() と Cwd::cwd() のその他のバグも +修正されました。[561] =item * @@ -6382,6 +6538,8 @@ =end original +ActiveState ActivePerl (有名な Win32 バイナリディストリビューション) +で有効になった機能が makefile でデフォルトになりました。[561] =item * @@ -6392,6 +6550,8 @@ =end original +HTML ファイルは c:\perl\lib\pod\html ではなく c:\perl\html に +インストールされるようになりました。 =item * @@ -6401,6 +6561,7 @@ =end original +REG_EXPAND_SZ キーが perl で使われるレジストリ設定で有効になりました。[561] =item * @@ -6410,6 +6571,7 @@ =end original +send() が、スレッドの最初ではなく、全てのスレッドから使えるようになりました。 =item * @@ -6419,6 +6581,7 @@ =end original +ExtUtils::MakeMaker がライブラリの検索に $ENV{LIB} を使うようになりました。 =item * @@ -6429,6 +6592,9 @@ =end original +スレッド毎に確保するスタック量が少なくなったので、 +より多くのスレッドを同時に実行できるようになりました。 +(未だスレッド当たり 16M です。)[561] =item * @@ -6439,6 +6605,9 @@ =end original +C<< File::Spec->tmpdir() >> が /tmp ではなく C:/temp を +返すようになりました(perl がサービスとして実行されるときに +よりよく動作します)。 =item * @@ -6448,6 +6617,7 @@ =end original +iスレッドでの UNC パスの扱いが改善されました。[561] =item * @@ -6458,6 +6628,8 @@ =end original +wait(), waitpid(), 逆クォートが Windows 9x で正しい終了コードを +返すようになりました。 =item * @@ -6467,6 +6639,7 @@ =end original +accept() のソケットハンドルリークが修正されました。[561] =back @@ -6482,6 +6655,7 @@ =end original +さらなる詳細については L<perldiag> を参照してください。 =over 4 @@ -6494,6 +6668,8 @@ =end original +文字変換演算子での (a-z-9 のような) 不明瞭な範囲指定は +警告を出すようになりました。 =item * @@ -6505,6 +6681,10 @@ =end original +chdir("") と chdir(undef) は非推奨の警告を出すようになりました。 +ホームディレクトリへの意図的でないディレクトリ変更が +起きることがあるからです。 +本当に意味していることをするには chdir() としてください。 =item * @@ -6517,6 +6697,11 @@ =end original +2 つの新しいデバッグオプションが追加されました: +Perl をデバッグ機能つきでコンパイルした場合、 +トークン化をトレースする -DT [561] オプションと +変数を表示するときにリファレンスカウントを表示する +-DR オプションが追加されます。 =item * @@ -6528,6 +6713,9 @@ =end original +レキシカル警告のカテゴリである "deprecated" はもはや "syntax" カテゴリの +サブカテゴリではなくなりました。 +トップレベルのカテゴリとなりました。 =item * @@ -6538,6 +6726,8 @@ =end original +修飾のない dump() は本当にそれが意味していることなら +明示的に CORE::dump() を使うように提案する警告を出します。 =item * @@ -6548,6 +6738,8 @@ =end original +"Unrecognized escape" 警告が C<\8>, C<\9>, C<\_> を含むように拡張されました。 +C<\w> 文字をエスケープする必要はありません。 =item * @@ -6560,6 +6752,10 @@ =end original +全ての正規表現コンパイルエラーメッセージは +より理解しやすくなりました。 +エラーメッセージは regex に失敗する前に出力されるようになり、 +失敗した場所が明確に C<E<lt>-- HERE> マーカーで示されるようになりました。 =item * @@ -6571,6 +6767,10 @@ =end original +binmode() や close() のようなさまざまな I/O (とソケット) 関数は、 +まだオープンされていないか既にクローズされているファイルハンドル +(またはソケット)に対して非論理的に使われた場合に、 +より一貫した警告を出すようになりました。 =item * @@ -6581,6 +6781,8 @@ =end original +ファイルハンドルに対する lstat() は警告を出すようになりました。 +(これはしても意味のないことです)。 =item * @@ -6590,6 +6792,8 @@ =end original +C<-M> と C<-m> のオプションはモジュール名が指定されなかったときに +警告を出すようになりました。 =item * @@ -6600,6 +6804,9 @@ =end original +C<use> に必要最低バージョンを指定した場合、 +名前が一致するけれども $VERSION が定義されていないモジュールは +致命的エラーとなります。 =item * @@ -6609,6 +6816,8 @@ =end original +左辺値コンテキストで vec() に負数のオフセットを指定することは +警告を発生させます。 =item * @@ -6618,6 +6827,7 @@ =end original +overload::constant に半端な数の引数を与えると警告を出すようになりました。 =item * @@ -6627,6 +6837,7 @@ =end original +無名ハッシュに半端な数の引数を与えると警告を出すようになりました。 =item * @@ -6638,6 +6849,9 @@ =end original +さまざまな "opened only for", "on closed", "never opened" 警告では、 +C<main> パッケージ内でファイルハンドルに C<main::> をつけなくなりました。 +例えば C<main::STDIN> ではなく C<STDIN> となります。 =item * @@ -6648,6 +6862,8 @@ =end original +サブルーチンのプロトタイプはより慎重にチェックされ、 +プロトタイプでない文字を使うなどすると警告が出ます。 =item * @@ -6658,6 +6874,8 @@ =end original +(bless されていない)リファレンスを配列のインデックスとして使おうとすると +警告が出ます。 =item * @@ -6669,6 +6887,9 @@ =end original +C<push @a;> と C<unshift @a;> (push したり unshift したりする値がない) +は警告が出るようになりました。 +これは生成されて eval されたコードで問題になるかもしれません。 =item * @@ -6680,6 +6901,10 @@ =end original +L<perlfunc/pack> で、C<"C"> フォーマットに 0 より小さい値や +255 より大きい値を指定しようとするとオプションの警告が出ます。 +C<"c"> フォーマットに -128 より小さい値や 127 より大きい値を +指定しようとした場合も同様です。 =item * @@ -6689,6 +6914,7 @@ =end original +pack の C<P> フォーマットは明示的なサイズを要求するようになりました。 =item * @@ -6698,6 +6924,7 @@ =end original +unpack の C<w> は終端していない圧縮された整数の警告を出すようになりました。 =item * @@ -6707,6 +6934,7 @@ =end original +PerlIO の使用に関連する警告が追加されました。 =item * @@ -6718,6 +6946,9 @@ =end original +C<(?o)> のようないくつかの正規表現修飾子は、 +正規表現全体に適用される場合にのみ意味を持ちます。 +そうでない場合、オプションの警告が出ます。 =item * @@ -6728,6 +6959,8 @@ =end original +可変長の戻り読み(lookbehind) はまだ実装されていませんので、 +これをしようとするとそう知らせます。 =item * @@ -6738,6 +6971,8 @@ =end original +配列やハッシュをリファレンスとして使うこと(C<< %foo->{bar} >>)は +しばらくの間非推奨となっています。オプションの警告を出すようになりました。 =item * @@ -6748,6 +6983,7 @@ =end original +新しい制限ハッシュ機能に関連する警告が追加されました。 =item * @@ -6758,6 +6994,8 @@ =end original +配列とハッシュの自己 tie はサポート外であり、 +そうしようとすると致命的エラーとなります。 =item * @@ -6768,6 +7006,8 @@ =end original +C<sort> をスカラコンテキストで使うとオプションの警告を出すようになりました。 +これは、ソートが行われないので全く使い道がありません。 =item * @@ -6777,6 +7017,7 @@ =end original +split() で /g 修飾子を使うのは意味がないので警告が出ます。 =item * @@ -6786,6 +7027,7 @@ =end original +splice() を配列の終わりを過ぎて使うと警告が出るようになりました。 =item * @@ -6796,6 +7038,9 @@ =end original +不正な Unicode エンコーディング(UTF-8 と UTF-16) は、 +(まだ実装されていない) UTF-16 サロゲートを使おうとして +多くの警告を引き起こします。 =item * @@ -6807,6 +7052,8 @@ =end original +I/O ストリームでストリームのエンコーディングを (open() か binmode()を使って) +指定せずに Unicode を使おうとすると "Wide character" 警告が出ます。 =item * @@ -6816,6 +7063,7 @@ =end original +use/require で v-strings を使うと(過去)互換性警告が出ます。 =item * @@ -6826,6 +7074,7 @@ =end original +インタプリタスレッドとその共有データの使用に関連する警告が追加されました。 =back @@ -6963,7 +7212,12 @@ =end original -正規表現コンパイラはTBT +正規表現コンパイラは +コンパイルされたバイトコードと対応する元の正規表現の文法的要素を +識別するノードの構造を保守するようになりました。 +この情報は C<struct regexp> の新しい C<offsets> メンバに +記録されます。 +より完全な情報については L<perldebguts> を参照してください。 =item *