YamaKen
yamak****@bp*****
2005年 1月 4日 (火) 13:42:06 JST
At Fri, 31 Dec 2004 08:37:12 +0900, yamak****@bp***** wrote: > custom APIの改訂に伴ってuim-scm APIも位置付けが変わりつつあるの > で最近の変化を紹介しておきます。 > > 現在のlibuimはSchemeインタプリタのsiodをuim向けに改変したものに > べったり依存する形で書かれているんですが、これを整理してuim-scm > APIによってSchemeインタプリタを抽象化し、直接siodの関数を呼ぶ代 > わりにuim_scm_*()を介して呼び出すように変えつつあります。siodが > 公開しているシンボルは他のライブラリ等と衝突しやすい短かい名前な > のでuim_scm_プリフィクスを付けてそれを回避する目的もあります。 r113, r114でlibuimの中核部分はuim-scm APIを使うようにしてSiod依 存性を分離しました。残りは各IM向けにCで書かれたコードですが、こ れらもplugin化の際に整理されると思います。 ------------------------------------------------------------------------ r114 | yamaken | 2005-01-04 10:55:43 +0900 (Tue, 04 Jan 2005) | 97 lines * This commit replaces Siod-dependent Scheme interface codes with equivalent one using uim-scm API, and reorganizes Scheme interpreter interface codes into appropriate files. Most of Siod dependent codes are encapsulated into uim-scm and uim-compat-scm. Following dependency is remaining: - Some rk-related functions in uim-util.c is still using raw Siod functions. But these functions will be removed when new rk replacement has become - Some optional files (prime.c, skk-dic.c, uim-table.c, cannca.c and anthy.c) are still using raw Siod and obsolete uim-compat-scm functions. siod.h should be excluded first to acquire Siod independency. But I will not do it near future. Anyone? > At Sun, 03 Oct 2004 18:35:45 +0900, > yamak****@bp***** wrote: > > Schemeの実装の話になったのでついでに触れておきますが、現在のsiod > > では repl_c_string() → callback → repl_c_string() のようにnest > > した形でrepl_c_string()を呼ぶとGCがおかしくなるため、uimでは > > callback queueを使ってこれを回避していますが、repl_c_string()の > > 内部で呼ばれているrepl_driver()の実装をいじって、stack_start_ptr > > の初期化を最初のrepl_c_string()呼び出し時に限って行う事でこの問 > > 題を回避できるんじゃないかと考えています。実際の検証はまだですが、 > > repl_c_string()がnested reentrantだとAPIの設計自由度が増すので、 > > uim-scm API(とcustom API)の改訂時に実験してみようと思っています。 > > これもr86, r88, r89で対応し、一応の正常動作を確認しました。 表さんの報告で気付きましたが、例外フレームのネストに対応していな かったのでSEGVする事がありました。r108で修正済です。 > 0.4.6リリースまでの間、なるべく以下のコンフィギュレーションでテ > ストして頂けると助かります。もしバグがあった場合にはアプリごとク > ラッシュしますのでご注意ください。もちろん問題無い事を期待してい > ますが。 > > configure --enable-scm-nested-eval --disable-callback-queue というわけで、他に問題が報告されなければ、0.4.6ではこのコンフィ ギュレーションをデフォルトにするつもりです。 ------------------------------- ヤマケン yamak****@bp*****