Subject: bug#18592: FFI should have portable access to ‘errno’

From: Mark H Weaver <[email-masked]>
Date: Sat, 24 Jan 2015 03:22:15 -0500

Mark H Weaver <[email-masked]> writes:

> [email-masked] (Ludovic Courtès) writes:
>
>> Chaos Eternal <[email-masked]> skribis:
>>
>>> Proposal 2.
>>>
>>> let pointer->procedure check return_type, if it is a list:
>>> (func_return_type, 'errno)
>>> then return multiple values, as errno be second value.
>>
>> That’s my favorite because it’s both pragmatic and extensible (we can
>> also add support for h_errno, etc.)
>
> We can't do this, because although it's not documented in our manual, a
> list passed as a foreign type already has a meaning: it means a struct.
> See 'parse_ffi_type' in foreign.c.

Also see 'fill_ffi_type' in the same file.

    Mark