Has anyone of you given a look at what Franz did on this very subject for their Allegro 8.2 ( http://www.franz.com/support/documentation/8.2/doc/contents.htm#foreign-functions ) ( http://www.franz.com/support/documentation/8.2/doc/foreign-functions.htm#structs-by-value-1 ) They added a keyword argument to their def-foreign-call form and also added a global variable ff:*pass-structs-by-value* that controls the default value of the keyword arg.
What do you think of that? Cheers, Jean-Claude Beaudoin On Thu, Sep 8, 2011 at 1:05 PM, Luís Oliveira <luis...@gmail.com> wrote: > On Thu, Sep 8, 2011 at 5:56 PM, Liam Healy <l...@healy.washington.dc.us> > wrote: > > I see this is a simple change to the function call interface: naming > > the struct means call by value; if you want to call by reference, use > > :pointer. > > That's Attila's suggestion. Break it and move on. > > > > We can even make a warning if you call by reference with > > the struct name and don't have FSBV loaded (remember we are going to > > keep this a separate system so that users don't have to load libffi if > > they don't need call by value). > > That's nicer, but fsbv might be loaded for some other reason and thus > silently break existing code. > > > > So this is an incompatible change to > > the call interface, essentially revoking CFFI's prior generosity in > > allowing structure name instead of :pointer. I definitely don't like > > the idea of making different defcstructs, that will be too confusing > > and a kludge. > > Just to be clear, the older defcstruct would become deprecated, > removed from the user manual, etc. > > -- > Luís Oliveira > http://r42.eu/~luis/ > > _______________________________________________ > cffi-devel mailing list > cffi-devel@common-lisp.net > http://lists.common-lisp.net/cgi-bin/mailman/listinfo/cffi-devel >
_______________________________________________ cffi-devel mailing list cffi-devel@common-lisp.net http://lists.common-lisp.net/cgi-bin/mailman/listinfo/cffi-devel