summaryrefslogtreecommitdiff
path: root/README.ja
blob: dd7f67ca59b089f238601066097bef3409adc5f4 (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
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
* Rubyとは

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

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


* Rubyの特長

  + シンプルな文法
  + 普通のオブジェクト指向機能(クラス,メソッドコールなど)
  + 特殊なオブジェクト指向機能(Mixin, 特異メソッドなど)
  + 演算子オーバーロード
  + 例外処理機能
  + イテレータとクロージャ
  + ガーベージコレクタ
  + ダイナミックローディング (アーキテクチャによる)
  + 移植性が高い.多くのUnix-like/POSIX互換プラットフォーム上で
    動くだけでなく,Windows, Mac OS X,BeOSなどの上でも動く
    cf. http://redmine.ruby-lang.org/wiki/ruby-19/SupportedPlatformsJa

* 入手法

** FTPで

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

  ftp://ftp.ruby-lang.org/pub/ruby/

** Subversionで

開発先端のソースコードは次のコマンドで取得できます.

  $ svn co http://svn.ruby-lang.org/repos/ruby/trunk/ ruby

他に開発中のブランチの一覧は次のコマンドで見られます.

  $ svn ls http://svn.ruby-lang.org/repos/ruby/branches/


* ホームページ

RubyのホームページのURLは

   http://www.ruby-lang.org/

です.


* メーリングリスト

Rubyのメーリングリストがあります。参加希望の方は

   ruby-list-ctl@ruby-lang.org

まで本文に

   subscribe YourFirstName YourFamilyName
   
と書いて送って下さい。 

Ruby開発者向けメーリングリストもあります。こちらではrubyのバ
グ、将来の仕様拡張など実装上の問題について議論されています。
参加希望の方は

   ruby-dev-ctl@ruby-lang.org

までruby-listと同様の方法でメールしてください。 

Ruby拡張モジュールについて話し合うruby-extメーリングリストと
数学関係の話題について話し合うruby-mathメーリングリストと
英語で話し合うruby-talkメーリングリストもあります。参加方法
はどれも同じです。 


* コンパイル・インストール

以下の手順で行ってください.

  1. もしconfigureファイルが見つからない、もしくは
     configure.inより古いようなら、autoconfを実行して
     新しくconfigureを生成する

  2. configureを実行してMakefileなどを生成する

     環境によってはデフォルトのCコンパイラ用オプションが付き
     ます.configureオプションで optflags=.. warnflags=.. 等
     で上書きできます.

  3. (必要ならば)defines.hを編集する

     多分,必要無いと思います.

  4. (必要ならば)ext/Setupに静的にリンクする拡張モジュールを
     指定する

     ext/Setupに記述したモジュールは静的にリンクされます.

     ダイナミックローディングをサポートしていないアーキテク
     チャではSetupの1行目の「option nodynamic」という行のコ
     メントを外す必要があります.また,このアーキテクチャで
     拡張モジュールを利用するためには,あらかじめ静的にリン
     クしておく必要があります.

  5. makeを実行してコンパイルする

  6. make testでテストを行う.

     「test succeeded」と表示されれば成功です.ただしテスト
     に成功しても完璧だと保証されている訳ではありません.

  7. make install

     以下のディレクトリを作って,そこにファイルをインストー
     ルします.

       * ${DESTDIR}${prefix}/bin
       * ${DESTDIR}${prefix}/include/ruby-${MAJOR}.${MINOR}.${TEENY}
       * ${DESTDIR}${prefix}/include/ruby-${MAJOR}.${MINOR}.${TEENY}/${PLATFORM}
       * ${DESTDIR}${prefix}/lib
       * ${DESTDIR}${prefix}/lib/ruby
       * ${DESTDIR}${prefix}/lib/ruby/${MAJOR}.${MINOR}.${TEENY}
       * ${DESTDIR}${prefix}/lib/ruby/${MAJOR}.${MINOR}.${TEENY}/${PLATFORM}
       * ${DESTDIR}${prefix}/lib/ruby/site_ruby
       * ${DESTDIR}${prefix}/lib/ruby/site_ruby/${MAJOR}.${MINOR}.${TEENY}
       * ${DESTDIR}${prefix}/lib/ruby/site_ruby/${MAJOR}.${MINOR}.${TEENY}/${PLATFORM}
       * ${DESTDIR}${prefix}/lib/ruby/vendor_ruby
       * ${DESTDIR}${prefix}/lib/ruby/vendor_ruby/${MAJOR}.${MINOR}.${TEENY}
       * ${DESTDIR}${prefix}/lib/ruby/vendor_ruby/${MAJOR}.${MINOR}.${TEENY}/${PLATFORM}
       * ${DESTDIR}${prefix}/lib/ruby/gems/${MAJOR}.${MINOR}.${TEENY}
       * ${DESTDIR}${prefix}/share/man/man1
       * ${DESTDIR}${prefix}/share/ri/${MAJOR}.${MINOR}.${TEENY}/system

     RubyのAPIバージョンが`x.y.z'であれば,((|${MAJOR}|))は
     `x'で,((|${MINOR}|))は`y',((|${TEENY}|))は`z'です.

     注意: APIバージョンのteenyは,Rubyプログラムのバージョ
     ンとは異なることがあります.

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

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


* 移植

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

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

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


* 配布条件

COPYING.jaファイルを参照してください。


* 著者

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