call/cc 高速化(地味版)

  • 初回起動時に出来るだけスタックが深くならないようにべた書き(ひどい)
  • ユーザーの各コードを、dynamic-wind, prameterize などで出来るだけ囲まない(ひどい)
  • (eq? winders new-winders) を一息で実行
  • 「restore 時にコピーでなく、そのままスタックとして利用」は不採用
    • fp の書き換えが面倒。(fp はオフセットではなく、ポインタ)
  • continuation をただのクロージャから continuation オブジェクトにする
    • これで restore 用のコード生成を遅延できる


しかし Ypsilon は ctak の実行が速い。ふむう。