installed-modules.scm生成

とりあえずuim-shは安定して起動出来るようになった。次はinstalled-modules.scmの生成にトライ。戦いはまだまだ長い。

  • uim/uim-scm.c
    • uim_scm_eval_c_stringの動作が不安定
      • スタックは保護しているはずなのだが...とりあえず今の一番のハマリポイント。これを解決しない事には先に進めない。scm -> c -> scmの呼び出し時に生じる問題を僕がまだ理解していない。
  • scm/util.scm
    • every, any等が無限ループに陥る事が有る。具体的にはcustom.scmのcustom-ordered-list?のeveryなのだが、ここのlstに'(())を与えると無限ループに陥る。every, any等の実装の調査が必要。
      • SLIBの実装を持ってくる事で解決。遅かったらそこをCで書き直せばいいや。いまのiterate_listsはuim_scm_lengthの結果と即値を比べているというバグを見付けたのだが、これをuim_scm_c_int(uim_scm_lenth(lists))のように変更すると動かなくなるから困ったものだ。
  • sigscheme/eval.c
    • 現在はstack frameをmallocせずに生成しスタック上に保持しているが、継続を使われたら一貫の終わり。んー、どうしよっかな。