зеркало из https://github.com/github/ruby.git
Change encoding from EUC-JP to UTF-8. [Feature #5128]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33181 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
Родитель
a17fd731c9
Коммит
60c8455253
72
COPYING.ja
72
COPYING.ja
|
@ -1,51 +1,51 @@
|
|||
$BK\%W%m%0%i%`$O%U%j!<%=%U%H%&%'%"$G$9!%(B2-clause BSDL
|
||||
$B$^$?$O0J2<$K<($9>r7o$GK\%W%m%0%i%`$r:FG[I[$G$-$^$9(B
|
||||
2-clause BSDL$B$K$D$$$F$O(BBSDL$B%U%!%$%k$r;2>H$7$F2<$5$$!%(B
|
||||
本プログラムはフリーソフトウェアです.2-clause BSDL
|
||||
または以下に示す条件で本プログラムを再配布できます
|
||||
2-clause BSDLについてはBSDLファイルを参照して下さい.
|
||||
|
||||
1. $BJ#@=$O@)8B$J$/<+M3$G$9!%(B
|
||||
1. 複製は制限なく自由です.
|
||||
|
||||
2. $B0J2<$N>r7o$N$$$:$l$+$rK~$?$9;~$KK\%W%m%0%i%`$N%=!<%9$r(B
|
||||
$B<+M3$KJQ99$G$-$^$9!%(B
|
||||
2. 以下の条件のいずれかを満たす時に本プログラムのソースを
|
||||
自由に変更できます.
|
||||
|
||||
(a) $B%M%C%H%K%e!<%:$K%]%9%H$7$?$j!$:n<T$KJQ99$rAwIU$9$k(B
|
||||
$B$J$I$NJ}K!$G!$JQ99$r8x3+$9$k!%(B
|
||||
(a) ネットニューズにポストしたり,作者に変更を送付する
|
||||
などの方法で,変更を公開する.
|
||||
|
||||
(b) $BJQ99$7$?K\%W%m%0%i%`$r<+J,$N=jB0$9$kAH?%FbIt$@$1$G(B
|
||||
$B;H$&!%(B
|
||||
(b) 変更した本プログラムを自分の所属する組織内部だけで
|
||||
使う.
|
||||
|
||||
(c) $BJQ99E@$rL@<($7$?$&$(!$%=%U%H%&%'%"$NL>A0$rJQ99$9$k!%(B
|
||||
$B$=$N%=%U%H%&%'%"$rG[I[$9$k;~$K$OJQ99A0$NK\%W%m%0%i(B
|
||||
$B%`$bF1;~$KG[I[$9$k!%$^$?$OJQ99A0$NK\%W%m%0%i%`$N%=!<(B
|
||||
$B%9$NF~<jK!$rL@<($9$k!%(B
|
||||
(c) 変更点を明示したうえ,ソフトウェアの名前を変更する.
|
||||
そのソフトウェアを配布する時には変更前の本プログラ
|
||||
ムも同時に配布する.または変更前の本プログラムのソー
|
||||
スの入手法を明示する.
|
||||
|
||||
(d) $B$=$NB>$NJQ99>r7o$r:n<T$H9g0U$9$k!%(B
|
||||
(d) その他の変更条件を作者と合意する.
|
||||
|
||||
3. $B0J2<$N>r7o$N$$$:$l$+$rK~$?$9;~$KK\%W%m%0%i%`$r%3%s%Q%$(B
|
||||
$B%k$7$?%*%V%8%'%/%H%3!<%I$d<B9T7A<0$G$bG[I[$G$-$^$9!%(B
|
||||
3. 以下の条件のいずれかを満たす時に本プログラムをコンパイ
|
||||
ルしたオブジェクトコードや実行形式でも配布できます.
|
||||
|
||||
(a) $B%P%$%J%j$r<u$1<h$C$??M$,%=!<%9$rF~<j$G$-$k$h$&$K!$(B
|
||||
$B%=!<%9$NF~<jK!$rL@<($9$k!%(B
|
||||
(a) バイナリを受け取った人がソースを入手できるように,
|
||||
ソースの入手法を明示する.
|
||||
|
||||
(b) $B5!3#2DFI$J%=!<%9%3!<%I$rE:IU$9$k!%(B
|
||||
(b) 機械可読なソースコードを添付する.
|
||||
|
||||
(c) $BJQ99$r9T$C$?%P%$%J%j$OL>A0$rJQ99$7$?$&$(!$%*%j%8%J(B
|
||||
$B%k$N%=!<%9%3!<%I$NF~<jK!$rL@<($9$k!%(B
|
||||
(c) 変更を行ったバイナリは名前を変更したうえ,オリジナ
|
||||
ルのソースコードの入手法を明示する.
|
||||
|
||||
(d) $B$=$NB>$NG[I[>r7o$r:n<T$H9g0U$9$k!%(B
|
||||
(d) その他の配布条件を作者と合意する.
|
||||
|
||||
4. $BB>$N%W%m%0%i%`$X$N0zMQ$O$$$+$J$kL\E*$G$"$l<+M3$G$9!%$?(B
|
||||
$B$@$7!$K\%W%m%0%i%`$K4^$^$l$kB>$N:n<T$K$h$k%3!<%I$O!$$=(B
|
||||
$B$l$>$l$N:n<T$N0U8~$K$h$k@)8B$,2C$($i$l$k>l9g$,$"$j$^$9!%(B
|
||||
4. 他のプログラムへの引用はいかなる目的であれ自由です.た
|
||||
だし,本プログラムに含まれる他の作者によるコードは,そ
|
||||
れぞれの作者の意向による制限が加えられる場合があります.
|
||||
|
||||
$B$=$l$i%U%!%$%k$N0lMw$H$=$l$>$l$NG[I[>r7o$J$I$KIU$$$F$O(B
|
||||
LEGAL$B%U%!%$%k$r;2>H$7$F$/$@$5$$!%(B
|
||||
それらファイルの一覧とそれぞれの配布条件などに付いては
|
||||
LEGALファイルを参照してください.
|
||||
|
||||
5. $BK\%W%m%0%i%`$X$NF~NO$H$J$k%9%/%j%W%H$*$h$S!$K\%W%m%0%i(B
|
||||
$B%`$+$i$N=PNO$N8"Mx$OK\%W%m%0%i%`$N:n<T$G$O$J$/!$$=$l$>(B
|
||||
$B$l$NF~=PNO$r@8@.$7$??M$KB0$7$^$9!%$^$?!$K\%W%m%0%i%`$K(B
|
||||
$BAH$_9~$^$l$k$?$a$N3HD%%i%$%V%i%j$K$D$$$F$bF1MM$G$9!%(B
|
||||
5. 本プログラムへの入力となるスクリプトおよび,本プログラ
|
||||
ムからの出力の権利は本プログラムの作者ではなく,それぞ
|
||||
れの入出力を生成した人に属します.また,本プログラムに
|
||||
組み込まれるための拡張ライブラリについても同様です.
|
||||
|
||||
6. $BK\%W%m%0%i%`$OL5J]>Z$G$9!%:n<T$OK\%W%m%0%i%`$r%5%]!<%H(B
|
||||
$B$9$k0U;V$O$"$j$^$9$,!$%W%m%0%i%`<+?H$N%P%0$"$k$$$OK\%W(B
|
||||
$B%m%0%i%`$N<B9T$J$I$+$iH/@8$9$k$$$+$J$kB;32$KBP$7$F$b@U(B
|
||||
$BG$$r;}$A$^$;$s!%(B
|
||||
6. 本プログラムは無保証です.作者は本プログラムをサポート
|
||||
する意志はありますが,プログラム自身のバグあるいは本プ
|
||||
ログラムの実行などから発生するいかなる損害に対しても責
|
||||
任を持ちません.
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
Sun Sep 4 21:19:19 2011 Ayumu AIZAWA <ayumu.aizawa@gmail.com>
|
||||
|
||||
* Change encoding from EUC-JP to UTF-8. [Feature #5128]
|
||||
|
||||
Sun Sep 4 00:47:39 2011 Kazuki Tsujimoto <kazuki@callcc.net>
|
||||
|
||||
* test/ruby/test_fiber.rb (TestFiber#test_no_valid_cfp):
|
||||
|
|
1617
README.EXT.ja
1617
README.EXT.ja
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
200
README.ja
200
README.ja
|
@ -1,123 +1,137 @@
|
|||
* Rubyとは
|
||||
* Rubyとは
|
||||
|
||||
Rubyはシンプルかつ強力なオブジェクト指向スクリプト言語です.
|
||||
Rubyは最初から純粋なオブジェクト指向言語として設計されていま
|
||||
すから,オブジェクト指向プログラミングを手軽に行う事が出来ま
|
||||
す.もちろん通常の手続き型のプログラミングも可能です.
|
||||
Rubyはシンプルかつ強力なオブジェクト指向スクリプト言語です.
|
||||
Rubyは最初から純粋なオブジェクト指向言語として設計されていま
|
||||
すから,オブジェクト指向プログラミングを手軽に行う事が出来ま
|
||||
す.もちろん通常の手続き型のプログラミングも可能です.
|
||||
|
||||
Rubyはテキスト処理関係の能力などに優れ,Perlと同じくらい強力
|
||||
です.さらにシンプルな文法と,例外処理やイテレータなどの機構
|
||||
によって,より分かりやすいプログラミングが出来ます.
|
||||
Rubyはテキスト処理関係の能力などに優れ,Perlと同じくらい強力
|
||||
です.さらにシンプルな文法と,例外処理やイテレータなどの機構
|
||||
によって,より分かりやすいプログラミングが出来ます.
|
||||
|
||||
|
||||
* Rubyの特長
|
||||
* Rubyの特長
|
||||
|
||||
+ シンプルな文法
|
||||
+ 普通のオブジェクト指向機能(クラス,メソッドコールなど)
|
||||
+ 特殊なオブジェクト指向機能(Mixin, 特異メソッドなど)
|
||||
+ 演算子オーバーロード
|
||||
+ 例外処理機能
|
||||
+ イテレータとクロージャ
|
||||
+ ガーベージコレクタ
|
||||
+ ダイナミックローディング (アーキテクチャによる)
|
||||
+ 移植性が高い.多くのUnix-like/POSIX互換プラットフォーム上で
|
||||
動くだけでなく,Windows, Mac OS X,BeOSなどの上でも動く
|
||||
+ シンプルな文法
|
||||
+ 普通のオブジェクト指向機能(クラス,メソッドコールなど)
|
||||
+ 特殊なオブジェクト指向機能(Mixin, 特異メソッドなど)
|
||||
+ 演算子オーバーロード
|
||||
+ 例外処理機能
|
||||
+ イテレータとクロージャ
|
||||
+ ガーベージコレクタ
|
||||
+ ダイナミックローディング (アーキテクチャによる)
|
||||
+ 移植性が高い.多くのUnix-like/POSIX互換プラットフォーム上で
|
||||
動くだけでなく,Windows, Mac OS X,BeOSなどの上でも動く
|
||||
cf. http://redmine.ruby-lang.org/wiki/ruby-19/SupportedPlatformsJa
|
||||
|
||||
* 入手法
|
||||
* 入手法
|
||||
|
||||
** FTPで
|
||||
** FTPで
|
||||
|
||||
以下の場所においてあります.
|
||||
以下の場所においてあります.
|
||||
|
||||
ftp://ftp.ruby-lang.org/pub/ruby/
|
||||
|
||||
** Subversionで
|
||||
** Subversionで
|
||||
|
||||
開発先端のソースコードは次のコマンドで取得できます.
|
||||
開発先端のソースコードは次のコマンドで取得できます.
|
||||
|
||||
$ svn co http://svn.ruby-lang.org/repos/ruby/trunk/ ruby
|
||||
|
||||
他に開発中のブランチの一覧は次のコマンドで見られます.
|
||||
他に開発中のブランチの一覧は次のコマンドで見られます.
|
||||
|
||||
$ svn ls http://svn.ruby-lang.org/repos/ruby/branches/
|
||||
|
||||
|
||||
* ホームページ
|
||||
* ホームページ
|
||||
|
||||
RubyのホームページのURLは
|
||||
RubyのホームページのURLは
|
||||
|
||||
http://www.ruby-lang.org/
|
||||
|
||||
です.
|
||||
です.
|
||||
|
||||
|
||||
* メーリングリスト
|
||||
* メーリングリスト
|
||||
|
||||
Rubyのメーリングリストがあります。参加希望の方は
|
||||
Rubyのメーリングリストがあります。参加希望の方は
|
||||
|
||||
ruby-list-ctl@ruby-lang.org
|
||||
|
||||
まで本文に
|
||||
まで本文に
|
||||
|
||||
subscribe YourFirstName YourFamilyName
|
||||
<<<<<<< HEAD
|
||||
|
||||
と書いて送って下さい。
|
||||
と書いて送って下さい。
|
||||
=======
|
||||
|
||||
Ruby開発者向けメーリングリストもあります。こちらではrubyのバ
|
||||
グ、将来の仕様拡張など実装上の問題について議論されています。
|
||||
参加希望の方は
|
||||
と書いて送って下さい。
|
||||
>>>>>>> Change encoding from EUC-JP to UTF-8. [Feature #5128]
|
||||
|
||||
Ruby開発者向けメーリングリストもあります。こちらではrubyのバ
|
||||
グ、将来の仕様拡張など実装上の問題について議論されています。
|
||||
参加希望の方は
|
||||
|
||||
ruby-dev-ctl@ruby-lang.org
|
||||
|
||||
までruby-listと同様の方法でメールしてください。
|
||||
<<<<<<< HEAD
|
||||
までruby-listと同様の方法でメールしてください。
|
||||
|
||||
Ruby拡張モジュールについて話し合うruby-extメーリングリストと
|
||||
数学関係の話題について話し合うruby-mathメーリングリストと
|
||||
英語で話し合うruby-talkメーリングリストもあります。参加方法
|
||||
はどれも同じです。
|
||||
Ruby拡張モジュールについて話し合うruby-extメーリングリストと
|
||||
数学関係の話題について話し合うruby-mathメーリングリストと
|
||||
英語で話し合うruby-talkメーリングリストもあります。参加方法
|
||||
はどれも同じです。
|
||||
=======
|
||||
までruby-listと同様の方法でメールしてください。
|
||||
|
||||
Ruby拡張モジュールについて話し合うruby-extメーリングリストと
|
||||
数学関係の話題について話し合うruby-mathメーリングリストと
|
||||
英語で話し合うruby-talkメーリングリストもあります。参加方法
|
||||
はどれも同じです。
|
||||
>>>>>>> Change encoding from EUC-JP to UTF-8. [Feature #5128]
|
||||
|
||||
|
||||
* コンパイル・インストール
|
||||
* コンパイル・インストール
|
||||
|
||||
以下の手順で行ってください.
|
||||
以下の手順で行ってください.
|
||||
|
||||
1. もしconfigureファイルが見つからない、もしくは
|
||||
configure.inより古いようなら、autoconfを実行して
|
||||
新しくconfigureを生成する
|
||||
1. もしconfigureファイルが見つからない、もしくは
|
||||
configure.inより古いようなら、autoconfを実行して
|
||||
新しくconfigureを生成する
|
||||
|
||||
2. configureを実行してMakefileなどを生成する
|
||||
2. configureを実行してMakefileなどを生成する
|
||||
|
||||
環境によってはデフォルトのCコンパイラ用オプションが付き
|
||||
ます.configureオプションで optflags=.. warnflags=.. 等
|
||||
で上書きできます.
|
||||
環境によってはデフォルトのCコンパイラ用オプションが付き
|
||||
ます.configureオプションで optflags=.. warnflags=.. 等
|
||||
で上書きできます.
|
||||
|
||||
3. (必要ならば)defines.hを編集する
|
||||
3. (必要ならば)defines.hを編集する
|
||||
|
||||
多分,必要無いと思います.
|
||||
多分,必要無いと思います.
|
||||
|
||||
4. (必要ならば)ext/Setupに静的にリンクする拡張モジュールを
|
||||
指定する
|
||||
4. (必要ならば)ext/Setupに静的にリンクする拡張モジュールを
|
||||
指定する
|
||||
|
||||
ext/Setupに記述したモジュールは静的にリンクされます.
|
||||
ext/Setupに記述したモジュールは静的にリンクされます.
|
||||
|
||||
ダイナミックローディングをサポートしていないアーキテク
|
||||
チャではSetupの1行目の「option nodynamic」という行のコ
|
||||
メントを外す必要があります.また,このアーキテクチャで
|
||||
拡張モジュールを利用するためには,あらかじめ静的にリン
|
||||
クしておく必要があります.
|
||||
ダイナミックローディングをサポートしていないアーキテク
|
||||
チャではSetupの1行目の「option nodynamic」という行のコ
|
||||
メントを外す必要があります.また,このアーキテクチャで
|
||||
拡張モジュールを利用するためには,あらかじめ静的にリン
|
||||
クしておく必要があります.
|
||||
|
||||
5. makeを実行してコンパイルする
|
||||
5. makeを実行してコンパイルする
|
||||
|
||||
6. make testでテストを行う.
|
||||
6. make testでテストを行う.
|
||||
|
||||
「test succeeded」と表示されれば成功です.ただしテスト
|
||||
に成功しても完璧だと保証されている訳ではありません.
|
||||
「test succeeded」と表示されれば成功です.ただしテスト
|
||||
に成功しても完璧だと保証されている訳ではありません.
|
||||
|
||||
7. make install
|
||||
|
||||
以下のディレクトリを作って,そこにファイルをインストー
|
||||
ルします.
|
||||
以下のディレクトリを作って,そこにファイルをインストー
|
||||
ルします.
|
||||
|
||||
* ${DESTDIR}${prefix}/bin
|
||||
* ${DESTDIR}${prefix}/include/ruby-${MAJOR}.${MINOR}.${TEENY}
|
||||
|
@ -136,48 +150,48 @@ Ruby
|
|||
* ${DESTDIR}${prefix}/share/man/man1
|
||||
* ${DESTDIR}${prefix}/share/ri/${MAJOR}.${MINOR}.${TEENY}/system
|
||||
|
||||
RubyのAPIバージョンが`x.y.z'であれば,((|${MAJOR}|))は
|
||||
`x'で,((|${MINOR}|))は`y',((|${TEENY}|))は`z'です.
|
||||
RubyのAPIバージョンが`x.y.z'であれば,((|${MAJOR}|))は
|
||||
`x'で,((|${MINOR}|))は`y',((|${TEENY}|))は`z'です.
|
||||
|
||||
注意: APIバージョンのteenyは,Rubyプログラムのバージョ
|
||||
ンとは異なることがあります.
|
||||
注意: APIバージョンのteenyは,Rubyプログラムのバージョ
|
||||
ンとは異なることがあります.
|
||||
|
||||
rootで作業する必要があるかもしれません.
|
||||
rootで作業する必要があるかもしれません.
|
||||
|
||||
もし,コンパイル時にエラーが発生した場合にはエラーのログとマ
|
||||
シン,OSの種類を含むできるだけ詳しいレポートを作者に送ってく
|
||||
ださると他の方のためにもなります.
|
||||
もし,コンパイル時にエラーが発生した場合にはエラーのログとマ
|
||||
シン,OSの種類を含むできるだけ詳しいレポートを作者に送ってく
|
||||
ださると他の方のためにもなります.
|
||||
|
||||
|
||||
* 移植
|
||||
* 移植
|
||||
|
||||
UNIXであればconfigureがほとんどの差異を吸収してくれるはずで
|
||||
すが,思わぬ見落としがあった場合(あるに違いない),作者にその
|
||||
ことをレポートすれば,解決できるかも知れません.
|
||||
UNIXであればconfigureがほとんどの差異を吸収してくれるはずで
|
||||
すが,思わぬ見落としがあった場合(あるに違いない),作者にその
|
||||
ことをレポートすれば,解決できるかも知れません.
|
||||
|
||||
アーキテクチャにもっとも依存するのはGC部です.RubyのGCは対象
|
||||
のアーキテクチャがsetjmp()またはgetcontext()によって全てのレ
|
||||
ジスタをjmp_bufやucontext_tに格納することと,jmp_bufや
|
||||
ucontext_tとスタックが32bitアラインメントされていることを仮定
|
||||
しています.特に前者が成立しない場合の対応は非常に困難でしょ
|
||||
う.後者の解決は比較的簡単で,gc.cでスタックをマークしている
|
||||
部分にアラインメントのバイト数だけずらしてマークするコードを
|
||||
追加するだけで済みます.「defined(__mc68000__)」で括られてい
|
||||
る部分を参考にしてください.
|
||||
アーキテクチャにもっとも依存するのはGC部です.RubyのGCは対象
|
||||
のアーキテクチャがsetjmp()またはgetcontext()によって全てのレ
|
||||
ジスタをjmp_bufやucontext_tに格納することと,jmp_bufや
|
||||
ucontext_tとスタックが32bitアラインメントされていることを仮定
|
||||
しています.特に前者が成立しない場合の対応は非常に困難でしょ
|
||||
う.後者の解決は比較的簡単で,gc.cでスタックをマークしている
|
||||
部分にアラインメントのバイト数だけずらしてマークするコードを
|
||||
追加するだけで済みます.「defined(__mc68000__)」で括られてい
|
||||
る部分を参考にしてください.
|
||||
|
||||
レジスタウィンドウを持つCPUでは,レジスタウィンドウをスタッ
|
||||
クにフラッシュするアセンブラコードを追加する必要があるかも知
|
||||
れません.
|
||||
レジスタウィンドウを持つCPUでは,レジスタウィンドウをスタッ
|
||||
クにフラッシュするアセンブラコードを追加する必要があるかも知
|
||||
れません.
|
||||
|
||||
|
||||
* 配布条件
|
||||
* 配布条件
|
||||
|
||||
COPYING.jaファイルを参照してください。
|
||||
COPYING.jaファイルを参照してください。
|
||||
|
||||
|
||||
* 著者
|
||||
* 著者
|
||||
|
||||
コメント,バグレポートその他は matz@netlab.jp まで.
|
||||
コメント,バグレポートその他は matz@netlab.jp まで.
|
||||
-------------------------------------------------------
|
||||
created at: Thu Aug 3 11:57:36 JST 1995
|
||||
Local variables:
|
||||
|
|
|
@ -1,75 +1,75 @@
|
|||
# etc.rd.ja - -*- mode: rd; coding: euc-jp; -*- created at: Fri Jul 14 00:47:15 JST 1995
|
||||
=begin
|
||||
|
||||
= Etc(モジュール)
|
||||
= Etc(モジュール)
|
||||
|
||||
実行しているOSからの情報を得るためのモジュール.クラスにインクルード
|
||||
して使うこともできる.
|
||||
実行しているOSからの情報を得るためのモジュール.クラスにインクルード
|
||||
して使うこともできる.
|
||||
|
||||
== Module Function
|
||||
|
||||
--- getlogin
|
||||
|
||||
自分のlogin名を返す.これが失敗した場合はgetpwuid()を用いると
|
||||
良い.
|
||||
自分のlogin名を返す.これが失敗した場合はgetpwuid()を用いると
|
||||
良い.
|
||||
|
||||
--- getpwnam(name)
|
||||
|
||||
/etc/passwdファイル(あるいはDBMファイルやNISデータベース)を検
|
||||
索し,nameの名前を持つpasswdエントリを返す.戻り値はpasswd構造
|
||||
体で以下のメンバを持つ.
|
||||
/etc/passwdファイル(あるいはDBMファイルやNISデータベース)を検
|
||||
索し,nameの名前を持つpasswdエントリを返す.戻り値はpasswd構造
|
||||
体で以下のメンバを持つ.
|
||||
|
||||
struct passwd
|
||||
name # ユーザ名(文字列)
|
||||
passwd # パスワード(文字列)
|
||||
uid # ユーザID(整数)
|
||||
gid # グループID(整数)
|
||||
gecos # gecosフィールド(文字列)
|
||||
dir # ホームディレクトリ(文字列)
|
||||
shell # ログインシェル(文字列)
|
||||
# 以降のメンバはシステムによっては提供されない.
|
||||
change # パスワード変更時間(整数)
|
||||
quota # クォータ(整数)
|
||||
age # エージ(整数)
|
||||
class # ユーザアクセスクラス(文字列)
|
||||
comment # コメント(文字列)
|
||||
expire # アカウント有効期限(整数)
|
||||
name # ユーザ名(文字列)
|
||||
passwd # パスワード(文字列)
|
||||
uid # ユーザID(整数)
|
||||
gid # グループID(整数)
|
||||
gecos # gecosフィールド(文字列)
|
||||
dir # ホームディレクトリ(文字列)
|
||||
shell # ログインシェル(文字列)
|
||||
# 以降のメンバはシステムによっては提供されない.
|
||||
change # パスワード変更時間(整数)
|
||||
quota # クォータ(整数)
|
||||
age # エージ(整数)
|
||||
class # ユーザアクセスクラス(文字列)
|
||||
comment # コメント(文字列)
|
||||
expire # アカウント有効期限(整数)
|
||||
end
|
||||
|
||||
詳細はgetpwnam(3)を参照のこと.
|
||||
詳細はgetpwnam(3)を参照のこと.
|
||||
|
||||
--- getpwuid([uid])
|
||||
|
||||
uidをユーザIDとするpasswdエントリを返す.戻り値はgetpwnam()と
|
||||
同様である.引数を省略した場合にはgetuid()の値を用いる.詳細は
|
||||
getpwuid(3)を参照のこと.
|
||||
uidをユーザIDとするpasswdエントリを返す.戻り値はgetpwnam()と
|
||||
同様である.引数を省略した場合にはgetuid()の値を用いる.詳細は
|
||||
getpwuid(3)を参照のこと.
|
||||
|
||||
--- getgrgid(gid)
|
||||
|
||||
/etc/groupファイル(あるいは…getpwnam参照)を検索し,gidをグルー
|
||||
プIDとするグループエントリを返す.戻り値はgroup構造体で以下の
|
||||
メンバを持つ.
|
||||
/etc/groupファイル(あるいは…getpwnam参照)を検索し,gidをグルー
|
||||
プIDとするグループエントリを返す.戻り値はgroup構造体で以下の
|
||||
メンバを持つ.
|
||||
|
||||
struct group
|
||||
name # グループ名(文字列)
|
||||
passwd # グループのパスワード(文字列)
|
||||
gid # グループID(整数)
|
||||
mem # グループメンバ名の配列
|
||||
name # グループ名(文字列)
|
||||
passwd # グループのパスワード(文字列)
|
||||
gid # グループID(整数)
|
||||
mem # グループメンバ名の配列
|
||||
end
|
||||
|
||||
詳細はgetgrgid(3)を参照のこと.
|
||||
詳細はgetgrgid(3)を参照のこと.
|
||||
|
||||
--- getgrnam(name)
|
||||
|
||||
nameという名前のグループエントリを返す.戻り値はgetgrgid()と同
|
||||
様である.詳細はgetgrnam(3)を参照.
|
||||
nameという名前のグループエントリを返す.戻り値はgetgrgid()と同
|
||||
様である.詳細はgetgrnam(3)を参照.
|
||||
|
||||
--- group
|
||||
|
||||
全てのグループエントリを順にアクセスするためのイテレータ.
|
||||
全てのグループエントリを順にアクセスするためのイテレータ.
|
||||
|
||||
--- passwd
|
||||
|
||||
全てのpasswdエントリを順にアクセスするためのイテレータ.
|
||||
全てのpasswdエントリを順にアクセスするためのイテレータ.
|
||||
|
||||
=end
|
||||
|
|
|
@ -5,11 +5,11 @@
|
|||
=begin
|
||||
= Forwardable
|
||||
|
||||
クラスに対しメソッドの委譲機能を定義します.
|
||||
クラスに対しメソッドの委譲機能を定義します.
|
||||
|
||||
== 使い方
|
||||
== 使い方
|
||||
|
||||
クラスに対してextendして使います.
|
||||
クラスに対してextendして使います.
|
||||
|
||||
class Foo
|
||||
extend Forwardable
|
||||
|
@ -23,58 +23,58 @@
|
|||
f.gets
|
||||
f.content_at(1)
|
||||
|
||||
== メソッド
|
||||
== メソッド
|
||||
|
||||
--- Forwardable#def_instance_delegators(accessor, *methods)
|
||||
|
||||
((|methods|))で渡されたメソッドのリストを((|accessorに|))委譲する
|
||||
ようにします.
|
||||
((|methods|))で渡されたメソッドのリストを((|accessorに|))委譲する
|
||||
ようにします.
|
||||
|
||||
--- Forwardable#def_instance_delegator(accessor, method, ali = method)
|
||||
|
||||
((||method|))で渡されたメソッドを((|accessor|))に委譲するようにし
|
||||
ます. ((|ali|))が引数として渡されたときは, メソッド((|ali|))が呼ば
|
||||
れたときには, ((|accessor|))に対し((|method|))を呼び出します.
|
||||
((||method|))で渡されたメソッドを((|accessor|))に委譲するようにし
|
||||
ます. ((|ali|))が引数として渡されたときは, メソッド((|ali|))が呼ば
|
||||
れたときには, ((|accessor|))に対し((|method|))を呼び出します.
|
||||
|
||||
--- Forwardable#def_delegators(accessor, *methods)
|
||||
|
||||
((|Forwardable#def_instance_delegators|))の別名です.
|
||||
((|Forwardable#def_instance_delegators|))の別名です.
|
||||
|
||||
--- Forwardable#def_delegator(accessor, method, ali = method)
|
||||
|
||||
((|Forwardable#def_instance_delegator|))の別名です.
|
||||
((|Forwardable#def_instance_delegator|))の別名です.
|
||||
|
||||
= SingleForwardable
|
||||
|
||||
オブジェクトに対し, メソッドの委譲機能を定義します.
|
||||
オブジェクトに対し, メソッドの委譲機能を定義します.
|
||||
|
||||
== 使い方
|
||||
== 使い方
|
||||
|
||||
オブジェクトに対して((|extend|))して使います.
|
||||
オブジェクトに対して((|extend|))して使います.
|
||||
|
||||
g = Goo.new
|
||||
g.extend SingleForwardable
|
||||
g.def_delegator("@out", :puts)
|
||||
g.puts ...
|
||||
|
||||
== メソッド
|
||||
== メソッド
|
||||
|
||||
--- SingleForwardable#def_singleton_delegators(accessor, *methods)
|
||||
|
||||
((|methods|))で渡されたメソッドのリストを((|accessor|))に委譲する
|
||||
ようにします.
|
||||
((|methods|))で渡されたメソッドのリストを((|accessor|))に委譲する
|
||||
ようにします.
|
||||
|
||||
--- SingleForwardable#def_singleton_delegator(accessor, method, ali = method)
|
||||
|
||||
((|method|))で渡されたメソッドを((|accessor|))に委譲するようにしま
|
||||
す. ((|ali|))が引数として渡されたときは, メソッド((|ali|))が呼ばれ
|
||||
たときには, ((|accessor|))に対し((|method|))を呼び出します.
|
||||
((|method|))で渡されたメソッドを((|accessor|))に委譲するようにしま
|
||||
す. ((|ali|))が引数として渡されたときは, メソッド((|ali|))が呼ばれ
|
||||
たときには, ((|accessor|))に対し((|method|))を呼び出します.
|
||||
|
||||
--- SingleForwardable#def_delegators(accessor, *methods)
|
||||
|
||||
((|SingleForwardable#def_singleton_delegators|))の別名です.
|
||||
((|SingleForwardable#def_singleton_delegators|))の別名です.
|
||||
|
||||
--- SingleForwardable#def_delegator(accessor, method, ali = method)
|
||||
|
||||
((|SingleForwardable#def_singleton_delegator|))の別名です.
|
||||
((|SingleForwardable#def_singleton_delegator|))の別名です.
|
||||
=end
|
||||
|
|
|
@ -1,70 +1,70 @@
|
|||
irb関連おまけコマンドとライブラリ
|
||||
irb関連おまけコマンドとライブラリ
|
||||
$Release Version: 0.7.1 $
|
||||
$Revision$
|
||||
by Keiju ISHITSUKA(Nihon Rational Co.,Ltd.)
|
||||
|
||||
=begin
|
||||
|
||||
:コマンド:
|
||||
:コマンド:
|
||||
* rtags -- ruby tags command
|
||||
|
||||
:関数ライブラリ:
|
||||
:関数ライブラリ:
|
||||
* xmp -- irb version of gotoken xmp-function
|
||||
|
||||
:クラスライブラリ:
|
||||
:クラスライブラリ:
|
||||
* frame.rb -- frame tracer
|
||||
* completion.rb -- irb completor
|
||||
|
||||
= rtags
|
||||
|
||||
rtagsはemacs及びvi用の, TAGファイルをつくるコマンドです.
|
||||
rtagsはemacs及びvi用の, TAGファイルをつくるコマンドです.
|
||||
|
||||
== 使い方
|
||||
== 使い方
|
||||
|
||||
rtags [-vi] file....
|
||||
|
||||
カレントディレクトリにemacs用のTAGSファイルができます. -viオプションを
|
||||
つけた時にはvi用のtagsファイルを作成します.
|
||||
カレントディレクトリにemacs用のTAGSファイルができます. -viオプションを
|
||||
つけた時にはvi用のtagsファイルを作成します.
|
||||
|
||||
emacsの場合, 通常のetags.elがそのまま使えます. 検索可能なのは,
|
||||
emacsの場合, 通常のetags.elがそのまま使えます. 検索可能なのは,
|
||||
|
||||
* クラス
|
||||
* メソッド
|
||||
* 特異メソッド
|
||||
* クラス
|
||||
* メソッド
|
||||
* 特異メソッド
|
||||
* alias
|
||||
* attrで宣言されたアクセサ(パラメータがシンボルか文字列リテラルに限る)
|
||||
* attr_XXXで宣言されたアクセサ(パラメータがシンボルか文字列リテラルに限る)
|
||||
* attrで宣言されたアクセサ(パラメータがシンボルか文字列リテラルに限る)
|
||||
* attr_XXXで宣言されたアクセサ(パラメータがシンボルか文字列リテラルに限る)
|
||||
|
||||
です.
|
||||
です.
|
||||
|
||||
Cなどで使っているのと違うのは, コンプリーションに関する部分で,
|
||||
Cなどで使っているのと違うのは, コンプリーションに関する部分で,
|
||||
|
||||
関数名は,
|
||||
関数名は,
|
||||
|
||||
関数名(
|
||||
関数名(
|
||||
|
||||
クラスは,
|
||||
クラスは,
|
||||
|
||||
::クラス名::....::クラス名
|
||||
::クラス名::....::クラス名
|
||||
|
||||
メソッドは,
|
||||
メソッドは,
|
||||
|
||||
::クラス名::....::クラス名#メソッド名
|
||||
::クラス名::....::クラス名#メソッド名
|
||||
|
||||
特異メソッド(クラスメソッド)は
|
||||
特異メソッド(クラスメソッド)は
|
||||
|
||||
::クラス名::....::クラス名.メソッド名
|
||||
::クラス名::....::クラス名.メソッド名
|
||||
|
||||
でコンプリーションを行なうところです.
|
||||
でコンプリーションを行なうところです.
|
||||
|
||||
= xmp.rb
|
||||
|
||||
ごとけんxmpの上位互換バージョンです. ただ, 非常に重いのでごとけんxmpで
|
||||
は対応できない時に, 使用すると良いでしょう.
|
||||
ごとけんxmpの上位互換バージョンです. ただ, 非常に重いのでごとけんxmpで
|
||||
は対応できない時に, 使用すると良いでしょう.
|
||||
|
||||
== 使い方
|
||||
== 使い方
|
||||
|
||||
=== 関数として使う.
|
||||
=== 関数として使う.
|
||||
|
||||
require "irb/xmp"
|
||||
xmp <<END
|
||||
|
@ -77,10 +77,10 @@ C
|
|||
foo
|
||||
==>1
|
||||
|
||||
=== XMPインスタンスを用いる.
|
||||
=== XMPインスタンスを用いる.
|
||||
|
||||
この場合は, XMPがコンテキスト情報を持つので, 変数の値などを保持してい
|
||||
ます.
|
||||
この場合は, XMPがコンテキスト情報を持つので, 変数の値などを保持してい
|
||||
ます.
|
||||
|
||||
require "irb/xmp"
|
||||
xmp = XMP.new
|
||||
|
@ -99,50 +99,50 @@ C
|
|||
foo
|
||||
==>1
|
||||
|
||||
== コンテキストに関して
|
||||
== コンテキストに関して
|
||||
|
||||
XMPメソッド群のコンテキストは, 呼び出す前のコンテキストで評価されます.
|
||||
明示的にコンテキストを指定するとそのコンテキストで評価します.
|
||||
XMPメソッド群のコンテキストは, 呼び出す前のコンテキストで評価されます.
|
||||
明示的にコンテキストを指定するとそのコンテキストで評価します.
|
||||
|
||||
例:
|
||||
例:
|
||||
|
||||
xmp "foo", an_binding
|
||||
|
||||
:注:
|
||||
マルチスレッドには対応していません.
|
||||
:注:
|
||||
マルチスレッドには対応していません.
|
||||
|
||||
= frame.rb
|
||||
現在実行中のフレーム情報を取り扱うためのクラスです.
|
||||
現在実行中のフレーム情報を取り扱うためのクラスです.
|
||||
|
||||
* IRB::Frame.top(n = 0)
|
||||
上からn番目のコンテキストを取り出します. nは0が最上位になります.
|
||||
上からn番目のコンテキストを取り出します. nは0が最上位になります.
|
||||
* IRB::Frame.bottom(n = 0)
|
||||
下からn番目のコンテキストを取り出します. nは0が最下位になります.
|
||||
下からn番目のコンテキストを取り出します. nは0が最下位になります.
|
||||
* IRB::Frame.sender
|
||||
センダになっているオブジェクトを取り出します. センダとは, そのメソッ
|
||||
ドを呼び出した側のselfのことです.
|
||||
センダになっているオブジェクトを取り出します. センダとは, そのメソッ
|
||||
ドを呼び出した側のselfのことです.
|
||||
|
||||
:注:
|
||||
set_trace_funcを用いてRubyの実行をトレースしています. マルチスレッドに
|
||||
は対応していません.
|
||||
:注:
|
||||
set_trace_funcを用いてRubyの実行をトレースしています. マルチスレッドに
|
||||
は対応していません.
|
||||
|
||||
= completion.rb
|
||||
irbのcompletion機能を提供するものです.
|
||||
irbのcompletion機能を提供するものです.
|
||||
|
||||
== 使い方
|
||||
== 使い方
|
||||
|
||||
% irb -r irb/completion
|
||||
|
||||
とするか, ~/.irbrc 中に
|
||||
とするか, ~/.irbrc 中に
|
||||
|
||||
require "irb/completion"
|
||||
|
||||
を入れてください. irb実行中に require "irb/completion" してもよいです.
|
||||
を入れてください. irb実行中に require "irb/completion" してもよいです.
|
||||
|
||||
irb実行中に (TAB) を押すとコンプレーションします.
|
||||
irb実行中に (TAB) を押すとコンプレーションします.
|
||||
|
||||
トップレベルで(TAB)を押すとすべての構文要素, クラス, メソッドの候補がで
|
||||
ます. 候補が唯一ならば完全に補完します.
|
||||
トップレベルで(TAB)を押すとすべての構文要素, クラス, メソッドの候補がで
|
||||
ます. 候補が唯一ならば完全に補完します.
|
||||
|
||||
irb(main):001:0> in
|
||||
in inspect instance_eval
|
||||
|
@ -153,8 +153,8 @@ irb
|
|||
irb(main):002:0> foo = Object.new
|
||||
#<Object:0x4027146c>
|
||||
|
||||
((|変数名.|))の後に(TAB)を押すと, そのオブジェクトのメソッド一覧がでま
|
||||
す.
|
||||
((|変数名.|))の後に(TAB)を押すと, そのオブジェクトのメソッド一覧がでま
|
||||
す.
|
||||
|
||||
irb(main):003:0> foo.
|
||||
foo.== foo.frozen? foo.protected_methods
|
||||
|
|
|
@ -3,23 +3,23 @@ irb -- interactive ruby
|
|||
$Revision$
|
||||
by Keiju ISHITSUKA(keiju@ruby-lang.org)
|
||||
=begin
|
||||
= irbとは?
|
||||
= irbとは?
|
||||
|
||||
irbはinteractive rubyの略です. rubyの式を標準入力から簡単に入力/実行する
|
||||
ためのツールです.
|
||||
irbはinteractive rubyの略です. rubyの式を標準入力から簡単に入力/実行する
|
||||
ためのツールです.
|
||||
|
||||
= 起動
|
||||
= 起動
|
||||
|
||||
% irb
|
||||
|
||||
で行ないます.
|
||||
で行ないます.
|
||||
|
||||
= 使い方
|
||||
= 使い方
|
||||
|
||||
irbの使い方は, Rubyさえ知っていればいたって簡単です. 基本的には irb と
|
||||
いうコマンドを実行するだけです. irbを実行すると, 以下のようなプロンプ
|
||||
トが表れてきます. 後は, rubyの式を入れて下さい. 式が完結した時点で実行
|
||||
されます.
|
||||
irbの使い方は, Rubyさえ知っていればいたって簡単です. 基本的には irb と
|
||||
いうコマンドを実行するだけです. irbを実行すると, 以下のようなプロンプ
|
||||
トが表れてきます. 後は, rubyの式を入れて下さい. 式が完結した時点で実行
|
||||
されます.
|
||||
|
||||
dim% irb
|
||||
irb(main):001:0> 1+2
|
||||
|
@ -32,55 +32,55 @@ irb
|
|||
nil
|
||||
irb(main):007:0>
|
||||
|
||||
また, irbはReadlineモジュールにも対応しています. Readlineモジュールが
|
||||
インストールされている時には, それを使うのが標準の動作になります.
|
||||
また, irbはReadlineモジュールにも対応しています. Readlineモジュールが
|
||||
インストールされている時には, それを使うのが標準の動作になります.
|
||||
|
||||
= コマンドオプション
|
||||
= コマンドオプション
|
||||
|
||||
irb.rb [options] file_name opts
|
||||
options:
|
||||
-f ~/.irbrc を読み込まない.
|
||||
-m bcモード(分数, 行列の計算ができる)
|
||||
-d $DEBUG をtrueにする(ruby -d と同じ)
|
||||
-Kc ruby -Kcと同じ
|
||||
-r load-module ruby -r と同じ.
|
||||
--verbose これから実行する行を表示する(デフォルト)
|
||||
--noverbose これから実行する行を表示しない
|
||||
--echo 実行結果を表示する(デフォルト)
|
||||
--noecho 実行結果を表示しない
|
||||
--inspect 結果出力にinspectを用いる(bcモード以外はデフォルト).
|
||||
--noinspect 結果出力にinspectを用いない.
|
||||
--readline readlineライブラリを利用する.
|
||||
--noreadline readlineライブラリを利用しない. デフォルトの動作は,
|
||||
inf-ruby-mode以外でreadlineライブラリを利用しよう
|
||||
とする.
|
||||
-f ~/.irbrc を読み込まない.
|
||||
-m bcモード(分数, 行列の計算ができる)
|
||||
-d $DEBUG をtrueにする(ruby -d と同じ)
|
||||
-Kc ruby -Kcと同じ
|
||||
-r load-module ruby -r と同じ.
|
||||
--verbose これから実行する行を表示する(デフォルト)
|
||||
--noverbose これから実行する行を表示しない
|
||||
--echo 実行結果を表示する(デフォルト)
|
||||
--noecho 実行結果を表示しない
|
||||
--inspect 結果出力にinspectを用いる(bcモード以外はデフォルト).
|
||||
--noinspect 結果出力にinspectを用いない.
|
||||
--readline readlineライブラリを利用する.
|
||||
--noreadline readlineライブラリを利用しない. デフォルトの動作は,
|
||||
inf-ruby-mode以外でreadlineライブラリを利用しよう
|
||||
とする.
|
||||
--prompt prompt-mode
|
||||
--prompt-mode prompt-mode
|
||||
プロンプトモードを切替えます. 現在定義されているプ
|
||||
ロンプトモードは, default, simple, xmp, inf-rubyが
|
||||
用意されています. デフォルトはdefaultプロンプトモー
|
||||
ドになっています.
|
||||
プロンプトモードを切替えます. 現在定義されているプ
|
||||
ロンプトモードは, default, simple, xmp, inf-rubyが
|
||||
用意されています. デフォルトはdefaultプロンプトモー
|
||||
ドになっています.
|
||||
|
||||
--inf-ruby-mode emacsのinf-ruby-mode用のプロンプト表示を行なう. 特
|
||||
に指定がない限り, readlineライブラリは使わなくなる.
|
||||
--inf-ruby-mode emacsのinf-ruby-mode用のプロンプト表示を行なう. 特
|
||||
に指定がない限り, readlineライブラリは使わなくなる.
|
||||
--simple-prompt
|
||||
非常にシンプルなプロンプトを用いるモードです.
|
||||
--noprompt プロンプト表示を行なわない.
|
||||
--tracer コマンド実行時にトレースを行なう.
|
||||
非常にシンプルなプロンプトを用いるモードです.
|
||||
--noprompt プロンプト表示を行なわない.
|
||||
--tracer コマンド実行時にトレースを行なう.
|
||||
--back-trace-limit n
|
||||
バックトレース表示をバックトレースの頭から n, 後ろ
|
||||
からnだけ行なう. デフォルトは16
|
||||
--irb_debug n irbのデバッグデバッグレベルをnに設定する(利用しな
|
||||
い方が無難でしょう).
|
||||
-v, --version irbのバージョンを表示する
|
||||
バックトレース表示をバックトレースの頭から n, 後ろ
|
||||
からnだけ行なう. デフォルトは16
|
||||
--irb_debug n irbのデバッグデバッグレベルをnに設定する(利用しな
|
||||
い方が無難でしょう).
|
||||
-v, --version irbのバージョンを表示する
|
||||
|
||||
= コンフィギュレーション
|
||||
= コンフィギュレーション
|
||||
|
||||
irb起動時に``~/.irbrc''を読み込みます. もし存在しない場合は,
|
||||
``.irbrc'', ``irb.rc'', ``_irbrc'', ``$irbrc''の順にloadを試みます.
|
||||
irb起動時に``~/.irbrc''を読み込みます. もし存在しない場合は,
|
||||
``.irbrc'', ``irb.rc'', ``_irbrc'', ``$irbrc''の順にloadを試みます.
|
||||
|
||||
オプションを設定する代わりに, 以下のコマンドでもデフォルトの動作を設定
|
||||
できます.
|
||||
オプションを設定する代わりに, 以下のコマンドでもデフォルトの動作を設定
|
||||
できます.
|
||||
|
||||
IRB.conf[:IRB_NAME]="irb"
|
||||
IRB.conf[:MATH_MODE]=false
|
||||
|
@ -101,43 +101,43 @@ irb
|
|||
IRB.conf[:DEBUG_LEVEL]=0
|
||||
IRB.conf[:VERBOSE]=true
|
||||
|
||||
== プロンプトの設定
|
||||
== プロンプトの設定
|
||||
|
||||
プロンプトをカスタマイズしたい時には,
|
||||
プロンプトをカスタマイズしたい時には,
|
||||
|
||||
IRB.conf[:PROMPT]
|
||||
|
||||
を用います. 例えば, .irbrcの中で下のような式を記述します:
|
||||
を用います. 例えば, .irbrcの中で下のような式を記述します:
|
||||
|
||||
IRB.conf[:PROMPT][:MY_PROMPT] = { # プロンプトモードの名前
|
||||
:PROMPT_I => nil, # 通常のプロンプト
|
||||
:PROMPT_N => nil, # 継続行のプロンプト
|
||||
:PROMPT_S => nil, # 文字列などの継続行のプロンプト
|
||||
:PROMPT_C => nil, # 式が継続している時のプロンプト
|
||||
:RETURN => " ==>%s\n" # リターン時のプロンプト
|
||||
IRB.conf[:PROMPT][:MY_PROMPT] = { # プロンプトモードの名前
|
||||
:PROMPT_I => nil, # 通常のプロンプト
|
||||
:PROMPT_N => nil, # 継続行のプロンプト
|
||||
:PROMPT_S => nil, # 文字列などの継続行のプロンプト
|
||||
:PROMPT_C => nil, # 式が継続している時のプロンプト
|
||||
:RETURN => " ==>%s\n" # リターン時のプロンプト
|
||||
}
|
||||
|
||||
プロンプトモードを指定したい時には,
|
||||
プロンプトモードを指定したい時には,
|
||||
|
||||
irb --prompt my-prompt
|
||||
|
||||
でそのプロンプトモードで起動されます. または, .irbrcに下式を記述しても
|
||||
OKです.
|
||||
でそのプロンプトモードで起動されます. または, .irbrcに下式を記述しても
|
||||
OKです.
|
||||
|
||||
IRB.conf[:PROMPT_MODE] = :MY_PROMPT
|
||||
|
||||
PROMPT_I, PROMPT_N, PROMPT_S, PROMPT_Cは, フォーマットを指定します.
|
||||
PROMPT_I, PROMPT_N, PROMPT_S, PROMPT_Cは, フォーマットを指定します.
|
||||
|
||||
%N 起動しているコマンド名が出力される.
|
||||
%m mainオブジェクト(self)がto_sで出力される.
|
||||
%M mainオブジェクト(self)がinspectされて出力される.
|
||||
%l 文字列中のタイプを表す(", ', /, ], `]'は%wの中の時)
|
||||
%NNi インデントのレベルを表す. NNは数字が入りprintfの%NNdと同じ. 省
|
||||
略可能
|
||||
%NNn 行番号を表します.
|
||||
%N 起動しているコマンド名が出力される.
|
||||
%m mainオブジェクト(self)がto_sで出力される.
|
||||
%M mainオブジェクト(self)がinspectされて出力される.
|
||||
%l 文字列中のタイプを表す(", ', /, ], `]'は%wの中の時)
|
||||
%NNi インデントのレベルを表す. NNは数字が入りprintfの%NNdと同じ. 省
|
||||
略可能
|
||||
%NNn 行番号を表します.
|
||||
%% %
|
||||
|
||||
例えば, デフォルトのプロンプトモードは:
|
||||
例えば, デフォルトのプロンプトモードは:
|
||||
|
||||
IRB.conf[:PROMPT_MODE][:DEFAULT] = {
|
||||
:PROMPT_I => "%N(%m):%03n:%i> ",
|
||||
|
@ -147,175 +147,175 @@ PROMPT_I, PROMPT_N, PROMPT_S, PROMPT_C
|
|||
:RETURN => "%s\n"
|
||||
}
|
||||
|
||||
となっています.
|
||||
となっています.
|
||||
|
||||
RETURNは, 現在のところprintf形式です. 将来仕様が変わるかも知れません.
|
||||
RETURNは, 現在のところprintf形式です. 将来仕様が変わるかも知れません.
|
||||
|
||||
== サブirbの設定
|
||||
== サブirbの設定
|
||||
|
||||
コマンドラインオプションおよびIRB.confは(サブ)irb起動時のデフォルトの
|
||||
設定を決めるもので, `5. コマンド'にあるconfで個別の(サブ)irbの設定がで
|
||||
きるようになっています.
|
||||
コマンドラインオプションおよびIRB.confは(サブ)irb起動時のデフォルトの
|
||||
設定を決めるもので, `5. コマンド'にあるconfで個別の(サブ)irbの設定がで
|
||||
きるようになっています.
|
||||
|
||||
IRB.conf[:IRB_RC]にprocが設定されていると, サブirbを起動する時にその
|
||||
procをirbのコンテキストを引数として呼び出します. これによって個別のサ
|
||||
ブirbごとに設定を変えることができるようになります.
|
||||
IRB.conf[:IRB_RC]にprocが設定されていると, サブirbを起動する時にその
|
||||
procをirbのコンテキストを引数として呼び出します. これによって個別のサ
|
||||
ブirbごとに設定を変えることができるようになります.
|
||||
|
||||
|
||||
= コマンド
|
||||
= コマンド
|
||||
|
||||
irb拡張コマンドは, 簡単な名前と頭に`irb_'をつけた名前と両方定義されて
|
||||
います. これは, 簡単な名前がoverrideされた時のためです.
|
||||
irb拡張コマンドは, 簡単な名前と頭に`irb_'をつけた名前と両方定義されて
|
||||
います. これは, 簡単な名前がoverrideされた時のためです.
|
||||
|
||||
--- exit, quit, irb_exit
|
||||
終了する.
|
||||
サブirbの場合, そのサブirbを終了する.
|
||||
終了する.
|
||||
サブirbの場合, そのサブirbを終了する.
|
||||
|
||||
--- conf, irb_context
|
||||
irbの現在の設定を表示する. 設定の変更は, confにメッセージを送るこ
|
||||
とによって行なえる.
|
||||
irbの現在の設定を表示する. 設定の変更は, confにメッセージを送るこ
|
||||
とによって行なえる.
|
||||
|
||||
--- conf.eval_history = N
|
||||
実行結果のヒストリ機能の設定.
|
||||
nnは整数かnilで nn>0 であればその数だけヒストリにためる。nn==0の時は
|
||||
無制限に記憶する、nilだとヒストリ機能はやめる(デフォルト).
|
||||
実行結果のヒストリ機能の設定.
|
||||
nnは整数かnilで nn>0 であればその数だけヒストリにためる。nn==0の時は
|
||||
無制限に記憶する、nilだとヒストリ機能はやめる(デフォルト).
|
||||
|
||||
--- Conf.back_trace_limit
|
||||
バックトレース表示をバックトレースの頭からn, 後ろからnだけ行なう.
|
||||
デフォルトは16
|
||||
バックトレース表示をバックトレースの頭からn, 後ろからnだけ行なう.
|
||||
デフォルトは16
|
||||
|
||||
--- conf.debug_level = N
|
||||
irb用のデバッグレベルの設定
|
||||
irb用のデバッグレベルの設定
|
||||
|
||||
--- conf.ignore_eof = true/false
|
||||
^Dが入力された時の動作を設定する. trueの時は^Dを無視する, falseの
|
||||
時はirbを終了する.
|
||||
^Dが入力された時の動作を設定する. trueの時は^Dを無視する, falseの
|
||||
時はirbを終了する.
|
||||
|
||||
--- conf.ignore_sigint= true/false
|
||||
^Cが入力された時の動作を設定する. false時は, irbを終了する. trueの
|
||||
時の動作は以下のようになる:
|
||||
入力中: これまで入力したものをキャンセルしトップレベルに戻る.
|
||||
実行中: 実行を中止する.
|
||||
^Cが入力された時の動作を設定する. false時は, irbを終了する. trueの
|
||||
時の動作は以下のようになる:
|
||||
入力中: これまで入力したものをキャンセルしトップレベルに戻る.
|
||||
実行中: 実行を中止する.
|
||||
|
||||
--- conf.inf_ruby_mode = true/false
|
||||
inf-ruby-mode用のプロンプト表示を行なう. デフォルトはfalse.
|
||||
inf-ruby-mode用のプロンプト表示を行なう. デフォルトはfalse.
|
||||
|
||||
--- conf.inspect_mode = true/false/nil
|
||||
インスペクトモードを設定する.
|
||||
true: インスペクトして表示する.
|
||||
false: 通常のprintで表示する.
|
||||
nil: 通常モードであれば, inspect modeとなり, mathモードの時は, non
|
||||
inspect modeとなる.
|
||||
インスペクトモードを設定する.
|
||||
true: インスペクトして表示する.
|
||||
false: 通常のprintで表示する.
|
||||
nil: 通常モードであれば, inspect modeとなり, mathモードの時は, non
|
||||
inspect modeとなる.
|
||||
|
||||
--- conf.math_mode
|
||||
参照のみ. bcモード(分数, 行列の計算ができます)かどうか?
|
||||
参照のみ. bcモード(分数, 行列の計算ができます)かどうか?
|
||||
|
||||
--- conf.use_loader = true/false
|
||||
load/require時にirbのfile読み込み機能を用いるモードのスイッチ(デフォ
|
||||
ルトは用いない). このモードはIRB全体に反映される.
|
||||
load/require時にirbのfile読み込み機能を用いるモードのスイッチ(デフォ
|
||||
ルトは用いない). このモードはIRB全体に反映される.
|
||||
|
||||
--- conf.prompt_c
|
||||
ifの直後など, 行が継続している時のプロンプト.
|
||||
ifの直後など, 行が継続している時のプロンプト.
|
||||
|
||||
--- conf.prompt_i
|
||||
通常のプロンプト.
|
||||
通常のプロンプト.
|
||||
|
||||
--- conf.prompt_s
|
||||
文字列中などを表すプロンプト.
|
||||
文字列中などを表すプロンプト.
|
||||
|
||||
--- conf.rc
|
||||
~/.irbrcを読み込んだかどうか?
|
||||
~/.irbrcを読み込んだかどうか?
|
||||
|
||||
--- conf.use_prompt = true/false
|
||||
プロンプト表示するかどうか? デフォルトではプロンプトを表示する.
|
||||
プロンプト表示するかどうか? デフォルトではプロンプトを表示する.
|
||||
|
||||
--- conf.use_readline = true/false/nil
|
||||
readlineを使うかどうか?
|
||||
true: readlineを使う.
|
||||
false: readlineを使わない.
|
||||
nil: (デフォルト)inf-ruby-mode以外でreadlineライブラリを利用しよ
|
||||
うとする.
|
||||
readlineを使うかどうか?
|
||||
true: readlineを使う.
|
||||
false: readlineを使わない.
|
||||
nil: (デフォルト)inf-ruby-mode以外でreadlineライブラリを利用しよ
|
||||
うとする.
|
||||
#
|
||||
#--- conf.verbose=T/F
|
||||
# irbからいろいろなメッセージを出力するか?
|
||||
# irbからいろいろなメッセージを出力するか?
|
||||
|
||||
--- cws, chws, irb_cws, irb_chws, irb_change_workspace [obj]
|
||||
objをselfとする. objが省略されたときは, home workspace, すなわち
|
||||
irbを起動したときのmain objectをselfとする.
|
||||
objをselfとする. objが省略されたときは, home workspace, すなわち
|
||||
irbを起動したときのmain objectをselfとする.
|
||||
|
||||
--- pushws, irb_pushws, irb_push_workspace [obj]
|
||||
UNIXシェルコマンドのpushdと同様.
|
||||
UNIXシェルコマンドのpushdと同様.
|
||||
|
||||
--- popws, irb_popws, irb_pop_workspace
|
||||
UNIXシェルコマンドのpopdと同様.
|
||||
UNIXシェルコマンドのpopdと同様.
|
||||
|
||||
--- irb [obj]
|
||||
サブirbを立ちあげる. objが指定された時は, そのobjをselfとする.
|
||||
サブirbを立ちあげる. objが指定された時は, そのobjをselfとする.
|
||||
|
||||
--- jobs, irb_jobs
|
||||
サブirbのリスト
|
||||
サブirbのリスト
|
||||
|
||||
--- fg n, irb_fg n
|
||||
指定したサブirbにスイッチする. nは, 次のものを指定する.
|
||||
指定したサブirbにスイッチする. nは, 次のものを指定する.
|
||||
|
||||
irb番号
|
||||
スレッド
|
||||
irbオブジェクト
|
||||
self(irb objで起動した時のobj)
|
||||
irb番号
|
||||
スレッド
|
||||
irbオブジェクト
|
||||
self(irb objで起動した時のobj)
|
||||
|
||||
--- kill n, irb_kill n
|
||||
サブirbをkillする. nはfgと同じ.
|
||||
サブirbをkillする. nはfgと同じ.
|
||||
|
||||
--- source, irb_source path
|
||||
UNIXシェルコマンドのsourceと似ている. 現在の環境上でpath内のスクリ
|
||||
プトを評価する.
|
||||
UNIXシェルコマンドのsourceと似ている. 現在の環境上でpath内のスクリ
|
||||
プトを評価する.
|
||||
|
||||
--- irb_load path, prev
|
||||
|
||||
Rubyのloadのirb版.
|
||||
Rubyのloadのirb版.
|
||||
|
||||
= システム変数
|
||||
= システム変数
|
||||
|
||||
--- _
|
||||
前の計算の実行結果を覚えている(ローカル変数).
|
||||
前の計算の実行結果を覚えている(ローカル変数).
|
||||
--- __
|
||||
実行結果の履歴を覚えている.
|
||||
__[line_no]で、その行で実行した結果を得ることができる. line_noが負の
|
||||
時には、最新の結果から-line_no前の結果を得ることができる.
|
||||
実行結果の履歴を覚えている.
|
||||
__[line_no]で、その行で実行した結果を得ることができる. line_noが負の
|
||||
時には、最新の結果から-line_no前の結果を得ることができる.
|
||||
|
||||
= 使用例
|
||||
= 使用例
|
||||
|
||||
以下のような感じです.
|
||||
以下のような感じです.
|
||||
|
||||
dim% ruby irb.rb
|
||||
irb(main):001:0> irb # サブirbの立ちあげ
|
||||
irb#1(main):001:0> jobs # サブirbのリスト
|
||||
irb(main):001:0> irb # サブirbの立ちあげ
|
||||
irb#1(main):001:0> jobs # サブirbのリスト
|
||||
#0->irb on main (#<Thread:0x400fb7e4> : stop)
|
||||
#1->irb#1 on main (#<Thread:0x40125d64> : running)
|
||||
nil
|
||||
irb#1(main):002:0> fg 0 # jobのスイッチ
|
||||
irb#1(main):002:0> fg 0 # jobのスイッチ
|
||||
nil
|
||||
irb(main):002:0> class Foo;end
|
||||
nil
|
||||
irb(main):003:0> irb Foo # Fooをコンテキストしてirb
|
||||
# 立ちあげ
|
||||
irb#2(Foo):001:0> def foo # Foo#fooの定義
|
||||
irb(main):003:0> irb Foo # Fooをコンテキストしてirb
|
||||
# 立ちあげ
|
||||
irb#2(Foo):001:0> def foo # Foo#fooの定義
|
||||
irb#2(Foo):002:1> print 1
|
||||
irb#2(Foo):003:1> end
|
||||
nil
|
||||
irb#2(Foo):004:0> fg 0 # jobをスイッチ
|
||||
irb#2(Foo):004:0> fg 0 # jobをスイッチ
|
||||
nil
|
||||
irb(main):004:0> jobs # jobのリスト
|
||||
irb(main):004:0> jobs # jobのリスト
|
||||
#0->irb on main (#<Thread:0x400fb7e4> : running)
|
||||
#1->irb#1 on main (#<Thread:0x40125d64> : stop)
|
||||
#2->irb#2 on Foo (#<Thread:0x4011d54c> : stop)
|
||||
nil
|
||||
irb(main):005:0> Foo.instance_methods # Foo#fooがちゃんと定義さ
|
||||
# れている
|
||||
irb(main):005:0> Foo.instance_methods # Foo#fooがちゃんと定義さ
|
||||
# れている
|
||||
["foo"]
|
||||
irb(main):006:0> fg 2 # jobをスイッチ
|
||||
irb(main):006:0> fg 2 # jobをスイッチ
|
||||
nil
|
||||
irb#2(Foo):005:0> def bar # Foo#barを定義
|
||||
irb#2(Foo):005:0> def bar # Foo#barを定義
|
||||
irb#2(Foo):006:1> print "bar"
|
||||
irb#2(Foo):007:1> end
|
||||
nil
|
||||
|
@ -325,36 +325,36 @@ irb
|
|||
nil
|
||||
irb(main):007:0> f = Foo.new
|
||||
#<Foo:0x4010af3c>
|
||||
irb(main):008:0> irb f # Fooのインスタンスでirbを
|
||||
# 立ちあげる.
|
||||
irb(main):008:0> irb f # Fooのインスタンスでirbを
|
||||
# 立ちあげる.
|
||||
irb#3(#<Foo:0x4010af3c>):001:0> jobs
|
||||
#0->irb on main (#<Thread:0x400fb7e4> : stop)
|
||||
#1->irb#1 on main (#<Thread:0x40125d64> : stop)
|
||||
#2->irb#2 on Foo (#<Thread:0x4011d54c> : stop)
|
||||
#3->irb#3 on #<Foo:0x4010af3c> (#<Thread:0x4010a1e0> : running)
|
||||
nil
|
||||
irb#3(#<Foo:0x4010af3c>):002:0> foo # f.fooの実行
|
||||
irb#3(#<Foo:0x4010af3c>):002:0> foo # f.fooの実行
|
||||
nil
|
||||
irb#3(#<Foo:0x4010af3c>):003:0> bar # f.barの実行
|
||||
irb#3(#<Foo:0x4010af3c>):003:0> bar # f.barの実行
|
||||
barnil
|
||||
irb#3(#<Foo:0x4010af3c>):004:0> kill 1, 2, 3# jobのkill
|
||||
irb#3(#<Foo:0x4010af3c>):004:0> kill 1, 2, 3# jobのkill
|
||||
nil
|
||||
irb(main):009:0> jobs
|
||||
#0->irb on main (#<Thread:0x400fb7e4> : running)
|
||||
nil
|
||||
irb(main):010:0> exit # 終了
|
||||
irb(main):010:0> exit # 終了
|
||||
dim%
|
||||
|
||||
= 使用上の制限
|
||||
= 使用上の制限
|
||||
|
||||
irbは, 評価できる時点(式が閉じた時点)での逐次実行を行ないます. したがっ
|
||||
て, rubyを直接使った時と, 若干異なる動作を行なう場合があります.
|
||||
irbは, 評価できる時点(式が閉じた時点)での逐次実行を行ないます. したがっ
|
||||
て, rubyを直接使った時と, 若干異なる動作を行なう場合があります.
|
||||
|
||||
現在明らかになっている問題点を説明します.
|
||||
現在明らかになっている問題点を説明します.
|
||||
|
||||
== ローカル変数の宣言
|
||||
== ローカル変数の宣言
|
||||
|
||||
rubyでは, 以下のプログラムはエラーになります.
|
||||
rubyでは, 以下のプログラムはエラーになります.
|
||||
|
||||
eval "foo = 0"
|
||||
foo
|
||||
|
@ -363,24 +363,24 @@ ruby
|
|||
---
|
||||
NameError
|
||||
|
||||
ところが, irbを用いると
|
||||
ところが, irbを用いると
|
||||
|
||||
>> eval "foo = 0"
|
||||
=> 0
|
||||
>> foo
|
||||
=> 0
|
||||
|
||||
となり, エラーを起こしません. これは, rubyが最初にスクリプト全体をコン
|
||||
パイルしてローカル変数を決定するからです. それに対し, irbは実行可能に
|
||||
なる(式が閉じる)と自動的に評価しているからです. 上記の例では,
|
||||
となり, エラーを起こしません. これは, rubyが最初にスクリプト全体をコン
|
||||
パイルしてローカル変数を決定するからです. それに対し, irbは実行可能に
|
||||
なる(式が閉じる)と自動的に評価しているからです. 上記の例では,
|
||||
|
||||
evel "foo = 0"
|
||||
|
||||
を行なった時点で評価を行ない, その時点で変数が定義されるため, 次式で
|
||||
変数fooは定義されているからです.
|
||||
を行なった時点で評価を行ない, その時点で変数が定義されるため, 次式で
|
||||
変数fooは定義されているからです.
|
||||
|
||||
このようなrubyとirbの動作の違いを解決したい場合は, begin...endで括って
|
||||
バッチ的に実行して下さい:
|
||||
このようなrubyとirbの動作の違いを解決したい場合は, begin...endで括って
|
||||
バッチ的に実行して下さい:
|
||||
|
||||
>> begin
|
||||
?> eval "foo = 0"
|
||||
|
@ -390,14 +390,14 @@ ruby
|
|||
(irb):3
|
||||
(irb_local_binding):1:in `eval'
|
||||
|
||||
== ヒアドキュメント
|
||||
== ヒアドキュメント
|
||||
|
||||
現在のところヒアドキュメントの実装は不完全です.
|
||||
現在のところヒアドキュメントの実装は不完全です.
|
||||
|
||||
== シンボル
|
||||
== シンボル
|
||||
|
||||
シンボルであるかどうかの判断を間違えることがあります. 具体的には式が完了
|
||||
しているのに継続行と見なすことがあります.
|
||||
シンボルであるかどうかの判断を間違えることがあります. 具体的には式が完了
|
||||
しているのに継続行と見なすことがあります.
|
||||
|
||||
=end
|
||||
|
||||
|
|
|
@ -1,21 +1,21 @@
|
|||
README for expect
|
||||
by A. Ito, 28 October, 1998
|
||||
|
||||
Expectライブラリは,tcl の expect パッケージと似たような機能を
|
||||
IOクラスに追加します.
|
||||
Expectライブラリは,tcl の expect パッケージと似たような機能を
|
||||
IOクラスに追加します.
|
||||
|
||||
追加されるメソッドの使い方は次の通りです.
|
||||
追加されるメソッドの使い方は次の通りです.
|
||||
|
||||
IO#expect(pattern,timeout=9999999)
|
||||
|
||||
pattern は String か Regexp のインスタンス,timeout は Fixnum
|
||||
のインスタンスです.timeout は省略できます.
|
||||
このメソッドがブロックなしで呼ばれた場合,まずレシーバである
|
||||
IOオブジェクトから pattern にマッチするパターンが読みこまれる
|
||||
まで待ちます.パターンが得られたら,そのパターンに関する配列を
|
||||
返します.配列の最初の要素は,pattern にマッチするまでに読みこ
|
||||
まれた内容の文字列です.2番目以降の要素は,pattern の正規表現
|
||||
の中にアンカーがあった場合に,そのアンカーにマッチする部分です.
|
||||
もしタイムアウトが起きた場合は,このメソッドはnilを返します.
|
||||
このメソッドがブロック付きで呼ばれた場合には,マッチした要素の
|
||||
配列がブロック引数として渡され,ブロックが評価されます.
|
||||
pattern は String か Regexp のインスタンス,timeout は Fixnum
|
||||
のインスタンスです.timeout は省略できます.
|
||||
このメソッドがブロックなしで呼ばれた場合,まずレシーバである
|
||||
IOオブジェクトから pattern にマッチするパターンが読みこまれる
|
||||
まで待ちます.パターンが得られたら,そのパターンに関する配列を
|
||||
返します.配列の最初の要素は,pattern にマッチするまでに読みこ
|
||||
まれた内容の文字列です.2番目以降の要素は,pattern の正規表現
|
||||
の中にアンカーがあった場合に,そのアンカーにマッチする部分です.
|
||||
もしタイムアウトが起きた場合は,このメソッドはnilを返します.
|
||||
このメソッドがブロック付きで呼ばれた場合には,マッチした要素の
|
||||
配列がブロック引数として渡され,ブロックが評価されます.
|
||||
|
|
|
@ -1,76 +1,76 @@
|
|||
pty 拡張モジュール version 0.3 by A.ito
|
||||
pty 拡張モジュール version 0.3 by A.ito
|
||||
|
||||
1. はじめに
|
||||
1. はじめに
|
||||
|
||||
この拡張モジュールは,仮想tty (pty) を通して適当なコマンドを
|
||||
実行する機能を ruby に提供します.
|
||||
この拡張モジュールは,仮想tty (pty) を通して適当なコマンドを
|
||||
実行する機能を ruby に提供します.
|
||||
|
||||
2. インストール
|
||||
2. インストール
|
||||
|
||||
次のようにしてインストールしてください.
|
||||
次のようにしてインストールしてください.
|
||||
|
||||
(1) ruby extconf.rb
|
||||
|
||||
を実行すると Makefile が生成されます.
|
||||
を実行すると Makefile が生成されます.
|
||||
|
||||
(2) make; make install を実行してください.
|
||||
(2) make; make install を実行してください.
|
||||
|
||||
3. 何ができるか
|
||||
3. 何ができるか
|
||||
|
||||
この拡張モジュールは,PTY というモジュールを定義します.その中
|
||||
には,次のようなモジュール関数が含まれています.
|
||||
この拡張モジュールは,PTY というモジュールを定義します.その中
|
||||
には,次のようなモジュール関数が含まれています.
|
||||
|
||||
getpty(command)
|
||||
spawn(command)
|
||||
|
||||
この関数は,仮想ttyを確保し,指定されたコマンドをその仮想tty
|
||||
の向こうで実行し,配列を返します.戻り値は3つの要素からなる
|
||||
配列です.最初の要素は仮想ttyから読み出すためのIOオブジェクト,
|
||||
2番目は書きこむためのIOオブジェクト,3番目は子プロセスのプロ
|
||||
セスIDです.この関数がイテレータとして呼ばれた場合,これらの
|
||||
要素はブロックパラメータとして渡され,関数自体はnilを返します.
|
||||
この関数は,仮想ttyを確保し,指定されたコマンドをその仮想tty
|
||||
の向こうで実行し,配列を返します.戻り値は3つの要素からなる
|
||||
配列です.最初の要素は仮想ttyから読み出すためのIOオブジェクト,
|
||||
2番目は書きこむためのIOオブジェクト,3番目は子プロセスのプロ
|
||||
セスIDです.この関数がイテレータとして呼ばれた場合,これらの
|
||||
要素はブロックパラメータとして渡され,関数自体はnilを返します.
|
||||
|
||||
子プロセスが終了したり停止した場合には,例外が発生します.この関
|
||||
数がブロックパラメータ付きで呼ばれた場合には,そのブロックの中で
|
||||
のみ例外が発生します.子プロセスをモニターしているスレッドはブロッ
|
||||
クを抜けるときに終了します.
|
||||
子プロセスが終了したり停止した場合には,例外が発生します.この関
|
||||
数がブロックパラメータ付きで呼ばれた場合には,そのブロックの中で
|
||||
のみ例外が発生します.子プロセスをモニターしているスレッドはブロッ
|
||||
クを抜けるときに終了します.
|
||||
|
||||
protect_signal
|
||||
reset_signal
|
||||
|
||||
廃止予定です.
|
||||
廃止予定です.
|
||||
|
||||
PTY.open
|
||||
|
||||
仮想ttyを確保し,マスター側に対応するIOオブジェクトとスレーブ側に
|
||||
対応するFileオブジェクトの配列を返します.ブロック付きで呼び出さ
|
||||
れた場合は,これらの要素はブロックパラメータとして渡され,ブロッ
|
||||
クから返された結果を返します.また、このマスターIOとスレーブFile
|
||||
は、ブロックを抜けるときにクローズ済みでなければクローズされます.
|
||||
仮想ttyを確保し,マスター側に対応するIOオブジェクトとスレーブ側に
|
||||
対応するFileオブジェクトの配列を返します.ブロック付きで呼び出さ
|
||||
れた場合は,これらの要素はブロックパラメータとして渡され,ブロッ
|
||||
クから返された結果を返します.また、このマスターIOとスレーブFile
|
||||
は、ブロックを抜けるときにクローズ済みでなければクローズされます.
|
||||
|
||||
PTY.check(pid[, raise=false])
|
||||
|
||||
pidで指定された子プロセスの状態をチェックし,実行中であればnilを
|
||||
返します.終了しているか停止している場合、第二引数が偽であれば、
|
||||
対応するProcess::Statusオブジェクトを返します。真であれば
|
||||
PTY::ChildExited例外が発生します.
|
||||
pidで指定された子プロセスの状態をチェックし,実行中であればnilを
|
||||
返します.終了しているか停止している場合、第二引数が偽であれば、
|
||||
対応するProcess::Statusオブジェクトを返します。真であれば
|
||||
PTY::ChildExited例外が発生します.
|
||||
|
||||
4. 利用について
|
||||
4. 利用について
|
||||
|
||||
伊藤彰則が著作権を保有します.
|
||||
伊藤彰則が著作権を保有します.
|
||||
|
||||
ソースプログラムまたはドキュメントに元の著作権表示が改変されずに
|
||||
表示されている場合に限り,誰でも,このソフトウェアを無償かつ著作
|
||||
権者に無断で利用・配布・改変できます.利用目的は限定されていませ
|
||||
ん.
|
||||
ソースプログラムまたはドキュメントに元の著作権表示が改変されずに
|
||||
表示されている場合に限り,誰でも,このソフトウェアを無償かつ著作
|
||||
権者に無断で利用・配布・改変できます.利用目的は限定されていませ
|
||||
ん.
|
||||
|
||||
このプログラムの利用・配布その他このプログラムに関係する行為によ
|
||||
って生じたいかなる損害に対しても,作者は一切責任を負いません.
|
||||
このプログラムの利用・配布その他このプログラムに関係する行為によ
|
||||
って生じたいかなる損害に対しても,作者は一切責任を負いません.
|
||||
|
||||
5. バグ報告等
|
||||
5. バグ報告等
|
||||
|
||||
バグレポートは歓迎します.
|
||||
バグレポートは歓迎します.
|
||||
|
||||
aito@ei5sun.yz.yamagata-u.ac.jp
|
||||
|
||||
まで電子メールでバグレポートをお送りください.
|
||||
まで電子メールでバグレポートをお送りください.
|
||||
|
|
|
@ -66,7 +66,7 @@
|
|||
symbol/string differences. (Patch supplied by Edwin Pratomo)
|
||||
|
||||
* Fixed bug with rules involving multiple source (Patch supplied by
|
||||
Emanuel Indermühle)
|
||||
Emanuel Indermle)
|
||||
|
||||
* Switched from getoptlong to optparse (patches supplied by Edwin
|
||||
Pratomo)
|
||||
|
|
150
doc/shell.rd.ja
150
doc/shell.rd.ja
|
@ -5,142 +5,142 @@
|
|||
|
||||
=begin
|
||||
|
||||
= 目的
|
||||
= 目的
|
||||
|
||||
ruby上でsh/cshのようにコマンドの実行及びフィルタリングを手軽に行う.
|
||||
sh/cshの制御文はrubyの機能を用いて実現する.
|
||||
ruby上でsh/cshのようにコマンドの実行及びフィルタリングを手軽に行う.
|
||||
sh/cshの制御文はrubyの機能を用いて実現する.
|
||||
|
||||
= 主なクラス一覧
|
||||
= 主なクラス一覧
|
||||
|
||||
== Shell
|
||||
|
||||
Shellオブジェクトはカレントディレクトリを持ち, コマンド実行はそこからの
|
||||
相対パスになります.
|
||||
Shellオブジェクトはカレントディレクトリを持ち, コマンド実行はそこからの
|
||||
相対パスになります.
|
||||
|
||||
--- Shell#cwd
|
||||
--- Shell#dir
|
||||
--- Shell#getwd
|
||||
--- Shell#pwd
|
||||
|
||||
カレントディレクトリを返す。
|
||||
カレントディレクトリを返す。
|
||||
|
||||
--- Shell#system_path
|
||||
|
||||
コマンドサーチパスの配列を返す。
|
||||
コマンドサーチパスの配列を返す。
|
||||
|
||||
--- Shell#umask
|
||||
|
||||
umaskを返す。
|
||||
umaskを返す。
|
||||
|
||||
== Filter
|
||||
|
||||
コマンドの実行結果はすべてFilterとしてかえります. Enumerableをincludeし
|
||||
ています.
|
||||
コマンドの実行結果はすべてFilterとしてかえります. Enumerableをincludeし
|
||||
ています.
|
||||
|
||||
= 主なメソッド一覧
|
||||
= 主なメソッド一覧
|
||||
|
||||
== コマンド定義
|
||||
== コマンド定義
|
||||
|
||||
OS上のコマンドを実行するにはまず, Shellのメソッドとして定義します.
|
||||
OS上のコマンドを実行するにはまず, Shellのメソッドとして定義します.
|
||||
|
||||
注) コマンドを定義しなくとも直接実行できるShell#systemコマンドもあります.
|
||||
注) コマンドを定義しなくとも直接実行できるShell#systemコマンドもあります.
|
||||
|
||||
--- Shell.def_system_command(command, path = command)
|
||||
|
||||
Shellのメソッドとしてcommandを登録します.
|
||||
Shellのメソッドとしてcommandを登録します.
|
||||
|
||||
例)
|
||||
例)
|
||||
Shell.def_system_command "ls"
|
||||
ls を定義
|
||||
ls を定義
|
||||
|
||||
Shell.def_system_command "sys_sort", "sort"
|
||||
sortコマンドをsys_sortとして定義
|
||||
sortコマンドをsys_sortとして定義
|
||||
|
||||
--- Shell.undef_system_command(command)
|
||||
|
||||
commandを削除します.
|
||||
commandを削除します.
|
||||
|
||||
--- Shell.alias_command(ali, command, *opts) {...}
|
||||
|
||||
commandのaliasをします.
|
||||
commandのaliasをします.
|
||||
|
||||
例)
|
||||
例)
|
||||
Shell.alias_command "lsC", "ls", "-CBF", "--show-control-chars"
|
||||
Shell.alias_command("lsC", "ls"){|*opts| ["-CBF", "--show-control-chars", *opts]}
|
||||
|
||||
--- Shell.unalias_command(ali)
|
||||
|
||||
commandのaliasを削除します.
|
||||
commandのaliasを削除します.
|
||||
|
||||
--- Shell.install_system_commands(pre = "sys_")
|
||||
|
||||
system_path上にある全ての実行可能ファイルをShellに定義する. メソッ
|
||||
ド名は元のファイル名の頭にpreをつけたものとなる.
|
||||
system_path上にある全ての実行可能ファイルをShellに定義する. メソッ
|
||||
ド名は元のファイル名の頭にpreをつけたものとなる.
|
||||
|
||||
== 生成
|
||||
== 生成
|
||||
|
||||
--- Shell.new
|
||||
|
||||
プロセスのカレントディレクトリをカレントディレクトリとするShellオ
|
||||
ブジェクトを生成します.
|
||||
プロセスのカレントディレクトリをカレントディレクトリとするShellオ
|
||||
ブジェクトを生成します.
|
||||
|
||||
--- Shell.cd(path)
|
||||
|
||||
pathをカレントディレクトリとするShellオブジェクトを生成します.
|
||||
pathをカレントディレクトリとするShellオブジェクトを生成します.
|
||||
|
||||
== プロセス管理
|
||||
== プロセス管理
|
||||
|
||||
--- Shell#jobs
|
||||
|
||||
スケジューリングされているjobの一覧を返す.
|
||||
スケジューリングされているjobの一覧を返す.
|
||||
|
||||
--- Shell#kill sig, job
|
||||
|
||||
jobにシグナルsigを送る
|
||||
jobにシグナルsigを送る
|
||||
|
||||
== カレントディレクトリ操作
|
||||
== カレントディレクトリ操作
|
||||
|
||||
--- Shell#cd(path, &block)
|
||||
--- Shell#chdir
|
||||
|
||||
カレントディレクトリをpathにする. イテレータとして呼ばれたときには
|
||||
ブロック実行中のみカレントディレクトリを変更する.
|
||||
カレントディレクトリをpathにする. イテレータとして呼ばれたときには
|
||||
ブロック実行中のみカレントディレクトリを変更する.
|
||||
|
||||
--- Shell#pushd(path = nil, &block)
|
||||
--- Shell#pushdir
|
||||
|
||||
カレントディレクトリをディレクトリスタックにつみ, カレントディレク
|
||||
トリをpathにする. pathが省略されたときには, カレントディレクトリと
|
||||
ディレクトリスタックのトップを交換する. イテレータとして呼ばれたと
|
||||
きには, ブロック実行中のみpushdする.
|
||||
カレントディレクトリをディレクトリスタックにつみ, カレントディレク
|
||||
トリをpathにする. pathが省略されたときには, カレントディレクトリと
|
||||
ディレクトリスタックのトップを交換する. イテレータとして呼ばれたと
|
||||
きには, ブロック実行中のみpushdする.
|
||||
|
||||
--- Shell#popd
|
||||
--- Shell#popdir
|
||||
|
||||
ディレクトリスタックからポップし, それをカレントディレクトリにする.
|
||||
ディレクトリスタックからポップし, それをカレントディレクトリにする.
|
||||
|
||||
== ファイル/ディレクトリ操作
|
||||
== ファイル/ディレクトリ操作
|
||||
|
||||
--- Shell#foreach(path = nil, &block)
|
||||
|
||||
pathがファイルなら, File#foreach
|
||||
pathがディレクトリなら, Dir#foreach
|
||||
pathがファイルなら, File#foreach
|
||||
pathがディレクトリなら, Dir#foreach
|
||||
|
||||
--- Shell#open(path, mode)
|
||||
|
||||
pathがファイルなら, File#open
|
||||
pathがディレクトリなら, Dir#open
|
||||
pathがファイルなら, File#open
|
||||
pathがディレクトリなら, Dir#open
|
||||
|
||||
--- Shell#unlink(path)
|
||||
|
||||
pathがファイルなら, File#unlink
|
||||
pathがディレクトリなら, Dir#unlink
|
||||
pathがファイルなら, File#unlink
|
||||
pathがディレクトリなら, Dir#unlink
|
||||
|
||||
--- Shell#test(command, file1, file2)
|
||||
--- Shell#[command, file1, file2]
|
||||
|
||||
ファイルテスト関数testと同じ.
|
||||
例)
|
||||
ファイルテスト関数testと同じ.
|
||||
例)
|
||||
sh[?e, "foo"]
|
||||
sh[:e, "foo"]
|
||||
sh["e", "foo"]
|
||||
|
@ -149,75 +149,75 @@ OS
|
|||
|
||||
--- Shell#mkdir(*path)
|
||||
|
||||
Dir.mkdirと同じ(複数可)
|
||||
Dir.mkdirと同じ(複数可)
|
||||
|
||||
--- Shell#rmdir(*path)
|
||||
|
||||
Dir.rmdirと同じ(複数可)
|
||||
Dir.rmdirと同じ(複数可)
|
||||
|
||||
== コマンド実行
|
||||
== コマンド実行
|
||||
|
||||
--- System#system(command, *opts)
|
||||
|
||||
commandを実行する.
|
||||
例)
|
||||
commandを実行する.
|
||||
例)
|
||||
print sh.system("ls", "-l")
|
||||
sh.system("ls", "-l") | sh.head > STDOUT
|
||||
|
||||
--- System#rehash
|
||||
|
||||
リハッシュする
|
||||
リハッシュする
|
||||
|
||||
--- Shell#transact &block
|
||||
|
||||
ブロック中ではshellをselfとして実行する.
|
||||
例)
|
||||
ブロック中ではshellをselfとして実行する.
|
||||
例)
|
||||
sh.transact{system("ls", "-l") | head > STDOUT}
|
||||
|
||||
--- Shell#out(dev = STDOUT, &block)
|
||||
|
||||
transactを呼び出しその結果をdevに出力する.
|
||||
transactを呼び出しその結果をdevに出力する.
|
||||
|
||||
== 内部コマンド
|
||||
== 内部コマンド
|
||||
|
||||
--- Shell#echo(*strings)
|
||||
--- Shell#cat(*files)
|
||||
--- Shell#glob(patten)
|
||||
--- Shell#tee(file)
|
||||
|
||||
これらは実行すると, それらを内容とするFilterオブジェクトを返します.
|
||||
これらは実行すると, それらを内容とするFilterオブジェクトを返します.
|
||||
|
||||
--- Filter#each &block
|
||||
|
||||
フィルタの一行ずつをblockに渡す.
|
||||
フィルタの一行ずつをblockに渡す.
|
||||
|
||||
--- Filter#<(src)
|
||||
|
||||
srcをフィルタの入力とする. srcが, 文字列ならばファイルを, IOであれ
|
||||
ばそれをそのまま入力とする.
|
||||
srcをフィルタの入力とする. srcが, 文字列ならばファイルを, IOであれ
|
||||
ばそれをそのまま入力とする.
|
||||
|
||||
--- Filter#>(to)
|
||||
|
||||
srcをフィルタの出力とする. toが, 文字列ならばファイルに, IOであれ
|
||||
ばそれをそのまま出力とする.
|
||||
srcをフィルタの出力とする. toが, 文字列ならばファイルに, IOであれ
|
||||
ばそれをそのまま出力とする.
|
||||
|
||||
--- Filter#>>(to)
|
||||
|
||||
srcをフィルタに追加する. toが, 文字列ならばファイルに, IOであれば
|
||||
それをそのまま出力とする.
|
||||
srcをフィルタに追加する. toが, 文字列ならばファイルに, IOであれば
|
||||
それをそのまま出力とする.
|
||||
|
||||
--- Filter#|(filter)
|
||||
|
||||
パイプ結合
|
||||
パイプ結合
|
||||
|
||||
--- Filter#+(filter)
|
||||
|
||||
filter1 + filter2 は filter1の出力の後, filter2の出力を行う.
|
||||
filter1 + filter2 は filter1の出力の後, filter2の出力を行う.
|
||||
|
||||
--- Filter#to_a
|
||||
--- Filter#to_s
|
||||
|
||||
== 組込みコマンド
|
||||
== 組込みコマンド
|
||||
|
||||
--- Shell#atime(file)
|
||||
--- Shell#basename(file, *opt)
|
||||
|
@ -239,7 +239,7 @@ OS
|
|||
--- Shell#truncate(file, length)
|
||||
--- Shell#utime(atime, mtime, *file)
|
||||
|
||||
これらはFileクラスにある同名のクラスメソッドと同じです.
|
||||
これらはFileクラスにある同名のクラスメソッドと同じです.
|
||||
|
||||
--- Shell#blockdev?(file)
|
||||
--- Shell#chardev?(file)
|
||||
|
@ -263,7 +263,7 @@ OS
|
|||
--- Shell#writable_real?(file)
|
||||
--- Shell#zero?(file)
|
||||
|
||||
これらはFileTestクラスにある同名のクラスメソッドと同じです.
|
||||
これらはFileTestクラスにある同名のクラスメソッドと同じです.
|
||||
|
||||
--- Shell#syscopy(filename_from, filename_to)
|
||||
--- Shell#copy(filename_from, filename_to)
|
||||
|
@ -273,9 +273,9 @@ OS
|
|||
--- Shell#makedirs(*filenames)
|
||||
--- Shell#install(filename_from, filename_to, mode)
|
||||
|
||||
これらはFileToolsクラスにある同名のクラスメソッドと同じです.
|
||||
これらはFileToolsクラスにある同名のクラスメソッドと同じです.
|
||||
|
||||
その他, 以下のものがエイリアスされています.
|
||||
その他, 以下のものがエイリアスされています.
|
||||
|
||||
--- Shell#cmp <- Shell#compare
|
||||
--- Shell#mv <- Shell#move
|
||||
|
@ -283,7 +283,7 @@ OS
|
|||
--- Shell#rm_f <- Shell#safe_unlink
|
||||
--- Shell#mkpath <- Shell#makedirs
|
||||
|
||||
= サンプル
|
||||
= サンプル
|
||||
|
||||
== ex1
|
||||
|
||||
|
|
194
insns.def
194
insns.def
|
@ -47,7 +47,7 @@ nop
|
|||
/**
|
||||
@c variable
|
||||
@e get local variable value (which is pointed by idx).
|
||||
@j idx で指定されたローカル変数をスタックに置く。
|
||||
@j idx で指定されたローカル変数をスタックに置く。
|
||||
*/
|
||||
DEFINE_INSN
|
||||
getlocal
|
||||
|
@ -61,7 +61,7 @@ getlocal
|
|||
/**
|
||||
@c variable
|
||||
@e set local variable value (which is pointed by idx) as val.
|
||||
@j idx で指定されたローカル変数を val に設定する。
|
||||
@j idx で指定されたローカル変数を val に設定する。
|
||||
*/
|
||||
DEFINE_INSN
|
||||
setlocal
|
||||
|
@ -75,7 +75,7 @@ setlocal
|
|||
/**
|
||||
@c variable
|
||||
@e get special local variable ($~, $_, ..) value.
|
||||
@j 特殊なローカル変数($~, $_, ...)の値を得る。
|
||||
@j 特殊なローカル変数($~, $_, ...)の値を得る。
|
||||
*/
|
||||
DEFINE_INSN
|
||||
getspecial
|
||||
|
@ -89,7 +89,7 @@ getspecial
|
|||
/**
|
||||
@c variable
|
||||
@e set special local variable ($~, $_, ...) value as obj.
|
||||
@j 特別なローカル変数($~, $_, ...)の値を設定する。
|
||||
@j 特別なローカル変数($~, $_, ...)の値を設定する。
|
||||
*/
|
||||
DEFINE_INSN
|
||||
setspecial
|
||||
|
@ -104,8 +104,8 @@ setspecial
|
|||
@c variable
|
||||
@e get block local variable(which is pointed by idx and level).
|
||||
level means nest level of block, and specify how above this variable.
|
||||
@j level, idx で指定されたブロックローカル変数の値をスタックに置く。
|
||||
level はブロックのネストレベルで、何段上かを示す。
|
||||
@j level, idx で指定されたブロックローカル変数の値をスタックに置く。
|
||||
level はブロックのネストレベルで、何段上かを示す。
|
||||
*/
|
||||
DEFINE_INSN
|
||||
getdynamic
|
||||
|
@ -125,8 +125,8 @@ getdynamic
|
|||
@c variable
|
||||
@e set block local variable(which is pointed by 'idx') as val.
|
||||
level means nest level of block, and specify how above this variable.
|
||||
@j level, idx で指定されたブロックローカル変数の値を val にする。
|
||||
level はブロックのネストレベルで、何段上かを示す。
|
||||
@j level, idx で指定されたブロックローカル変数の値を val にする。
|
||||
level はブロックのネストレベルで、何段上かを示す。
|
||||
*/
|
||||
DEFINE_INSN
|
||||
setdynamic
|
||||
|
@ -146,7 +146,7 @@ setdynamic
|
|||
@c variable
|
||||
@e get instance variable id of obj.
|
||||
if is_local is not 0, search as class local variable.
|
||||
@j self のインスタンス変数 id の値を得る。
|
||||
@j self のインスタンス変数 id の値を得る。
|
||||
*/
|
||||
DEFINE_INSN
|
||||
getinstancevariable
|
||||
|
@ -161,7 +161,7 @@ getinstancevariable
|
|||
@c variable
|
||||
@e set instance variable id of obj as val.
|
||||
if is_local is not 0, search as class local variable.
|
||||
@j self のインスタンス変数 id を val にする。
|
||||
@j self のインスタンス変数 id を val にする。
|
||||
*/
|
||||
DEFINE_INSN
|
||||
setinstancevariable
|
||||
|
@ -175,7 +175,7 @@ setinstancevariable
|
|||
/**
|
||||
@c variable
|
||||
@e get class variable id of klass as val.
|
||||
@j 現在のスコープのクラス変数 id の値を得る。
|
||||
@j 現在のスコープのクラス変数 id の値を得る。
|
||||
*/
|
||||
DEFINE_INSN
|
||||
getclassvariable
|
||||
|
@ -190,7 +190,7 @@ getclassvariable
|
|||
/**
|
||||
@c variable
|
||||
@e set class variable id of klass as val.
|
||||
@j klass のクラス変数 id を val にする。
|
||||
@j klass のクラス変数 id を val にする。
|
||||
*/
|
||||
DEFINE_INSN
|
||||
setclassvariable
|
||||
|
@ -209,10 +209,10 @@ setclassvariable
|
|||
are searched in current scope. if klass is Qfalse, constant as
|
||||
top level constant. otherwise, get constant under klass
|
||||
class or module.
|
||||
@j 定数 id の値を得る。
|
||||
klass が Qnil なら、そのスコープで得られる定数の値を得る。
|
||||
Qfalse なら、トップレベルスコープを得る。
|
||||
それ以外なら、klass クラスの下の定数を得る。
|
||||
@j 定数 id の値を得る。
|
||||
klass が Qnil なら、そのスコープで得られる定数の値を得る。
|
||||
Qfalse なら、トップレベルスコープを得る。
|
||||
それ以外なら、klass クラスの下の定数を得る。
|
||||
*/
|
||||
DEFINE_INSN
|
||||
getconstant
|
||||
|
@ -231,10 +231,10 @@ getconstant
|
|||
top level constant. otherwise, set constant under klass
|
||||
class or module.
|
||||
|
||||
@j 定数 id の値を val にする。
|
||||
klass が Qfalse なら、そのスコープで得られる定数 id の値を設定する。
|
||||
Qnil なら、トップレベルスコープの値を設定する。
|
||||
それ以外なら、klass クラスの下の定数を設定する。
|
||||
@j 定数 id の値を val にする。
|
||||
klass が Qfalse なら、そのスコープで得られる定数 id の値を設定する。
|
||||
Qnil なら、トップレベルスコープの値を設定する。
|
||||
それ以外なら、klass クラスの下の定数を設定する。
|
||||
*/
|
||||
DEFINE_INSN
|
||||
setconstant
|
||||
|
@ -250,7 +250,7 @@ setconstant
|
|||
/**
|
||||
@c variable
|
||||
@e get global variable id.
|
||||
@j グローバル変数 id の値を得る。
|
||||
@j グローバル変数 id の値を得る。
|
||||
*/
|
||||
DEFINE_INSN
|
||||
getglobal
|
||||
|
@ -264,7 +264,7 @@ getglobal
|
|||
/**
|
||||
@c variable
|
||||
@e set global variable id as val.
|
||||
@j グローバル変数 id の値を設定する。
|
||||
@j グローバル変数 id の値を設定する。
|
||||
*/
|
||||
DEFINE_INSN
|
||||
setglobal
|
||||
|
@ -283,7 +283,7 @@ setglobal
|
|||
/**
|
||||
@c put
|
||||
@e put nil to stack.
|
||||
@j スタックに nil をプッシュする。
|
||||
@j スタックに nil をプッシュする。
|
||||
*/
|
||||
DEFINE_INSN
|
||||
putnil
|
||||
|
@ -297,7 +297,7 @@ putnil
|
|||
/**
|
||||
@c put
|
||||
@e put self.
|
||||
@j スタックに self をプッシュする。
|
||||
@j スタックに self をプッシュする。
|
||||
*/
|
||||
DEFINE_INSN
|
||||
putself
|
||||
|
@ -312,7 +312,7 @@ putself
|
|||
@c put
|
||||
@e put some object.
|
||||
i.e. Fixnum, true, false, nil, and so on.
|
||||
@j オブジェクト val をスタックにプッシュする。
|
||||
@j オブジェクト val をスタックにプッシュする。
|
||||
i.e. Fixnum, true, false, nil, and so on.
|
||||
*/
|
||||
DEFINE_INSN
|
||||
|
@ -327,8 +327,8 @@ putobject
|
|||
/**
|
||||
@c put
|
||||
@e put special object. "value_type" is for expansion.
|
||||
@j 特別なオブジェクト val をスタックにプッシュする。
|
||||
オブジェクトの種類は value_type による.
|
||||
@j 特別なオブジェクト val をスタックにプッシュする。
|
||||
オブジェクトの種類は value_type による.
|
||||
*/
|
||||
DEFINE_INSN
|
||||
putspecialobject
|
||||
|
@ -370,7 +370,7 @@ putiseq
|
|||
/**
|
||||
@c put
|
||||
@e put string val. string will be copied.
|
||||
@j 文字列をコピーしてスタックにプッシュする。
|
||||
@j 文字列をコピーしてスタックにプッシュする。
|
||||
*/
|
||||
DEFINE_INSN
|
||||
putstring
|
||||
|
@ -384,7 +384,7 @@ putstring
|
|||
/**
|
||||
@c put
|
||||
@e put concatenate strings
|
||||
@j スタックトップの文字列を n 個連結し,結果をスタックにプッシュする。
|
||||
@j スタックトップの文字列を n 個連結し,結果をスタックにプッシュする。
|
||||
*/
|
||||
DEFINE_INSN
|
||||
concatstrings
|
||||
|
@ -405,7 +405,7 @@ concatstrings
|
|||
/**
|
||||
@c put
|
||||
@e to_str
|
||||
@j to_str の結果をスタックにプッシュする。
|
||||
@j to_str の結果をスタックにプッシュする。
|
||||
*/
|
||||
DEFINE_INSN
|
||||
tostring
|
||||
|
@ -419,8 +419,8 @@ tostring
|
|||
/**
|
||||
@c put
|
||||
@e to Regexp
|
||||
@j 文字列 str を正規表現にコンパイルしてスタックにプッシュする。
|
||||
コンパイル時,opt を正規表現のオプションとする。
|
||||
@j 文字列 str を正規表現にコンパイルしてスタックにプッシュする。
|
||||
コンパイル時,opt を正規表現のオプションとする。
|
||||
*/
|
||||
DEFINE_INSN
|
||||
toregexp
|
||||
|
@ -442,7 +442,7 @@ toregexp
|
|||
/**
|
||||
@c put
|
||||
@e put new array.
|
||||
@j 新しい配列をスタック上の num 個の値で初期化して生成しプッシュする。
|
||||
@j 新しい配列をスタック上の num 個の値で初期化して生成しプッシュする。
|
||||
*/
|
||||
DEFINE_INSN
|
||||
newarray
|
||||
|
@ -457,7 +457,7 @@ newarray
|
|||
/**
|
||||
@c put
|
||||
@e dup array
|
||||
@j 配列 ary を dup してスタックにプッシュする。
|
||||
@j 配列 ary を dup してスタックにプッシュする。
|
||||
*/
|
||||
DEFINE_INSN
|
||||
duparray
|
||||
|
@ -471,13 +471,13 @@ duparray
|
|||
/**
|
||||
@c put
|
||||
@e expand array to num objects.
|
||||
@j スタックトップのオブジェクトが配列であれば、それを展開する。
|
||||
配列オブジェクトの要素数が num以下ならば、代わりに nil を積む。num以上なら、
|
||||
num以上の要素は切り捨てる。
|
||||
配列オブジェクトでなければ、num - 1 個の nil を積む。
|
||||
もし flag が真なら、残り要素の配列を積む
|
||||
flag: 0x01 - 最後を配列に
|
||||
flag: 0x02 - postarg 用
|
||||
@j スタックトップのオブジェクトが配列であれば、それを展開する。
|
||||
配列オブジェクトの要素数が num以下ならば、代わりに nil を積む。num以上なら、
|
||||
num以上の要素は切り捨てる。
|
||||
配列オブジェクトでなければ、num - 1 個の nil を積む。
|
||||
もし flag が真なら、残り要素の配列を積む
|
||||
flag: 0x01 - 最後を配列に
|
||||
flag: 0x02 - postarg 用
|
||||
flag: 0x04 - reverse?
|
||||
*/
|
||||
DEFINE_INSN
|
||||
|
@ -492,7 +492,7 @@ expandarray
|
|||
/**
|
||||
@c put
|
||||
@e concat two arrays
|
||||
@j 二つの配列 ary1, ary2 を連結しスタックへプッシュする。
|
||||
@j 二つの配列 ary1, ary2 を連結しスタックへプッシュする。
|
||||
*/
|
||||
DEFINE_INSN
|
||||
concatarray
|
||||
|
@ -521,7 +521,7 @@ concatarray
|
|||
/**
|
||||
@c put
|
||||
@e splat array
|
||||
@j 配列 ary に対して to_a を呼び出す。
|
||||
@j 配列 ary に対して to_a を呼び出す。
|
||||
*/
|
||||
DEFINE_INSN
|
||||
splatarray
|
||||
|
@ -539,7 +539,7 @@ splatarray
|
|||
/**
|
||||
@c put
|
||||
@e check value is included in ary
|
||||
@j 配列 ary に要素 obj が入っているかどうかチェック。case/when で利用する。
|
||||
@j 配列 ary に要素 obj が入っているかどうかチェック。case/when で利用する。
|
||||
*/
|
||||
DEFINE_INSN
|
||||
checkincludearray
|
||||
|
@ -579,8 +579,8 @@ checkincludearray
|
|||
/**
|
||||
@c put
|
||||
@e put new Hash.
|
||||
@j 新しいハッシュをスタックトップの n 個を初期値として生成する。
|
||||
n はキーと値のペアなので 2 の倍数でなければならない。
|
||||
@j 新しいハッシュをスタックトップの n 個を初期値として生成する。
|
||||
n はキーと値のペアなので 2 の倍数でなければならない。
|
||||
*/
|
||||
DEFINE_INSN
|
||||
newhash
|
||||
|
@ -602,7 +602,7 @@ newhash
|
|||
/**
|
||||
@c put
|
||||
@e put new Range object.(Range.new(low, high, flag))
|
||||
@j Range.new(low, high, flag) のようなオブジェクトを生成しスタックにプッシュする。
|
||||
@j Range.new(low, high, flag) のようなオブジェクトを生成しスタックにプッシュする。
|
||||
*/
|
||||
DEFINE_INSN
|
||||
newrange
|
||||
|
@ -620,7 +620,7 @@ newrange
|
|||
/**
|
||||
@c stack
|
||||
@e pop from stack.
|
||||
@j スタックから一つポップする。
|
||||
@j スタックから一つポップする。
|
||||
*/
|
||||
DEFINE_INSN
|
||||
pop
|
||||
|
@ -635,7 +635,7 @@ pop
|
|||
/**
|
||||
@c stack
|
||||
@e duplicate stack top.
|
||||
@j スタックトップをコピーしてスタックにプッシュする。
|
||||
@j スタックトップをコピーしてスタックにプッシュする。
|
||||
*/
|
||||
DEFINE_INSN
|
||||
dup
|
||||
|
@ -649,7 +649,7 @@ dup
|
|||
/**
|
||||
@c stack
|
||||
@e duplicate stack top n elements
|
||||
@j スタックトップの n 個をコピーしてスタックにプッシュする。
|
||||
@j スタックトップの n 個をコピーしてスタックにプッシュする。
|
||||
*/
|
||||
DEFINE_INSN
|
||||
dupn
|
||||
|
@ -669,7 +669,7 @@ dupn
|
|||
/**
|
||||
@c stack
|
||||
@e swap top 2 vals
|
||||
@j スタックトップの 2 つの値を交換する。
|
||||
@j スタックトップの 2 つの値を交換する。
|
||||
*/
|
||||
DEFINE_INSN
|
||||
swap
|
||||
|
@ -683,7 +683,7 @@ swap
|
|||
/**
|
||||
@c stack
|
||||
@e for stack caching.
|
||||
@j スタックキャッシングの状態を調整するために必要な命令。
|
||||
@j スタックキャッシングの状態を調整するために必要な命令。
|
||||
*/
|
||||
DEFINE_INSN
|
||||
reput
|
||||
|
@ -697,7 +697,7 @@ reput
|
|||
/**
|
||||
@c stack
|
||||
@e get nth stack value from stack top
|
||||
@j スタックトップから n 個目をスタックにプッシュする。
|
||||
@j スタックトップから n 個目をスタックにプッシュする。
|
||||
*/
|
||||
DEFINE_INSN
|
||||
topn
|
||||
|
@ -711,7 +711,7 @@ topn
|
|||
/**
|
||||
@c stack
|
||||
@e set Nth stack entry to stack top
|
||||
@j スタックトップの値を n 個目のスタックにコピー
|
||||
@j スタックトップの値を n 個目のスタックにコピー
|
||||
*/
|
||||
DEFINE_INSN
|
||||
setn
|
||||
|
@ -725,7 +725,7 @@ setn
|
|||
/**
|
||||
@c stack
|
||||
@e empt current stack
|
||||
@j current stack を空にする。
|
||||
@j current stack を空にする。
|
||||
*/
|
||||
DEFINE_INSN
|
||||
adjuststack
|
||||
|
@ -744,7 +744,7 @@ adjuststack
|
|||
/**
|
||||
@c setting
|
||||
@e defined?
|
||||
@j defined? を行う。
|
||||
@j defined? を行う。
|
||||
*/
|
||||
DEFINE_INSN
|
||||
defined
|
||||
|
@ -862,7 +862,7 @@ defined
|
|||
/**
|
||||
@c setting
|
||||
@e trace
|
||||
@j trace 用の命令。
|
||||
@j trace 用の命令。
|
||||
*/
|
||||
DEFINE_INSN
|
||||
trace
|
||||
|
@ -884,9 +884,9 @@ trace
|
|||
@e
|
||||
enter class definition scope. if super is Qfalse, and clsas
|
||||
"klass" is defined, it's redefine. otherwise, define "klass" class.
|
||||
@j クラス定義スコープへ移行する。
|
||||
もし super が Qfalse で klassクラスが定義されていれば再定義である。
|
||||
そうでなければ、klass クラスを定義する。
|
||||
@j クラス定義スコープへ移行する。
|
||||
もし super が Qfalse で klassクラスが定義されていれば再定義である。
|
||||
そうでなければ、klass クラスを定義する。
|
||||
*/
|
||||
DEFINE_INSN
|
||||
defineclass
|
||||
|
@ -986,7 +986,7 @@ defineclass
|
|||
/**
|
||||
@c method/iterator
|
||||
@e obj.send(id, args..) # args.size => num
|
||||
@j メソッド呼び出しを行う。
|
||||
@j メソッド呼び出しを行う。
|
||||
obj.send(id, args..) # args.size => num
|
||||
flag & VM_CALL_ARGS_SPLAT_BIT != 0 -> splat last arg
|
||||
flag & VM_CALL_ARGS_BLOCKARG_BIT != 0 -> Proc as Block
|
||||
|
@ -1018,9 +1018,9 @@ send
|
|||
/**
|
||||
@c method/iterator
|
||||
@e super(args) # args.size => num
|
||||
@j super を実行する。
|
||||
@j super を実行する。
|
||||
super(args) # args.size => num
|
||||
flag 等オペランドの意味は send と同じ。
|
||||
flag 等オペランドの意味は send と同じ。
|
||||
*/
|
||||
DEFINE_INSN
|
||||
invokesuper
|
||||
|
@ -1054,7 +1054,7 @@ invokesuper
|
|||
/**
|
||||
@c method/iterator
|
||||
@e yield(args) # args.size => num, flag shows expand argument or not
|
||||
@j yield を実行する。
|
||||
@j yield を実行する。
|
||||
yield(args) # args.size => num
|
||||
*/
|
||||
DEFINE_INSN
|
||||
|
@ -1073,7 +1073,7 @@ invokeblock
|
|||
/**
|
||||
@c method/iterator
|
||||
@e return from this scope.
|
||||
@j このスコープから抜ける。
|
||||
@j このスコープから抜ける。
|
||||
*/
|
||||
DEFINE_INSN
|
||||
leave
|
||||
|
@ -1096,7 +1096,7 @@ leave
|
|||
/**
|
||||
@c method/iterator
|
||||
@e return from this vm loop
|
||||
@j VM loop から抜ける。
|
||||
@j VM loop から抜ける。
|
||||
*/
|
||||
DEFINE_INSN
|
||||
finish
|
||||
|
@ -1119,7 +1119,7 @@ finish
|
|||
/**
|
||||
@c exception
|
||||
@e longjump
|
||||
@j 大域ジャンプを行う。
|
||||
@j 大域ジャンプを行う。
|
||||
*/
|
||||
DEFINE_INSN
|
||||
throw
|
||||
|
@ -1140,7 +1140,7 @@ throw
|
|||
/**
|
||||
@c jump
|
||||
@e set PC to (PC + dst).
|
||||
@j PC を (PC + dst) にする。
|
||||
@j PC を (PC + dst) にする。
|
||||
*/
|
||||
DEFINE_INSN
|
||||
jump
|
||||
|
@ -1155,7 +1155,7 @@ jump
|
|||
/**
|
||||
@c jump
|
||||
@e if val is not false or nil, set PC to (PC + dst).
|
||||
@j もし val が false か nil でなければ、PC を (PC + dst) にする。
|
||||
@j もし val が false か nil でなければ、PC を (PC + dst) にする。
|
||||
*/
|
||||
DEFINE_INSN
|
||||
branchif
|
||||
|
@ -1172,7 +1172,7 @@ branchif
|
|||
/**
|
||||
@c jump
|
||||
@e if val is false or nil, set PC to (PC + dst).
|
||||
@j もし val が false か nil ならば、PC を (PC + dst) にする。
|
||||
@j もし val が false か nil ならば、PC を (PC + dst) にする。
|
||||
*/
|
||||
DEFINE_INSN
|
||||
branchunless
|
||||
|
@ -1194,7 +1194,7 @@ branchunless
|
|||
/**
|
||||
@c optimize
|
||||
@e inline cache
|
||||
@j インラインキャッシュが有効なら、値をスタックにプッシュして dst へジャンプする。
|
||||
@j インラインキャッシュが有効なら、値をスタックにプッシュして dst へジャンプする。
|
||||
*/
|
||||
DEFINE_INSN
|
||||
getinlinecache
|
||||
|
@ -1215,7 +1215,7 @@ getinlinecache
|
|||
/**
|
||||
@c optimize
|
||||
@e inline cache (once)
|
||||
@j once を実現する。
|
||||
@j once を実現する。
|
||||
*/
|
||||
DEFINE_INSN
|
||||
onceinlinecache
|
||||
|
@ -1244,7 +1244,7 @@ onceinlinecache
|
|||
/**
|
||||
@c optimize
|
||||
@e set inline cache
|
||||
@j インラインキャッシュの値を設定する。
|
||||
@j インラインキャッシュの値を設定する。
|
||||
*/
|
||||
DEFINE_INSN
|
||||
setinlinecache
|
||||
|
@ -1263,7 +1263,7 @@ setinlinecache
|
|||
/**
|
||||
@c optimize
|
||||
@e case dispatcher
|
||||
@j case 文で、可能なら表引きでジャンプする。
|
||||
@j case 文で、可能なら表引きでジャンプする。
|
||||
*/
|
||||
DEFINE_INSN
|
||||
opt_case_dispatch
|
||||
|
@ -1304,7 +1304,7 @@ opt_case_dispatch
|
|||
/**
|
||||
@c optimize
|
||||
@e check environment
|
||||
@j 将来の拡張用。
|
||||
@j 将来の拡張用。
|
||||
*/
|
||||
DEFINE_INSN
|
||||
opt_checkenv
|
||||
|
@ -1326,7 +1326,7 @@ opt_checkenv
|
|||
/**
|
||||
@c optimize
|
||||
@e optimized X+Y.
|
||||
@j 最適化された X+Y。
|
||||
@j 最適化された X+Y。
|
||||
*/
|
||||
DEFINE_INSN
|
||||
opt_plus
|
||||
|
@ -1402,7 +1402,7 @@ opt_plus
|
|||
/**
|
||||
@c optimize
|
||||
@e optimized X-Y.
|
||||
@j 最適化された X-Y。
|
||||
@j 最適化された X-Y。
|
||||
*/
|
||||
DEFINE_INSN
|
||||
opt_minus
|
||||
|
@ -1451,7 +1451,7 @@ opt_minus
|
|||
/**
|
||||
@c optimize
|
||||
@e optimized X*Y.
|
||||
@j 最適化された X*Y。
|
||||
@j 最適化された X*Y。
|
||||
*/
|
||||
DEFINE_INSN
|
||||
opt_mult
|
||||
|
@ -1505,7 +1505,7 @@ opt_mult
|
|||
/**
|
||||
@c optimize
|
||||
@e optimized X/Y.
|
||||
@j 最適化された X/Y。
|
||||
@j 最適化された X/Y。
|
||||
*/
|
||||
DEFINE_INSN
|
||||
opt_div
|
||||
|
@ -1569,7 +1569,7 @@ opt_div
|
|||
/**
|
||||
@c optimize
|
||||
@e optimized X%Y.
|
||||
@j 最適化された X%Y。
|
||||
@j 最適化された X%Y。
|
||||
*/
|
||||
DEFINE_INSN
|
||||
opt_mod
|
||||
|
@ -1648,7 +1648,7 @@ opt_mod
|
|||
/**
|
||||
@c optimize
|
||||
@e optimized X==Y.
|
||||
@j 最適化された X==Y。
|
||||
@j 最適化された X==Y。
|
||||
*/
|
||||
DEFINE_INSN
|
||||
opt_eq
|
||||
|
@ -1669,7 +1669,7 @@ opt_eq
|
|||
/**
|
||||
@c optimize
|
||||
@e optimized X!=Y.
|
||||
@j 最適化された X!=Y。
|
||||
@j 最適化された X!=Y。
|
||||
*/
|
||||
DEFINE_INSN
|
||||
opt_neq
|
||||
|
@ -1700,7 +1700,7 @@ opt_neq
|
|||
/**
|
||||
@c optimize
|
||||
@e optimized X<Y.
|
||||
@j 最適化された X<Y。
|
||||
@j 最適化された X<Y。
|
||||
*/
|
||||
DEFINE_INSN
|
||||
opt_lt
|
||||
|
@ -1750,7 +1750,7 @@ opt_lt
|
|||
/**
|
||||
@c optimize
|
||||
@e optimized X<=Y.
|
||||
@j 最適化された X<=Y。
|
||||
@j 最適化された X<=Y。
|
||||
*/
|
||||
DEFINE_INSN
|
||||
opt_le
|
||||
|
@ -1780,7 +1780,7 @@ opt_le
|
|||
/**
|
||||
@c optimize
|
||||
@e optimized X>Y.
|
||||
@j 最適化された X>Y。
|
||||
@j 最適化された X>Y。
|
||||
*/
|
||||
DEFINE_INSN
|
||||
opt_gt
|
||||
|
@ -1830,7 +1830,7 @@ opt_gt
|
|||
/**
|
||||
@c optimize
|
||||
@e optimized X>=Y.
|
||||
@j 最適化された X>=Y。
|
||||
@j 最適化された X>=Y。
|
||||
*/
|
||||
DEFINE_INSN
|
||||
opt_ge
|
||||
|
@ -1859,7 +1859,7 @@ opt_ge
|
|||
/**
|
||||
@c optimize
|
||||
@e <<
|
||||
@j 最適化された X<<Y。
|
||||
@j 最適化された X<<Y。
|
||||
*/
|
||||
DEFINE_INSN
|
||||
opt_ltlt
|
||||
|
@ -1893,7 +1893,7 @@ opt_ltlt
|
|||
/**
|
||||
@c optimize
|
||||
@e []
|
||||
@j 最適化された recv[obj]。
|
||||
@j 最適化された recv[obj]。
|
||||
*/
|
||||
DEFINE_INSN
|
||||
opt_aref
|
||||
|
@ -1923,7 +1923,7 @@ opt_aref
|
|||
/**
|
||||
@c optimize
|
||||
@e recv[obj] = set
|
||||
@j 最適化された recv[obj] = set。
|
||||
@j 最適化された recv[obj] = set。
|
||||
*/
|
||||
DEFINE_INSN
|
||||
opt_aset
|
||||
|
@ -1956,7 +1956,7 @@ opt_aset
|
|||
/**
|
||||
@c optimize
|
||||
@e optimized length
|
||||
@j 最適化された recv.length()。
|
||||
@j 最適化された recv.length()。
|
||||
*/
|
||||
DEFINE_INSN
|
||||
opt_length
|
||||
|
@ -1991,7 +1991,7 @@ opt_length
|
|||
/**
|
||||
@c optimize
|
||||
@e optimized size
|
||||
@j 最適化された recv.size()。
|
||||
@j 最適化された recv.size()。
|
||||
*/
|
||||
DEFINE_INSN
|
||||
opt_size
|
||||
|
@ -2026,7 +2026,7 @@ opt_size
|
|||
/**
|
||||
@c optimize
|
||||
@e optimized succ
|
||||
@j 最適化された recv.succ()。
|
||||
@j 最適化された recv.succ()。
|
||||
*/
|
||||
DEFINE_INSN
|
||||
opt_succ
|
||||
|
@ -2073,7 +2073,7 @@ opt_succ
|
|||
/**
|
||||
@c optimize
|
||||
@e optimized not
|
||||
@j 最適化された recv.!()。
|
||||
@j 最適化された recv.!()。
|
||||
*/
|
||||
DEFINE_INSN
|
||||
opt_not
|
||||
|
@ -2097,7 +2097,7 @@ opt_not
|
|||
/**
|
||||
@c optimize
|
||||
@e optimized regexp match
|
||||
@j 最適化された正規表現マッチ。
|
||||
@j 最適化された正規表現マッチ。
|
||||
*/
|
||||
DEFINE_INSN
|
||||
opt_regexpmatch1
|
||||
|
@ -2111,7 +2111,7 @@ opt_regexpmatch1
|
|||
/**
|
||||
@c optimize
|
||||
@e optimized regexp match 2
|
||||
@j 最適化された正規表現マッチ 2
|
||||
@j 最適化された正規表現マッチ 2
|
||||
*/
|
||||
DEFINE_INSN
|
||||
opt_regexpmatch2
|
||||
|
@ -2130,7 +2130,7 @@ opt_regexpmatch2
|
|||
/**
|
||||
@c optimize
|
||||
@e call native compiled method
|
||||
@j ネイティブコンパイルしたメソッドを起動。
|
||||
@j ネイティブコンパイルしたメソッドを起動。
|
||||
*/
|
||||
DEFINE_INSN
|
||||
opt_call_c_function
|
||||
|
@ -2167,7 +2167,7 @@ bitblt
|
|||
/**
|
||||
@c joke
|
||||
@e The Answer to Life, the Universe, and Everything
|
||||
@j 人生、宇宙、すべての答え。
|
||||
@j 人生、宇宙、すべての答え。
|
||||
*/
|
||||
DEFINE_INSN
|
||||
answer
|
||||
|
|
Загрузка…
Ссылка в новой задаче