diff options
author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 1998-05-14 04:10:39 +0000 |
---|---|---|
committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 1998-05-14 04:10:39 +0000 |
commit | c25084921670dfe33a0871ee7b94c102fea0ea3a (patch) | |
tree | f0df3bfdc54529ba5c345f5536f7164acf7746d4 /README.EXT.jp | |
parent | ae2fe781dd4aae16a2f03a4b9fb93514eb9886d4 (diff) |
prototypes
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/v1_1r@210 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'README.EXT.jp')
-rw-r--r-- | README.EXT.jp | 210 |
1 files changed, 105 insertions, 105 deletions
diff --git a/README.EXT.jp b/README.EXT.jp index 2ad397dde3..2929f1b2d1 100644 --- a/README.EXT.jp +++ b/README.EXT.jp @@ -1,18 +1,18 @@ .\" README.EXT - -*- Text -*- created at: Mon Aug 7 16:45:54 JST 1995 -rubyの拡張モジュールの作り方を説明します. +Rubyの拡張モジュールの作り方を説明します. 1.基礎知識 Cの変数には型があり,データには型がありません.ですから,た とえばポインタをintの変数に代入すると,その値は整数として取 -り扱われます.逆にrubyの変数には型がなく,データに型がありま -す.この違いのため,Cとrubyは相互に変換しなければ,お互いの +り扱われます.逆にRubyの変数には型がなく,データに型がありま +す.この違いのため,CとRubyは相互に変換しなければ,お互いの データをアクセスできません. -rubyのデータはVALUEというCの型で表現されます.VALUE型のデー +RubyのデータはVALUEというCの型で表現されます.VALUE型のデー タはそのデータタイプを自分で知っています.このデータタイプと -いうのはデータ(オブジェクト)の実際の構造を意味していて,ruby +いうのはデータ(オブジェクト)の実際の構造を意味していて,Ruby のクラスとはまた違ったものです. VALUEからCにとって意味のあるデータを取り出すためには @@ -25,7 +25,7 @@ VALUEからCにとって意味のあるデータを取り出すためには 1.1 データタイプ -rubyにはユーザが使う可能性のある以下のタイプがあります. +Rubyにはユーザが使う可能性のある以下のタイプがあります. T_NIL nil T_OBJECT 通常のオブジェクト @@ -37,7 +37,7 @@ rubyにはユーザが使う可能性のある以下のタイプがあります. T_ARRAY 配列 T_FIXNUM Fixnum(31bit長整数) T_HASH 連想配列 - T_STRUCT (rubyの)構造体 + T_STRUCT (Rubyの)構造体 T_BIGNUM 多倍長整数 T_FILE 入出力 T_TRUE 真 @@ -99,7 +99,7 @@ FIXNUMとNILに関してはより高速な判別マクロが用意されています. データタイプがT_FIXNUMの時,これは31bitのサイズを持つ整数で す.FIXNUMをCの整数に変換するためにはマクロ「FIX2INT()」を使 -います.それから,FIXNUMに限らずrubyのデータを整数に変換する +います.それから,FIXNUMに限らずRubyのデータを整数に変換する 「NUM2INT()」というマクロがあります.このマクロはデータタイ プのチェック無しで使えます(整数に変換できない場合には例外が 発生する). @@ -123,7 +123,7 @@ ruby.hでは構造体へキャストするマクロも「RXXXXX()」(全部大文 とします.配列の場合には,それぞれ「RARRAY(str)->len」, 「RARRAY(str)->ptr」となります. -rubyの構造体を直接アクセスする時に気をつけなければならないこ +Rubyの構造体を直接アクセスする時に気をつけなければならないこ とは,配列や文字列の構造体の中身は参照するだけで,直接変更し ないことです.直接変更した場合,オブジェクトの内容の整合性が とれなくなって,思わぬバグの原因になります. @@ -144,10 +144,10 @@ VALUEの実際の構造は うかわかるわけです(ポインタのLSBが立っていないことを仮定して いる). -ですから,FIXNUM以外のrubyのオブジェクトの構造体は単にVALUE +ですから,FIXNUM以外のRubyのオブジェクトの構造体は単にVALUE にキャストするだけでVALUEに変換出来ます.ただし,任意の構造 体がVALUEにキャスト出来るわけではありません.キャストするの -はrubyの知っている構造体(ruby.hで定義されているstruct RXxxx +はRubyの知っている構造体(ruby.hで定義されているstruct RXxxx のもの)だけです. FIXNUMに関しては変換マクロを経由する必要があります.Cの整数 @@ -160,11 +160,11 @@ FIXNUMに関しては変換マクロを経由する必要があります.Cの整数 INT2NUM()は整数がFIXNUMの範囲に収まらない場合,Bignumに変換 してくれます(が,少し遅い). -1.5 rubyのデータを操作する +1.5 Rubyのデータを操作する -先程も述べた通り,rubyの構造体をアクセスする時に内容の更新を -行うことは勧められません.で,rubyのデータを操作する時には -rubyが用意している関数を用いてください. +先程も述べた通り,Rubyの構造体をアクセスする時に内容の更新を +行うことは勧められません.で,Rubyのデータを操作する時には +Rubyが用意している関数を用いてください. ここではもっとも使われるであろう文字列と配列の生成/操作を行 い関数をあげます(全部ではないです). @@ -173,16 +173,16 @@ rubyが用意している関数を用いてください. str_new(char *ptr, int len) - 新しいrubyの文字列を生成する. + 新しいRubyの文字列を生成する. str_new2(char *ptr) - Cの文字列からrubyの文字列を生成する.この関数の機能は + Cの文字列からRubyの文字列を生成する.この関数の機能は str_new(ptr, strlen(ptr))と同等である. str_cat(VALUE str, char *ptr, int len) - rubyの文字列strにlenバイトの文字列ptrを追加する. + Rubyの文字列strにlenバイトの文字列ptrを追加する. 配列に対する関数 @@ -212,17 +212,17 @@ rubyが用意している関数を用いてください. Arrayの同名のメソッドと同じ働きをする関数.第1引数は必ず 配列でなければならない. -2.rubyの機能を使う +2.Rubyの機能を使う -原理的にrubyで書けることはCでも書けます.rubyそのものがCで記 +原理的にRubyで書けることはCでも書けます.RubyそのものがCで記 述されているんですから,当然といえば当然なんですけど.ここで -はrubyの拡張に使うことが多いだろうと予測される機能を中心に紹 +はRubyの拡張に使うことが多いだろうと予測される機能を中心に紹 介します. -2.1 rubyに機能を追加する +2.1 Rubyに機能を追加する -rubyで提供されている関数を使えばrubyインタプリタに新しい機能 -を追加することができます.rubyでは以下の機能を追加する関数が +Rubyで提供されている関数を使えばRubyインタプリタに新しい機能 +を追加することができます.Rubyでは以下の機能を追加する関数が 提供されています. * クラス,モジュール @@ -260,7 +260,7 @@ rubyで提供されている関数を使えばrubyインタプリタに新しい機能 念のため説明すると「特異メソッド」とは,その特定のオブジェク -トに対してだけ有効なメソッドです.rubyではよくSmalltalkにお +トに対してだけ有効なメソッドです.RubyではよくSmalltalkにお けるクラスメソッドとして,クラスに対する特異メソッドが使われ ます. @@ -272,7 +272,7 @@ rubyで提供されている関数を使えばrubyインタプリタに新しい機能 argcが負の時は引数の数ではなく,形式を指定したことになります. argcが-1の時は引数を配列に入れて渡されます.argcが-2の時は引 -数はrubyの配列として渡されます. +数はRubyの配列として渡されます. メソッドを定義する関数はもう二つあります.ひとつはprivateメ ソッドを定義する関数で,引数はrb_define_method()と同じです. @@ -318,21 +318,21 @@ privateメソッドとは関数形式でしか呼び出すことの出来ないメソッ 前者は特定のクラス/モジュールに属する定数を定義するもの,後 者はグローバルな定数を定義するものです. -2.2 rubyの機能をCから呼び出す +2.2 Rubyの機能をCから呼び出す -既に『1.5 rubyのデータを操作する』で一部紹介したような関数を -使えば,rubyの機能を実現している関数を直接呼び出すことが出来 +既に『1.5 Rubyのデータを操作する』で一部紹介したような関数を +使えば,Rubyの機能を実現している関数を直接呼び出すことが出来 ます. # このような関数の一覧表はいまのところありません.ソースを見 # るしかないですね. -それ以外にもrubyの機能を呼び出す方法はいくつかあります. +それ以外にもRubyの機能を呼び出す方法はいくつかあります. -2.2.1 rubyのプログラムをevalする +2.2.1 Rubyのプログラムをevalする -Cからrubyの機能を呼び出すもっとも簡単な方法として,文字列で -与えられたrubyのプログラムを評価する関数があります. +CからRubyの機能を呼び出すもっとも簡単な方法として,文字列で +与えられたRubyのプログラムを評価する関数があります. VALUE rb_eval_string(char *str) @@ -341,11 +341,11 @@ Cからrubyの機能を呼び出すもっとも簡単な方法として,文字列で 2.2.2 IDまたはシンボル -Cから文字列を経由せずにrubyのメソッドを呼び出すこともできま -す.その前に,rubyインタプリタ内でメソッドや変数名を指定する +Cから文字列を経由せずにRubyのメソッドを呼び出すこともできま +す.その前に,Rubyインタプリタ内でメソッドや変数名を指定する 時に使われているIDについて説明しておきましょう. -IDとは変数名,メソッド名を表す整数です.rubyの中では +IDとは変数名,メソッド名を表す整数です.Rubyの中では :識別子 @@ -354,14 +354,14 @@ IDとは変数名,メソッド名を表す整数です.rubyの中では rb_intern(char *name) を使います.また一文字の演算子はその文字コードがそのままシン -ボルになっています.rubyから引数として与えられたシンボル(ま +ボルになっています.Rubyから引数として与えられたシンボル(ま たは文字列)をIDに変換するには以下の関数を使います. rb_to_id(VALUE symbol) -2.2.3 Cからrubyのメソッドを呼び出す +2.2.3 CからRubyのメソッドを呼び出す -Cから文字列を経由せずにrubyのメソッドを呼び出すためには以下 +Cから文字列を経由せずにRubyのメソッドを呼び出すためには以下 の関数を使います. VALUE rb_funcall(VALUE recv, ID mid, int argc, ...) @@ -372,7 +372,7 @@ Cから文字列を経由せずにrubyのメソッドを呼び出すためには以下 VALUE rb_funcall2(VALUE recv, ID mid, int argc, VALUE *argv) VALUE rb_apply(VALUE recv, ID mid, VALUE args) -applyには引数としてrubyの配列を与えます. +applyには引数としてRubyの配列を与えます. 2.2.4 変数/定数を参照/更新する @@ -395,13 +395,13 @@ idはrb_intern()で得られるものを使ってください. クラス定数を新しく定義するためには『2.1.3 定数定義』で紹介さ れている関数を使ってください. -3.rubyとCとの情報共有 +3.RubyとCとの情報共有 -C言語とrubyの間で情報を共有する方法について解説します. +C言語とRubyの間で情報を共有する方法について解説します. -3.1 Cから参照できるrubyの定数 +3.1 Cから参照できるRubyの定数 -以下のrubyの定数はCのレベルから参照できる. +以下のRubyの定数はCのレベルから参照できる. TRUE FALSE @@ -412,19 +412,19 @@ C言語とrubyの間で情報を共有する方法について解説します. C言語から見た「nil」. -3.2 Cとrubyで共有される大域変数 +3.2 CとRubyで共有される大域変数 -Cとrubyで大域変数を使って情報を共有できます.共有できる大域 +CとRubyで大域変数を使って情報を共有できます.共有できる大域 変数にはいくつかの種類があります.そのなかでもっとも良く使わ れると思われるのはrb_define_variable()です. void rb_define_variable(char *name, VALUE *var) -この関数はrubyとCとで共有する大域変数を定義します.変数名が +この関数はRubyとCとで共有する大域変数を定義します.変数名が `$'で始まらない時には自動的に追加されます.この変数の値を変 -更すると自動的にrubyの対応する変数の値も変わります. +更すると自動的にRubyの対応する変数の値も変わります. -またruby側からは更新できない変数もあります.このread onlyの +またRuby側からは更新できない変数もあります.このread onlyの 変数は以下の関数で定義します. void rb_define_readonly_variable(char *name, VALUE *var) @@ -443,13 +443,13 @@ setterに0を指定します. # getterもsetterも0ならばrb_define_variable()と同じになる. -それから,Cの関数によって実現されるrubyの大域変数を定義する +それから,Cの関数によって実現されるRubyの大域変数を定義する 関数があります. void rb_define_virtual_variable(char *name, VALUE (*getter)(), VALUE (*setter)()) -この関数によって定義されたrubyの大域変数が参照された時には +この関数によって定義されたRubyの大域変数が参照された時には getterが,変数に値がセットされた時にはsetterが呼ばれます. getterとsetterの仕様は以下の通りです. @@ -457,14 +457,14 @@ getterとsetterの仕様は以下の通りです. (*getter)(ID id, void *data, struct global_entry* entry); (*setter)(VALUE val, ID id, void *data, struct global_entry* entry); -3.3 Cのデータをrubyオブジェクトにする +3.3 CのデータをRubyオブジェクトにする -Cの世界で定義されたデータ(構造体)をrubyのオブジェクトとして +Cの世界で定義されたデータ(構造体)をRubyのオブジェクトとして 取り扱いたい場合がありえます.このような場合には,Dataという -rubyオブジェクトにCの構造体(へのポインタ)をくるむことでruby +RubyオブジェクトにCの構造体(へのポインタ)をくるむことでRuby オブジェクトとして取り扱えるようになります. -Dataオブジェクトを生成して構造体をrubyオブジェクトにカプセル +Dataオブジェクトを生成して構造体をRubyオブジェクトにカプセル 化するためには,以下のマクロを使います. Data_Wrap_Struct(class,mark,free,ptr) @@ -472,7 +472,7 @@ Dataオブジェクトを生成して構造体をrubyオブジェクトにカプセル このマクロの戻り値は生成されたDataオブジェクトです. classはこのDataオブジェクトのクラスです.ptrはカプセル化する -Cの構造体へのポインタです.markはこの構造体がrubyのオブジェ +Cの構造体へのポインタです.markはこの構造体がRubyのオブジェ クトへの参照がある時に使う関数です.そのような参照を含まない 時には0を指定します. @@ -505,16 +505,16 @@ Cの構造体へのポインタは変数svalに代入されます. 4.例題 - dbmパッケージを作る ここまでの説明でとりあえず拡張モジュールは作れるはずです. -rubyのextディレクトリにすでに含まれているdbmモジュールを例に +Rubyのextディレクトリにすでに含まれているdbmモジュールを例に して段階的に説明します. (1) ディレクトリを作る % mkdir ext/dbm -ruby 1.1からは任意のディレクトリでダイナミックライブラリを作 -ることができるようになりました.rubyに静的にリンクする場合に -はrubyを展開したディレクトリの下,extディレクトリの中に拡張 +Ruby 1.1からは任意のディレクトリでダイナミックライブラリを作 +ることができるようになりました.Rubyに静的にリンクする場合に +はRubyを展開したディレクトリの下,extディレクトリの中に拡張 モジュール用のディレクトリを作る必要があります.名前は適当に 選んで構いません. @@ -548,7 +548,7 @@ MANIFESTというファイルは,静的リンクのmakeの時にディレクトリ ル生成時に中間的に生成される「モジュール名.o」というファイル とが衝突するからです. -rubyは拡張モジュールをロードする時に「Init_モジュール名」と +Rubyは拡張モジュールをロードする時に「Init_モジュール名」と いう関数を自動的に実行します.dbmモジュールの場合「Init_dbm」 です.この関数の中でクラス,モジュール,メソッド,定数などの 定義を行います.dbm.cから一部引用します. @@ -576,7 +576,7 @@ Init_dbm() -- DBMモジュールはdbmのデータと対応するオブジェクトになるはずで -すから,Cの世界のdbmをrubyの世界に取り込む必要があります. +すから,Cの世界のdbmをRubyの世界に取り込む必要があります. dbm.cではData_Make_Structを以下のように使っています. @@ -626,7 +626,7 @@ fdbm_delete(obj, keystr) 引数の数が固定のタイプは第1引数がself,第2引数以降がメソッド の引数となります. -引数の数が不定のものはCの配列で受けるものとrubyの配列で受け +引数の数が不定のものはCの配列で受けるものとRubyの配列で受け るものとがあります.dbmモジュールの中で,Cの配列で受けるもの はDBMのクラスメソッドであるopen()です.これを実装している関 数fdbm_s_open()はこうなっています. @@ -660,7 +660,7 @@ fdbm_s_open(argc, argv, class) で,2つまで許されるという意味になります.省略されている時の 変数の値はnil(C言語のレベルではQnil)になります. -rubyの配列で引数を受け取るものはindexesがあります.実装はこ +Rubyの配列で引数を受け取るものはindexesがあります.実装はこ うです. -- @@ -673,14 +673,14 @@ fdbm_indexes(obj, args) } -- -第1引数はself,第2引数はrubyの配列です.ここではキャストを減 +第1引数はself,第2引数はRubyの配列です.ここではキャストを減 らすため struct RArray* で受けていますが,VALUEでも同じこと です. ** 注意事項 -rubyと共有はしないがrubyのオブジェクトを格納する可能性のある -Cの大域変数は以下の関数を使ってrubyインタプリタに変数の存在 +Rubyと共有はしないがRubyのオブジェクトを格納する可能性のある +Cの大域変数は以下の関数を使ってRubyインタプリタに変数の存在 を教えてあげてください.でないとGCでトラブルを起こします. void rb_global_variable(VALUE *var) @@ -689,7 +689,7 @@ Cの大域変数は以下の関数を使ってrubyインタプリタに変数の存在 Makefileを作る場合の雛型になるextconf.rbというファイルを作り ます.extconf.rbはモジュールのコンパイルに必要な条件のチェッ -クなどを行うことが目的です.extconf.rbの中では以下のruby関数 +クなどを行うことが目的です.extconf.rbの中では以下のRuby関数 を使うことが出来ます. have_library(lib, func): ライブラリの存在チェック @@ -706,7 +706,7 @@ Makefileを作る場合の雛型になるextconf.rbというファイルを作り ンパイルしない時にはcreate_makefileを呼ばなければMakefileは 生成されず,コンパイルも行われません. -モジュールがruby 1.1専用である場合には +モジュールがRuby 1.1専用である場合には require 'mkmf' @@ -745,7 +745,7 @@ Makefileを実際に生成するためには としてください. -ディレクトリをext以下に用意した場合にはruby全体のmakeの時に +ディレクトリをext以下に用意した場合にはRuby全体のmakeの時に 自動的にMakefileが生成されますので,このステップは不要です. (9) makeする @@ -753,15 +753,15 @@ Makefileを実際に生成するためには 動的リンクライブラリを生成する場合にはその場でmakeしてくださ い.必要であれば make install でインストールされます. -ext以下にディレクトリを用意した場合は,rubyのディレクトリで +ext以下にディレクトリを用意した場合は,Rubyのディレクトリで makeを実行するとMakefileを生成からmake,必要によってはそのモ -ジュールのrubyへのリンクまで自動的に実行してくれます. +ジュールのRubyへのリンクまで自動的に実行してくれます. extconf.rbを書き換えるなどしてMakefileの再生成が必要な時はま -たrubyディレクトリでmakeしてください. +たRubyディレクトリでmakeしてください. -動的リンクライブラリはmake installでrubyライブラリのディレク -トリの下にコピーされます.もしモジュールと協調して使うrubyで -記述されたプログラムがあり,rubyライブラリに置きたい場合には, +動的リンクライブラリはmake installでRubyライブラリのディレク +トリの下にコピーされます.もしモジュールと協調して使うRubyで +記述されたプログラムがあり,Rubyライブラリに置きたい場合には, 拡張モジュール用のディレクトリの下に lib というディレクトリ を作り,そこに 拡張子 .rb のファイルを置いておけば同時にイン ストールされます. @@ -775,17 +775,17 @@ extconf.rbを書き換えるなどしてMakefileの再生成が必要な時はま (11) できあがり 後はこっそり使うなり,広く公開するなり,売るなり,ご自由にお -使いください.rubyの作者は拡張モジュールに関して一切の権利を +使いください.Rubyの作者は拡張モジュールに関して一切の権利を 主張しません. -Appendix A. rubyのソースコードの分類 +Appendix A. Rubyのソースコードの分類 -rubyのソースはいくつかに分類することが出来ます.このうちクラ +Rubyのソースはいくつかに分類することが出来ます.このうちクラ スライブラリの部分は基本的に拡張モジュールと同じ作り方になっ ています.これらのソースは今までの説明でほとんど理解できると 思います. -ruby言語のコア +Ruby言語のコア class.c error.c @@ -804,7 +804,7 @@ ruby言語のコア st.c util.c -rubyコマンドの実装 +Rubyコマンドの実装 dmyext.c inits.c @@ -838,13 +838,13 @@ rubyコマンドの実装 Appendix B. 拡張用関数リファレンス -C言語からrubyの機能を利用するAPIは以下の通りである. +C言語からRubyの機能を利用するAPIは以下の通りである. ** 型 VALUE -rubyオブジェクトを表現する型.必要に応じてキャストして用いる. +Rubyオブジェクトを表現する型.必要に応じてキャストして用いる. 組み込み型を表現するCの型はruby.hに記述してあるRで始まる構造 体である.VALUE型をこれらにキャストするためにRで始まる構造体 名を全て大文字にした名前のマクロが用意されている. @@ -867,9 +867,9 @@ rubyオブジェクトを表現する型.必要に応じてキャストして用いる. Data_Wrap_Struct(VALUE class, void (*mark)(), void (*free)(), void *sval) -Cの任意のポインタをカプセル化したrubyオブジェクトを返す.こ -のポインタがrubyからアクセスされなくなった時,freeで指定した -関数が呼ばれる.また,このポインタの指すデータが他のrubyオブ +Cの任意のポインタをカプセル化したRubyオブジェクトを返す.こ +のポインタがRubyからアクセスされなくなった時,freeで指定した +関数が呼ばれる.また,このポインタの指すデータが他のRubyオブ ジェクトを指している場合,markに指定する関数でマークする必要 がある. @@ -905,20 +905,20 @@ dataからtype型のポインタを取り出し変数svalに代入するマクロ. VALUE rb_define_class(char *name, VALUE super) -superのサブクラスとして新しいrubyクラスを定義する. +superのサブクラスとして新しいRubyクラスを定義する. VALUE rb_define_class_under(VALUE module, char *name, VALUE super) -superのサブクラスとして新しいrubyクラスを定義し,moduleの定 +superのサブクラスとして新しいRubyクラスを定義し,moduleの定 数として定義する. VALUE rb_define_module(char *name) -新しいrubyモジュールを定義する. +新しいRubyモジュールを定義する. VALUE rb_define_module_under(VALUE module, char *name, VALUE super) -新しいrubyモジュールを定義し,moduleの定数として定義する. +新しいRubyモジュールを定義し,moduleの定数として定義する. void rb_include_module(VALUE class, VALUE module) @@ -933,20 +933,20 @@ superのサブクラスとして新しいrubyクラスを定義し,moduleの定 void rb_define_variable(char *name, VALUE *var) -rubyとCとで共有するグローバル変数を定義する.変数名が`$'で始 -まらない時には自動的に追加される.nameとしてrubyの識別子とし -て許されない文字(例えば` ')を含む場合にはrubyプログラムから +RubyとCとで共有するグローバル変数を定義する.変数名が`$'で始 +まらない時には自動的に追加される.nameとしてRubyの識別子とし +て許されない文字(例えば` ')を含む場合にはRubyプログラムから は見えなくなる. void rb_define_readonly_variable(char *name, VALUE *var) -rubyとCとで共有するread onlyのグローバル変数を定義する.read +RubyとCとで共有するread onlyのグローバル変数を定義する.read onlyであること以外はrb_define_variable()と同じ. void rb_define_virtual_variable(char *name, VALUE (*getter)(), VALUE (*setter)()) -関数によって実現されるruby変数を定義する.変数が参照された時 +関数によって実現されるRuby変数を定義する.変数が参照された時 にはgetterが,変数に値がセットされた時にはsetterが呼ばれる. void rb_define_hooked_variable(char *name, VALUE *var, @@ -959,7 +959,7 @@ onlyであること以外はrb_define_variable()と同じ. void rb_global_variable(VALUE *var) -GCのため,rubyプログラムからはアクセスされないが, rubyオブジェ +GCのため,Rubyプログラムからはアクセスされないが, Rubyオブジェ クトを含む大域変数をマークする. ** クラス定数 @@ -983,7 +983,7 @@ GCのため,rubyプログラムからはアクセスされないが, rubyオブジェ メソッドを定義する.argcはselfを除く引数の数.argcが-1の時, 関数には引数の数(selfを含まない)を第1引数, 引数の配列を第2引 数とする形式で与えられる(第3引数はself).argcが-2の時, 第1引 -数がself, 第2引数がargs(argsは引数を含むrubyの配列)という形 +数がself, 第2引数がargs(argsは引数を含むRubyの配列)という形 式で与えられる. rb_define_private_method(VALUE class, char *name, VALUE (*func)(), int argc) @@ -1004,7 +1004,7 @@ argc,argv形式で与えられた引数を分解する.fmtは必須引数の数, 数に対応する引数が与えられていない場合は変数にQnilが代入され る. -** rubyメソッド呼び出し +** Rubyメソッド呼び出し VALUE rb_funcall(VALUE recv, ID mid, int narg, ...) @@ -1016,7 +1016,7 @@ argc,argv形式で与えられた引数を分解する.fmtは必須引数の数, VALUE rb_eval_string(char *str) -文字列をrubyとスクリプトしてコンパイル・実行する. +文字列をRubyとスクリプトしてコンパイル・実行する. ID rb_intern(char *name) @@ -1036,7 +1036,7 @@ classの名前を返す(デバッグ用).classが名前を持たない時には, VALUE rb_iv_get(VALUE obj, char *name) objのインスタンス変数の値を得る.`@'で始まらないインスタンス -変数は rubyプログラムからアクセスできない「隠れた」インスタ +変数は Rubyプログラムからアクセスできない「隠れた」インスタ ンス変数になる.定数は大文字の名前を持つクラス(またはモジュー ル)のインスタンス変数として実装されている. @@ -1095,22 +1095,22 @@ exceptionで指定した例外を発生させる.fmt以下の引数はprintf()と同じ. 況の時呼ぶ.インタープリタはコアダンプし直ちに終了する.例外 処理は一切行なわれない. -** rubyの初期化・実行 +** Rubyの初期化・実行 -rubyをアプリケーションに埋め込む場合には以下のインタフェース +Rubyをアプリケーションに埋め込む場合には以下のインタフェース を使う.通常の拡張モジュールには必要ない. void ruby_init(int argc, char **argv, char **envp) -rubyインタプリタの初期化を行なう. +Rubyインタプリタの初期化を行なう. void ruby_run() -rubyインタプリタを実行する. +Rubyインタプリタを実行する. void ruby_script(char *name) -rubyのスクリプト名($0)を設定する. +Rubyのスクリプト名($0)を設定する. Appendix B. extconf.rbで使える関数たち |