[Anthy-dev 2291] Re: r5rs: SigSchemeへの要望

アーカイブの一覧に戻る

Kazuki Ohta mover****@hct*****
2005年 8月 26日 (金) 14:33:17 JST


太田です。残存作業のリストアップ。

> ・consオペレーションとしてのSCM_CONS, CONSマクロの導入
>   - 繁雑な基本操作なので欲しい
>   - 現在はSCM_CONSが型チェック付きオブジェクト取り出し用途に使わ
>     れているのでそのままでは導入できない。型名をR5RS的にpairに変
>     更すれば回避できるが、好みに合わないなら型チェック付き取り出
>     しマクロの側を改名する必要がある
個人的には、pairという型名はいまいちピンと来ません。

内部で利用するだけなら#define CONS Scm_NewConsとすれば良いのですが、こ
れだと外部から利用する場合に混乱が起きますよね。なので、現状のSCM_CONS
マクロの名前を変更するという事になると思います。custom的にSCM_AS_CONSと
いう名前にしようかと思っているのですが、ピンと来ますかね?

> ・(cond) ? SCM_TRUE : SCM_FALSE を簡略化するためのSCM_BOOLIZE(仮)
>   マクロの導入
これは反対です。

ScmObj ScmOp_symbolp(ScmObj obj)
{
    return (SYMBOLP(obj)) ? SCM_TRUE : SCM_FALSE;
}

ScmObj ScmOp_symbolp(ScmObj obj)
{
    return SCM_BOOLIZE(SYMBOLP(obj));
}

SCM_BOOLIZEマクロを導入する事によって、確かに記述は短くなりますが、初めて
ソースコードを見た人にとってはSCM_BOOLIZEマクロの定義を見に行く必要が出て
きます。そうするよりはむしろ上の方が直感的で理解しやすいと思います。

いかがでしょう?


次に行うもの。
・SIOD互換のverboseの実装
・FuncNameスタイルとfunc_nameスタイルの統一([Anthy-dev 2251])
・FUNCTYPEの拡張([Anthy-dev 2238], [Anthy-dev 2241])
・datas.cとuim-scm.cの改名([Anthy-dev 2251])


懸案事項。
・tail recursionが起こった場合のback traceをどうするか
現在はtrace_frameをScmOp_evalの先頭でスタック上に確保しているが、現状末尾
再帰が起こった場合にはtrace_frameを作成していない。ただ、mallocを使って確保
するとオーバーヘッドが大きそう。最初に配列を動的に確保しておく?しかしその場合に
は継続との兼ね合いが微妙になる。難しい。

-------------------------------------------------
Kazuki Ohta : mover****@hct*****
-------------------------------------------------



Anthy-dev メーリングリストの案内
アーカイブの一覧に戻る