[Openmcl-devel] slet/rlet with C functions?
gb at clozure.com
Sat Aug 19 04:23:26 UTC 2006
On Fri, 18 Aug 2006, Phil wrote:
>> Unless that sort of annotation happened, I'm not sure that SLET could
>> reasonably recognize/provide sugar for structure-returning ff-calls.
> Would an alternative be to provide an alternate call path (i.e.
> rather than using the reader macro) using a function/macro like
> (EXTERNAL-FUNCTION-CALL "CGRectIntegral" R)? Other than the
> additional effort to produce, do you see any problems with the idea?
Maybe something like
(STRUCT-RETURNING-EXTERNAL-CALL :<CGR>ect "_CGRectIntegral" :<CGR>ect R)
(STRUCT-RETURNING-EXTERNAL-CALL :<CGR>ect R2 "_CGRectIntegral" :<CGR>ect R)
or something even wierder.
It'd be nicer if #_ just did the right thing, but I'm not sure how we
get there easily. The coercion from "returns structure" to "takes
a pointer to a structure as a first argument" happens before delarations
get encoded in the .cdb file
The next time that there's a strong(er) reason to change the format of
the .cdb files, it'd be worth trying to arrange that the coercion
happens later; if we know (after reading a function declaration from
the database) that something returns a structure, we can have #_
macroexpand into something special (or otherwise leave information
about that where SLET could find it.)
More information about the Openmcl-devel