On 01/09/14 02:08, Luís Oliveira wrote:
On Thu, Jan 9, 2014 at 12:15 AM, Massimiliano Ghilardi massimiliano.ghilardi@gmail.com wrote:
- Thinking that (or actually defining) MAP_FAILED = -1 is misleading. MAP_FAILED is (void *)-1.
Your patch looks good.
Thanks :)
Perhaps we could teach cffi-grovel how to grovel pointers, then we'd be able to ditch the *map-failed-pointer* bits. I've attached an untested patch that does that. Does using (constant ... :type pointer) for the MAP_* constants solve the problem you found?
Cheers,
Yes, after applying your patch to cffi_0.11.2 I could drop *map-failed-pointer* and directly use map-failed, provided that osicat/posix/unixint.lisp is updated to contain
(constant (map-failed "MAP_FAILED") :documentation "mmap: failure" :type cffi-grovel::pointer)
On the other hand, (... :type cffi-grovel::pointer) looks a bit ugly to me, as such symbol is not used anywhere else and is not exported by the package cffi-grovel. What about using the existing symbol cffi-sys:foreign-pointer ? It is the actual Lisp type of the constant/parameter being defined, and it's already exported...
Regards,
Massimiliano