Kazuki Ohta
mover****@hct*****
2005年 8月 17日 (水) 15:54:21 JST
太田です。 井上さんのQuasiQuoteパッチをcommitしました。本当に有難う御座いますm(_ _)m > r4rs の SECTION(4 2 6) は全部通るようになりました。(x . ,y) も unquote > しないといけなかったんですね。知りませんでした。 > > test-quote の方は…えー、私のしょぼいミスでしたごめんなさい。 > qquote_vector() の最後で、既に Scm_NewVector() に渡していたポインタをも > う一度渡して vector オブジェクトを作っていたので、その領域が二度解放され > ていたからでした。 素晴らしいです。こちらでもtest-r4rs.scmでSECTION(4 2 6)が通ること、そして test-quote.scmでのfree問題が解決している事を確認しました。fix有難う御座 います。 > FUNCTYPE0-5 (今のまま) > FUNCTYPE_EVALED_LIST (map eval して作ったリストをもらう) > FUNCTYPE_UNEVALED_LIST (評価してない引数リストをそのままもらう) > FUNCTYPE_UNEVALED_LIST_TAIL_REC (評価してない引数リストをもらって末尾再帰) > FUNCTYPE_UNEVALED_LIST_OPT_TAIL_REC (評価してない引数リストと tail_flag > をもらう) > みたいにします。ただしこれ全部を同時に使うわけじゃなくて、それぞれこうい > う種類をつくるとしたらこういう名前、ということです。_LIST とか _REC と > かは冗長なので省くのもいいでしょう。 > > 理由としては、名前だけで使途が判断可能にできるほど情報量が少なくないこと > と、上記の名前でもコメントさえ読んで一度理解すれば全部簡単に覚えられるこ > とです。宣言部とか簡単に見つけられるところに説明書いてるのに読まない、と > いうのは読む側の怠慢だと思ってるので… > > でもそう言い出すと、コーディングスタイルにも食い込む話ですので、気に入ら > なければ「やだ」っていうだけで却下してくださっても構いません。 外部から利用する場合に今のままだと不都合なので変更する事にしました。例えば uim-scmのuim_scm_quote内ではScmOp_quoteをラップする必要があるのですが、 その場合今の引数の取りかた(ScmObj ScmOp_quote(ScmObj obj, ScmObj *envp, int *tail_flag))だと非常に不自然なコードになってしまいます。 で名前なんですが、EVALED_LISTってのは少し分かり辛い気がするので、EVALED_ARG にしようかと思います。あと、OPT_TAIL_FLAGも_WITH_TAIL_FLAGに変更。 * FUNCTYPE0-5 (今のまま) * FUNCTYPE_EVALED_ARG (map eval して作ったリストをもらう) * FUNCTYPE_UNEVALED_ARG (評価してない引数リストをそのままもらう) * FUNCTYPE_UNEVALED_ARG_TAILREC (評価してない引数リストをもらって末尾再帰) * FUNCTYPE_UNEVALED_ARG_WITH_TAILFLAG (評価してない引数リストと tail_flagをもら う) こんな感じに変更したいのですが、どう思われますか? > ALL ------------------------------------------------- Kazuki Ohta : mover****@hct***** -------------------------------------------------