Replace to RBOOL macro
[ruby-80x24.org.git] / README.ja.md
blobbb69c09055926d3691bdbc257fba886a7329a156
1 [![Actions Status: MinGW](https://github.com/ruby/ruby/workflows/MinGW/badge.svg)](https://github.com/ruby/ruby/actions?query=workflow%3A"MinGW")
2 [![Actions Status: MJIT](https://github.com/ruby/ruby/workflows/MJIT/badge.svg)](https://github.com/ruby/ruby/actions?query=workflow%3A"MJIT")
3 [![Actions Status: Ubuntu](https://github.com/ruby/ruby/workflows/Ubuntu/badge.svg)](https://github.com/ruby/ruby/actions?query=workflow%3A"Ubuntu")
4 [![Actions Status: Windows](https://github.com/ruby/ruby/workflows/Windows/badge.svg)](https://github.com/ruby/ruby/actions?query=workflow%3A"Windows")
5 [![AppVeyor status](https://ci.appveyor.com/api/projects/status/0sy8rrxut4o0k960/branch/master?svg=true)](https://ci.appveyor.com/project/ruby/ruby/branch/master)
6 [![Travis Status](https://app.travis-ci.com/ruby/ruby.svg?branch=master)](https://app.travis-ci.com/ruby/ruby)
7 [![Cirrus Status](https://api.cirrus-ci.com/github/ruby/ruby.svg)](https://cirrus-ci.com/github/ruby/ruby/master)
9 # Rubyとは
11 Rubyはシンプルかつ強力なオブジェクト指向スクリプト言語です. Rubyは純粋なオブジェクト指向言語として設計されているので,
12 オブジェクト指向プログラミングを手軽に行う事が出来ます.もちろん普通の手続き型のプログラミングも可能です.
14 Rubyはテキスト処理関係の能力などに優れ,Perlと同じくらい強力です.さらにシンプルな文法と,
15 例外処理やイテレータなどの機構によって,より分かりやすいプログラミングが出来ます.
17 ## Rubyの特長
19 *   シンプルな文法
20 *   普通のオブジェクト指向機能(クラス,メソッドコールなど)
21 *   特殊なオブジェクト指向機能(Mixin,特異メソッドなど)
22 *   演算子オーバーロード
23 *   例外処理機能
24 *   イテレータとクロージャ
25 *   ガーベージコレクタ
26 *   ダイナミックローディング (アーキテクチャによる)
27 *   移植性が高い.多くのUnix-like/POSIX互換プラットフォーム上で動くだけでなく,Windows, macOS,
28     Haikuなどの上でも動く cf.
29     https://github.com/ruby/ruby/blob/master/doc/contributing.rdoc#platform-maintainers
32 ## 入手法
34 サードパーティーツールを使った方法を含むRubyのインストール方法の一覧は
36 https://www.ruby-lang.org/ja/downloads/
38 を参照してください.
40 ### Git
42 ミラーをGitHubに公開しています. 以下のコマンドでリポジトリを取得できます.
44     $ git clone https://github.com/ruby/ruby.git
46 他のブランチの一覧は次のコマンドで見られます.
48     $ git ls-remote https://github.com/ruby/ruby.git
50 Rubyリポジトリの本来のmasterは https://git.ruby-lang.org/ruby.git にあります.
51 コミッタはこちらを使います.
53 ### Subversion
55 古いRubyのバージョンのソースコードは次のコマンドでも取得できます.
57     $ svn co https://svn.ruby-lang.org/repos/ruby/branches/ruby_2_6/ ruby
59 他のブランチの一覧は次のコマンドで見られます.
61     $ svn ls https://svn.ruby-lang.org/repos/ruby/branches/
64 ## ホームページ
66 RubyのホームページのURLは
68 https://www.ruby-lang.org/
70 です.
72 ## メーリングリスト
74 Rubyのメーリングリストがあります.参加希望の方は [ruby-list-request@ruby-lang.org] まで本文に
76     subscribe
78 と書いて送って下さい.
80 Ruby開発者向けメーリングリストもあります.こちらではrubyのバグ,将来の仕様拡張など実装上の問題について議論されています.
81 参加希望の方は [ruby-dev-request@ruby-lang.org] までruby-listと同様の方法でメールしてください.
83 Ruby拡張モジュールについて話し合うruby-extメーリングリストと数学関係の話題について話し合うruby-mathメーリングリストと
84 英語でrubyについて話し合うruby-talkメーリングリストもあります.参加方法はどれも同じです.
86 [ruby-list-request@ruby-lang.org]: mailto:ruby-list-request@ruby-lang.org?subject=Join%20Ruby%20Mailing%20List&body=subscribe
87 [ruby-dev-request@ruby-lang.org]: mailto:ruby-dev-request@ruby-lang.org?subject=Join%20Ruby%20Mailing%20List&body=subscribe
89 ## コンパイル・インストール
91 以下の手順で行ってください.
93 1.  (Gitリポジトリから取得したソースをビルドする場合) `./autogen.sh` を実行して新しく `configure` を生成する
95 2.  `configure` を実行して `Makefile` などを生成する
97     環境によってはデフォルトのCコンパイラ用オプションが付きます. `configure` オプションで `optflags=..`
98     `warnflags=..` 等で上書きできます.
100 3.  (必要ならば)`include/ruby/defines.h` を編集する
102     多分,必要無いと思います.
104 4.  (必要ならば)`ext/Setup` に静的にリンクする拡張モジュールを指定する
106     `ext/Setup` に記述したモジュールは静的にリンクされます.
108     ダイナミックローディングをサポートしていないアーキテクチャでは `Setup` の1行目の「`option nodynamic`」という行のコ
109     メントを外す必要があります.
110     また,このアーキテクチャで拡張モジュールを利用するためには,あらかじめ静的にリンクをしておく必要があります.
112 5.  `make` を実行してコンパイルする
114 6.  `make check`でテストを行う.
116     「`check succeeded`」と表示されれば成功です.ただしテストに成功しても完璧だと保証されている訳ではありません.
118 7.  `make install`
120     以下のディレクトリを作って,そこにファイルをインストー ルします.
122     *   `${DESTDIR}${prefix}/bin`
123     *   `${DESTDIR}${prefix}/include/ruby-${MAJOR}.${MINOR}.${TEENY}`
124     *   `${DESTDIR}${prefix}/include/ruby-${MAJOR}.${MINOR}.${TEENY}/${PLATFORM}`
125     *   `${DESTDIR}${prefix}/lib`
126     *   `${DESTDIR}${prefix}/lib/ruby`
127     *   `${DESTDIR}${prefix}/lib/ruby/${MAJOR}.${MINOR}.${TEENY}`
128     *   `${DESTDIR}${prefix}/lib/ruby/${MAJOR}.${MINOR}.${TEENY}/${PLATFORM}`
129     *   `${DESTDIR}${prefix}/lib/ruby/site_ruby`
130     *   `${DESTDIR}${prefix}/lib/ruby/site_ruby/${MAJOR}.${MINOR}.${TEENY}`
131     *   `${DESTDIR}${prefix}/lib/ruby/site_ruby/${MAJOR}.${MINOR}.${TEENY}/${PLATFORM}`
132     *   `${DESTDIR}${prefix}/lib/ruby/vendor_ruby`
133     *   `${DESTDIR}${prefix}/lib/ruby/vendor_ruby/${MAJOR}.${MINOR}.${TEENY}`
134     *   `${DESTDIR}${prefix}/lib/ruby/vendor_ruby/${MAJOR}.${MINOR}.${TEENY}/${PLATFORM}`
135     *   `${DESTDIR}${prefix}/lib/ruby/gems/${MAJOR}.${MINOR}.${TEENY}`
136     *   `${DESTDIR}${prefix}/share/man/man1`
137     *   `${DESTDIR}${prefix}/share/ri/${MAJOR}.${MINOR}.${TEENY}/system`
140     RubyのAPIバージョンが'*x.y.z*'であれば,`${MAJOR}`は
141     '*x*'で,`${MINOR}`は'*y*',`${TEENY}`は'*z*'です.
143     **注意**: APIバージョンの `teeny` は,Rubyプログラムのバージョンとは異なることがあります.
145     `root` で作業する必要があるかもしれません.
148 もし,コンパイル時にエラーが発生した場合にはエラーのログとマシン,OSの種類を含むできるだけ詳しいレポートを作者に送って下さると他の方のためにもなります.
150 ## 移植
152 UNIXであれば `configure` がほとんどの差異を吸収してくれるはずですが,思わぬ見落としがあった場合(ある事が多い),作者にその
153 ことを報告すれば,解決できる可能性があります.
155 アーキテクチャにもっとも依存するのはGC部です.RubyのGCは対象
156 のアーキテクチャが`setjmp()`または`getcontext()`によって全てのレジスタを `jmp_buf` や `ucontext_t`
157 に格納することと, `jmp_buf` や `ucontext_t` とスタックが32bitアラインメントされていることを仮定
158 しています.特に前者が成立しない場合の対応は非常に困難でしょう. 後者の解決は比較的簡単で, `gc.c` でスタックをマークしている
159 部分にアラインメントのバイト数だけずらしてマークするコードを追加するだけで済みます.`defined(__mc68000__)`で括られてい
160 る部分を参考にしてください.
162 レジスタウィンドウを持つCPUでは,レジスタウィンドウをスタックにフラッシュするアセンブラコードを追加する必要があるかもしれません.
164 ## 配布条件
166 [COPYING.ja](COPYING.ja) ファイルを参照してください.
168 ## フィードバック
170 Rubyに関する質問は [Ruby-Talk](英語)や [Ruby-List](日本語)や,
171 [stackoverflow] などのWebサイトに投稿してください.
173 バグ報告は https://bugs.ruby-lang.org で受け付けています.
175 [Ruby-Talk]: https://www.ruby-lang.org/en/community/mailing-lists
176 [Ruby-List]: https://www.ruby-lang.org/ja/community/mailing-lists
177 [stackoverflow]: https://ja.stackoverflow.com/
179 ## 著者
181 Rubyのオリジナル版は,1995年にまつもとゆきひろ氏によって設計・開発されました.
183 <mailto:matz@ruby-lang.org>