[email protected]
[Top] [All Lists]

Re: Introspection API

Subject: Re: Introspection API
From: "Gustavo J. A. M. Carneiro"
Date: Fri, 25 Feb 2005 10:58:19 +0000
On Thu, 2005-02-24 at 18:16 -0500, Colin Walters wrote:
>On Thu, 2005-02-24 at 20:52 +0000, Gustavo J. A. M. Carneiro wrote:
>>On Thu, 2005-02-24 at 15:20 -0500, Matthias Clasen wrote:
>>>I have written up a draft spec for the format of the binary metadata
>>>to back up the repository api which I posted earlier. I hope to have
>>>some initial code implementing both of these soon.
>>>Comments highly appreciated,
>>  OK, I probably missed something but, exactly how are language bindings
>>supposed to get the actual API function pointers?  All I can see is
>>function name.  Should we use dlsym() (or glib equivalent abstraction)?
>c_name:   The symbol which can be used to obtain the function pointer with 
>So yes.

  Right, I did miss that.  I just read "in diagonal"...

>>  Once we get the function pointer, are we supposed to use libffi to
>>call the function with the actual parameters?
>Hmm.  That is a problem.  Perhaps we could provide a way to easily
>generate marshallers for functions in the introspection data on the
>client end.  It's a little unclear to me how this would integrate into
>I guess languages like Java/C# will already be using libffi or
>equivalent and so this won't be an issue.

  I'm not saying libffi is bad, if we have computer generated prototype
descriptions.  Manually using libffi is more of a problem due to the
human tendency to make mistakes...

  Another concern about libffi is portability.  But I looked at the home
page and it seems to be fairly portable, so event that may not be much
of a problem.

  I just wanted these things to be clear.  No point in agreeing on
high-level interfaces if we can't get lower-level details to work.


Gustavo J. A. M. Carneiro
<[email protected]> <[email protected]>
The universe is always one step beyond logic.
language-bindings mailing list  [email protected]
<Prev in Thread] Current Thread [Next in Thread>