summaryrefslogtreecommitdiff
path: root/README
blob: ad239f98d2323442263a63b05474236c67cf5f5c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
* 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の配布に関して著作権保持者である作者<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: