[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Cooperating on .defs API specifications
From: |
Andreas Rottmann |
Subject: |
Re: Cooperating on .defs API specifications |
Date: |
Wed, 31 Mar 2004 12:48:09 +0200 |
User-agent: |
Gnus/5.1002 (Gnus v5.10.2) Emacs/21.3 (gnu/linux) |
James Henstridge <address@hidden> writes:
> On 31/03/2004 3:52 AM, Andreas Rottmann wrote:
>
>>Why not have .defs files, and generate the binary info from them? The
>>.defs files are already there, and they contain more information than
>>the headers do (well, comment parsing might change that, but you could
>>create comments from the .defs files :)). Just an idea...
>>
> For simple cases, the defs files contain enough information. For the
> more complex cases, they lack some information that would be needed
> for full introspection. Some examples are:
>
> * what types do (GList *) arguments and return values hold? How
> should a binding release a (GList *) return value? (in various
> parts of GTK and Gnome, the answer is "free all members then the
> list", "free the list" and "do nothing")
>
In guile-gobject, we use "Glist*-of-FOO" and caller-owns-return to
solve this (well the return value problem only partially). Examples:
(define-method set_popdown_strings
(of-object "GtkCombo")
(c-name "gtk_combo_set_popdown_strings")
(return-type "none")
(parameters
'("GList*-of-gchar*" "strings")
)
)
(define-method copy
(of-object "GtkIconSet")
(c-name "gtk_icon_set_copy")
(return-type "GtkIconSet*")
(caller-owns-return #t)
)
> * Some functions take an array and a length arguments. It would be
> good to link these together (for most languages, we should be able
> to omit the length arguments, since their list/array types know
> their length).
>
Indeed. We could "invent" a new parameter type to describe this.
> * Is an (int *) argument an array of ints being passed in, an array
> of ints that will be modified (inout), or a pointer to a single
> int being used as an out argument?
>
One could add specifiers to those value's type strings,
e.g. int*-in-out.
Andy
--
Andreas Rottmann | address@hidden | address@hidden | address@hidden
http://yi.org/rotty | GnuPG Key: http://yi.org/rotty/gpg.asc
Fingerprint | DFB4 4EB4 78A4 5EEE 6219 F228 F92F CFC5 01FD 5B62
Latein ist das humanoide Äquivalent zu Fortran.
-- Alexander Bartolich in at.linux
- Re: Cooperating on .defs API specifications, (continued)
- Re: Cooperating on .defs API specifications, Xavier Ordoquy, 2004/03/30
- Re: Cooperating on .defs API specifications, Andreas Rottmann, 2004/03/30
- Re: Cooperating on .defs API specifications, muppet, 2004/03/30
- Re: Cooperating on .defs API specifications, Andreas Rottmann, 2004/03/30
- Re: Cooperating on .defs API specifications, Murray Cumming, 2004/03/30
- Re: Cooperating on .defs API specifications, Murray Cumming, 2004/03/30
- Re: Cooperating on .defs API specifications, Andreas Rottmann, 2004/03/30
- Re: Cooperating on .defs API specifications, Murray Cumming, 2004/03/30
- Re: Cooperating on .defs API specifications, Andreas Rottmann, 2004/03/30
- Re: Cooperating on .defs API specifications, James Henstridge, 2004/03/31
- Re: Cooperating on .defs API specifications,
Andreas Rottmann <=
Re: Cooperating on .defs API specifications, Xavier Ordoquy, 2004/03/30
Re: Cooperating on .defs API specifications, Shiro Kawai, 2004/03/30