* Rubyとは Rubyはシンプルかつ強力なオブジェクト指向スクリプト言語です. Rubyは最初から純粋なオブジェクト指向言語として設計されていま すから,オブジェクト指向プログラミングを手軽に行う事が出来ま す.もちろん通常の手続き型のプログラミングも可能です. Rubyはテキスト処理関係の能力などに優れ,perlと同じくらい強力 です.さらにシンプルな文法と,例外処理やイテレータなどの機構 によって,より分かりやすいプログラミングが出来ます. * Rubyの特長. + シンプルな文法 + 普通のオブジェクト指向機能(クラス,メソッドコールなど) + 特殊なオブジェクト指向機能(Mixin, 特異メソッドなど) + 演算子オーバーロード + 例外処理機能 + イテレータとクロージャ + ガーベージコレクタ + ダイナミックローディング (アーキテクチャによる) + 移植性が高い.多くのUNIX上で動く * 入手法 ** ftpで 以下の場所においてあります. ftp://ftp.kk.info.kanagawa-u.ac.jp/pub/languages/ruby/ ** メイルで 以下のアドレスに`send'というSubjectのメイルを送って下さい. ruby-archive@caelum.co.jp 本文には何を書いても構いません.折り返し,最新版のrubyが送っ て来ます. * メイリングリスト Rubyに関わる話題のためのメイリングリストを解説しました.ア ドレスは ruby-list@caelum.co.jp です.このアドレスにメイルを送れば,自動的に登録されます. * コンパイル・インストール 以下の手順で行ってください. 1. configureを実行してMakefileなどを生成する 2. (必要ならば)defines.hを編集する 多分,必要無いと思います. 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の配布に関して著作権保持者である作者 は以下の条件をつけます. + 更新 いかなる目的であれ自由です.ただし,機能拡張やバグ修正は 作者へのフィードバックを期待します(もちろん強制ではあり ません). + 他のプログラムへの引用 いかなる目的であれ自由です.ただし,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: