r79
とりあえずmake releaseして実行ファイルが完成して,なんとなくチェックできるところまで実装.まだクラス定義も実装していないし,そもそも制約の検証にバグがあるけど,ほんの少しだけ遊べます.
[samples/ex01-ok.rb]
1.to_s()
当然OK.
[samples/ex02-ng.rb]
123.invalid_method()
これはNG.
[samples/ex03-ok.rb]
def add(x,y) x+y end add(1,2)
OK.メソッド定義は実装してある.
[samples/ex04-ng.rb]
x = 123 x.foo()
NG.変数への代入がきちんと処理されていることを確認.
ここまでは,期待通りの動作.ここからは,おかしな動作.
[samples/ex05-ng.rb]
def foo(x) x+1 end foo("hello world")
OKと出てしまう.Rubyで実行すればわかるが,これはString#+がStringを受け取らなくてはならないので,エラーになるのが正しい動作.
[samples/ex06-ok.rb]
def rec(x) rec(x) end rec(100)
OKになる.正しい動作だが,再帰呼び出しはきちんと処理されてないんじゃないかな.
こんなところ.
def add(x,y) x+y end add(1,"2")
みたいなのもOKとでてしまってダメだったのでどうしようもない・・・orz.ex-05と同じ動作だな・・・ってことは,ex-03も実はぜんぜんちゃんと動いてないのか_| ̄|○
胡散臭い組み込みライブラリのデータベースは「sig.db/stdlib.txt」にあります.こっちを編集すれば,IntegerとかStringとかの定義がマシになります.
あーちなみにmake testってやっても,コンパイルすら通りません.手抜きです.