argra****@users*****
argra****@users*****
2015年 1月 12日 (月) 00:24:00 JST
Index: docs/perl/5.20.1/perlxstut.pod diff -u docs/perl/5.20.1/perlxstut.pod:1.1 docs/perl/5.20.1/perlxstut.pod:1.2 --- docs/perl/5.20.1/perlxstut.pod:1.1 Sat Dec 27 17:25:42 2014 +++ docs/perl/5.20.1/perlxstut.pod Mon Jan 12 00:24:00 2015 @@ -161,10 +161,9 @@ 一般的には、システムがライブラリを動的にロードする機能を持っていなければ XSUB を作成することはできないと考えられています。 これは正しくありません。 -あなたは XSUB を作ることが I<できます>。 -ただし、あなたはその XSUB のサブルーチンと、Perl とをリンクして新たな -実行ファイルを作らなければなりません。 -この状況は perl4 と同じです。 +あなたは XSUB を作ることが I<できます> が、あなたはその XSUB の +サブルーチンと、Perl とをリンクして新たな実行ファイルを作らなければなりません。 +この状況は Perl 4 と同じです。 =begin original @@ -177,9 +176,9 @@ このチュートリアルはまだそういったシステムを使っていても大丈夫です。 XSUB の作成機能は、システムをチェックして可能であれば動的ロード可能 -ライブラリを作成し、できなければスタティックライブラリを作成してから -そのスタティックライブラリをリンクしてスタティックリンクされた -実行ファイルを作成します(最後の部分はオプション)。 +ライブラリを作成し、できなければ静的ライブラリを作成し、さらに +オプションとして、その静的ライブラリを含めた静的リンクされた新しい +実行ファイルを作成します。 =begin original @@ -190,9 +189,9 @@ =end original -これからの例を使って、動的ロード可能ライブラリが使えるシステムで -あってもスタティックリンクされた実行ファイルを作成したいという場合、 -"C<make>"という引数なしのコマンドを実行する代わりに、 +これからの例を使って、動的ロード可能ライブラリが使えるシステムであっても +静的リンクされた実行ファイルを作成したいという場合、 +"C<make>" という引数なしのコマンドを実行する代わりに、 "C<make perl>" というコマンドを実行してください。 =begin original @@ -204,7 +203,7 @@ =end original -もしスタティックリンクされた実行ファイルを作成することを選んだのなら、 +もし静的リンクされた実行ファイルを作成することを選んだのなら、 "C<make test>" の代わりに "C<make test_static>" を使ってください。 動的ロード可能ライブラリが作成できないシステムの場合には単に "C<make test>" とするだけで OK です。 @@ -221,10 +220,9 @@ =end original -For threaded builds, perl requires the context pointer for the current -thread, without C<PERL_NO_GET_CONTEXT>, perl will call a function to -retrieve the context. -(TBT) +スレッド対応ビルドでは、C<PERL_NO_GET_CONTEXT> がない場合、perl は +現在のスレッドのためのコンテキストポインタを必要として、コンテキストを +得るために関数を呼び出します。 =begin original @@ -232,8 +230,7 @@ =end original -For improved performance, include: -(TBT) +性能を向上させるために、次のものを含めてください: #define PERL_NO_GET_CONTEXT @@ -243,8 +240,7 @@ =end original -as shown below. -(TBT) +(後述します)。 =begin original @@ -253,9 +249,8 @@ =end original -For more details, see L<perlguts|perlguts/How multiple interpreters -and concurrency are supported>. -(TBT) +さらなる詳細については、L<perlguts|perlguts/How multiple interpreters +and concurrency are supported> を参照してください。 =head1 TUTORIAL @@ -588,8 +583,6 @@ テストスクリプトの中では、エクステンションの動作を確認するたくさんの テストを置き、正しい動作をしたら "ok" を正しくなければ "not ok" を 出力するようにします。 -BEGIN ブロックにある文を print "1..4" に変え、ファイルの末尾に以下の行を -追加します。 use Test::More tests => 4; BEGIN { use_ok('Mytest') }; @@ -697,8 +690,7 @@ 幾つかのことを行います。 これは perl に C<-I> 引数を付けて起動し、これによりエクステンションの 一部である様々なファイルを見つけることができるようにします。 -エクステンションをテストするのに "make test" を使うのは I<非常に> -重要です。 +エクステンションをテストするのに "make test" を使うのは I<非常に> 重要です。 もし、テストスクリプトをそのまま実行してしまったら、致命的なエラーが 発生するでしょう。 テストスクリプトを実行するのに "C<make test>" を使うもう一つの重大な @@ -912,8 +904,7 @@ =end original -"C<make test>" を実行します。 -ここで、九つのテストすべてで ok と出力されるはずです。 +"C<make test>" を実行すると、九つのテストすべてで ok と出力されるはずです。 =begin original @@ -1028,7 +1019,7 @@ =end original B<xsubpp> プログラムは .xs ファイルにある XS コードを取り、それを C に -翻訳しその結果を .c という拡張子のファイルに出力します。 +変換しその結果を .c という拡張子のファイルに出力します。 変換された C コードは Perl の中にある C の関数を使うように作られます。 =head2 The TYPEMAP file @@ -1128,8 +1119,8 @@ キャストされてから引数である変数に代入されます。 同様に、OUTPUT セクションでは一度引数が最終的な値を持てば、それは 呼び出された関数に返すために関数 sv_setnv に渡されます。 -これら二つの関数は L<perlguts> で説明されています。 -引数スタックにあるセクションの "ST(0)" の意味は後で説明します。 +これら二つの関数は L<perlguts> で説明されています; 引数スタックにある +セクションの "ST(0)" の意味は後で説明します。 =head2 Warning about Output Arguments @@ -1152,7 +1143,6 @@ するべきです(これは後の例で行います)。 しかしながら、すでにある入力パラメータを書き換えるような C のルーチンの 呼び出しにより良く適応するために、この振る舞いが許されているのです。 -次の例では、これをどう行うかを説明します。 =head2 EXAMPLE 4 @@ -1168,8 +1158,8 @@ この例で、すでにある C ライブラリとやりとりするような XSUB の記述を 始めます。 -これを始めるために、独自の小さなライブラリを作ります。 -それから .pm と .xs のための h2xs を記述します。 +これを始めるために、独自の小さなライブラリを作り、それから .pm と .xs の +ための h2xs を記述します。 =begin original @@ -1179,8 +1169,7 @@ =end original -ディレクトリ Mytest と同じレベルに、Mytest2 ディレクトリを新たに -作ります。 +ディレクトリ Mytest と同じレベルに、Mytest2 ディレクトリを新たに作ります。 Mytest2 ディレクトリで、mylib という別のディレクトリを作成し、そこに cd します。 @@ -1205,8 +1194,7 @@ =end original -ディレクトリ mylib で、以下のような内容の mylib.h というファイルを -作成します。 +ディレクトリ mylib で、以下のような内容の mylib.h というファイルを作成します: #define TESTVAL 4 @@ -1218,6 +1206,8 @@ =end original +また次のような mylib.c ファイルを作成します: + #include <stdlib.h> #include "./mylib.h" @@ -1236,6 +1226,8 @@ =end original +そして最後に次のような Makefile.PL ファイルを作成します: + use ExtUtils::MakeMaker; $Verbose = 1; WriteMakefile( @@ -1276,8 +1268,9 @@ =end original -"$(AR)" と "$(RANLIB)" で始まる行では空白ではなくタブを使っていることを +"$(AR)" と "$(RANLIB)" で始まる行ではスペースではなくタブを使っていることを 確認してください。 +スペースを使うと make は正しく動作しません。 また、Win32 システムでは、$(AR) の "cr" 引数は不要であることが 報告されています。 @@ -1300,9 +1293,8 @@ =end original -これにより、Mytest2 を上書きするという警告が出ますが、気にすることは -ありません。 -私たちのファイルは Mytest2/mylib にありますが、さわりません。 +これにより、Mytest2 を上書きするという警告が出ますが、大丈夫です。 +私たちのファイルは Mytest2/mylib にありますが、これは触りません。 =begin original @@ -1570,6 +1562,7 @@ 実行するようにすることだけです。 ライブラリのための Makefile.PL は多少複雑にはなりますが、 それほどでもありません。 +再び独自のコードを挿入するために postamble サブルーチンを置き換えます。 このコードは単純に作成すべきライブラリが静的ライブラリ(動的ロード可能 ライブラリと反対のもの)であることを指定し、ライブラリを作成するための コマンドを提供します。 @@ -2115,7 +2108,7 @@ 作りたいと思う事があるかもしれません。 こういったルーチンは .pm ファイルに置くのが良いです。 これがエクステンション自身がロードされたときロードされるにしろ、 -サブルーチン定義が置かれている. pm ファイルに依存する呼び出しのときのみ +サブルーチン定義が置かれている .pm ファイルに依存する呼び出しのときのみ ロードするにしろ、自動的にロードが行われます。 追加のサブルーチンを保管して読み込むもう一つの方法としては L<AutoLoader> を参考にすることもできます。 @@ -2177,8 +2170,8 @@ =end original あなたの作ったエクステンションが完成し、かつすべてのテストに合格すれば、 -それを実に単純なやりかたでインストールします。 -ただ単に "make install" と実行するだけです。 +それを実に単純なやりかたでインストールします: ただ単に "make install" と +実行するだけです。 Perl がインストールされたディレクトリに対する書き込み権限が持っている 必要がありますが、あるいは、あなたのシステム管理者にあなたの make を 実行するようお願いする必要があるでしょう。 @@ -3118,7 +3111,7 @@ Translate: KIMURA Koichi Update: SHIRAKATA Kentaro <argra****@ub32*****> (5.8.8-) -Status: in progress +Status: completed =end meta