[Gauche-devel-jp] Re: Gauche-0.7.3のクラス再定義機構とpgドライバーの動作

Back to archive index

Shiro Kawai shiro****@lava*****
2003年 12月 19日 (金) 20:39:17 JST


From: yasuy****@javao*****
Subject: [Gauche-devel-jp] Gauche-0.7.3のクラス再定義機構とpgドライバーの動作
Date: Fri, 19 Dec 2003 20:20:24 +0900

> クラス再定義機構に関連したエラーだと思うのですが、pg.stub で、
> 
> (define-type <pg-result> "PGresult*"  #f ;"box for the postgresql result"
>   "SCM_PG_RESULT_P" "SCM_PG_RESULT" "new_pg_result")
> 
> と <pg-result> 型を定義してあって、pg.scm で、
> 
> (define-class <pg-result> ()
>   ((result       :accessor pg-result-of :initform #f)
>    ;(query       :init-keyword :path)
>    ;(rw-mode    :init-keyword :rw-mode    :initform :write)
>    ;(file-mode  :init-keyword :file-mode  :initform #o664)
>    ;(key-convert   :init-keyword :key-convert :initform #f)
>    ;(value-convert :init-keyword :value-convert :initform #f)
>    ;; internal.  set up by dbm-open
>    )
>   :metaclass <pg-meta>)
> 
> と定義してあるのがいけないんでしょうか。

ああ、Cで定義して、さらにSchemeでも定義しちゃってるので、再定義処理が
行われてしまうのですね。

C側で定義してあるのだから、Scheme側のは削っちゃってもいいと
思うんですが…っと、あれだ。メタクラスがあるからちょっとまずいな。

いや、違う、新しいやつだとScheme側の定義はクオートされてて
実行されないみたいですよ。
http://maruska.dyndns.org/comp/activity/scheme/gauche/pg/pg.scm

とりあえず、Scheme側の定義をクオートして実行したらどうなりますか。

--shiro



Gauche-devel-jp メーリングリストの案内
Back to archive index