argra****@users*****
argra****@users*****
2012年 11月 1日 (木) 00:22:41 JST
Index: docs/perl/5.10.1/perlhack.pod diff -u docs/perl/5.10.1/perlhack.pod:1.1 docs/perl/5.10.1/perlhack.pod:1.2 --- docs/perl/5.10.1/perlhack.pod:1.1 Fri Oct 26 04:18:28 2012 +++ docs/perl/5.10.1/perlhack.pod Thu Nov 1 00:22:40 2012 @@ -34,12 +34,11 @@ =end original -The perl5-porters mailing list is where the Perl standard distribution -is maintained and developed. The list can get anywhere from 10 to 150 -messages a day, depending on the heatedness of the debate. Most days -there are two or three patches, extensions, features, or bugs being -discussed at a time. -(TBT) +perl5-porters メーリングリストは Perl 標準配布の保守と開発を行っている +場所です。 +リストには議論の白熱度に応じて一日に 10 から 150 のメッセージが流れます。 +ほとんどの場合 2 または 3 のパッチ、エクステンション、機能、バグが +同時に議論されています。 =begin original @@ -2905,8 +2904,7 @@ =end original -The C<-Wall> is by default on. -(TBT) +C<-Wall> はデフォルトでオンです。 =begin original @@ -2919,13 +2917,12 @@ =end original -The C<-ansi> (and its sidekick, C<-pedantic>) would be nice to be on -always, but unfortunately they are not safe on all platforms, they can -for example cause fatal conflicts with the system headers (Solaris -being a prime example). If Configure C<-Dgccansipedantic> is used, -the C<cflags> frontend selects C<-ansi -pedantic> for the platforms -where they are known to be safe. -(TBT) +C<-ansi> (およびその親類である C<-pedantic>) も常にオンにしたいですが、 +残念ながら全てのプラットフォームで安全というわけではありません; 例えば +システムヘッダと致命的な衝突を引き起こすことがあります (Solaris が +第一の例です)。 +Configure で C<-Dgccansipedantic> を使うと、C<cflags> フロントエンドは +安全と分かっているプラットフォームでだけ C<-ansi -pedantic> を選択します。 =begin original @@ -2933,44 +2930,22 @@ =end original -Starting from Perl 5.9.4 the following extra flags are added: -(TBT) +Perl 5.9.4 から以下のフラグが追加されました: =over 4 =item * -=begin original - C<-Wendif-labels> -=end original - -C<-Wendif-labels> -(TBT) - =item * -=begin original - C<-Wextra> -=end original - -C<-Wextra> -(TBT) - =item * -=begin original - C<-Wdeclaration-after-statement> -=end original - -C<-Wdeclaration-after-statement> -(TBT) - =back =begin original @@ -2988,37 +2963,16 @@ =item * -=begin original - C<-Wpointer-arith> -=end original - -C<-Wpointer-arith> -(TBT) - =item * -=begin original - C<-Wshadow> -=end original - -C<-Wshadow> -(TBT) - =item * -=begin original - C<-Wstrict-prototypes> -=end original - -C<-Wstrict-prototypes> -(TBT) - =back =begin original @@ -3099,9 +3053,8 @@ =end original -To really poke around with Perl, you'll probably want to build Perl for -debugging, like this: -(TBT) +実際に Perl をつつくためには、おそらく以下のようにデバッグ用の Perl を +ビルドしたいでしょう: ./Configure -d -D optimize=-g make @@ -3152,9 +3105,7 @@ =end original -Some of the functionality of the debugging code can be achieved using XS -modules. -(TBT) +コードのデバッグの機能の一部は XS モジュールを使って実現できます。 -Dr => use re 'debug' -Dx => use O 'Debug' @@ -3199,8 +3150,7 @@ =end original -To fire up the debugger, type -(TBT) +デバッガを起動するには、以下のようにタイプします gdb ./perl @@ -3210,8 +3160,7 @@ =end original -Or if you have a core dump: -(TBT) +あるいはコアダンプがあるなら: gdb ./perl core @@ -3251,8 +3200,7 @@ =end original -Run the program with the given arguments. -(TBT) +引数を指定してプログラムを実行します。 =item break function_name @@ -3279,8 +3227,7 @@ =end original -Steps through the program a line at a time. -(TBT) +一度に 1 行、プログラムをステップ実行します。 =item next @@ -3291,9 +3238,7 @@ =end original -Steps through the program a line at a time, without descending into -functions. -(TBT) +一度に 1 行、関数を下っていかずにプログラムをステップ実行します。 =item continue @@ -3303,8 +3248,7 @@ =end original -Run until the next breakpoint. -(TBT) +次のブレークポイントまで実行します。 =item finish @@ -3314,8 +3258,7 @@ =end original -Run until the end of the current function, then stop again. -(TBT) +現在の関数の末尾まで実行して、もう一度停止します。 =item 'enter' @@ -3326,9 +3269,8 @@ =end original -Just pressing Enter will do the most recent operation again - it's a -blessing when stepping through miles of source code. -(TBT) +単に Enter キーを押すと、直前の操作をもう一度実行します - これは +大量のソースコードをステップ実行するときに助けになります。 =item print @@ -3348,7 +3290,7 @@ (see later L</"gdb macro support">). You'll have to substitute them yourself, or to invoke cpp on the source code files (see L</"The .i Targets">) -So, for instance, you can't say +従って、例えば、以下のようには書けず (TBT) print SvPV_nolen(sv) @@ -3359,8 +3301,7 @@ =end original -but you have to say -(TBT) +以下のように書く必要があります print Perl_sv_2pv_nolen(sv) @@ -3577,18 +3518,11 @@ } } -=begin original - -# finish this later # - -=end original - # finish this later # -(TBT) =head2 Patching -(パッチ) +(パッチを当てる) =begin original @@ -4542,8 +4476,8 @@ =end original -Run F<perl> on all core tests (F<t/*> and F<lib/[a-z]*> pragma tests). -(TBT) +全てのコアテスト (F<t/*> と F<lib/[a-z]*> プラグマテスト) で F<perl> を +実行します。 =begin original @@ -4551,8 +4485,7 @@ =end original -(Not available on Win32) -(TBT) +(Win32 では利用できません) =item test.deparse @@ -4562,8 +4495,8 @@ =end original -Run all the tests through B::Deparse. Not all tests will succeed. -(TBT) +全てのテストを B::Deparse を通して実行します。 +全てのテストが成功するわけではありません。 =begin original @@ -4571,8 +4504,7 @@ =end original -(Not available on Win32) -(TBT) +(Win32 では利用できません) =item test.taintwarn @@ -4583,9 +4515,8 @@ =end original -Run all tests with the B<-t> command-line switch. Not all tests -are expected to succeed (until they're specifically fixed, of course). -(TBT) +全てのテストを B<-t> コマンドラインスイッチ付きで実行します。 +全てのテストが成功するとは想定されません(もちろん具体的に修正するまでです)。 =begin original @@ -4593,8 +4524,7 @@ =end original -(Not available on Win32) -(TBT) +(Win32 では利用できません) =item minitest @@ -4605,9 +4535,8 @@ =end original -Run F<miniperl> on F<t/base>, F<t/comp>, F<t/cmd>, F<t/run>, F<t/io>, -F<t/op>, F<t/uni> and F<t/mro> tests. -(TBT) +F<t/base>, F<t/comp>, F<t/cmd>, F<t/run>, F<t/io>, F<t/op>, F<t/uni>, +F<t/mro> テストで F<miniperl> を実行します。 =item test.valgrind check.valgrind utest.valgrind ucheck.valgrind @@ -4619,10 +4548,9 @@ =end original -(Only in Linux) Run all the tests using the memory leak + naughty -memory access tool "valgrind". The log files will be named -F<testname.valgrind>. -(TBT) +(Linux のみ) 全てのテストをメモリリーク+メモリアクセスツール +"valgrind" を使って実行します。 +ログファイルの名前は F<testname.valgrind> です。 =item test.third check.third utest.third ucheck.third @@ -4634,10 +4562,9 @@ =end original -(Only in Tru64) Run all the tests using the memory leak + naughty -memory access tool "Third Degree". The log files will be named -F<perl.3log.testname>. -(TBT) +(Tru64 のみ) 全てのテストをメモリリーク+メモリアクセスツール +"Third Degree" を使って実行します。 +ログファイルの名前は F<perl.3log.testname> です。 =item test.torture torturetest @@ -4648,9 +4575,9 @@ =end original -Run all the usual tests and some extra tests. As of Perl 5.8.0 the -only extra tests are Abigail's JAPHs, F<t/japh/abigail.t>. -(TBT) +全ての通常のテストといくつかの追加のテストを実行します。 +Perl 5.8.0 から、追加のテストは Abigail の JAPHs, F<t/japh/abigail.t> +だけです。 =begin original @@ -4659,9 +4586,8 @@ =end original -You can also run the torture test with F<t/harness> by giving -C<-torture> argument to F<t/harness>. -(TBT) +F<t/harness> に C<-torture> 引数を与えることでも F<t/harness> で耐久テストを +実行できます。 =item utest ucheck test.utf8 check.utf8 @@ -4671,8 +4597,8 @@ =end original -Run all the tests with -Mutf8. Not all tests will succeed. -(TBT) +全てのテストを -Mutf8 で実行します。 +全てのテストが成功するわけではありません。 =begin original @@ -4680,8 +4606,7 @@ =end original -(Not available on Win32) -(TBT) +(Win32 では利用できません) =item minitest.utf16 test.utf16 @@ -4692,9 +4617,8 @@ =end original -Runs the tests with UTF-16 encoded scripts, encoded with different -versions of this encoding. -(TBT) +UTF-16 の様々なバージョンでエンコードされたスクリプトでテストを +実行します。 =begin original @@ -4703,9 +4627,8 @@ =end original -C<make utest.utf16> runs the test suite with a combination of C<-utf8> and -C<-utf16> arguments to F<t/TEST>. -(TBT) +C<make utest.utf16> は F<t/TEST> へ C<-utf8> と C<-utf16> 引数を組み合わせて +テストスイートを実行します。 =begin original @@ -4713,8 +4636,7 @@ =end original -(Not available on Win32) -(TBT) +(Win32 では利用できません) =item test_harness @@ -4788,9 +4710,8 @@ =end original -You can run part of the test suite by hand by using one the following -commands from the F<t/> directory : -(TBT) +F<t/> ディレクトリで以下のコマンドの一つを使うことでテストスイートの一部を +手動で実行できます: ./perl -I../lib TEST list-of-.t-files @@ -4800,8 +4721,7 @@ =end original -or -(TBT) +または ./perl -I../lib harness list-of-.t-files @@ -4811,11 +4731,12 @@ =end original -(if you don't specify test scripts, the whole test suite will be run.) -(TBT) +(テストスクリプトを指定しないと、テストスイート全体が実行されます。) =head3 Using t/harness for testing +(テストに t/harness を使う) + =begin original If you use C<harness> for testing you have several command line options @@ -4985,6 +4906,8 @@ =head3 Other environment variables that may influence tests +(テストに影響を与えるかも知れないその他の環境変数) + =over 4 =item PERL_TEST_Net_Ping @@ -5414,8 +5337,8 @@ =end original -Do not assume an operating system indicates a certain compiler. -(TBT) +あるオペレーティングシステムが特定のコンパイラを示すことを +仮定しないでください。 =over 4 @@ -5427,8 +5350,7 @@ =end original -Casting pointers to integers or casting integers to pointers -(TBT) +ポインタを整数にキャストしたり整数をポインタにキャストしたりする void castaway(U8* p) { @@ -5440,8 +5362,7 @@ =end original -or -(TBT) +または void castaway(U8* p) { @@ -5455,10 +5376,9 @@ =end original -Both are bad, and broken, and unportable. Use the PTR2IV() -macro that does it right. (Likewise, there are PTR2UV(), PTR2NV(), -INT2PTR(), and NUM2PTR().) -(TBT) +どちらも悪く、壊れていて、移植性がありません。 +これを正しく行うためには PTR2IV() マクロを使ってください。 +(同様に、PTR2UV(), PTR2NV(), INT2PTR(), NUM2PTR() があります。) =item * @@ -5468,8 +5388,7 @@ =end original -Casting between data function pointers and data pointers -(TBT) +データ関数ポインタとデータポインタの間でキャストする =begin original @@ -5494,8 +5413,7 @@ =end original -Assuming sizeof(int) == sizeof(long) -(TBT) +sizeof(int) == sizeof(long) と仮定する =begin original @@ -5539,8 +5457,7 @@ =end original -Assuming one can dereference any type of pointer for any type of data -(TBT) +任意の型のデータのために任意の型のポインタをデリファレンスできると仮定する char *p = ...; long pony = *p; /* BAD */ @@ -5564,8 +5481,7 @@ =end original -Lvalue casts -(TBT) +左辺値をキャストする (int)*p = ...; /* BAD */ @@ -5589,9 +5505,8 @@ =end original -Assume B<anything> about structs (especially the ones you -don't control, like the ones coming from the system headers) -(TBT) +構造体について (特にシステムヘッダのような制御できないものについて) +B<何かを> 仮定する =over 8 @@ -5603,8 +5518,7 @@ =end original -That a certain field exists in a struct -(TBT) +構造体にある特定のフィールドがある =item * @@ -5614,8 +5528,7 @@ =end original -That no other fields exist besides the ones you know of -(TBT) +わかっているものの他にフィールドがない =item * @@ -5625,8 +5538,7 @@ =end original -That a field is of certain signedness, sizeof, or type -(TBT) +あるフィールドの符号有り無し、sizeof、型 =item * @@ -5636,8 +5548,7 @@ =end original -That the fields are in a certain order -(TBT) +フィールドが特定の順序で並んでいる =over 8 @@ -5650,9 +5561,8 @@ =end original -While C guarantees the ordering specified in the struct definition, -between different platforms the definitions might differ -(TBT) +C は struct 定義で指定された順に並んでいることを保証していますが、異なった +プラットフォーム絵は定義が異なるかもしれません =back @@ -5664,8 +5574,7 @@ =end original -That the sizeof(struct) or the alignments are the same everywhere -(TBT) +sizeof(struct) やアライメントがどこでも同じである =over 8 @@ -5678,9 +5587,8 @@ =end original -There might be padding bytes between the fields to align the fields - -the bytes can be anything -(TBT) +フィールドの位置合わせにフィールドの間にパッディングのバイトが +あるかもしれません - バイトはなんでもかまいません =item * @@ -5709,8 +5617,7 @@ =end original -Assuming the character set is ASCIIish -(TBT) +文字集合が ASCII 風であると仮定する =begin original @@ -5822,8 +5729,7 @@ =end original -Assuming the character set is just ASCII -(TBT) +文字集合が単に ASCII であると仮定する =begin original @@ -5852,8 +5758,7 @@ =end original -Mixing #define and #ifdef -(TBT) +#define と #ifdef を混ぜる #define BURGLE(x) ... \ #ifdef BURGLE_OLD_STYLE /* BAD */ @@ -5881,8 +5786,7 @@ =end original -Adding non-comment stuff after #endif or #else -(TBT) +#endif または #else の後にコメント以外の内容を追加する #ifdef SNOSH ... @@ -5943,8 +5847,8 @@ =end original -is not portable. Leave out the last comma. -(TBT) +は移植性はありません。 +最後のカンマは省いてください。 =begin original @@ -5965,8 +5869,7 @@ =end original -Using //-comments -(TBT) +// コメントを使う // This function bamfoodles the zorklator. /* BAD */ @@ -5991,8 +5894,7 @@ =end original -Mixing declarations and code -(TBT) +宣言とコードを混ぜる void zorklator() { @@ -6006,8 +5908,8 @@ =end original -That is C99 or C++. Some C compilers allow that, but you shouldn't. -(TBT) +これは C99 または C++ です。 +一部の C コンパイラはこれを使えますが、するべきではありません。 =begin original @@ -6016,9 +5918,8 @@ =end original -The gcc option C<-Wdeclaration-after-statements> scans for such problems -(by default on starting from Perl 5.9.4). -(TBT) +gcc オプション C<-Wdeclaration-after-statements> はこのような問題を +スキャンします (Perl 5.9.4 からデフォルトです)。 =item * @@ -6028,8 +5929,7 @@ =end original -Introducing variables inside for() -(TBT) +for() 内部の変数を導入する for(int i = ...; ...; ...) { /* BAD */ @@ -6052,8 +5952,7 @@ =end original -Mixing signed char pointers with unsigned char pointers -(TBT) +符号付き char ポインタと符号なし char ポインタを混ぜる int foo(char *s) { ... } ... @@ -6133,8 +6032,7 @@ =end original -Using printf formats for non-basic C types -(TBT) +基本 C 型以外の printf のフォーマットを使う IV i = ...; printf("i = %d\n", i); /* BAD */ @@ -6256,8 +6154,7 @@ =end original -Blindly passing va_list -(TBT) +盲目的に va_list を渡す =begin original @@ -6306,8 +6203,7 @@ =end original -Binding together several statements in a macro -(TBT) +マクロの中で複数の文を結び付ける =begin original @@ -6315,8 +6211,7 @@ =end original -Use the macros STMT_START and STMT_END. -(TBT) +マクロ STMT_START と STMT_END を使ってください。 STMT_START { ... @@ -6330,8 +6225,7 @@ =end original -Testing for operating systems or versions when should be testing for features -(TBT) +機能をテストするべきところでオペレーティングシステムやバージョンをテストする #ifdef __FOONIX__ /* BAD */ foo = quux(); @@ -6438,8 +6332,8 @@ =end original -snprintf() - the return type is unportable. Use my_snprintf() instead. -(TBT) +snprintf() - 返り型は移植性がありません。 +代わりに my_snprintf() を使ってください。 =back @@ -6466,8 +6360,7 @@ =end original -Do not use gets() -(TBT) +gets() を使わない =begin original @@ -6486,8 +6379,7 @@ =end original -Do not use strcpy() or strcat() or strncpy() or strncat() -(TBT) +strcpy(), strcat(), strncpy(), strncat() を使わない =begin original @@ -6510,8 +6402,7 @@ =end original -Do not use sprintf() or vsprintf() -(TBT) +sprintf(), vsprintf() を使わない =begin original @@ -8093,11 +7984,11 @@ We've had a brief look around the Perl source, how to maintain quality of the source code, an overview of the stages F<perl> goes through when it's running your code, how to use debuggers to poke at the Perl -guts, and finally how to analyse the execution of Perl. We took a very -simple problem and demonstrated how to solve it fully - with -documentation, regression tests, and finally a patch for submission to -p5p. Finally, we talked about how to use external tools to debug and -test Perl. +guts, and finally how to analyse the execution of Perl. +とても単純な問題を取り上げて - 文書化、退行テスト、最後に p5p に +投稿するパッチまで - 完全に解決する方法を示しました。 +最後に、Perl のデバッグやテストのために外部ツールを使う方法について +話しました。 (TBT) =begin original