argra****@users*****
argra****@users*****
2012年 8月 19日 (日) 05:51:40 JST
Index: docs/perl/5.10.0/perlguts.pod diff -u docs/perl/5.10.0/perlguts.pod:1.9 docs/perl/5.10.0/perlguts.pod:1.10 --- docs/perl/5.10.0/perlguts.pod:1.9 Thu Jul 5 20:27:43 2012 +++ docs/perl/5.10.0/perlguts.pod Sun Aug 19 05:51:40 2012 @@ -1907,11 +1907,10 @@ =end original 「揮発性」SVs は主に、perl のスタックに置かれる SV に対して使われます。 -For example an SV which is created just to pass a number to a called sub -is made mortal to have it cleaned up automatically when it's popped off -the stack. Similarly, results returned by XSUBs (which are pushed on the -stack) are often made mortal. -(TBT) +例えば、単に数値を呼び出したサブルーチンに渡すために作られた SV は +スタックからポップされたときに自動的に片付けられるように揮発性になります。 +同様に、(スタックにプッシュされた) XSUB から返された結果はしばしば +揮発性となります。 =begin original @@ -1972,13 +1971,12 @@ 揮発性の変数を生成するに当たっては十分注意すべきです。 もし、同じ変数を複合コンテキストの中で揮発性にしたり、ある変数を複数回 揮発性にしてしまったりすればおかしな自体が起こるかもしれません。 -Thinking of "Mortalization" -as deferred C<SvREFCNT_dec> should help to minimize such problems. -For example if you are passing an SV which you I<know> has high enough REFCNT -to survive its use on the stack you need not do any mortalization. -If you are not sure then doing an C<SvREFCNT_inc> and C<sv_2mortal>, or -making a C<sv_mortalcopy> is safer. -(TBT) +保留した C<SvREFCNT_dec> として「揮発化」を考えるとこのような問題を +最小化する助けになるでしょう。 +例えば、スタック上で使っても生き残るのに十分に大きな REFCNT を持つと +I<知っている> SV を渡す場合、揮発化は不要です。 +C<SvREFCNT_inc> と C<sv_2mortal> をするかどうかはっきりしないときは、 +C<sv_mortalcopy> を作るのがより安全です。 =begin original @@ -2238,9 +2236,10 @@ =end original -[This section still under construction. Ignore everything here. Post no -bills. Everything not permitted is forbidden.] -(TBT) +[この節はまだ作成中です。 +ここにある全ては無視してください。 +張り紙禁止。 +許可されていないこと全ては禁止。] =begin original @@ -2333,11 +2332,11 @@ 使われます。 典型的には変数の名前です。 C<namlen> は C<mg_len> フィールドに格納され、C<name> がヌルなら、 -C<name> の C<savepvn> コピーか、C<name> 自身 is stored in the C<mg_ptr> field, depending on -whether C<namlen> is greater than zero or equal to zero respectively. As a -special case, if C<(name && namlen == HEf_SVKEY)> then C<name> is assumed -to contain an C<SV*> and is stored as-is with its REFCNT incremented. -(TBT) +C<namlen> が 0 より大きいか、0 かに依存して、それぞれ +C<name> の C<savepvn> コピーか、C<name> 自身に保管されます。 +特殊な場合として、C<(name && namlen == HEf_SVKEY)> なら +C<name> は C<SV*> を含んでいるものと仮定して REFCNT をインクリメントして +そのままの形で保管されます。 =begin original @@ -2355,13 +2354,13 @@ 関数 sv_magic は C<how> を、あらかじめ定義されている マジック仮想テーブル("Magic Virtual Table") のどれを C<mg_virtual> フィールドに設定するかを決定するのに使います。 -See the L<Magic Virtual Tables> section below. The C<how> argument is also -stored in the C<mg_type> field. The value of C<how> should be chosen -from the set of macros C<PERL_MAGIC_foo> found in F<perl.h>. Note that before -these macros were added, Perl internals used to directly use character -literals, so you may occasionally come across old code or documentation -referring to 'U' magic rather than C<PERL_MAGIC_uvar> for example. -(TBT) +後述する L<Magic Virtual Tables> の節を参照してください。 +C<how> 引数もまた C<mg_type> フィールドに保管されます。 +C<how> の値は F<perl.h> にある C<PERL_MAGIC_foo> マクロの集合から +選ばれるべきです。 +これらのマクロが追加される前は、Perl の内部では文字リテラルを直接 +使っていたので、古いコードや文書では例えば C<PERL_MAGIC_uvar> の +代わりに 'U' マジックを使っているものに出会うことがあるかもしれません。 =begin original @@ -3213,11 +3212,9 @@ デクリメントされます。 これは、遅延した C<SvREFCNT_dec> を行うための機構という意味で C<sv_2motral> に似たものです。 -However, while C<sv_2mortal> -extends the lifetime of C<sv> until the beginning of the next statement, -C<SAVEFREESV> extends it until the end of the enclosing scope. These -lifetimes can be wildly different. -(TBT) +しかし、C<sv_2mortal> は C<sv> の生存時間を次の文の始めまで延ばす一方、 +C<SAVEFREESV> は囲まれているスコープの終わりまで延ばします。 +これらの生存時間は大きく異なるかもしれません。 =begin original @@ -3238,11 +3235,10 @@ =end original -Just like C<SAVEFREESV>, but mortalizes C<sv> at the end of the current -scope instead of decrementing its reference count. This usually has the -effect of keeping C<sv> alive until the statement that called the currently -live scope has finished executing. -(TBT) +C<SAVEFREESV> と同様ですが、参照カウントを減らすのではなく、現在のスコープの +終わりで C<sv> を揮発化します。 +これは普通、現在有効なスコープが実行を終了する文まで C<sv> を +生存させ続けます。 =item C<SAVEFREEOP(OP *op)> @@ -3522,9 +3518,8 @@ スタック上に場所を確保したら、C<PUSHs> マクロを使って値をスタックへ プッシュします。 -The pushed values will often need to be "mortal" (See -L</Reference Counts and Mortality>): -(TBT) +プッシュされた値はしばしば「揮発性」である必要があります( +L</Reference Counts and Mortality> を参照してください): PUSHs(sv_2mortal(newSViv(an_integer))) PUSHs(sv_2mortal(newSVuv(an_unsigned_integer))) @@ -3574,11 +3569,11 @@ =end original -Despite their suggestions in earlier versions of this document the macros -C<(X)PUSH[iunp]> are I<not> suited to XSUBs which return multiple results. -For that, either stick to the C<(X)PUSHs> macros shown above, or use the new -C<m(X)PUSH[iunp]> macros instead; see L</Putting a C value on Perl stack>. -(TBT) +この文書の以前のバージョンでの推奨にも関わらず、マクロ C<(X)PUSH[iunp]> は +複数の結果を返す XSUB には向いて I<いません>。 +このためには、上述の C<(X)PUSHs> マクロにこだわるか、代わりに新しい +C<m(X)PUSH[iunp]> マクロを使ってください; +L</Putting a C value on Perl stack> を参照してください。 =begin original @@ -3646,10 +3641,9 @@ =end original -These routines used to be called C<perl_call_sv>, etc., before Perl v5.6.0, -しかしこれらの名前は現在では非推奨です; 同じ名前のマクロが互換性のために -提供されています。 -(TBT) +これらのルーチンは Perl v5.6.0 以前では C<perl_call_sv> などと +呼ばれていましたが、しかしこれらの名前は現在では非推奨です; 同じ名前の +マクロが互換性のために提供されています。 =begin original @@ -3773,6 +3767,8 @@ =head3 Reallocation +(再割り当て) + Renew(pointer, number, type); Renewc(pointer, number, type, cast); Safefree(pointer) @@ -3788,12 +3784,13 @@ 上記の三つのマクロは、メモリのバッファーサイズを変更したりもう 使わなくなったメモリ領域を解放するために使われます。 -C<Renew> と -C<Renewc> の引数は、“魔法のクッキー”引数が必要ないということを -除きそれぞれ C<New> と C<Newc> に一致します。 +C<Renew> とC<Renewc> の引数は、“魔法のクッキー”引数が必要ないと +いうことを除きそれぞれ C<New> と C<Newc> に一致します。 =head3 Moving +(移動) + Move(source, dest, number, type); Copy(source, dest, number, type); Zero(dest, number, type); @@ -4315,6 +4312,8 @@ =head2 Compile pass 1: check routines +(コンパイルパス1: チェックルーチン) + =begin original The tree is created by the compiler while I<yacc> code feeds it @@ -4476,6 +4475,8 @@ =head2 Pluggable runops +(プラガブルな runops) + =begin original The compile tree is executed in a runops function. There are two runops @@ -4521,6 +4522,8 @@ =head1 Examining internal data structures with the C<dump> functions +(内部データ構造を C<dump> 関数で調べる) + =begin original To aid debugging, the source file F<dump.c> contains a number of @@ -4602,8 +4605,12 @@ =head1 How multiple interpreters and concurrency are supported +(複数インタプリタと並列性にどのように対応しているか) + =head2 Background and PERL_IMPLICIT_CONTEXT +(背景と PERL_IMPLICIT_CONTEXT) + =begin original The Perl interpreter can be regarded as a closed box: it has an API @@ -4940,6 +4947,8 @@ =head2 So what happened to dTHR? +(それで dTHR に何が起こるの?) + =begin original C<dTHR> was introduced in perl 5.005 to support the older thread model. @@ -4959,6 +4968,8 @@ =head2 How do I use all this in extensions? +(これら全てをエクステンションで使うには?) + =begin original When Perl is built with PERL_IMPLICIT_CONTEXT, extensions that call @@ -5179,6 +5190,8 @@ =head2 Should I do anything special if I call perl from multiple threads? +(複数のスレッドから perl を呼び出すのに何か特別なことをするべき?) + =begin original If you create interpreters in one thread and then proceed to call them in @@ -5222,6 +5235,8 @@ =head2 Future Plans and PERL_IMPLICIT_SYS +(将来の計画と PERL_IMPLICIT_SYS) + =begin original Just as PERL_IMPLICIT_CONTEXT provides a way to bundle up everything @@ -5279,6 +5294,8 @@ =head1 Internal Functions +(内部関数) + =begin original All of Perl's internal functions which will be exposed to the outside @@ -5345,9 +5362,8 @@ =end original -This function is a part of the public API. All such functions should also -have 'd', very few do not. -(TBT) +この関数は公式 API の一部です。 +このような関数全ては 'd' も持っているべきですが、ごく一部は違います。 =item p @@ -5358,9 +5374,8 @@ =end original -This function has a C<Perl_> prefix; i.e. it is defined as -C<Perl_av_fetch>. -(TBT) +この関数は C<Perl_> 接頭辞を持っています; つまり、C<Perl_av_fetch> として +定義されています。 =item d @@ -5371,9 +5386,8 @@ =end original -This function has documentation using the C<apidoc> feature which we'll -look at in a second. Some functions have 'd' but not 'A'; docs are good. -(TBT) +この関数は、すぐに見られる C<apidoc> 機能を使った文書があります。 +一部の関数は 'd' ですが 'A' ではありません; 文書はよいものです。 =back @@ -5383,8 +5397,7 @@ =end original -Other available flags are: -(TBT) +その他の利用可能なフラグは: =over 3 @@ -5397,9 +5410,8 @@ =end original -This is a static function and is defined as C<STATIC S_whatever>, and -usually called within the sources as C<whatever(...)>. -(TBT) +これは静的関数で、C<STATIC S_whatever> として定義されており、普通は +ソース中で C<whatever(...)> として呼び出されます。 =item n @@ -5411,10 +5423,9 @@ =end original -This does not need a interpreter context, so the definition has no -C<pTHX>, and it follows that callers don't use C<aTHX>. (See -L<perlguts/Background and PERL_IMPLICIT_CONTEXT>.) -(TBT) +これはインタプリタのコンテキストを必要としないので、定義には C<pTHX> はなく、 +呼び出し元は C<aTHX> を使いません。 +(L<perlguts/Background and PERL_IMPLICIT_CONTEXT> を参照してください。) =item r @@ -5424,8 +5435,7 @@ =end original -This function never returns; C<croak>, C<exit> and friends. -(TBT) +この関数は返りません; C<croak>, C<exit> のようなものです。 =item f @@ -5436,9 +5446,8 @@ =end original -This function takes a variable number of arguments, C<printf> style. -The argument list should end with C<...>, like this: -(TBT) +この関数は C<printf> 形式の可変長の引数を取ります。 +引数のリストは以下のように C<...> で終わります: Afprd |void |croak |const char* pat|... @@ -5451,9 +5460,8 @@ =end original -This function is part of the experimental development API, and may change -or disappear without notice. -(TBT) +この関数は実験的開発 API の一部で、注意なしに変更されたり消滅したり +するかもしれません。 =item o @@ -5464,9 +5472,9 @@ =end original -This function should not have a compatibility macro to define, say, -C<Perl_parse> to C<parse>. It must be called as C<Perl_parse>. -(TBT) +この関数は、C<Perl_parse> から C<parse> のような定義されている互換性マクロを +持っていません。 +これは C<Perl_parse> として呼び出されなければなりません。 =item x @@ -5549,6 +5557,8 @@ =head2 Formatted Printing of IVs, UVs, and NVs +(IV, UV, NV のフォーマットされた表示) + =begin original If you are printing IVs, UVs, or NVS instead of the stdio(3) style @@ -5605,6 +5615,8 @@ =head2 Pointer-To-Integer and Integer-To-Pointer +(ポインタから整数と整数からポインタ) + =begin original Because pointer size does not necessarily equal integer size, @@ -5645,6 +5657,8 @@ =head2 Exception Handling +(例外処理) + =begin original There are a couple of macros to do very basic exception handling in XS @@ -5714,6 +5728,8 @@ =head2 Source Documentation +(ソース文書) + =begin original There's an effort going on to document the internal functions and @@ -5939,6 +5955,8 @@ =head2 How does UTF-8 represent Unicode characters? +(どうやって UTF-8 は Unicode 文字を表現するの?) + =begin original As mentioned above, UTF-8 uses a variable number of bytes to store a @@ -6059,6 +6077,8 @@ =head2 How does Perl store UTF-8 strings? +(どうやって Perl は UTF-8 文字列を保管するの?) + =begin original Currently, Perl deals with Unicode strings and non-Unicode strings @@ -6179,6 +6199,8 @@ =head2 How do I convert a string to UTF-8? +(どうやって文字列を UTF-8 に変換するの?) + =begin original If you're mixing UTF-8 and non-UTF-8 strings, it is necessary to upgrade @@ -6319,6 +6341,8 @@ =head1 Custom Operators +(カスタム演算子) + =begin original Custom operator support is a new experimental feature that allows you to @@ -6437,10 +6461,10 @@ =end original -Until May 1997, this document was maintained by Jeff Okamoto -E<lt>okamo****@corp*****<gt>. It is now maintained as part of Perl -itself by the Perl 5 Porters E<lt>perl5****@perl*****<gt>. -(TBT) +1997 年 5 月まで、この文書は Jeff Okamoto +E<lt>okamo****@corp*****<gt> によって保守されていました。 +今では Perl 自身の一部として +Perl 5 Porters E<lt>perl5****@perl*****<gt> によって保守されています。 =begin original @@ -6451,11 +6475,10 @@ =end original -With lots of help and suggestions from Dean Roehrich, Malcolm Beattie, +Dean Roehrich, Malcolm Beattie, Andreas Koenig, Paul Hudson, Ilya Zakharevich, Paul Marquess, Neil Bowers, Matthew Green, Tim Bunce, Spider Boardman, Ulrich Pfeifer, -Stephen McCamant, and Gurusamy Sarathy. -(TBT) +Stephen McCamant, Gurusamy Sarathy から多くの助けと示唆を受けました。 =head1 SEE ALSO @@ -6465,6 +6488,7 @@ Translate: KIMURA Koichi Update: Kentaro Shirakata <argra****@ub32*****> (5.10.0-) +Status: in progress =end meta