[cffi-devel] Next release of CFFI with cffi-libffi

Stas Boukarev stassats at gmail.com
Mon Apr 30 20:00:31 UTC 2012


Stas Boukarev <stassats at gmail.com> writes:

> Stelian Ionescu <sionescu at cddr.org> writes:
>
>> On Thu, 2012-04-19 at 14:46 +0000, Stas Boukarev wrote:
>>> Luís Oliveira <luismbo <at> gmail.com> writes:
>>> 
>>> > 
>>> > On Thu, Apr 19, 2012 at 2:50 PM, Stelian Ionescu <sionescu <at> cddr.org> 
>>> wrote:
>>> > > (with-foreign-object (p '(:struct timespec) 2)
>>> > >  (mem-aref p '(:struct timespec) 1))
>>> > >
>>> > > In order not to break existing code [...]
>>> > 
>>> > Existing code will not have this (:struct foo) syntax because it was
>>> > introduced by the libffi merge. (mem-aref p 'timespec 1) should
>>> > exhibit backwards-compatible behaviour.
>>> Turns out, the problem is not with mem-aref, but with the mem-aref compile-
>>> macro. It binds *parse-bare-structs-as-pointers* to T, whereas mem-aref function 
>>> doesn't, this affects the result of foreign-type-size.
>>
>> Actually it's mem-aref that should bind *parse-bare-structs-as-pointers*
>> to T, so I pushed the fix
>
> This breaks it.
And the same problem with *parse-bare-structs-as-pointers* being
different is also present in the setf macro for mem-aref.

-- 
With best regards, Stas.




More information about the cffi-devel mailing list