2012-05-02 00:06:40 -04:00
|
|
|
|
= Rubyとは
|
2011-09-04 08:22:46 -04:00
|
|
|
|
|
|
|
|
|
Rubyはシンプルかつ強力なオブジェクト指向スクリプト言語です.
|
|
|
|
|
Rubyは最初から純粋なオブジェクト指向言語として設計されていま
|
|
|
|
|
すから,オブジェクト指向プログラミングを手軽に行う事が出来ま
|
|
|
|
|
す.もちろん通常の手続き型のプログラミングも可能です.
|
|
|
|
|
|
|
|
|
|
Rubyはテキスト処理関係の能力などに優れ,Perlと同じくらい強力
|
|
|
|
|
です.さらにシンプルな文法と,例外処理やイテレータなどの機構
|
|
|
|
|
によって,より分かりやすいプログラミングが出来ます.
|
|
|
|
|
|
|
|
|
|
|
2012-05-02 00:06:40 -04:00
|
|
|
|
== Rubyの特長
|
2011-09-04 08:22:46 -04:00
|
|
|
|
|
2012-05-02 00:06:40 -04:00
|
|
|
|
* シンプルな文法
|
|
|
|
|
* 普通のオブジェクト指向機能(クラス,メソッドコールなど)
|
|
|
|
|
* 特殊なオブジェクト指向機能(Mixin, 特異メソッドなど)
|
|
|
|
|
* 演算子オーバーロード
|
|
|
|
|
* 例外処理機能
|
|
|
|
|
* イテレータとクロージャ
|
|
|
|
|
* ガーベージコレクタ
|
|
|
|
|
* ダイナミックローディング (アーキテクチャによる)
|
|
|
|
|
* 移植性が高い.多くのUnix-like/POSIX互換プラットフォーム上で
|
2011-09-04 08:22:46 -04:00
|
|
|
|
動くだけでなく,Windows, Mac OS X,BeOSなどの上でも動く
|
2011-12-19 16:07:09 -05:00
|
|
|
|
cf. http://bugs.ruby-lang.org/projects/ruby-trunk/wiki/SupportedPlatformsJa
|
1998-01-16 07:19:22 -05:00
|
|
|
|
|
2012-05-02 00:06:40 -04:00
|
|
|
|
== 入手法
|
1998-01-16 07:13:05 -05:00
|
|
|
|
|
2012-05-02 00:06:40 -04:00
|
|
|
|
=== FTPで
|
1998-01-16 07:13:05 -05:00
|
|
|
|
|
2011-09-04 08:22:46 -04:00
|
|
|
|
以下の場所においてあります.
|
1998-01-16 07:13:05 -05:00
|
|
|
|
|
2012-05-02 00:06:40 -04:00
|
|
|
|
ftp://ftp.ruby-lang.org/pub/ruby/
|
1998-01-16 07:13:05 -05:00
|
|
|
|
|
2012-05-02 00:06:40 -04:00
|
|
|
|
=== Subversionで
|
1999-08-13 01:45:20 -04:00
|
|
|
|
|
2011-09-04 08:22:46 -04:00
|
|
|
|
開発先端のソースコードは次のコマンドで取得できます.
|
1998-01-16 07:19:22 -05:00
|
|
|
|
|
2007-02-20 02:34:30 -05:00
|
|
|
|
$ svn co http://svn.ruby-lang.org/repos/ruby/trunk/ ruby
|
|
|
|
|
|
2011-09-04 08:22:46 -04:00
|
|
|
|
他に開発中のブランチの一覧は次のコマンドで見られます.
|
2007-02-20 02:34:30 -05:00
|
|
|
|
|
|
|
|
|
$ svn ls http://svn.ruby-lang.org/repos/ruby/branches/
|
1999-08-24 04:21:56 -04:00
|
|
|
|
|
2012-05-02 00:06:40 -04:00
|
|
|
|
=== Gitで
|
2012-01-03 06:48:20 -05:00
|
|
|
|
|
|
|
|
|
SubversionのミラーをGitHubに公開しています.
|
|
|
|
|
以下のコマンドでリポジトリを取得できます.
|
|
|
|
|
|
|
|
|
|
$ git clone git://github.com/ruby/ruby.git
|
1998-01-16 07:13:05 -05:00
|
|
|
|
|
2012-05-02 00:06:40 -04:00
|
|
|
|
== ホームページ
|
2007-02-20 02:35:33 -05:00
|
|
|
|
|
2011-09-04 08:22:46 -04:00
|
|
|
|
RubyのホームページのURLは
|
1998-01-16 07:13:05 -05:00
|
|
|
|
|
2012-05-02 00:06:40 -04:00
|
|
|
|
http://www.ruby-lang.org/
|
1998-01-16 07:13:05 -05:00
|
|
|
|
|
2011-09-04 08:22:46 -04:00
|
|
|
|
です.
|
1998-01-16 07:13:05 -05:00
|
|
|
|
|
1998-01-16 07:19:22 -05:00
|
|
|
|
|
2012-05-02 00:06:40 -04:00
|
|
|
|
== メーリングリスト
|
1998-01-16 07:13:05 -05:00
|
|
|
|
|
2011-09-04 08:22:46 -04:00
|
|
|
|
Rubyのメーリングリストがあります。参加希望の方は
|
1999-08-13 01:45:20 -04:00
|
|
|
|
|
2012-05-02 00:06:40 -04:00
|
|
|
|
mailto:ruby-list-ctl@ruby-lang.org
|
1999-08-13 01:45:20 -04:00
|
|
|
|
|
2011-09-04 08:22:46 -04:00
|
|
|
|
まで本文に
|
1999-08-13 01:45:20 -04:00
|
|
|
|
|
|
|
|
|
subscribe YourFirstName YourFamilyName
|
2011-09-25 09:40:25 -04:00
|
|
|
|
|
|
|
|
|
と書いて送って下さい。
|
1999-08-13 01:45:20 -04:00
|
|
|
|
|
2011-09-04 08:22:46 -04:00
|
|
|
|
Ruby開発者向けメーリングリストもあります。こちらではrubyのバ
|
|
|
|
|
グ、将来の仕様拡張など実装上の問題について議論されています。
|
|
|
|
|
参加希望の方は
|
1999-08-13 01:45:20 -04:00
|
|
|
|
|
2012-05-02 00:06:40 -04:00
|
|
|
|
mailto:ruby-dev-ctl@ruby-lang.org
|
1998-01-16 07:13:05 -05:00
|
|
|
|
|
2011-09-25 09:40:25 -04:00
|
|
|
|
までruby-listと同様の方法でメールしてください。
|
1998-01-16 07:13:05 -05:00
|
|
|
|
|
2011-09-04 08:22:46 -04:00
|
|
|
|
Ruby拡張モジュールについて話し合うruby-extメーリングリストと
|
|
|
|
|
数学関係の話題について話し合うruby-mathメーリングリストと
|
|
|
|
|
英語で話し合うruby-talkメーリングリストもあります。参加方法
|
2011-09-25 09:40:25 -04:00
|
|
|
|
はどれも同じです。
|
1998-01-16 07:19:22 -05:00
|
|
|
|
|
1998-01-16 07:13:05 -05:00
|
|
|
|
|
2012-05-02 00:06:40 -04:00
|
|
|
|
== コンパイル・インストール
|
1998-01-16 07:13:05 -05:00
|
|
|
|
|
2011-09-04 08:22:46 -04:00
|
|
|
|
以下の手順で行ってください.
|
1998-01-16 07:13:05 -05:00
|
|
|
|
|
2012-05-03 11:09:41 -04:00
|
|
|
|
1. もし +configure+ ファイルが見つからない、もしくは
|
|
|
|
|
+configure.in+ より古いようなら、 +autoconf+ を実行して
|
|
|
|
|
新しく +configure+ を生成する
|
2000-12-27 00:59:03 -05:00
|
|
|
|
|
2012-05-03 11:09:41 -04:00
|
|
|
|
2. +configure+ を実行して +Makefile+ などを生成する
|
2008-05-31 10:34:23 -04:00
|
|
|
|
|
2011-09-04 08:22:46 -04:00
|
|
|
|
環境によってはデフォルトのCコンパイラ用オプションが付き
|
2012-05-03 11:09:41 -04:00
|
|
|
|
ます. +configure+ オプションで <tt>optflags=..</tt> <tt>warnflags=..</tt> 等
|
2011-09-04 08:22:46 -04:00
|
|
|
|
で上書きできます.
|
1998-01-16 07:13:05 -05:00
|
|
|
|
|
2012-05-03 11:09:41 -04:00
|
|
|
|
3. (必要ならば)+defines.h+ を編集する
|
1998-01-16 07:13:05 -05:00
|
|
|
|
|
2011-09-04 08:22:46 -04:00
|
|
|
|
多分,必要無いと思います.
|
1998-01-16 07:13:05 -05:00
|
|
|
|
|
2012-05-03 11:09:41 -04:00
|
|
|
|
4. (必要ならば)+ext/Setup+ に静的にリンクする拡張モジュールを
|
2011-09-04 08:22:46 -04:00
|
|
|
|
指定する
|
1998-01-16 07:13:05 -05:00
|
|
|
|
|
2012-05-03 11:09:41 -04:00
|
|
|
|
+ext/Setup+ に記述したモジュールは静的にリンクされます.
|
1998-01-16 07:13:05 -05:00
|
|
|
|
|
2011-09-04 08:22:46 -04:00
|
|
|
|
ダイナミックローディングをサポートしていないアーキテク
|
2012-05-03 11:09:41 -04:00
|
|
|
|
チャでは +Setup+ の1行目の「<tt>option nodynamic</tt>」という行のコ
|
2011-09-04 08:22:46 -04:00
|
|
|
|
メントを外す必要があります.また,このアーキテクチャで
|
|
|
|
|
拡張モジュールを利用するためには,あらかじめ静的にリン
|
|
|
|
|
クしておく必要があります.
|
1998-01-16 07:13:05 -05:00
|
|
|
|
|
2012-05-03 11:09:41 -04:00
|
|
|
|
5. +make+ を実行してコンパイルする
|
1998-01-16 07:13:05 -05:00
|
|
|
|
|
2012-05-02 00:06:40 -04:00
|
|
|
|
6. <tt>make check</tt>でテストを行う.
|
2011-09-04 08:22:46 -04:00
|
|
|
|
|
2012-05-02 00:06:40 -04:00
|
|
|
|
「<tt>check succeeded</tt>」と表示されれば成功です.ただしテスト
|
2011-09-04 08:22:46 -04:00
|
|
|
|
に成功しても完璧だと保証されている訳ではありません.
|
1998-01-16 07:13:05 -05:00
|
|
|
|
|
2012-05-02 00:06:40 -04:00
|
|
|
|
7. <tt>make install</tt>
|
1998-01-16 07:13:05 -05:00
|
|
|
|
|
2011-09-04 08:22:46 -04:00
|
|
|
|
以下のディレクトリを作って,そこにファイルをインストー
|
|
|
|
|
ルします.
|
2010-05-05 23:12:28 -04:00
|
|
|
|
|
2012-05-02 00:06:40 -04:00
|
|
|
|
* <tt>${DESTDIR}${prefix}/bin</tt>
|
|
|
|
|
* <tt>${DESTDIR}${prefix}/include/ruby-${MAJOR}.${MINOR}.${TEENY}</tt>
|
|
|
|
|
* <tt>${DESTDIR}${prefix}/include/ruby-${MAJOR}.${MINOR}.${TEENY}/${PLATFORM}</tt>
|
|
|
|
|
* <tt>${DESTDIR}${prefix}/lib</tt>
|
|
|
|
|
* <tt>${DESTDIR}${prefix}/lib/ruby</tt>
|
|
|
|
|
* <tt>${DESTDIR}${prefix}/lib/ruby/${MAJOR}.${MINOR}.${TEENY}</tt>
|
|
|
|
|
* <tt>${DESTDIR}${prefix}/lib/ruby/${MAJOR}.${MINOR}.${TEENY}/${PLATFORM}</tt>
|
|
|
|
|
* <tt>${DESTDIR}${prefix}/lib/ruby/site_ruby</tt>
|
|
|
|
|
* <tt>${DESTDIR}${prefix}/lib/ruby/site_ruby/${MAJOR}.${MINOR}.${TEENY}</tt>
|
|
|
|
|
* <tt>${DESTDIR}${prefix}/lib/ruby/site_ruby/${MAJOR}.${MINOR}.${TEENY}/${PLATFORM}</tt>
|
|
|
|
|
* <tt>${DESTDIR}${prefix}/lib/ruby/vendor_ruby</tt>
|
|
|
|
|
* <tt>${DESTDIR}${prefix}/lib/ruby/vendor_ruby/${MAJOR}.${MINOR}.${TEENY}</tt>
|
|
|
|
|
* <tt>${DESTDIR}${prefix}/lib/ruby/vendor_ruby/${MAJOR}.${MINOR}.${TEENY}/${PLATFORM}</tt>
|
|
|
|
|
* <tt>${DESTDIR}${prefix}/lib/ruby/gems/${MAJOR}.${MINOR}.${TEENY}</tt>
|
|
|
|
|
* <tt>${DESTDIR}${prefix}/share/man/man1</tt>
|
|
|
|
|
* <tt>${DESTDIR}${prefix}/share/ri/${MAJOR}.${MINOR}.${TEENY}/system</tt>
|
|
|
|
|
|
2012-05-03 11:09:39 -04:00
|
|
|
|
RubyのAPIバージョンが'_x.y.z_'であれば,<tt>${MAJOR}</tt>は
|
|
|
|
|
'_x_'で,<tt>${MINOR}</tt>は'_y_',<tt>${TEENY}</tt>は'_z_'です.
|
2012-05-02 00:06:40 -04:00
|
|
|
|
|
2012-05-03 11:09:41 -04:00
|
|
|
|
<b>注意</b>: APIバージョンの +teeny+ は,Rubyプログラムのバージョ
|
2011-09-04 08:22:46 -04:00
|
|
|
|
ンとは異なることがあります.
|
2010-05-05 23:12:28 -04:00
|
|
|
|
|
2012-05-03 11:09:41 -04:00
|
|
|
|
+root+ で作業する必要があるかもしれません.
|
1999-01-19 23:59:39 -05:00
|
|
|
|
|
2011-09-04 08:22:46 -04:00
|
|
|
|
もし,コンパイル時にエラーが発生した場合にはエラーのログとマ
|
|
|
|
|
シン,OSの種類を含むできるだけ詳しいレポートを作者に送ってく
|
|
|
|
|
ださると他の方のためにもなります.
|
1998-01-16 07:13:05 -05:00
|
|
|
|
|
1998-01-16 07:19:22 -05:00
|
|
|
|
|
2012-05-02 00:06:40 -04:00
|
|
|
|
== 移植
|
1998-01-16 07:13:05 -05:00
|
|
|
|
|
2012-05-03 11:09:41 -04:00
|
|
|
|
UNIXであれば +configure+ がほとんどの差異を吸収してくれるはずで
|
2011-09-04 08:22:46 -04:00
|
|
|
|
すが,思わぬ見落としがあった場合(あるに違いない),作者にその
|
|
|
|
|
ことをレポートすれば,解決できるかも知れません.
|
1998-01-16 07:13:05 -05:00
|
|
|
|
|
2011-09-04 08:22:46 -04:00
|
|
|
|
アーキテクチャにもっとも依存するのはGC部です.RubyのGCは対象
|
2012-05-02 00:06:40 -04:00
|
|
|
|
のアーキテクチャが<tt>setjmp()</tt>または<tt>getcontext()</tt>によって全てのレ
|
2012-05-03 11:09:41 -04:00
|
|
|
|
ジスタを +jmp_buf+ や +ucontext_t+ に格納することと, +jmp_buf+ や
|
|
|
|
|
+ucontext_t+ とスタックが32bitアラインメントされていることを仮定
|
|
|
|
|
しています.特に前者が成立しない場合の対応は非常に困難でしょう.
|
|
|
|
|
後者の解決は比較的簡単で, +gc.c+ でスタックをマークしている
|
2011-09-04 08:22:46 -04:00
|
|
|
|
部分にアラインメントのバイト数だけずらしてマークするコードを
|
2012-05-02 00:06:40 -04:00
|
|
|
|
追加するだけで済みます.<tt>defined(\_\_mc68000\_\_)</tt>で括られてい
|
2011-09-04 08:22:46 -04:00
|
|
|
|
る部分を参考にしてください.
|
1998-01-16 07:13:05 -05:00
|
|
|
|
|
2011-09-04 08:22:46 -04:00
|
|
|
|
レジスタウィンドウを持つCPUでは,レジスタウィンドウをスタッ
|
|
|
|
|
クにフラッシュするアセンブラコードを追加する必要があるかも知
|
|
|
|
|
れません.
|
1998-01-16 07:13:05 -05:00
|
|
|
|
|
1998-01-16 07:19:22 -05:00
|
|
|
|
|
2012-05-02 00:06:40 -04:00
|
|
|
|
== 配布条件
|
1998-01-16 07:13:05 -05:00
|
|
|
|
|
2012-05-03 11:09:41 -04:00
|
|
|
|
+COPYING.ja+ ファイルを参照してください。
|
1998-01-16 07:19:22 -05:00
|
|
|
|
|
1998-01-16 07:13:05 -05:00
|
|
|
|
|
2012-05-02 00:06:40 -04:00
|
|
|
|
== 著者
|
1998-01-16 07:13:05 -05:00
|
|
|
|
|
2012-05-02 00:06:40 -04:00
|
|
|
|
コメント,バグレポートその他は mailto:matz@ruby-lang.jp まで.
|
1998-01-16 07:13:05 -05:00
|
|
|
|
-------------------------------------------------------
|
|
|
|
|
created at: Thu Aug 3 11:57:36 JST 1995
|
2012-05-02 00:06:40 -04:00
|
|
|
|
--
|
1998-01-16 07:13:05 -05:00
|
|
|
|
Local variables:
|
2012-05-02 00:06:40 -04:00
|
|
|
|
mode: rdoc
|
1998-01-16 07:13:05 -05:00
|
|
|
|
end:
|