diff options
Diffstat (limited to 'README')
-rw-r--r-- | README | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/README b/README new file mode 100644 index 0000000000..3ca523bdde --- /dev/null +++ b/README @@ -0,0 +1,51 @@ +.\" README - -*- Text -*- created at: Wed Aug 3 11:57:36 JST 1994 + +コンパイル・インストール + + 1. configureを実行してMakefileを生成する. + 2. (必要ならば)defines.hを編集する. + 3. makeを実行してコンパイルする + 4. make install + + もし, コンパイル時にエラーが発生した場合にはエラーのログとマ + シン, OSの種類を含むできるだけ詳しいレポートを作者に送ってい + ただきたい. + +機能追加 + + Cコードを書くことによって, 簡単にrubyに機能を追加できる. + そのおおまかな手順は以下の通りである. + + * 関数的メソッドを追加する場合 + + (1) Cで関数を書く + (2) rb_define_method()でカーネルクラスのメソッドとして関 + 数をrubyに登録する関数を書く + (3) init.cを編集して, 登録する関数を呼び出す + + * クラスを追加する場合 + + (1) クラスを設計する + (2) メソッドをCで記述する + (3) rb_define_class()でクラスを生成するコードを書く + (4) rb_define_method()でメソッドを登録するコードを書く + (5) init.cを編集して, 初期化する関数を呼び出す + + 詳しくはC-IFを参照. + +移植 + + UNIXであればconfigureがほとんどの差異を吸収してくれるはず + だが, 思わぬ見落としがあった場合(あるに違いない), 作者にレ + ポートすれば, 解決できるかも知れない. + + アークテクチャにもっとも依存するのはGC部である. rubyのGCは + 対象のアーキテクチャがsetjmp()によって, 全てのレジスタを + jmp_bufに格納することと, jmp_bufとスタックが32bitアライン + メントされていることを仮定している. 前者が真実でない場合の + 移植は困難を極めるだろう. 後者は割と簡単に解決できる. gc.c + のスタックをマークする部分にアラインメントのバイト数だけず + らしてマークするコードを追加するだけで済む. + + sparc以外のレジスタウィンドウを持つCPUでは, レジスタウィン + ドウをフラッシュするコードを追加する必要があるかも知れない. |