summaryrefslogtreecommitdiff
path: root/README
diff options
context:
space:
mode:
Diffstat (limited to 'README')
-rw-r--r--README182
1 files changed, 131 insertions, 51 deletions
diff --git a/README b/README
index 9dc79e8e26..ad239f98d2 100644
--- a/README
+++ b/README
@@ -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: