オープンソース・ソフトウェアの開発とダウンロード

CVS リポジトリの参照

Diff of /perldocjp/docs/perl/5.16.0/perl5160delta.pod

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.20 by argrath, Thu May 17 18:43:14 2012 UTC revision 1.21 by argrath, Sat May 19 10:31:03 2012 UTC
# Line 2581  command-line uses of CGI.pm. Line 2581  command-line uses of CGI.pm.
2581    
2582  =end original  =end original
2583    
2584  We no longer read from STDIN when the Content-Length is not set,  Content-Length が設定されていないとき、もはや STDIN から
2585  preventing requests with no Content-Length from sometimes freezing.  読み込まなくなりました; Content-Length がないリクエストがときどき
2586  This is consistent with the CGI RFC 3875, and is also consistent with  フリーズするのを回避します。
2587  CGI::Simple.  これは CGI RFC 3875 と一貫性があり、CGI::Simple とも一貫性があります。
2588  しかし、古い振る舞いは CGI.pm のいくつかのコマンドライン利用で  しかし、古い振る舞いは CGI.pm のいくつかのコマンドライン利用で
2589  想定されていました。  想定されていました。
 (TBT)  
2590    
2591  =begin original  =begin original
2592    
# Line 2642  required to do this. Line 2641  required to do this.
2641    
2642  =end original  =end original
2643    
2644  addfile メソッドと shasum に bITS モードが追加されました。  addfile メソッドと shasum に BITS モードが追加されました。
2645  This makes  これにより ファイル/STDIN から部分的なバイトの入力が可能になり、
2646  partial-byte inputs possible via files/STDIN and lets shasum check  shasum で以前は特別なプログラミングが必要であった 8074 NIST Msg ベクタ全ての
2647  all 8074 NIST Msg vectors, where previously special programming was  チェックが出来るようになりました。
 required to do this.  
 (TBT)  
2648    
2649  =item *  =item *
2650    
# Line 2717  and now finally uses strictures. Line 2714  and now finally uses strictures.
2714    
2715  =end original  =end original
2716    
2717  Much of L<ExtUtils::ParseXS>, the module behind the XS compiler C<xsubpp>,  XS コンパイラ C<xsubpp> の裏側にいるモジュールである
2718  was rewritten and cleaned up.  It has been made somewhat more extensible  L<ExtUtils::ParseXS> のほとんどが書き直され整理されました。
2719  and now finally uses strictures.  これによりいくらか拡張可能になり、ついに strict を使うようになりました。
 (TBT)  
2720    
2721  =begin original  =begin original
2722    
# Line 2773  context, instead of returning the last f Line 2769  context, instead of returning the last f
2769    
2770  C<:glob> の置き換えを意図した新しい C<:bsd_glob> エクスポートタグが  C<:glob> の置き換えを意図した新しい C<:bsd_glob> エクスポートタグが
2771  追加されました。  追加されました。
2772  C<:glob> と同様、これは overrides C<glob> with a function that does not split the glob  C<:glob> と同様、これは C<glob> を、グロブパターンを単語に分割しない
2773  pattern into words, but, unlike C<:glob>, it iterates properly in scalar  関数で上書きしますが、C<:glob> と違って、スカラコンテキストでも
2774  context, instead of returning the last file.  最後のファイルを返すのではなく、正しく反復します。
 (TBT)  
