summaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
authorYukihiro Matsumoto <matz@ruby-lang.org>1994-08-10 15:54:46 +0900
committerTakashi Kokubun <takashikkbn@gmail.com>2019-08-17 22:09:30 +0900
commit6e3090413652b6592346556149fed1e9aec5495d (patch)
treebac97139bbeedc8cb67cb2e451a22ed4ddb2b2d4 /spec
parent200e0ee2fd3c1c006c528874a88f684447215524 (diff)
version 0.50v0_50
http://cache.ruby-lang.org/pub/ruby/1.0/ruby-0.50.tar.gz Wed Aug 10 15:54:46 1994 Yukihiro Matsumoto (matz@ix-02) * variable.c: -vオプションが指定されている時は初期化されていない, 大域変数, インスタンス変数, ローカル変数を参照した時点でwarning を出すようにした. Tue Aug 9 11:50:48 1994 Yukihiro Matsumoto (matz@ix-02) * bignum.c: 冪乗に関しても多倍長演算を行なうように. 特に浮動小数点 数の範囲を越えた時の処理を的確に行なうように. * eval.c: メソッド定義後は構文木から, メソッド定義部分を外す. 無駄 な再定義が起こらないようにするためと2重にfree()されないため. * array.c(Fary_aref): 引数が1つでFixnumの時, Range checkを行なわな いように修正. * eval.c: 引数の数をコンパイル時に計算して若干の高速化. Mon Aug 8 13:06:24 1994 Yukihiro Matsumoto (matz@ix-02) * object.c: nilによる比較連鎖をなくした. * parse.y: bit演算子の優先順位を比較演算子よりも強くした. Cとは異 なることになるが, 直観には合致する. * gc.c: クラスを解放する時, 個々のメソッド毎にキャッシュをクリアす るのではなく, クラス単位でクリアするように. Thu Aug 4 18:45:09 1994 Yukihiro Matsumoto (matz@ix-02) * methods.c(method_free): 解放されたメソッドに関してキャッシュをク リアしておく必要があった. * gc.c: Dataクラスのデータ部分をfree()し忘れていた. Wed Aug 3 09:58:14 1994 Yukihiro Matsumoto (matz@ix-02) * parse.y: def func .. end形式による関数メソッドの定義はなくなった. * methods.c: func形式のメソッドをなくした. あっても, あまり意味が ないので. * eval.c: $0への代入でps(1)の出力が変化するように. * io.c(Fsyscall): syscall()を実現. Mon Aug 1 13:41:11 1994 Yukihiro Matsumoto (matz@ix-02) * parse.y: ダブルクォートで囲まれた文字列や正規表現中で"#{変数名}" または"#変数名"という形式で変数の内容を埋め込むことができるよう になった. * io.c: 関数メソッドsystem2()はなくなった. 今はバッククォートがあ るからね. * parse.y: `cmd`によってコマンドを文字列に展開することができるよう になった. * parse.y: __FILE__, __LINE__を追加. それぞれファイル名(文字列), 行番号(整数)を値とする疑似変数. Fri Jul 29 13:16:07 1994 Yukihiro Matsumoto (matz@ix-02) * methods.h: メソッドをオブジェクトとして扱うのをやめる. メソッド のメモリ管理にはリファレンスカウントを使うことにした. これでオブ ジェクトの数が減ってほんの少しだけGCが速くなる(かな). * purifyによってメモリ関係のバグを検査した(見つかる,見つかる…). * gc.c: GCをプログラマが変数をマークする形式から, スタックとレジス タからマークする方法に変更. 移植性が下がるような気もするが, siod やscmでも採用されているから多分大丈夫だろう. Linux on i486でも動 作を確認した. Wed Jul 27 16:13:13 1994 Yukihiro Matsumoto (matz@ix-02) * eval.c(Eval): トップレベルでは構造木をfreeしないように. どうせ解 放されるから時間の無駄である. * array.c, dict.c: "=="を構造一致に変更. Fri Jul 22 10:14:09 1994 Yukihiro Matsumoto (matz@ix-02) * error.c: 組み込みタイプの名前を登録し忘れていた. Thu Jul 21 14:06:48 1994 Yukihiro Matsumoto (matz@ix-02) * parse.y(freenode),eval.c(Eval): 解析木を解放し忘れていた. Mon Jul 18 10:19:15 1994 Yukihiro Matsumoto (matz@ix-02) * parse.y: 多重代入を処理するルールにバグがあって, 3要素以上の多重 代入に失敗していた. * eval.c(rb_eval): 多重代入で, 右辺が配列でない時には`to_a'メソッ ドで配列に変換して代入するようにした. 今までの仕様だと右辺値が第 1要素にそのまま代入されていたが, structなど配列に変換できるもの は変換した方が嬉しい気がする. * dbm.c,dict.c(delete_if): メソッド追加. * process.c(wait,waitpid): システムコールwaitpidまたはwait4がある 時はそちらを使うように. configureもそれらをチェックするように変更. * dbm.c, dict.c(clear): メソッド追加.
Diffstat (limited to 'spec')
-rw-r--r--spec192
1 files changed, 94 insertions, 98 deletions
diff --git a/spec b/spec
index 2171e958aa..aa3d96e868 100644
--- a/spec
+++ b/spec
@@ -15,11 +15,12 @@ RubyϡUNIXǼڤ˥֥Ȼظץߥ󥰡פ򤷤Ȥ˾
ʤɤǤ. ֥ȻظȤưŪǤSmalltalkC++ʤɤ
ξΰƤϤ뤬, ä˼ڤʥץߥ󥰤Ȥ˷
-Ƥ, ƤΤǤϤʤä. ץȸǤPerl
-Tcl˥֥Ȼظǽɲäƥ¸ߤ뤬, ϡּ
-ڤ˥ץߥ󥰡פȤƤϤƤ, դ˥֥Ȼظ
-ǽä. ä, ξ򿷤߷
-ɬפȹͤ줿. Ƨޤ߷פ줿Rubyħ:
+Ƥ, ʾξƤΤǤϤʤä. ץȸ
+ǤPerl Tcl˥֥Ȼظǽɲäƥ¸ߤ뤬,
+ϡּڤ˥ץߥ󥰡פȤƤϤƤ, դ˥
+Ȼظǽä. ä, ξ
+򿷤߷פɬפȹͤ줿. Ƨޤ߷פ줿Ruby
+ħ:
* 󥿥ץ꥿Ǥ.
* ñ㳰ξʤʸˡ.
@@ -31,14 +32,15 @@ Tcl˥֥Ȼظǽɲäƥ¸ߤ뤬, ϡּ
* OS򥢥뵡ǽ󶡤.
* ĥ䤹.
-ʤɤ. RubyshperlΤäƤͤˤȤäƤξQˤʤ뤿ä
+ʤɤ. RubyshPerlΤäƤͤˤȤäƤξQˤʤ뤿ä
Τ, θ줫μʰܹԤǽǤȻפ. ץޤ
RubyΥ֥ȻظǽˤĤƳؤ٤, 궯ϤʤȤǤ褦
ʤ.
-Cǥ饹򵭽Ҥ뤳ȤRuby򹹤˶Ϥˤ뤳ȤǤ.
-OSǤRubyưŪ˥֥ȥե󥯤Ǥ뤷, Ǥʤ
-ƤRubyƥѥ뤷Ȥ߹ߥ饹ɲäΤưפǤ.
+Cǥ饹᥽åɤ򵭽Ҥ, ɲä뤳ȤRuby򹹤˶Ϥˤ
+뤳ȤǤ. ΥץåȥեǤRubyưŪ˥֥ȥե
+󥯤Ǥ뤷, ǤʤƤRubyƥѥ뤷Ȥ߹ߥ
+ɲäΤưפǤ(PerlʤɤϤ뤫ưפǤ).
* Rubyδ
@@ -69,21 +71,33 @@ RubyδŪʬ˾, ʸˡ㳰ʤΤǿȤˤĤΤ
ͽϰʲ̤Ǥ
- break, case, class, continue, def, do, else,
- elsif, end, ensure, for, func, if, in,
- include, module, nil, protect, redo, resque, retry,
- return, self, super, then, undef, unless, until,
- using, when, while, yield, __END__
+ break elsif module self when
+ case end nil super while
+ class ensure protect then yield
+ continue for redo undef __END__
+ def if resque unless __FILE__
+ do in retry until __LINE__
+ else include return using
ͽϥ饹̾, ᥽å̾, ѿ̾ʤɤѤ뤳ȤϤǤʤ.
+** 롼ԥ
+
+ϳ̤ˤäƥ롼ԥ󥰤뤳ȤǤ. ˳ˤϼ¤Ӥ
+񤱤. ¤Ӥ򵭽Ҥ, ȼζڤˤϲԤ ';' Ѥ.
+¤ӤͤϺǸɾͤǤ. Ĥޤ
+
+ (; ; ...)
+
+ͤϺǸɾͤˤʤ.
+
** ƥ
-ʲΥƥ뤬
+ʲΥƥ뤬 ϼǤ.
ʸƥ
- "..." # Хååβᤢ
+ "..." # ХååβѿŸ
'...' # Хååβʤ(\\\'ϲ᤹)
Хåå嵭ˡ
@@ -95,6 +109,7 @@ RubyδŪʬ˾, ʸˡ㳰ʤΤǿȤˤĤΤ
\b Хåڡ(0x08)
\a ٥(0x07)
\e (0x1b)
+ \# ʸ`#'Τ
\nnn 8ʿɽ(n0-7)
\xnn 16ʿɽ(n0-9,a-f)
\^c ȥʸ(cASCIIʸ)
@@ -127,8 +142,8 @@ RubyδŪʬ˾, ʸˡ㳰ʤΤǿȤˤĤΤ
|
( ) ɽޤȤ
- ¾˥Хåå嵭ˡͭǤ.
-
+ ¾ʸƱХåå嵭ˡͭǤ.
+
ͥƥ
123
@@ -145,19 +160,18 @@ RubyδŪʬ˾, ʸˡ㳰ʤΤǿȤˤĤΤ
?ɽǤƤΥХåå嵭ˡͭǤ.
-** 롼ԥ
+*** ѿŸ
-ϳ̤ˤäƥ롼ԥ󥰤뤳ȤǤ. ˳ˤϼ¤Ӥ
-񤱤. ¤Ӥ򵭽Ҥ, ȼζڤˤϲԤ ';' Ѥ.
-¤ӤͤϺǸɾͤǤ. Ĥޤ
-
- (; ; ...)
-
-ͤϺǸɾͤˤʤ.
+֥륯(`"')ǰϤޤ줿ʸɽǤ `#{ѿ̾}'Ȥ
+ѿƤŸ뤳ȤǤ. ѿѿ(`$',`@',`%')
+ľˤ`#ѿ̾'ȤǤŸǤ. ʸ`#'³ʸ
+`{'Ǥʤ, ѿǤʤ, Τޤ`#'ȤƲᤵ.
-** ƥ
+** ޥɤν
-Ҥο, ʸ, ɽγƥƥϼǤ.
+``ǰϤޤ줿ʸ, ֥륯ȤƱͤŸ줿, Ʊ
+褦˥ޥɤȤƼ¹Ԥ, μ¹Է̤ʸȤͿ.
+ޥɤɾ뤿Ӥ˼¹Ԥ.
**
@@ -240,17 +254,22 @@ RubyδŪʬ˾, ʸˡ㳰ʤΤǿȤˤĤΤ
ʣʤ¤, ̤ΥѿͤnilǤȹͤƤ⺹
٤Ϥʤ.
- RubyȤ߹ߴؿʸΥե٥åȤǻϤޤ̾ĤƤ,
- 桼⥯饹/⥸塼̾ˤʸǻϤޤ뼱̻Ҥ,
- ̾ˤϾʸޤ`_'ǻϤޤ뼱̻ҤȤȤ򶯤侩.
+ RubyȤ߹ߥ饹ʸΥե٥åȤǻϤޤ̾ĤƤ
+ , 桼⥯饹/⥸塼̾ˤʸǻϤޤ뼱̻Ҥ,
+ ѿ̾ˤϾʸޤ`_'ǻϤޤ뼱̻ҤȤȤ򶯤侩.
ѿμ̿ϤΥ᥽åɤλޤ(ȥåץ٥Υ
ѿϥץνλޤ)Ǥ.
-˵ѿȸƤФüѿȤselfnil. selfϸߤΥ
-åɤμ¹ԼΤؤѿǤ, nilNil饹ͣΥ󥹥
-(ɽ)ؤѿǤ. εѿˤäƤ
-ѹ뤳ȤϤǤʤ. ѿؤ㳰ȯ.
+˵ѿȸƤФüѿ4Ĥ.
+
+ self | ߤΥ᥽åɤμ¹Լ
+ nil | Nil饹ͣΥ󥹥(ɽ)
+ __FILE__ | ץȤΥե̾(ʸ)
+ __LINE__ | ߤιֹ
+
+εѿˤäƤͤѹ뤳ȤϤǤʤ.
+ѿؤ㳰ȯ.
** å
@@ -269,11 +288,11 @@ RubyδŪʬ˾, ʸˡ㳰ʤΤǿȤˤĤΤ
᥽å̾ȤƤǤդμ̻ҤѤ뤳ȤǤ. ѿ̾Ȥϼ̻Ҥ
֤̾㤦ΤǽʣƤ⹽ʤ.
-** ؿ
+** ؿ
-å, 쥷Фselfξ, 쥷Фάƴؿǥ᥽
-ɤƤӽФȤǤ. ξ1ĤʤǤ̤ξάϤ
-ʤ.
+å, 쥷Фselfξ, 쥷Фά̾Υץ
+ߥ󥰸ˤؿΤ褦ʷǥ᥽åɤƤӽФȤǤ.
+ξ1ĤʤǤ̤ξάϤǤʤ.
ؿǤ`@'ǻϤޤ̾ĥ᥽åɤƤӽФȤǤ. `@'
Ϥޤ᥽åɤϴؿǤƤӽФȤǤʤ, 륯
@@ -295,7 +314,7 @@ RubyδŪʬ˾, ʸˡ㳰ʤΤǿȤˤĤΤ
super(...)
ȤȤ˥ѡ饹Ʊ̾Υ᥽åɤƤӽФ. ֺǸ
- ΰ`*'³̾Υ᥽åɸƤӽФƱ.
+ ΰ`*'³̾Υ᥽åɸƤӽФƱͤϤ.
** 黻
@@ -308,10 +327,10 @@ RubyδŪʬ˾, ʸˡ㳰ʤΤǿȤˤĤΤ
* / %
+ -
<< >>
- > >= < <=
- <=> == != =~ !~
&
| ^
+ > >= < <=
+ <=> == != =~ !~
&&
||
.. ...
@@ -337,7 +356,7 @@ RubyδŪʬ˾, ʸˡ㳰ʤΤǿȤˤĤΤ
1."黻"(2)
-Ȳᤵ. ¿黻(λȤ[])ϱ黻ҷ̤ʷȤ
+˲ᤵ. ¿黻(λȤ[])ϱ黻ҷ̤ʷȤ
recv[arg..]
@@ -345,14 +364,22 @@ RubyδŪʬ˾, ʸˡ㳰ʤΤǿȤˤĤΤ
recv."[]"(arg..)
-Ȳᤵ. ǤƱͤǤ.
+Ȳᤵ. ǤؤƱͤ
+
+ recv[arg0..] = argn
+
+,
+
+ recv."[]="(arg0.., argn)
+
+Ȳᤵ.
** P
if, unless, while, untilξȽμ, ü黻`&&', `||',
`...'ξդμ, ̾黻`!'αդϾPȸƤФ. PǤʸ
ɽƥϼ$_=~ƥפξάǤȤߤʤ.
-黻`...'ξդǤƥ뤬$.==ƥפξάȲᤵ.
+黻`...'ξդǤ$.==פξάȲᤵ.
: 黻`!'ü黻ҤǤϤʤΤ, Ԥʤ˵Ĥ
뤳.
@@ -360,8 +387,9 @@ if, unless, while, untilξȽμ, ü黻`&&', `||',
! ʸƥ
! ɽƥ
-ηǸƤӽФ᥽åɤΰ, ƥɽ֥ȤǤϤʤ.
-`!'᥽åɤϺʤɤȻפ.
+ηǸƤӽФ᥽åɤΰ, ƥɽ֥ȤǤϤʤ,
+嵭Ӥη̤Ϳ. Τ, §Ū`!'᥽åɤϺ
+ʤɤȻפ.
**
@@ -395,9 +423,10 @@ moduleʸѤ. ϱ黻ҷȤäƤ뤬, ᥽åɤǤϤʤ
1 op= 2 # 1ǽǤʤФʤʤ.
- ηŪˡּ1 = 1 op 2פŸ, ¹Ԥ.
- ϥץޤΥ׿򸺤餹ŪΤ¸ߤǤ
- . opȤƻȤ黻Ҥ
+ ηŪˡּ1 = 1 op 2פŸ, ¹Ԥ.
+ ἰ12ɾΤ, Ѥͽۤʤ̤Ƥ
+ ǽ. ϥץޤΥ׿򸺤餹ŪΤ
+ ¸ߤǤ. opȤƻȤ黻Ҥ
+, -, *, /, %, **, &, |, ^, <<, >>
@@ -409,10 +438,10 @@ moduleʸѤ. ϱ黻ҷȤäƤ뤬, ᥽åɤǤϤʤ
ѿ, [ѿ,...] = [, ]
-դμĤʤ, , ͤǤˤǤ
-ѿ. ʳξˤ, 줾μͤѿ
-. դѿοȱդǤοʤˤ­ʤѿˤ
-nil, ;äǤ̵뤵.
+դμĤʤ, ͤȤ(ɬפʤto_a᥽
+ɤѴ), Ǥ򤽤줾ѿ. ʳξˤ,
+줾μͤѿ. դѿοȱդǤο
+ʤˤ­ʤѿˤ nil, ;äǤ̵뤵.
foo, bar = [1, 2] # foo = 1; bar = 2
foo, bar = 1, 2 # foo = 1; bar = 2
@@ -633,7 +662,7 @@ protectʳ, unless黻, until黻Ҥϱդͤ㳰ȯ
ϥͥȤǤʤΤ, ᥽åʸǤϥ᥽åʸƤӸ
ӽФʤ.
- def [func] ᥽å̾ [ ( [, ...][, * ] ) ]
+ def ᥽å̾ [ ( [, ...][, * ] ) ]
end [ def ]
@@ -641,9 +670,6 @@ protectʳ, unless黻, until黻Ҥϱդͤ㳰ȯ
ǻꤹ. ¤ӤκǸ`*', ¿Ϳ줿
°, ǸΰȤͿ(­ʤˤϥ顼).
-`func'ꤵ줿ˤϤΥ᥽åɤϴؿǤƤӽФ
-ȤǤؿŪ᥽åɤˤʤ.
-
** ðۥ᥽å
᥽åˤϤ⤦ðۥ᥽åɤ. ϰʲ̤Ǥ
@@ -895,13 +921,15 @@ Rubyˤϸ̩ʰ̣ǤϴؿϤʤKernel饹Υ᥽åɤΰ(
pattern˥ޥåʬreplace֤. String饹
sub᥽åɤβ򻲾ȤΤ.
- system(command) +
+ syscall(num, arg...) +
- ޥɤ¹Ԥ, νλơ֤.
+ numǻꤵ줿ֹΥƥॳ¹Ԥ. 2ʹߤ
+ ƥॳΰȤϤ. ʸޤǤʤ
+ ʤʤ.
- system2(command) +
+ system(command) +
- ޥɤ¹Ԥ, νϤʸȤ֤.
+ ޥɤ¹Ԥ, νλơ֤.
trap(command, signal...) +
@@ -964,7 +992,8 @@ Rubyˤϸ̩ʰ̣ǤϴؿϤʤKernel饹Υ᥽åɤΰ(
$_ Ǹgets()ʤɤɤ߹ʸ.
- $0 rubyץȤ̾
+ $0 rubyץȤ̾. ѿps(1)ν
+ Ѳ.
$* rubyץȤͿ줿. rubyȤФ
Ƥ.
@@ -2019,20 +2048,6 @@ Single Methods:
GC򳫻Ϥ.
- threshold
-
- GCγϥߥ󥰤ꤹͤθߤ֤ͤ.
-
- threshold=(val)
-
- GCͤꤹ. Ť֤ͤ.
-
- start_hook
- end_hook
-
- GCγϻ, λˤ줾ƤФ. ǥեȤǤϲ⤷ʤ
- ᥽åɤƤ.
-
*** Integer(饹)
饹. ºݤϤ礭ˤäFixnumBignumĤΥ֥饹
@@ -2330,14 +2345,7 @@ Methods:
*** Nil(饹)
ɽ֥nilΥ饹. ѿ()nilNil饹ͣΥ
-󥹥󥹤Ǥ. nil饹ӥ᥽åɤդ뤬, Ӥ
-ϢԤʤǤ. ӤϢȤ
-
- 10 < a < 13
-
-Τ褦ʤΤǤ. ӱ黻ҥ᥽åɤϼԤnil֤,
-ϱդΥ֥Ȥ֤Τ, nilӱ黻Ҥ˵֤Ȥˤ
-ϢΩ.
+󥹥󥹤Ǥ.
SuperClass: Kernel
@@ -2345,19 +2353,7 @@ Methods:
self + other
- other, ư, ʸ, Τ줫Ǥä,
- other֤. ̤ΰФ뼫ʤ褦Ѱ
- 줿᥽åɤǤ.
-
- foo # ͤnil
- foo += 1 # foo1ˤʤ.
-
- self > other
- self >= other
- self < other
- self <= other
-
- ϢΤΥ᥽å. nil֤.
+ other, ư, ʸ, Ǥ, other֤.
! self