1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
ruby--ruby/README.ja.md
Nobuyoshi Nakada 366e88e508
[DOC] Update README [ci skip]
* Use `autogen.sh`.
* The subversion repository is only for old versions, and
  secondary now.
* Moved long links to footnotes.
2021-03-17 23:55:03 +09:00

9 KiB
Raw Blame History

Build Status Build status Actions Status: macOS Actions Status: MinGW Actions Status: MJIT Actions Status: Ubuntu Actions Status: Windows

Rubyとは

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

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

Rubyの特長

  • シンプルな文法
  • 普通のオブジェクト指向機能(クラス,メソッドコールなど)
  • 特殊なオブジェクト指向機能(Mixin特異メソッドなど)
  • 演算子オーバーロード
  • 例外処理機能
  • イテレータとクロージャ
  • ガーベージコレクタ
  • ダイナミックローディング (アーキテクチャによる)
  • 移植性が高い多くのUnix-like/POSIX互換プラットフォーム上で動くだけでなくWindows macOS Haikuなどの上でも動く cf. https://github.com/ruby/ruby/blob/master/doc/contributing.rdoc#platform-maintainers

入手法

サードパーティーツールを使った方法を含むRubyのインストール方法の一覧は

https://www.ruby-lang.org/ja/downloads/

を参照してください.

Git

ミラーをGitHubに公開しています 以下のコマンドでリポジトリを取得できます.

$ git clone https://github.com/ruby/ruby.git

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

$ git ls-remote https://github.com/ruby/ruby.git

Rubyリポジトリの本来のmasterは https://git.ruby-lang.org/ruby.git にあります. コミッタはこちらを使います.

Subversion

古いRubyのバージョンのソースコードは次のコマンドでも取得できます

$ svn co https://svn.ruby-lang.org/repos/ruby/branches/ruby_2_6/ ruby

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

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

ホームページ

RubyのホームページのURLは

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

です.

メーリングリスト

Rubyのメーリングリストがあります参加希望の方は ruby-list-request@ruby-lang.org まで本文に

subscribe

と書いて送って下さい.

Ruby開発者向けメーリングリストもありますこちらではrubyのバグ将来の仕様拡張など実装上の問題について議論されています 参加希望の方は ruby-dev-request@ruby-lang.org までruby-listと同様の方法でメールしてください

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

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

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

  1. (Gitリポジトリから取得したソースをビルドする場合) ./autogen.sh を実行して新しく configure を生成する

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

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

  3. (必要ならば)include/ruby/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}/${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バージョンの teenyRubyプログラムのバージョンとは異なることがあります

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

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

移植

UNIXであれば configure がほとんどの差異を吸収してくれるはずですが,思わぬ見落としがあった場合(ある事が多い),作者にその ことを報告すれば,解決できる可能性があります.

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

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

配布条件

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

フィードバック

Rubyに関する質問は Ruby-Talk英語や Ruby-List日本語 (https://www.ruby-lang.org/ja/community/mailing-lists) や, stackoverflow (https://ja.stackoverflow.com/) などのWebサイトに投稿してください

バグ報告は https://bugs.ruby-lang.org で受け付けています.

著者

Rubyのオリジナル版は1995年にまつもとゆきひろ氏によって設計・開発されました

mailto:matz@ruby-lang.org