Re: Pika-style from first principles
Felix Winkelmann 14 Jan 2004 06:25 UTC
Am Tue, 13 Jan 2004 22:46:15 +0100 hat Michael Sperber
<xxxxxx@informatik.uni-tuebingen.de> geschrieben:
>>>>>> "felix" == felix <xxxxxx@call-with-current-continuation.org> writes:
>
> felix> How come? What do you mean with "in the way"? Perhaps your
> felix> particular high-level interface is insufficient?
>
> It's not about sufficiency. (Even though both you and Marc admitted
> that your particular high-level FFI proposals can only handle most of
> what may be needed.) It's about appropriateness. When I'm using C
> headers to generate FFI information, it seems silly to convert the C
> types to their Scheme representation, only to convert them back
> again. (Arguably, the conceptual overhead of representing C types in
> Scheme implies that this isn't such a great way of going about linking
> in C libraries, after all.)
AFAIK both Marc and me did not propose FFI-generating headers.
But, anyway, I still don't see the problem. A FFI that keeps the
programmer oblivious of the implementation-specific data representation
and GC strategy is simply a must, if it is supposed to be portable - there
is no way around it. The preceived "sillyness" of converting data
between Scheme/C representations sounds unconvincing. There is an
abstraction barrier that we have to accept and the performance
implications are (IMHO) secondary.
>
> Now, I've promised myself to not even reply to this kind of trollery
> anymore, but here I go again ...
Yes, go ahead...
>
> You know the list of FFI bindings I've been involved in; among them
> two generations of scsh with full POSIX access (which someone called
> "low-hanging fruit" earlier in the discussion.)
Michael, these pissing matches over who has the most experience
are rather inappropriate in a technical discussion as this one.
Your experience may be vast (I can't tell), Marc's experience may
be as well (I can't tell either). I assume most people on this
mailing list have some, so why don't we just forget about that
and try to find better arguments instead.
>
> But you don't have to take my word. I invite you to look at
> Subversion, one of the few projects that has C FFI bindings for
> multiple language implementations, and look at how much effort these
> folks need to spend on the implementation-specific type conversion
> functions.
>
But type conversions have to be done anyway! Wether you convert the
data automatically (hidden in implementation-specific constructs
and wrappers), or explicitly makes no difference. Only that the
automatic conversion (and I'm *not* talking about header-file
munging - I'm talking about implementation-specific glue code) is
the only way of making it portable.
cheers,
felix