pass2/$local-assign をデバッグ中

やり残した最適化の1つを ON にしたらおかしくなった。

(display "GO\n")
(define path 3)
(let ((add (lambda (s)
             (set! path s))))
  (add #f)
  (add #f))

s が free variables として認識されないようなバグがある。どうも pass2 で lambda を inline 展開するときにおかしくなる模様。
明日 vm.scm を使って調べる。

今日の英語

  • 原因・結果問題 2問中1問正解。10分/制限時間20分
    • トピックセンテンスの選定に失敗。正解に曖昧さがあるように思えてならない
  • つなぎの装置問題 20問中20問正解。13.5分/制限時間30分
  • 繰り返しに注目する問題 7問中8問正解。7分/制限時間8分

ペンがない

ペンがない。さっきまで使っていたのに。どこにも見あたらない。そんな馬鹿な。
↓で使用している英語問題集にはさまって本棚にしまわれていた。

最適化調査

Gauche や Ypsilon のコードを読み。最適化し忘れている部分をリストにして Wiki にまとめた。
意外と多くてびっくり。「最適化はほどほどにして先に進もう」と進んできてそのことを忘れていたようだ。
ちなみに Gauche 最適化のほどんどは pass2 で行われるがよく見ると pass3 にもあるので注意が必要。