diff options
Diffstat (limited to 'README')
-rw-r--r-- | README | 182 |
1 files changed, 131 insertions, 51 deletions
@@ -1,73 +1,153 @@ -.\" README - -*- Text -*- created at: Wed Aug 3 11:57:36 JST 1994 +* Rubyとは -コンパイル・インストール +Rubyはシンプルかつ強力なオブジェクト指向スクリプト言語です. +Rubyは最初から純粋なオブジェクト指向言語として設計されていま +すから,オブジェクト指向プログラミングを手軽に行う事が出来ま +す.もちろん通常の手続き型のプログラミングも可能です. - 1. configureを実行してMakefileを生成する. - 2. (必要ならば)defines.hを編集する. - 3. makeを実行してコンパイルする - 4. make install +Rubyはテキスト処理関係の能力などに優れ,perlと同じくらい強力 +です.さらにシンプルな文法と,例外処理やイテレータなどの機構 +によって,より分かりやすいプログラミングが出来ます. - もし, コンパイル時にエラーが発生した場合にはエラーのログとマ - シン, OSの種類を含むできるだけ詳しいレポートを作者に送ってい - ただきたい. +* Rubyの特長. -機能追加 + + シンプルな文法 + + 普通のオブジェクト指向機能(クラス,メソッドコールなど) + + 特殊なオブジェクト指向機能(Mixin, 特異メソッドなど) + + 演算子オーバーロード + + 例外処理機能 + + イテレータとクロージャ + + ガーベージコレクタ + + ダイナミックローディング (アーキテクチャによる) + + 移植性が高い.多くのUNIX上で動く - Cコードを書くことによって, 簡単にrubyに機能を追加できる. - そのおおまかな手順は以下の通りである. +* 入手法 - * 関数的メソッドを追加する場合 +** ftpで - (1) Cで関数を書く - (2) rb_define_method()でカーネルクラスのメソッドとして関 - 数をrubyに登録する関数を書く - (3) init.cを編集して, 登録する関数を呼び出す +以下の場所においてあります. - * クラスを追加する場合 + ftp://ftp.kk.info.kanagawa-u.ac.jp/pub/languages/ruby/ - (1) クラスを設計する - (2) メソッドをCで記述する - (3) rb_define_class()でクラスを生成するコードを書く - (4) rb_define_method()でメソッドを登録するコードを書く - (5) init.cを編集して, 初期化する関数を呼び出す +** メイルで - 詳しくはC-IFを参照. +以下のアドレスに`send'というSubjectのメイルを送って下さい. -移植 + ruby-archive@caelum.co.jp - UNIXであればconfigureがほとんどの差異を吸収してくれるはず - だが, 思わぬ見落としがあった場合(あるに違いない), 作者にレ - ポートすれば, 解決できるかも知れない. +本文には何を書いても構いません.折り返し,最新版のrubyが送っ +て来ます. - アークテクチャにもっとも依存するのはGC部である. rubyのGCは - 対象のアーキテクチャがsetjmp()によって, 全てのレジスタを - jmp_bufに格納することと, jmp_bufとスタックが32bitアライン - メントされていることを仮定している. 前者が真実でない場合の - 移植は困難を極めるだろう. 後者は割と簡単に解決できる. gc.c - のスタックをマークする部分にアラインメントのバイト数だけず - らしてマークするコードを追加するだけで済む. +* メイリングリスト - sparc以外のレジスタウィンドウを持つCPUでは, レジスタウィン - ドウをフラッシュするコードを追加する必要があるかも知れない. + Rubyに関わる話題のためのメイリングリストを解説しました.ア + ドレスは -配布条件 + ruby-list@caelum.co.jp - Rubyは最終的にはGNU Public Licenseにしたがった条件で配布さ - れる予定だが, 現時点では以下の条件で配布する. + です.このアドレスにメイルを送れば,自動的に登録されます. - * 更新 +* コンパイル・インストール - いかなる目的であれ自由である. ただし, バグ修正は作者への - フィードバックを期待する(強制ではない) +以下の手順で行ってください. - * 他のプログラムへの引用 + 1. configureを実行してMakefileなどを生成する - いかなる目的であれ自由である. ただし, 配布したコードに含 - まれる他の作者によるコードは, それぞれの作者の意向による - 制限が加えられる. + 2. (必要ならば)defines.hを編集する - * 再配布 + 多分,必要無いと思います. - 禁止する. 入手したい人は作者に直接連絡をとること. これは - Rubyの言語仕様が不安定な状態のまま広く流布するのを制限す - るためであり, 言語仕様が安定した時点で再配布自由とする. + 3. (必要ならば)ext/Setupに静的にリンクする拡張モジュールを + 指定する + + ext/Setupに記述したモジュールは静的にリンクされます. + + ダイナミックローディングをサポートしていないアーキテク + チャではSetupの1行目の「option nodynamic」という行のコ + メントを外す必要があります.また,このアーキテクチャで + 拡張モジュールを利用するためには,あらかじめ静的にリン + クしておく必要があります. + + 4. makeを実行してコンパイルする + + 5. make testでテストを行う. + + 「test succeeded」と表示されれば成功です. + + 6. make install + +もし,コンパイル時にエラーが発生した場合にはエラーのログとマ +シン,OSの種類を含むできるだけ詳しいレポートを作者に送ってく +ださると他の方のためにもなります. + +* 移植 + +UNIXであればconfigureがほとんどの差異を吸収してくれるはずで +すが,思わぬ見落としがあった場合(あるに違いない),作者にその +ことをレポートすれば,解決できるかも知れません. + +アークテクチャにもっとも依存するのはGC部です.rubyのGCは対象 +のアーキテクチャがsetjmp()によって,全てのレジスタを jmp_buf +に格納することと,jmp_bufとスタックが32bitアラインメントされ +ていることを仮定しています.前者が成立しない場合の対応は困難 +を極めるでしょう.後者の解決は比較的簡単で,gc.cでスタックを +マークしている部分にアラインメントのバイト数だけずらしてマー +クするコードを追加するだけで済みます.「defined(THINK_C)」で +括られている部分を参考にしてください + +# 実際にはrubyはThink Cでコンパイルできません. + +sparc以外のレジスタウィンドウを持つCPUでは,レジスタウィンド +ウをフラッシュするコードを追加する必要があるかも知れません. + +* 配布条件 + +Rubyの配布に関して著作権保持者である作者<matz@caelum.co.jp> +は以下の条件をつけます. + + + 更新 + + いかなる目的であれ自由です.ただし,機能拡張やバグ修正は + 作者へのフィードバックを期待します(もちろん強制ではあり + ません). + + + 他のプログラムへの引用 + + いかなる目的であれ自由です.ただし,rubyに含まれる他の作 + 者によるコードは,それぞれの作者の意向による制限が加えら + れます.具体的にはgc.c(一部),regex.[ch],fnmatch.[ch], + glob.c, st.[ch]とmissingディレクトリ下のファイル群が該当 + します. + + + 再配布 + + 配布した状態を維持する限り自由です.変更を行ったものを再 + 配布することを希望する時には作者に連絡してください.オリ + ジナルのrubyと明確に区別できるようであれば,再配布を認め + る方針です. + + 変更を行なわないrubyをコンパイルしたバイナリの配布は禁止 + しませんが,コンパイル条件に起因するトラブルを減らすため + に,コンパイル時の情報をできるだけ詳しく明記する事を希望 + します. + + + Rubyスクリプトの権利 + + 全てのrubyスクリプトの権利はそれぞれの著作者に属します. + 作者はこれらに関して一切の権利を主張しません.またrubyに + 組み込むための拡張モジュールに関しても同様です. + + + 無保証 + + Rubyは無保証です.作者はrubyをサポートする意志はあります + が,ruby自身のバグあるいはrubyスクリプトのバグなどから発 + 生するいかなる損害に対しても責任を持ちません. + +* 著者 + +コメント,バグレポートその他は matz@caelum.co.jp まで. +------------------------------------------------------- +created at: Thu Aug 3 11:57:36 JST 1995 +Local variables: +mode: indented-text +end: |