[Anthy-dev 2863] [r5rs] Guard

Back to archive index

Jun Inoue jun.l****@gmail*****
2006年 4月 8日 (土) 13:07:46 JST


Hygienic macro の code を commit しましたが、見てわかる通りまだ何箇所
か腐ってます (identifier の比較とか debug print とか)。

自分では expand-macro で展開を確認しながら scm_format を埋めて debug 
してるんですが、sscm では出力が unwrap-syntax されてしまうので scope 
周りの debug が不便です。原因はguard_body() で返り値に delay() を被せ
てるからですが、どう直すべきかわかりません。というか guard 周りの code 
はどうもよくわからない & わかるまで粘る気になるような外見でないので、
書いた人に見てほしいんですが… > ヤマケンさん

そもそもこんなにいっぱい layer 要りますか?
scm_s_srfi34_guard(catch, body)
{
  push_handler (make_handler (catch));
  ret = scm_s_begin (body);
  pop_handler ();
  return ret;
}
ではダメなんでしょうか。(dynamic-wind の側で PROCEDUREP() か CONSP() 
かければ make_handler() も要らないような)

どうしても lambda で包む必要があるなら unwrap-syntax しない quote を作
ることになりますが、それを採用したときには scheme code から見えないよ
うに追加しないとまずいので注意。




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