* Rubyとは

Rubyはシンプルかつ強力なオブジェクト指向スクリプト言語です．
Rubyは最初から純粋なオブジェクト指向言語として設計されていま
すから，オブジェクト指向プログラミングを手軽に行う事が出来ま
す．もちろん通常の手続き型のプログラミングも可能です．

Rubyはテキスト処理関係の能力などに優れ，Perlと同じくらい強力
です．さらにシンプルな文法と，例外処理やイテレータなどの機構
によって，より分かりやすいプログラミングが出来ます．


* Rubyの特長．

  + シンプルな文法
  + 普通のオブジェクト指向機能(クラス，メソッドコールなど)
  + 特殊なオブジェクト指向機能(Mixin, 特異メソッドなど)
  + 演算子オーバーロード
  + 例外処理機能
  + イテレータとクロージャ
  + ガーベージコレクタ
  + ダイナミックローディング (アーキテクチャによる)
  + 移植性が高い．多くのUNIX上で動く


* 入手法

** ftpで

以下の場所においてあります．

  ftp://ftp.netlab.co.jp/pub/lang/ruby/


* ホームページ

 RubyのホームページのURLは

   http://www.netlab.co.jp/ruby/jp/

 です．


* メイリングリスト

 Rubyに関わる話題のためのメイリングリストを開設しました．ア
 ドレスは

   ruby-list@netlab.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

     rootで作業する必要があるかもしれません．

もし，コンパイル時にエラーが発生した場合にはエラーのログとマ
シン，OSの種類を含むできるだけ詳しいレポートを作者に送ってく
ださると他の方のためにもなります．


* 移植

UNIXであればconfigureがほとんどの差異を吸収してくれるはずで
すが，思わぬ見落としがあった場合(あるに違いない)，作者にその
ことをレポートすれば，解決できるかも知れません．

アークテクチャにもっとも依存するのはGC部です．RubyのGCは対象
のアーキテクチャがsetjmp()によって全てのレジスタを jmp_bufに
格納することと，jmp_bufとスタックが32bitアラインメントされて
いることを仮定しています．特に前者が成立しない場合の対応は非
常に困難でしょう．後者の解決は比較的簡単で，gc.cでスタックを
マークしている部分にアラインメントのバイト数だけずらしてマー
クするコードを追加するだけで済みます．「defined(THINK_C)」で
括られている部分を参考にしてください

# 実際にはRubyはThink Cではコンパイルできません．

レジスタウィンドウを持つCPUでは，レジスタウィンドウをスタッ
クにフラッシュするアセンブラコードを追加する必要があるかも知
れません．


* 配布条件

RUbyはフリーソフトウェアです．GPL(the GNU General Public
Licence)または以下に示す条件でRubyを再配布できます．GPLにつ
いてはCOPYINGファイルを参照して下さい．

  1. 複製は制限なく自由です．

  2. 以下の条件のいずれかを満たす時に手元のRubyのソースを自
     由に変更できます．

     (a) ネットニューズにポストしたり，作者に変更を送付する
         などの方法で，変更を公開する

     (b) 変更したRubyを自分の所属する組織内部だけで使う

     (c) 変更点を明示したうえ，ソフトウェアの名前を変更する．
         そのソフトウェアを配布する時にはもとのRubyも同時に
         配布する

     (d) その他の変更条件を作者と合意する

  3. 以下の条件のいずれかを満たす時にRubyをオブジェクトコー
     ドや実行形式でも配布できます．

     (a) バイナリを受け取った人がソースを入手できるようにソー
	 スの入手法を明示する

     (b) 機械可読なソースコードを添付する

     (c) 変更を行ったバイナリは名前を変更したうえ，ソースの
         入手法を明示する

     (d) その他の配布条件を作者と合意する

  4. 他のプログラムへの引用はいかなる目的であれ自由です．た
     だし，Rubyに含まれる他の作者によるコードは，それぞれの
     作者の意向による制限が加えられます．具体的にはgc.c(一部)，
     util.c(一部)，st.[ch]，regex.[ch], fnmatch.[ch], glob.c 
     および./missingディレクトリ下のファイル群が該当します．

  5. Rubyへの入力となるスクリプトおよび，Rubyからの出力の権
     利はRubyの作者ではなく，それぞれの入出力を生成した人に
     属します．また，Rubyに組み込むための拡張モジュールにつ
     いても同様です．

  6. Rubyは無保証です．作者はRubyをサポートする意志はありま
     すが，Ruby自身のバグあるいはRubyスクリプトのバグなどか
     ら発生するいかなる損害に対しても責任を持ちません．


* 著者

コメント，バグレポートその他は matz@netlab.co.jp まで．
-------------------------------------------------------
created at: Thu Aug  3 11:57:36 JST 1995
Local variables:
mode: indented-text
end:
