-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
][ci skip] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45147 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
- Loading branch information
Showing
1 changed file
with
21 additions
and
22 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,10 +1,10 @@ | ||
# Rubyとは | ||
|
||
Rubyはシンプルかつ強力なオブジェクト指向スクリプト言語です. Rubyは最初から純粋なオブジェクト指向言語として設計されていま | ||
すから,オブジェクト指向プログラミングを手軽に行う事が出来ま す.もちろん通常の手続き型のプログラミングも可能です. | ||
Rubyはシンプルかつ強力なオブジェクト指向スクリプト言語です. Rubyは純粋なオブジェクト指向言語として設計されているので, | ||
オブジェクト指向プログラミングを手軽に行う事が出来ます.もちろん普通の手続き型のプログラミングも可能です. | ||
|
||
Rubyはテキスト処理関係の能力などに優れ,Perlと同じくらい強力 です.さらにシンプルな文法と,例外処理やイテレータなどの機構 | ||
によって,より分かりやすいプログラミングが出来ます. | ||
Rubyはテキスト処理関係の能力などに優れ,Perlと同じくらい強力です.さらにシンプルな文法と, | ||
例外処理やイテレータなどの機構によって,より分かりやすいプログラミングが出来ます. | ||
|
||
## Rubyの特長 | ||
|
||
|
@@ -16,7 +16,7 @@ Rubyはテキスト処理関係の能力などに優れ,Perlと同じくらい | |
* イテレータとクロージャ | ||
* ガーベージコレクタ | ||
* ダイナミックローディング (アーキテクチャによる) | ||
* 移植性が高い.多くのUnix-like/POSIX互換プラットフォーム上で 動くだけでなく,Windows, Mac OS | ||
* 移植性が高い.多くのUnix-like/POSIX互換プラットフォーム上で動くだけでなく,Windows, Mac OS | ||
X,BeOSなどの上でも動く cf. | ||
http://bugs.ruby-lang.org/projects/ruby-trunk/wiki/SupportedPlatformsJa | ||
|
||
|
@@ -65,14 +65,14 @@ mailto:[email protected] | |
|
||
と書いて送って下さい。 | ||
|
||
Ruby開発者向けメーリングリストもあります。こちらではrubyのバ グ、将来の仕様拡張など実装上の問題について議論されています。 参加希望の方は | ||
Ruby開発者向けメーリングリストもあります。こちらではrubyのバグ、将来の仕様拡張など実装上の問題について議論されています。 参加希望の方は | ||
|
||
mailto:[email protected] | ||
|
||
までruby-listと同様の方法でメールしてください。 | ||
|
||
Ruby拡張モジュールについて話し合うruby-extメーリングリストと 数学関係の話題について話し合うruby-mathメーリングリストと | ||
英語で話し合うruby-talkメーリングリストもあります。参加方法 はどれも同じです。 | ||
Ruby拡張モジュールについて話し合うruby-extメーリングリストと数学関係の話題について話し合うruby-mathメーリングリストと | ||
英語でrubyについて話し合うruby-talkメーリングリストもあります。参加方法はどれも同じです。 | ||
|
||
## コンパイル・インストール | ||
|
||
|
@@ -83,25 +83,25 @@ Ruby拡張モジュールについて話し合うruby-extメーリングリス | |
|
||
2. `configure` を実行して `Makefile` などを生成する | ||
|
||
環境によってはデフォルトのCコンパイラ用オプションが付き ます. `configure` オプションで `optflags=..` | ||
`warnflags=..` 等 で上書きできます. | ||
環境によってはデフォルトのCコンパイラ用オプションが付きます. `configure` オプションで `optflags=..` | ||
`warnflags=..` 等で上書きできます. | ||
|
||
3. (必要ならば)`defines.h` を編集する | ||
|
||
多分,必要無いと思います. | ||
|
||
4. (必要ならば)`ext/Setup` に静的にリンクする拡張モジュールを 指定する | ||
4. (必要ならば)`ext/Setup` に静的にリンクする拡張モジュールを指定する | ||
|
||
`ext/Setup` に記述したモジュールは静的にリンクされます. | ||
|
||
ダイナミックローディングをサポートしていないアーキテク チャでは `Setup` の1行目の「`option nodynamic`」という行のコ | ||
メントを外す必要があります.また,このアーキテクチャで 拡張モジュールを利用するためには,あらかじめ静的にリン クしておく必要があります. | ||
ダイナミックローディングをサポートしていないアーキテクチャでは `Setup` の1行目の「`option nodynamic`」という行のコ | ||
メントを外す必要があります.また,このアーキテクチャで拡張モジュールを利用するためには,あらかじめ静的にリンクをしておく必要があります. | ||
|
||
5. `make` を実行してコンパイルする | ||
|
||
6. `make check`でテストを行う. | ||
|
||
「`check succeeded`」と表示されれば成功です.ただしテスト に成功しても完璧だと保証されている訳ではありません. | ||
「`check succeeded`」と表示されれば成功です.ただしテストに成功しても完璧だと保証されている訳ではありません. | ||
|
||
7. `make install` | ||
|
||
|
@@ -131,27 +131,26 @@ Ruby拡張モジュールについて話し合うruby-extメーリングリス | |
RubyのAPIバージョンが'*x.y.z*'であれば,`${MAJOR}`は | ||
'*x*'で,`${MINOR}`は'*y*',`${TEENY}`は'*z*'です. | ||
|
||
**注意**: APIバージョンの `teeny` は,Rubyプログラムのバージョ ンとは異なることがあります. | ||
**注意**: APIバージョンの `teeny` は,Rubyプログラムのバージョンとは異なることがあります. | ||
|
||
`root` で作業する必要があるかもしれません. | ||
|
||
|
||
もし,コンパイル時にエラーが発生した場合にはエラーのログとマ シン,OSの種類を含むできるだけ詳しいレポートを作者に送ってく | ||
ださると他の方のためにもなります. | ||
もし,コンパイル時にエラーが発生した場合にはエラーのログとマシン,OSの種類を含むできるだけ詳しいレポートを作者に送って下さると他の方のためにもなります. | ||
|
||
## 移植 | ||
|
||
UNIXであれば `configure` がほとんどの差異を吸収してくれるはずで すが,思わぬ見落としがあった場合(あるに違いない),作者にその | ||
ことをレポートすれば,解決できるかも知れません. | ||
UNIXであれば `configure` がほとんどの差異を吸収してくれるはずですが,思わぬ見落としがあった場合(ある事が多い),作者にその | ||
ことを報告すれば,解決できる可能性があります. | ||
|
||
アーキテクチャにもっとも依存するのはGC部です.RubyのGCは対象 | ||
のアーキテクチャが`setjmp()`または`getcontext()`によって全てのレ ジスタを `jmp_buf` や `ucontext_t` | ||
のアーキテクチャが`setjmp()`または`getcontext()`によって全てのレジスタを `jmp_buf` や `ucontext_t` | ||
に格納することと, `jmp_buf` や `ucontext_t` とスタックが32bitアラインメントされていることを仮定 | ||
しています.特に前者が成立しない場合の対応は非常に困難でしょう. 後者の解決は比較的簡単で, `gc.c` でスタックをマークしている | ||
部分にアラインメントのバイト数だけずらしてマークするコードを 追加するだけで済みます.`defined(_\*mc68000*\_)`で括られてい | ||
部分にアラインメントのバイト数だけずらしてマークするコードを追加するだけで済みます.`defined(_\*mc68000*\_)`で括られてい | ||
る部分を参考にしてください. | ||
|
||
レジスタウィンドウを持つCPUでは,レジスタウィンドウをスタッ クにフラッシュするアセンブラコードを追加する必要があるかも知 れません. | ||
レジスタウィンドウを持つCPUでは,レジスタウィンドウをスタックにフラッシュするアセンブラコードを追加する必要があるかもしれません. | ||
|
||
## 配布条件 | ||
|
||
|