AlkantarClanX12

Your IP : 3.21.159.223


Current Path : /opt/alt/ruby20/share/doc/alt-ruby20/
Upload File :
Current File : //opt/alt/ruby20/share/doc/alt-ruby20/README.ja

= 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のメーリングリストがあります。参加希望の方は

mailto:ruby-list-ctl@ruby-lang.org

まで本文に

   subscribe YourFirstName YourFamilyName

と書いて送って下さい。

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

mailto: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+ オプションで <tt>optflags=..</tt> <tt>warnflags=..</tt> 等
     で上書きできます.

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

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

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

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

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

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

6.   <tt>make check</tt>でテストを行う.

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

7.   <tt>make install</tt>

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

     * <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>

     RubyのAPIバージョンが'_x.y.z_'であれば,<tt>${MAJOR}</tt>は
     '_x_'で,<tt>${MINOR}</tt>は'_y_',<tt>${TEENY}</tt>は'_z_'です.

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

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

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


== 移植

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

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

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


== 配布条件

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


== 著者

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