[Anthy-dev 2250] r5rs: SigSchemeへの移行方針

Back to archive index

YamaKen yamak****@bp*****
2005年 8月 21日 (日) 22:47:14 JST


ヤマケンです。

SigSchemeベースのuimが動き始めたようですが、やはりuimのコードに
はSIOD依存が多量に含まれているようですね。

そこで提案なんですが、*.scmをR5RS互換に書き換えるのではなく、一
旦SigScheme側をSIODのバグ的仕様互換にして、ほぼtrunkのままの
*.scmを動かす事を当面の目標にしてはどうでしょうか。

これなら不具合の原因が*.scm側にあるのかSigScheme側にあるのかを同
時に追わなくて済みます。SigScheme本体のバグを潰してSIODと同等に
安定して動くようになってから、別途*.scm側のR5RS互換に手を付ける
事ができます。

私が思い付く限りでは以下のような差があります。GaUnitによるテスト
がSigSchemeでも動くようになればtest/以下に用意された各種テストを
使って非互換性をあぶり出せるようになるので、どこまでSIOD互換を進
めるかはともかく、まずそれを目標にするのが良いと思います。

・SIODは#fと()を区別しない (SigScm_false = &SigScm_nil_impl)

・SIODの=はint以外の比較にも使える

・SigSchemeにverboseサポートがない。GaUnitを使ったテストのために
  はverboseレベル1のサポートが必要

・loadまわりでpathの扱いが非互換?
  $ uim/uim-sh
  SigScm_load : no such file = (null)
  **** BACKTRACE ****

・SigSchemeのprintがSIOD互換でない。util.scmにsiod-printを用意し
  たが、SigSchemeのprintをSIOD互換にしてしまった方がコード書き換
  えを回避できる。現状のSigSchemeのprintに依存しているコードは
  displayln等に書き換え

・SIODのバグ的仕様込みではSLIBのSRFI-1は動かないと思われるので、
  util.scmのものを復活させる。util.scmのSRFI procsのバグに依存し
  たコードも存在する可能性があるので、それによる不具合を排除する
  ためにも必要

・*catch等の実現が大変なものまでは互換をとらずに済ませる

-------------------------------
ヤマケン yamak****@bp*****



Anthy-dev メーリングリストの案内
Back to archive index