Mosh 0.0.3 をリリースしました

Mosh 0.0.3 をリリースしました。(ダウンロード

例外システム、eval、REPL の追加により更に本格的なプログラミングが出来るようになりました。
変更点は以下の通りです。


R6RS の例外システムを実装。

  • 対話的なモード(REPL)を追加。
  • eval 手続きを追加。
  • 割り算と剰余を追加。
  • スタックフレームの構造を変更しスタックトレースを出力しやすく。
  • 多くのバグ修正
    • (apply proc ...) 手続きの引数のバグを修正。
    • スタックオーバーフロー時に SEGV になるバグを修正
    • PPC 上の OSX正規表現のテストに失敗するエンディアン関連のバグを修正(masa_edwさんによる)
    • (+) => 0 、(*) => 1 であるべきバグを修正(lequeさんの指摘による)
    • (cond ((3))) のような cond のバグ修正


バグや怪しい挙動を見かけましたらIssues、コメント、メールなどでお知らせ頂けると助かります。

REPL のサンプル

mosh>(for-all even? '(2 4 6 9))
#f

例外のサンプル

(guard (con
        [(string? con)
         "error-is-string"]
        [else
         "error-is-not-string"])
       (raise "raise"))

eval のサンプル

mosh>(eval '(+ 1 2) '())
3

現時点では eval の第二引数は無視されます。