SigScheme開発録 (52)

  • SCM_OBJ_COMPACT
    • GC抜きでテストが全部通った。さて、最後の壁だす。
    • GC実装してみたら、なんだか動いているみたい。port周りがちょっと微妙な動きを見せているが、大枠では動いた。やったぜぃ。GC書きにおいては100%に持っていくのが難しいんだけど。デバッグしづらいし。
      • portの中身が書き換わる事が有るな。sweepされた気配も無い。mark & unmarkも正しく動いている。他に書き換わる可能性の有る所はどこだ?
  • GC 周りで確認している問題
    • mark_obj に null が渡ってくる
    • SigScm_Read に port 以外のオブジェクトが渡ってくる
      • Tagged Pointer を使っている場合は、C Stackに 'tagged'された状態のポインタの値が積まれている事に気づき、修正。
      • SCM_TYPEに変な値が混じる事が有ったので、適当にScmInvalidという型を作って対処したらbenchが全部動いた。しかしその変な値がどこから来るものなのかを解析しない事には100%とは言えない。
  • port bug
    • InitStorage等で debug 情報を書きだそうとすると、scm_current_error_port がまだ初期化されていないので落ちる。