最近のトラックバック

2019年5月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
無料ブログはココログ

« 2009年7月 | トップページ | 2009年9月 »

2009年8月

load手続き追加

R5RSのload手続きが未サポートだったのでサポートしました。
また、Javaのリソースファイルからソースファイルを読み込むuse手続きをサポートしました。

load手続きやuse手続きはパスを指定することができます。
例として、パス変数*load-path*を("/xxx/yyy" "/xxx/zzz")と指定することによりloadするディレクトリを/xxx/yyyディレクトリおよび/xxx/zzzディレクトリからサーチすることができます。
use手続きも同様に変数*use-path*を(pkg.pkg1 pkg.pkg2)と指定すれば、パッケージpkg.pkg1およびpkg.pkg2からリソースを検索しにいきます。

format手続きサポート

format手続きをサポートしました

命令はSRFI-28の範囲に加えて

  • Common Lispの仕様に準拠した~A, ~S(文字列表示)
  • Common Lispの仕様に準拠した~D, ~B, ~O, ~X(整数表示)
  • ~%(改行)
  • ~~(チルダそのもの)

をサポートしました。Common Lisp準拠なのでパラメータも扱うことができます。

今日まで会社が夏休みなので平日に進めました。来週から土日に進めたいと思います。

evalバグ対応/SRFI-6対応/IOテスト実施

今日は以下のことを実施しました

  1. evalをinteraction-environmentで使用したとき、評価されるS式に継続があるときにも正常に実行できるようにした
  2. SRFI-6(文字列ポート)対応
  3. I/O関連の手続きのテスト

R5RSマクロの置換・健全性のテストが終了

R5RSマクロの健全性のテストが終了しました。

R5RSマクロ(syntax-rules)の実装は苦労しましたので一通り動いて安心しました。
あと、継続関連でバグが見つかったので対応しました。

R5RSマクロ(syntax-rules)のテスト開始

R5RSマクロ(syntax-rules)のテストを開始しました。

省略記号(...)の階層がパターンと変換テンプレートでの不一致を検出しないバグがありましたので直しました。
これからさらにテストを進めていきます。

dynamic-windで苦戦

dynamic-windと継続の動作で苦戦しています。

thunk内の手続きから脱出継続で抜ける、またはthunk内で捕捉した継続を用いてthunk内に再入することはできるのですが、

  1. thunk内に捕捉した継続を用いて再入した後にbeforeで捕捉した継続を用いてbefore内に再入すると2回実行されるbeforeがある
  2. thunkから脱出継続で抜けた後にbefore/after内で捕捉した継続を用いて再入すると実行順がおかしくなる

という問題があります。
バイトコードを見直すことにしてみます。

« 2009年7月 | トップページ | 2009年9月 »