SICP 読み (289) 5.4 積極制御評価器

とほほほ。ループの件ですが、帰りしなのバスん中で差分を発見してました。ev-eval-print-loop で

read-eval-print-loop
  (perform (op initialize-stack))
  (perform
   (op prompt-for-input) (const ";;; EC-Eval input:"))
  (assign exp (op read))
  (assign env (op get-global-environment))
  (assign continue (label print-result))
  (goto (label eval-dispatch))

eval-dispatch に jmp していた。4.2 なソレではここでも actual-value してたんですが、ここに手を入れたらループしなくなりました。原因は今から検討します。何故か、に全然至らない。
ここではないだろう、と思っていたんでショックでかいッス。(を

検証

バグの現象としては cons が戻す手続きに primitive な手続きを渡したら正常終了だけど、compound な手続きの場合にループ (と言うべきなのかどうか微妙)、というもの。
これが read-eval-print-loop の jmp 先が eval-dispatch か actual-value かで挙動が異なるというのはどーゆーコトなのか。

つづき

佳境なんですが割り込みが入りまくり。てーか、これは絶対エントリを検索したらヒントがあるはず。後天性記憶不全なだけに、これ系の記録はしているはずではないかと。
何故にこんなコトを書くかというと、もう限界だからだったり (を

腹立つ

サケ飲んだら駄目だなぁ。明日、なんとかして時間を取って机上ベースで絶対に原因をトレイスしてやる、と宣言しとく。