2014-01-23 08:59:24 +04:00
|
|
|
|
# Rubyとは
|
|
|
|
|
|
|
|
|
|
Rubyはシンプルかつ強力なオブジェクト指向スクリプト言語です. Rubyは最初から純粋なオブジェクト指向言語として設計されていま
|
|
|
|
|
すから,オブジェクト指向プログラミングを手軽に行う事が出来ま す.もちろん通常の手続き型のプログラミングも可能です.
|
|
|
|
|
|
|
|
|
|
Rubyはテキスト処理関係の能力などに優れ,Perlと同じくらい強力 です.さらにシンプルな文法と,例外処理やイテレータなどの機構
|
|
|
|
|
によって,より分かりやすいプログラミングが出来ます.
|
|
|
|
|
|
|
|
|
|
## Rubyの特長
|
|
|
|
|
|
|
|
|
|
* シンプルな文法
|
|
|
|
|
* 普通のオブジェクト指向機能(クラス,メソッドコールなど)
|
|
|
|
|
* 特殊なオブジェクト指向機能(Mixin, 特異メソッドなど)
|
|
|
|
|
* 演算子オーバーロード
|
|
|
|
|
* 例外処理機能
|
|
|
|
|
* イテレータとクロージャ
|
|
|
|
|
* ガーベージコレクタ
|
|
|
|
|
* ダイナミックローディング (アーキテクチャによる)
|
|
|
|
|
* 移植性が高い.多くのUnix-like/POSIX互換プラットフォーム上で 動くだけでなく,Windows, Mac OS
|
|
|
|
|
X,BeOSなどの上でも動く cf.
|
|
|
|
|
http://bugs.ruby-lang.org/projects/ruby-trunk/wiki/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/
|
|
|
|
|
|
|
|
|
|
### Gitで
|
|
|
|
|
|
|
|
|
|
SubversionのミラーをGitHubに公開しています. 以下のコマンドでリポジトリを取得できます.
|
|
|
|
|
|
|
|
|
|
$ git clone git://github.com/ruby/ruby.git
|
|
|
|
|
|
|
|
|
|
## ホームページ
|
|
|
|
|
|
|
|
|
|
RubyのホームページのURLは
|
|
|
|
|
|
|
|
|
|
http://www.ruby-lang.org/
|
|
|
|
|
|
|
|
|
|
です.
|
|
|
|
|
|
|
|
|
|
## メーリングリスト
|
|
|
|
|
|
|
|
|
|
Rubyのメーリングリストがあります。参加希望の方は
|
|
|
|
|
|
2014-01-25 17:18:47 +04:00
|
|
|
|
mailto:ruby-list-request@ruby-lang.org
|
2014-01-23 08:59:24 +04:00
|
|
|
|
|
|
|
|
|
まで本文に
|
|
|
|
|
|
2014-01-25 17:18:47 +04:00
|
|
|
|
subscribe
|
2014-01-23 08:59:24 +04:00
|
|
|
|
|
|
|
|
|
と書いて送って下さい。
|
|
|
|
|
|
|
|
|
|
Ruby開発者向けメーリングリストもあります。こちらではrubyのバ グ、将来の仕様拡張など実装上の問題について議論されています。 参加希望の方は
|
|
|
|
|
|
2014-01-25 17:18:47 +04:00
|
|
|
|
mailto:ruby-dev-request@ruby-lang.org
|
2014-01-23 08:59:24 +04:00
|
|
|
|
|
|
|
|
|
まで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 check`でテストを行う.
|
|
|
|
|
|
|
|
|
|
「`check succeeded`」と表示されれば成功です.ただしテスト に成功しても完璧だと保証されている訳ではありません.
|
|
|
|
|
|
|
|
|
|
7. `make install`
|
|
|
|
|
|
|
|
|
|
以下のディレクトリを作って,そこにファイルをインストー ルします.
|
|
|
|
|
|
|
|
|
|
* `${DESTDIR}${prefix}/bin`
|
|
|
|
|
* `${DESTDIR}${prefix}/include/ruby-${MAJOR}.${MINOR}.${TEENY}`
|
|
|
|
|
* `${DESTDIR}${prefix}/include/ruby-${MAJOR}.${MINOR}.${TEENY}/${PLATFOR
|
|
|
|
|
M}`
|
|
|
|
|
* `${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}/${P
|
|
|
|
|
LATFORM}`
|
|
|
|
|
* `${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` ファイルを参照してください。
|
|
|
|
|
|
|
|
|
|
## 著者
|
|
|
|
|
|
|
|
|
|
コメント,バグレポートその他は mailto:matz@ruby-lang.org まで.
|
|
|
|
|
---
|
|
|
|
|
created at: Thu Aug 3 11:57:36 JST 1995 -- Local variables: mode: rdoc end:
|