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ってやっても,コンパイルすら通りません.手抜きです.