2775    
2776  =begin original  =begin original
2777    
# Line 3478  race conditions [perl #107216]. Line 3473  race conditions [perl #107216].
3473  C<sigsuspend> と C<pause> は帰る前にシグナルハンドラを実行するように  C<sigsuspend> と C<pause> は帰る前にシグナルハンドラを実行するように
3474  なりました; as the  なりました; as the
3475  whole point of these two functions is to wait until a signal has  whole point of these two functions is to wait until a signal has
3476  arrived, and then return I<after> it has been triggered.  Delayed, or  arrived, and then return I<after> it has been triggered.
3477  "safe", signals were preventing that from happening, possibly resulting in  遅延、またの名を「安全」シグナルは、これが起きることによって競合条件が
3478  race conditions [perl #107216].  起きることがある可能性を防ぎます [perl #107216]。
3479  (TBT)  (TBT)
3480    
3481  =begin original  =begin original
# Line 3494  their caller. Line 3489  their caller.
3489    
3490  =end original  =end original
3491    
3492  C<POSIX::sleep> is now a direct call into the underlying OS C<sleep>  C<POSIX::sleep> は C<CORE::sleep> の Perl ラッパーにではなく、基礎となる
3493  function, instead of being a Perl wrapper on C<CORE::sleep>.  OS の C<sleep> 関数を呼び出すようになりました。
3494  C<POSIX::dup2> now returns the correct value on Win32 (I<i.e.>, the file  C<POSIX::dup2> は Win32 で正しい値 (つまり、ファイル記述子) を
3495  descriptor).  C<POSIX::SigSet> C<sigsuspend> and C<sigpending> and  返すようになりました。
3496  C<POSIX::pause> now dispatch safe signals immediately before returning to  C<POSIX::SigSet> C<sigsuspend> と C<sigpending> と
3497  their caller.  C<POSIX::pause> は呼び出し元に返る直前に安全なシグナルを
3498  (TBT)  発行するようになりました。
3499    
3500  =begin original  =begin original
3501    
# Line 3625  any particular framework [perl #108470]. Line 3620  any particular framework [perl #108470].
3620    
3621  =end original  =end original
3622    
3623  Term::ReadLine now supports any event loop, including unpublished ones and  Term::ReadLine は、発行されていないものや単純な L<IO::Select>、
3624  simple L<IO::Select>, loops without the need to rewrite existing code for  特定のフレームワークのために既存のコードを書き換える必要のないループを
3625  any particular framework [perl #108470].  含む、任意のイベントループに対応しました [perl #108470]。
 (TBT)  
3626    
3627  =item *  =item *
3628    
# Line 3699  locales: ja, ko, zh__big5han, zh__gb2312 Line 3693  locales: ja, ko, zh__big5han, zh__gb2312
3693    
3694  =end original  =end original
3695    
3696  Tailored compatibility ideographs as well as unified ideographs for the  ロケールのための調整された互換表意文字と統合表意文字:
3697  locales: ja, ko, zh__big5han, zh__gb2312han, zh__pinyin, zh__stroke.  ja, ko, zh__big5han, zh__gb2312han, zh__pinyin, zh__stroke.
 (TBT)  
3698    
3699  =begin original  =begin original
3700    
# Line 3752  specification of a given Unicode propert Line 3745  specification of a given Unicode propert
3745  =end original  =end original
3746    
3747  四つの関数が追加されました: C<prop_aliases()> と  四つの関数が追加されました: C<prop_aliases()> と
3748  C<prop_value_aliases()> は which are used to find all the Unicode-approved  C<prop_value_aliases()> は特性名への Unicode で承認された全ての同義語を
3749  synonyms for property names, or to convert from one name to another;  見つけるため、あるいは一つの名前を他の名前に変換するために使われます;
3750  C<prop_invlist> which returns all code points matching a given  C<prop_invlist> は与えられた Unicode バイナリ特性にマッチングする全ての
3751  Unicode binary property; and C<prop_invmap> which returns the complete  符号位置を返します; C<prop_invmap> は与えられた Unicode 特性の完全な
3752  specification of a given Unicode property.  仕様を返します。
 (TBT)  
3753    
3754  =item *  =item *
3755    
# Line 4988  C<PL_vtbl_sig> has been removed. Line 4980  C<PL_vtbl_sig> has been removed.
4980    
4981  =end original  =end original
4982    
4983  The magic types and magic vtables are now generated from data in a new script  マジック型とマジック vtable は手作業による保守ではなく、新しいスクリプト
4984  F<regen/mg_vtable.pl>, instead of being maintained by hand.  F<regen/mg_vtable.pl> のデータから生成されるようになりました。
4985  異なった EBCDIC バリアントは符号位置として '~' を使えないので、  異なった EBCDIC バリアントは符号位置として '~' を使えないので、
4986  符号位置を変換の文字は F<generate_uudmap> から新しく生成されるヘッダ  符号位置を変換の文字は F<generate_uudmap> から新しく生成されるヘッダ
4987  F<mg_data.h> でビルド時に行われます。  F<mg_data.h> でビルド時に行われます。
4988  C<PL_vtbl_bm> と C<PL_vtbl_fm> は明確な C の変数ではなく、  C<PL_vtbl_bm> と C<PL_vtbl_fm> は明確な C の変数ではなく、
4989  C<PL_vtbl_regexp> としてプリプロセッサで定義されるようになりました。  C<PL_vtbl_regexp> としてプリプロセッサで定義されるようになりました。
4990  C<PL_vtbl_sig> は削除されました。  C<PL_vtbl_sig> は削除されました。
 (TBT)  
4991    
4992  =item *  =item *
4993    
# Line 5062  store the list of exported functions in Line 5053  store the list of exported functions in
5053  F<global.sym> は不要になったので削除されました。  F<global.sym> は不要になったので削除されました。
5054  これは全てのエクスポートされた関数の一覧で、F<embed.fnc> と  これは全てのエクスポートされた関数の一覧で、F<embed.fnc> と
5055  F<regen/opcodes> のデータから F<regen/embed.pl> で生成されたものです。  F<regen/opcodes> のデータから F<regen/embed.pl> で生成されたものです。
5056  The code  コードがリファクタリングされたので、F<global.sym>, F<makedef.pl> の
5057  has been refactored so that the only user of F<global.sym>, F<makedef.pl>,  ユーザーだけが F<embed.fnc> および F<regen/opcodes> を直接読み込み、
5058  now reads F<embed.fnc> and F<regen/opcodes> directly, removing the need to  中間ファイルのエクスポートされた関数のリストを補完する必要が
5059  store the list of exported functions in an intermediate file.  なくなりました。
 (TBT)  
5060    
5061  =begin original  =begin original
5062    
# Line 5491  which has unwarranted chumminess with th Line 5481  which has unwarranted chumminess with th
5481    
5482  F<embedvar.h> が単純化され、デフォルトの (非多重化) 設定での PL_*  F<embedvar.h> が単純化され、デフォルトの (非多重化) 設定での PL_*
5483  変数の 1 レベルの間接マクロが削除されました。  変数の 1 レベルの間接マクロが削除されました。
5484  PERLVAR*() マクロは、now directly expand their arguments to  PERLVAR*() マクロは、C<PL_Idefgv> ではなく C<PL_defgv> のようなトークンに
5485  tokens such as C<PL_defgv>, instead of expanding to C<PL_Idefgv>, with  直接拡張するようになり、F<embedvar.h> は C<PL_Idefgv> から C<PL_defgv> へ
5486  F<embedvar.h> defining a macro to map C<PL_Idefgv> to C<PL_defgv>.  マッピングするためのマクロを定義しています。
5487  実装上の保証されていない友好性をもつ XS コードは更新が必要かもしれません。  実装上の保証されていない友好性をもつ XS コードは更新が必要かもしれません。
 (TBT)  
5488    
5489  =item *  =item *
5490    
# Line 5709  MRO plugin provided [perl #94306]. Line 5698  MRO plugin provided [perl #94306].
5698    
5699  =end original  =end original
5700    
5701  Perl now checks whether the array (the linearized isa) returned by a MRO  Perl は、MRO プラグインから返された配列 (線形化された isa) が配列が
5702  plugin begins with the name of the class itself, for which the array was  作られたクラス自身の名前から始まっていることを仮定するのではなく、それを
5703  created, instead of assuming that it does.  チェックするようになりました。
5704  これはメソッド検索中に最初の要素がスキップされるのを防ぎます。  これはメソッド検索中に最初の要素がスキップされるのを防ぎます。
5705  これはまた、C<mro::get_linear_isa> が MRO プラグインが提供するよりも一つ  これはまた、C<mro::get_linear_isa> が MRO プラグインが提供するよりも一つ
5706  要素の多い配列を返すかもしれないことも意味します [perl #94306]。  要素の多い配列を返すかもしれないことも意味します [perl #94306]。
 (TBT)  
5707    
5708  =item *  =item *
5709    
# Line 5899  possible to cause double-frees if the de Line 5887  possible to cause double-frees if the de
5887    
5888  =end original  =end original
5889    
5890  When hash elements are deleted in void context, the internal hash entry is  無効コンテキストでハッシュ要素が削除されたとき、値が解放されるときに
5891  now freed before the value is freed, to prevent destructors called by that  一貫性のない状態のハッシュを見ることがないように、内部のハッシュエントリは
5892  latter freeing from seeing the hash in an inconsistent state.  値が解放される前に解放されるようになりました。
5893  デストラクタがハッシュ自身を解放すると二重解放になる可能性がありました  デストラクタがハッシュ自身を解放すると二重解放になる可能性がありました
5894  [perl #100340]。  [perl #100340]。
 (TBT)  
5895    
5896  =item *  =item *
5897    
# Line 5943  message. Line 5930  message.
5930    
5931  =end original  =end original
5932    
5933  It is possible from XS code to create hashes with elements that have no  XS コードから、値を持っていない要素を持つハッシュを作ることが
5934  values.  The hash element and slice operators used to crash  可能でした。
5935  when handling these in lvalue context.  They now  ハッシュ要素とスライス演算子はこれらを左辺値コンテキストで扱うと
5936  produce a "Modification of non-creatable hash value attempted" error  クラッシュしていました。
5937  message.  これらは "Modification of non-creatable hash value attempted" エラー
5938  (TBT)  メッセージを出力するようになりました。
5939    
5940  =item *  =item *
5941    
# Line 5960  hash or array itself, a crash would ensu Line 5947  hash or array itself, a crash would ensu
5947    
5948  =end original  =end original
5949    
5950  If list assignment to a hash or array triggered destructors that freed the  ハッシュや配列へのリスト代入が解放されたハッシュや配列自身のデストラクタを
5951  hash or array itself, a crash would ensue.  引き起こした場合、後でクラッシュしていました。
5952  これはもう起こらなくなりました [perl #107440]。  これはもう起こらなくなりました [perl #107440]。
 (TBT)  
5953    
5954  =item *  =item *
5955    
# Line 5990  modify other scalars that were sharing t Line 5976  modify other scalars that were sharing t
5976    
5977  =end original  =end original
5978    
5979  Some core bugs affecting L<Hash::Util> have been fixed: locking a hash  L<Hash::Util> に影響を与えるいくつかのコアのバグが修正されました:
5980  element that is a glob copy no longer causes the next assignment to it to  グロブコピーであるハッシュ要素をロックしても引き続く代入によって
5981  corrupt the glob (5.14.2), and unlocking a hash element that holds a  グロブを壊さなくなり (5.14.2)、
5982    and unlocking a hash element that holds a
5983  copy-on-write scalar no longer causes modifications to that scalar to  copy-on-write scalar no longer causes modifications to that scalar to
5984  modify other scalars that were sharing the same string buffer.  modify other scalars that were sharing the same string buffer.
5985  (TBT)  (TBT)
# Line 6026  such as those created by: Line 6013  such as those created by:
6013    
6014  =end original  =end original
6015    
6016  The C<SvIsCOW> C macro now returns false for read-only copies of typeglobs,  C<SvIsCOW> C マクロは、以下のようにして作られたような、型グロブの
6017  such as those created by:  読み込み専用のコピーに対して偽を返すようになりました:
 (TBT)  
6018    
6019    $hash{elem} = *foo;    $hash{elem} = *foo;
6020    Hash::Util::lock_value %hash, 'elem';    Hash::Util::lock_value %hash, 'elem';
# Line 6086  L</is_utf8_char()> above. Line 6072  L</is_utf8_char()> above.
6072    
6073  =end original  =end original
6074    
6075  When presented with malformed UTF-8 input, the XS-callable functions  不正な UTF-8 入力のとき、XS 呼び出し可能な関数 C<is_utf8_string()>,
6076  C<is_utf8_string()>, C<is_utf8_string_loc()>, and  C<is_utf8_string_loc()>, C<is_utf8_string_loclen()> は入力文字列の
6077  C<is_utf8_string_loclen()> could read beyond the end of the input  末尾を超えて最大 12 バイト読み込むことがありました。
6078  string by up to 12 bytes.  This no longer happens.  [perl #32080].  これはもう起きません。
6079  However, currently, C<is_utf8_char()> still has this defect, see  [perl #32080]。
6080  L</is_utf8_char()> above.  しかし、現在のところ、C<is_utf8_char()> はまだこの問題点があります;
6081  (TBT)  上述の L</is_utf8_char()> を参照してください。
6082    
6083  =item *  =item *
6084    
# Line 6104  magical scalar [perl #101940]. Line 6090  magical scalar [perl #101940].
6090    
6091  =end original  =end original
6092    
6093  C レベルの C<pregcomp> 関数は could become confused about whether the  C レベルの C<pregcomp> 関数は、パターンがオーバーロードされていたり、
6094  pattern was in UTF8 if the pattern was an overloaded, tied, or otherwise  tie されていたり、その他のマジカルなスカラの場合、パターンが UTF8 か
6095  magical scalar [perl #101940].  どうかについて混乱することがありました [perl #101940]。
 (TBT)  
6096    
6097  =back  =back
6098    
# Line 6126  C<%^H> when entering a compilation scope Line 6111  C<%^H> when entering a compilation scope
6111    
6112  =end original  =end original
6113    
6114  Tying C<%^H> no longer causes perl to crash or ignore the contents of  C<%^H> を tie しても、コンパイルスコープに入ったときにクラッシュしたり
6115  C<%^H> when entering a compilation scope [perl #106282].  C<%^H> の内容を無視したりしなくなりました [perl #106282]。
 (TBT)  
6116    
6117  =item *  =item *
6118    
# Line 6144  the surrounding code was trying to enabl Line 6128  the surrounding code was trying to enabl
6128    
6129  C<eval $string> and C<require> used not to  C<eval $string> and C<require> used not to
6130  localize C<%^H> during compilation if it  localize C<%^H> during compilation if it
6131  was empty at the time the C<eval> call itself was compiled.  This could  was empty at the time the C<eval> call itself was compiled.
6132  lead to scary side effects, like C<use re "/m"> enabling other flags that  これは、C<use re "/m"> が、周りのコードが呼び出し元に有効にしようとしていた
6133  the surrounding code was trying to enable for its caller [perl #68750].  その他のフラグを有効にする、といった恐ろしい副作用を起こす可能性が
6134    ありました [perl #68750]。
6135  (TBT)  (TBT)
6136    
6137  =item *  =item *
# Line 6160  C<BEGIN { eval '$^H{foo}=7' }> [perl #70 Line 6145  C<BEGIN { eval '$^H{foo}=7' }> [perl #70
6145    
6146  =end original  =end original
6147    
6148  C<eval $string> and C<require> no longer localize hints (C<$^H> and C<%^H>)  C<eval $string> と C<require> はヒント (C<$^H> と C<%^H>) の
6149  at run time, but only during compilation of the $string or required file.  ローカル化を実行時にはせず、$string や読み込まれたファイルの
6150  This makes C<BEGIN { $^H{foo}=7 }> equivalent to  コンパイル時にのみに行います。
6151  C<BEGIN { eval '$^H{foo}=7' }> [perl #70151].  これにより、C<BEGIN { $^H{foo}=7 }> は C<BEGIN { eval '$^H{foo}=7' }> と
6152  (TBT)  等価になります [perl #70151]。
6153    
6154  =item *  =item *
6155    
# Line 6176  hints.  This could cause warnings to occ Line 6161  hints.  This could cause warnings to occ
6161    
6162  =end original  =end original
6163    
6164  Creating a BEGIN block from XS code (via C<newXS> or C<newATTRSUB>) would,  (C<newXS> や C<newATTRSUB> で)コンパイル時に XS コードから BEGIN ブロックを
6165  on completion, make the hints of the current compiling code the current  作ると、現在のヒントの現在のコンパイルコードのヒントを作ります。
6166  hints.  This could cause warnings to occur in a non-warning scope.  これは非警告スコープで警告を引き起こすことがありました。
 (TBT)  
6167    
6168  =back  =back
6169    
# Line 6198  of Perl were not updated to account for Line 6182  of Perl were not updated to account for
6182    
6183  =end original  =end original
6184    
6185  Copy-on-write or shared hash key scalars  コピーオンライト、あるいは共有ハッシュキースカラは 5.8.0 で導入されましたが、
6186  were introduced in 5.8.0, but most Perl code  ほとんどの Perl コードはこれに出会うことはありませんでした (これらは
6187  did not encounter them (they were used mostly internally).  Perl  ほとんど内部で使われていました)。
6188  5.10.0 extended them, such that assigning C<__PACKAGE__> or a  Perl 5.10.0 はこれらを拡張子、C<__PACKAGE__> やハッシュキーからスカラへの
6189  hash key to a scalar would make it copy-on-write.  Several parts  代入はコピーオンライトになりました。
6190  of Perl were not updated to account for them, but have now been fixed.  Perl のいくつかの部分はこれらを計算に入れるように更新していませんでしたが、
6191  (TBT)  修正されました。
6192    
6193  =over  =over
6194    
# Line 6233  was not fixed until this release. Line 6217  was not fixed until this release.
6217    
6218  =end original  =end original
6219    
6220  Lvalue subroutines were not allowing COW scalars to be returned.  This was  左辺値サブルーチンはコピーオンライトスカラを返すことはできませんでした。
6221  fixed for lvalue scalar context in Perl 5.12.3 and 5.14.0, but list context  これは左辺値スカラコンテキストについては Perl 5.12.3 と 5.14.0 で
6222  was not fixed until this release.  修正されていましたが、リストコンテキストではこのリリースまで修正されて
6223  (TBT)  いませんでした。
6224    
6225  =item *  =item *
6226    
# Line 6274  results of such assignments are still un Line 6258  results of such assignments are still un
6258    
6259  =end original  =end original
6260    
6261  Assigning a copy-on-write string to a stash  コピーオンライト文字列をスタッシュ要素に代入しても
6262  element no longer causes a double free.  Regardless of this change, the  二重解放しなくなりました。
6263  results of such assignments are still undefined.  この変更にもかかわらず、このような代入の結果は未だ未定義です。
 (TBT)  
6264    
6265  =item *  =item *
6266    
# Line 6288  variable from being tied if it happens t Line 6271  variable from being tied if it happens t
6271    
6272  =end original  =end original
6273    
6274  Assigning a copy-on-write string to a tied variable no longer stops that  コピーオンライト文字列から tie された変数への代入すると、内部で
6275  variable from being tied if it happens to be a PVMG or PVLV internally.  PVMG または PVLV であったときにその変数が tie 状態でなくなって
6276  (TBT)  いましたが、修正されました。
6277    
6278  =item *  =item *
6279    
# Line 6302  nonexistent shared string" warning. Line 6285  nonexistent shared string" warning.
6285    
6286  =end original  =end original
6287    
6288  Doing a substitution on a tied variable returning a copy-on-write  コピーオンライトで返された tie された変数に対して置換を行うと
6289  scalar used to cause an assertion failure or an "Attempt to free  アサーションが失敗したり "Attempt to free nonexistent shared string" 警告が
6290  nonexistent shared string" warning.  出たりしていました。
 (TBT)  
6291    
6292  =item *  =item *
6293    
# Line 6317  undefined if it happened to be a copy-on Line 6299  undefined if it happened to be a copy-on
6299    
6300  =end original  =end original
6301    
6302  This one is a regression from 5.12: In 5.14.0, the bitwise assignment  これは 5.12 からの退行です: 5.14.0 では、ビット単位代入演算子
6303  operators C<|=>, C<^=> and C<&=> started leaving the left-hand side  C<|=>, C<^=>, C<&=> は、これがコピーオンライト文字列であったときに
6304  undefined if it happened to be a copy-on-write string [perl #108480].  左側を未定義のままにしていました [perl #108480]。
 (TBT)  
6305    
6306  =item *  =item *
6307    
# Line 6352  contents of such objects used not to be Line 6333  contents of such objects used not to be
6333    
6334  =end original  =end original
6335    
6336  F<dumpvar.pl>, and therefore the C<x> command in the debugger, have been  F<dumpvar.pl>、従ってデバッガの C<x> コマンドは、名前に "=" を含む
6337  fixed to handle objects blessed into classes whose names contain "=".  The  クラスに bless されているオブジェクトの扱いが修正されました。
6338  contents of such objects used not to be dumped [perl #101814].  このようなオブジェクトの内容をダンプできていませんでした [perl #101814]。
 (TBT)  
6339    
6340  =item *  =item *
6341    
# Line 6367  Windows, or any other system lacking a C Line 6347  Windows, or any other system lacking a C
6347    
6348  =end original  =end original
6349    
6350  The "R" command for restarting a debugger session has been fixed to work on  デバッガセッションをリスタートするための "R" コマンドは、Windows や
6351  Windows, or any other system lacking a C<POSIX::_SC_OPEN_MAX> constant  その他の C<POSIX::_SC_OPEN_MAX> 定数がないシステムでも動作するように
6352  [perl #87740].  修正されました [perl #87740]。
 (TBT)  
6353    
6354  =item *  =item *
6355    
# Line 6383  it works for multiple. Line 6362  it works for multiple.
6362    
6363  =end original  =end original
6364    
6365  The C<#line 42 foo> directive used not to update the arrays of lines used  C<#line 42 foo> 指示子は、文字列 eval の中にあると、デバッガによって
6366  by the debugger if it occurred in a string eval.  This was partially fixed  使われる行数の配列を更新していませんでした。
6367  in 5.14, but it worked only for a single C<#line 42 foo> in each eval.  Now  これは 5.14 で部分的に修正されましたが、ひとつの eval に
6368  it works for multiple.  C<#line 42 foo> が一つしかない場合にのみ動作していました。
6369  (TBT)  複数あっても動作するように修正されました。
6370    
6371  =item *  =item *
6372    
# Line 6718  behaviour has been restored. Line 6697  behaviour has been restored.
6697    
6698  =end original  =end original
6699    
6700  In Perl 5.6, C<-l> followed by anything other than a bareword would treat  Perl 5.6 では、C<-l> に引き続いて裸の単語以外のものがあると、引数を
6701  its argument as a file name.  That was changed in 5.8 for glob references  ファイル名として扱っていました。
6702  (C<\*foo>), but not for globs themselves (C<*foo>).  C<-l> started  これは 5.8 でグロブリファレンス (C<\*foo>) に対しては変更されましたが、
6703  returning C<undef> for glob references without setting the last  グロブ自体 (C<*foo>) に対しては変更されませんでした。
6704  stat buffer that the "_" handle uses, but only if warnings  C<-l> は、"_" ハンドルが使う直前の stat バッファの設定がない場合は、
6705  were turned on.  With warnings off, it was the same as 5.6.  グロブリファレンスに対しては C<undef> を返していましたが、これは
6706  In other words, it was simply buggy and inconsistent.  Now the 5.6  warnings がオンの場合のみでした。
6707  behaviour has been restored.  warnings はオフの場合、これは 5.6 と同じです。
6708  (TBT)  言い換えると、これは単純にバグ持ちで一貫性がありません。
6709    今では 5.6 での振る舞いが復活しました。
6710    
6711  =item *  =item *
6712    
# Line 6739  on longer eats it. Line 6719  on longer eats it.
6719    
6720  =end original  =end original
6721    
6722  C<-l> followed by a bareword no longer "eats" the previous argument to  C<-l> に引き続いて裸の単語があっても、存在する引数リストのリスト演算子への
6723  the list operator in whose argument list it resides.  前の引数を「食べる」ことはなくなりました。
6724  従って、C<-l> はもう前の引数を食べないので、C<print "bar", -l foo> は  従って、C<-l> はもう前の引数を食べないので、C<print "bar", -l foo> は
6725  実際には "bar" を表示します。  実際には "bar" を表示します。
 (TBT)  
6726    
6727  =item *  =item *
6728    
# Line 6938  leaks or "Variable is not available" war Line 6917  leaks or "Variable is not available" war
6917    
6918  =end original  =end original
6919    
6920  C<given> was not scoping its implicit $_ properly, resulting in memory  C<given> は暗黙の $_ を正しくスコープしていなかったので、メモリリークや
6921  leaks or "Variable is not available" warnings [perl #94682].  "Variable is not available" 警告を発生させていました [perl #94682]。
 (TBT)  
6922    
6923  =item *  =item *
6924    
# Line 6953  different variable [perl #84526]. Line 6931  different variable [perl #84526].
6931    
6932  =end original  =end original
6933    
6934  C<given> was not calling set-magic on the implicit lexical C<$_> that it  C<given> は、使っている暗黙のレキシカルな C<$_> に set-magic を
6935  uses.  This meant, for example, that C<pos> would be remembered from one  呼び出していませんでした。
6936    つまり、例えば、C<pos> would be remembered from one
6937  execution of the same C<given> block to the next, even if the input were a  execution of the same C<given> block to the next, even if the input were a
6938  different variable [perl #84526].  different variable [perl #84526].
6939  (TBT)  (TBT)
# Line 6968  enclosing C<given> block [perl #93548]. Line 6947  enclosing C<given> block [perl #93548].
6947    
6948  =end original  =end original
6949    
6950  C<when> blocks are now capable of returning variables declared inside the  C<when> ブロックは取り囲んでいる C<given> ブロックの内側で宣言された変数を
6951  enclosing C<given> block [perl #93548].  返すことができるようになりました [perl #93548]。
 (TBT)  
6952    
6953  =back  =back
6954    
# Line 6990  before feeding each word to its C<bsd_gl Line 6968  before feeding each word to its C<bsd_gl
6968    
6969  =end original  =end original
6970    
6971  On OSes other than VMS, Perl's C<glob> operator (and the C<< <...> >> form)  VMS 以外の OS では、Perl の C<glob> 演算子 (および C<< <...> >> 形式) は、
6972  use L<File::Glob> underneath.  L<File::Glob> splits the pattern into words,  水面下で L<File::Glob> を使っています。
6973  before feeding each word to its C<bsd_glob> function.  L<File::Glob> は、取得したそれぞれの単語を C<bsd_glob> 関数に渡す前に、
6974  (TBT)  パターンを単語に分割しています。
6975    
6976  =begin original  =begin original
6977    
# Line 7007  is no longer stripped [perl #40470]. Line 6985  is no longer stripped [perl #40470].
6985    
6986  =end original  =end original
6987    
6988  There were several inconsistencies in the way the split was done.  Now  分割を行う方法にいくつかの非一貫性がありました。
6989  quotation marks (' and ") are always treated as shell-style word delimiters  引用符 (' と ") は常にシェル風単語デリミタとして扱い(これにより空白を
6990  (that allow whitespace as part of a word) and backslashes are always  単語の一部にできます)、バックスラッシュは引用符をエスケープするために
6991  preserved, unless they exist to escape quotation marks.  Before, those  存在しているのでない限り常に保存されるようになりました。
6992  would only sometimes be the case, depending on whether the pattern  以前は、これはパターンに空白を含んでいるかによって一部の場合にしか
6993  contained whitespace.  Also, escaped whitespace at the end of the pattern  このような動作になっていませんでした。
6994  is no longer stripped [perl #40470].  また、パターンの末尾のエスケープされたくうはくは削除されなくなりました
6995  (TBT)  [perl #40470]。
6996    
6997  =item *  =item *
6998    
# Line 7078  this restriction has been lifted. Line 7056  this restriction has been lifted.
7056    
7057  Lvalue subroutines used to enforce lvalue syntax (i.e., whatever can go on  Lvalue subroutines used to enforce lvalue syntax (i.e., whatever can go on
7058  the left-hand side of C<=>) for the last statement and the arguments to  the left-hand side of C<=>) for the last statement and the arguments to
7059  return.  Since lvalue subroutines are not always called in lvalue context,  return.
7060  this restriction has been lifted.  左辺値サブルーチンはいつも左辺値コンテキストで呼ばれるわけではないので、
7061    この制限は取り除かれました。
7062  (TBT)  (TBT)
7063    
7064  =item *  =item *
# Line 7092  other subroutines, but no longer does so Line 7071  other subroutines, but no longer does so
7071    
7072  =end original  =end original
7073    
7074  Lvalue subroutines are less restrictive about what values can be returned.  左辺値サブルーチンはどんな値を返せるかに関する制限が緩められました。
7075  It used to croak on values returned by C<shift> and C<delete> and from  以前は C<shift> や C<delete>で返されたり、他のサブルーチンからの値では
7076  other subroutines, but no longer does so [perl #71172].  croak していましたが、もはやそうならなくなりました [perl #71172]。
 (TBT)  
7077    
7078  =item *  =item *
7079    
# Line 7107  Perl 5.8.2.  Now lvalue subroutines have Line 7085  Perl 5.8.2.  Now lvalue subroutines have
7085    
7086  =end original  =end original
7087    
7088  Empty lvalue subroutines (C<sub :lvalue {}>) used to return C<@_> in list  空の左辺値サブルーチン (C<sub :lvalue {}>) はリストコンテキストでは
7089  context.  All subroutines used to do this, but regular subs were fixed in  C<@_> を返していました。
7090  Perl 5.8.2.  Now lvalue subroutines have been likewise fixed.  以前は全てのサブルーチンでそうでしたが、通常のサブルーチンに関しては
7091  (TBT)  Perl 5.8.2 で修正されました。
7092    今回左辺値サブルーチンに関しても修正されました。
7093    
7094  =item *  =item *
7095    
# Line 7156  would not return C<$]>, but a copy of it Line 7135  would not return C<$]>, but a copy of it
7135    
7136  =end original  =end original
7137    
7138  When called in potential lvalue context  潜在的な左辺値コンテキスト (例えばサブルーチンの引数や C<for> に渡された
7139  (e.g., subroutine arguments or a list  リスト) で呼び出されたとき、左辺値サブルーチンは返された読み込み専用の値を
7140  passed to C<for>), lvalue subroutines used to copy  コピーしていました。
7141  any read-only value that was returned.  E.g., C< sub :lvalue { $] } >  例えば、C< sub :lvalue { $] } > は C<$]> ではなく、そのコピーを
7142  would not return C<$]>, but a copy of it.  返していました。
 (TBT)  
7143    
7144  =item *  =item *
7145    
# Line 7180  When called in potential lvalue context, Line 7158  When called in potential lvalue context,
7158  arrays or hashes used to bind the arrays or hashes to scalar variables,  arrays or hashes used to bind the arrays or hashes to scalar variables,
7159  resulting in bugs.  This was fixed in 5.14.0 if an array were the first  resulting in bugs.  This was fixed in 5.14.0 if an array were the first
7160  thing returned from the subroutine (but not for C<$scalar, @array> or  thing returned from the subroutine (but not for C<$scalar, @array> or
7161  hashes being returned).  Now a more general fix has been applied  hashes being returned).
7162  [perl #23790].  今回より一般的な修正が適用されました [perl #23790]。
7163  (TBT)  (TBT)
7164    
7165  =item *  =item *
# Line 7197  values. Line 7175  values.
7175    
7176  Method calls whose arguments were all surrounded with C<my()> or C<our()>  Method calls whose arguments were all surrounded with C<my()> or C<our()>
7177  (as in C<< $object->method(my($a,$b)) >>) used to force lvalue context on  (as in C<< $object->method(my($a,$b)) >>) used to force lvalue context on
7178  the subroutine.  This would prevent lvalue methods from returning certain  the subroutine.
7179  values.  これは左辺値メソッドがある種の値を返すのを妨げていました。
7180  (TBT)  (TBT)
7181    
7182  =item *  =item *
# Line 7246  by the non-lvalue subroutine. Line 7224  by the non-lvalue subroutine.
7224  Non-lvalue sub calls whose subs I<are> visible at compile time exhibited  Non-lvalue sub calls whose subs I<are> visible at compile time exhibited
7225  the opposite bug.  If the call occurred in the last statement of an lvalue  the opposite bug.  If the call occurred in the last statement of an lvalue
7226  subroutine, there would be no error when the lvalue sub was called in  subroutine, there would be no error when the lvalue sub was called in
7227  lvalue context.  Perl would blindly assign to the temporary value returned  lvalue context.
7228  by the non-lvalue subroutine.  Perl は非左辺値サブルーチンによって返された一時的な値に盲目的に
7229    代入していました。
7230  (TBT)  (TBT)
7231    
7232  =item *  =item *
# Line 7279  This has been fixed. Line 7258  This has been fixed.
7258    
7259  Applying the C<:lvalue> attribute to an XSUB or to an aliased subroutine  Applying the C<:lvalue> attribute to an XSUB or to an aliased subroutine
7260  stub with C<< sub foo :lvalue; >> syntax stopped working in Perl 5.12.  stub with C<< sub foo :lvalue; >> syntax stopped working in Perl 5.12.
7261  This has been fixed.  これは修正されました。
7262  (TBT)  (TBT)
7263    
7264  =item *  =item *
# Line 7297  discarded. Line 7276  discarded.
7276  Applying the :lvalue attribute to subroutine that is already defined does  Applying the :lvalue attribute to subroutine that is already defined does
7277  not work properly, as the attribute changes the way the sub is compiled.  not work properly, as the attribute changes the way the sub is compiled.
7278  Hence, Perl 5.12 began warning when an attempt is made to apply the  Hence, Perl 5.12 began warning when an attempt is made to apply the
7279  attribute to an already defined sub.  In such cases, the attribute is  attribute to an already defined sub.
7280  discarded.  このような場合、属性は捨てられます。
7281  (TBT)  (TBT)
7282    
7283  =begin original  =begin original
# Line 7433  reality than before. Line 7412  reality than before.
7412    
7413  =end original  =end original
7414    
7415  The prototypes of several built-in functions--C<getprotobynumber>, C<lock>,  いくつかの組み込み関数のプロトタイプ -- C<getprotobynumber>, C<lock>,
7416  C<not> and C<select>--have been corrected, or at least are now closer to  C<not>, C<select> -- が修正されたり、少なくとも以前よりはより実際に
7417  reality than before.  近いものになりました。
 (TBT)  
7418    
7419  =back  =back
7420    
# Line 7458  the platform's native character set. Line 7436  the platform's native character set.
7436    
7437  =end original  =end original
7438    
7439  C</[[:ascii:]]/> and C</[[:blank:]]/> now use locale rules under  C</[[:ascii:]]/> と C</[[:blank:]]/> は、プラットフォームが対応していれば
7440  C<use locale> when the platform supports that.  Previously, they used  C<use locale> のときにロケールのルールを使います。
7441  the platform's native character set.  以前は、プラットフォームのネイティブな文字集合を使っていました。
 (TBT)  
7442    
7443  =item *  =item *
7444    
# Line 7474  such as the KELVIN SIGN. Line 7451  such as the KELVIN SIGN.
7451    
7452  =end original  =end original
7453    
7454  C<m/[[:ascii:]]/i> and C</\p{ASCII}/i> now match identically (when not  C<m/[[:ascii:]]/i> と C</\p{ASCII}/i> は (異なったロケールのもとでは)
7455  under a differing locale).  This fixes a regression introduced in 5.14  同じようにマッチングしなくなりました。
7456  in which the first expression could match characters outside of ASCII,  これは 5.14 で作り込まれた、最初の表現が KELVIN SIGN のような
7457  such as the KELVIN SIGN.  ASCII の範囲外の文字にもマッチングしていた退行の修正です。
 (TBT)  
7458    
7459  =item *  =item *
7460    
# Line 7489  with "\n".  This has been fixed [perl #1 Line 7465  with "\n".  This has been fixed [perl #1
7465    
7466  =end original  =end original
7467    
7468  C</.*/g> would sometimes refuse to match at the end of a string that ends  C</.*/g> はときどき "\n" で終わっている文字列の末尾に
7469  with "\n".  マッチングしていませんでした。
7470  これは修正されました [perl #109206]。  これは修正されました [perl #109206]。
 (TBT)  
7471    
7472  =item *  =item *
7473    
# Line 7505  behavior. Line 7480  behavior.
7480    
7481  =end original  =end original
7482    
7483  Starting with 5.12.0, Perl used to get its internal bookkeeping muddled up  5.12.0 から、Perl は used to get its internal bookkeeping muddled up
7484  after assigning C<${ qr// }> to a hash element and locking it with  after assigning C<${ qr// }> to a hash element and locking it with
7485  L<Hash::Util>.  L<Hash::Util>.
7486  これにより二重解放、クラッシュ、間違った振る舞いを引き起こしていました。  これにより二重解放、クラッシュ、間違った振る舞いを引き起こしていました。
# Line 7522  work under some circumstances, all invol Line 7497  work under some circumstances, all invol
7497    
7498  =end original  =end original
7499    
7500  The new (in 5.14.0) regular expression modifier C</a> when repeated like  新しい (5.14.0 からの) 正規表現修飾子 C</a> が C</aa> のように
7501  C</aa> forbids the characters outside the ASCII range that match  繰り返されると、C</i> の基ではマッチングする範囲内の文字で、ASCII の
7502  characters inside that range from matching under C</i>.  範囲外の文字を禁止します。
7503  これは一部の状況では動作していませんでした; 次のような全てに関連する選択は:  これは一部の状況では動作していませんでした; 次のような全てに関連する選択は:
 (TBT)  
7504    
7505   "\N{KELVIN SIGN}" =~ /k|foo/iaa;   "\N{KELVIN SIGN}" =~ /k|foo/iaa;
7506    
# Line 7718  memory: Line 7692  memory:
7692    
7693  =end original  =end original
7694    
7695  RT #78266: The regex engine has been leaking memory when accessing  RT #78266: 正規表現エンジンは、has been leaking memory when accessing
7696  named captures that weren't matched as part of a regex ever since 5.10  named captures that weren't matched as part of a regex ever since 5.10
7697  when they were introduced; e.g., this would consume over a hundred MB of  when they were introduced; 例えば、以下のコードは 100 MB 以上のメモリを
7698  memory:  消費していました:
7699  (TBT)  (TBT)
7700    
7701      for (1..10_000_000) {      for (1..10_000_000) {
# Line 7768  precedes a character in the string that Line 7742  precedes a character in the string that
7742    
7743  =end original  =end original
7744    
7745  A regression has been fixed that was introduced in 5.14, in C</i>  5.14 で作り込まれた退行が修正されました; in C</i>
7746  regular expression matching, in which a match improperly fails if the  regular expression matching, in which a match improperly fails if the
7747  pattern is in UTF-8, the target string is not, and a Latin-1 character  pattern is in UTF-8, the target string is not, and a Latin-1 character
7748  precedes a character in the string that should match the pattern.  precedes a character in the string that should match the pattern.
# Line 7834  The combination of the regular expressio Line 7808  The combination of the regular expressio
7808  and C<\B> escape sequences did not work properly on UTF-8 encoded  and C<\B> escape sequences did not work properly on UTF-8 encoded
7809  strings.  All non-ASCII characters under C</aa> should be treated as  strings.  All non-ASCII characters under C</aa> should be treated as
7810  non-word characters, but what was happening was that Unicode rules were  non-word characters, but what was happening was that Unicode rules were
7811  used to determine wordness/non-wordness for non-ASCII characters.  This  used to determine wordness/non-wordness for non-ASCII characters.
7812  is now fixed [perl #95968].  これは修正されました [perl #95968]。
7813  (TBT)  (TBT)
7814    
7815  =item *  =item *
# Line 7882  and with abnormal exiting (e.g., C<die>) Line 7856  and with abnormal exiting (e.g., C<die>)
7856    
7857  =end original  =end original
7858    
7859  それでもなお、これらのコードブロックはまだ実験的で、as there are still  それでもなお、これらのコードブロックはまだ実験的で、(例えばループ中で)
7860  problems with the wrong variables being closed over (in loops for instance)  間違った変数が閉じ込められたり、正常でない終了(例えば C<die>)でメモリ破壊が
7861  and with abnormal exiting (e.g., C<die>) causing memory corruption.  起きるという問題があります。
 (TBT)  
7862    
7863  =item *  =item *
7864    

Legend:
Removed from v.1.20  
changed lines
  Added in v.1.21

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26