On Sep 16, 2011, at 3:06 PM, John Clements wrote: > I'm trying to backport working FFI code to 5.1.3, and I'm having trouble > referring to elements of a C struct. Specifically, in the presence of this > definition > > (define-cstruct _rack-audio-closure > ([sound _pointer] > [cur-sample _ulong] > [num-samples _ulong] > [stop-now _bool] > [stop-sema-ptr _pointer])) > > using the function (rack-audio-closure-cur-sample) on the result of an FFI > call with signature > > (_fun _pointer _ulong _pointer -> _rack-audio-closure-pointer) > > produces this error: > > rack-audio-closure-cur-sample: expected argument of type > <struct:rack-audio-closure>; given #<cpointer:rack-audio-closure> > > in 5.1.3, but it works just fine in the git head.
More research suggests that the problem is more limited; it looks like a problem of generativity. That is, if I have two modules that declare the "same" cstruct (same name, same fields, same types) then cpointers to these structures returned by functions from the first module cannot be accessed in the other module. AFAICT, This is not the case in more recent versions; that is, these cstructs are not generative. Assuming this is deliberate, I could document it. John
smime.p7s
Description: S/MIME cryptographic signature
_________________________________________________ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev

