Re: GObject-Introspection





On Mon, Jun 9, 2008 at 4:21 PM, Michael Lawrence <mflawren fhcrc org> wrote:


On Sun, Jun 1, 2008 at 8:00 AM, Johan Dahlin <johan gnome org> wrote:
This mail is long overdue, but I finally got my act together and started to
prepare for an initial release.

[snip]
 

== GIR XML Format ==

The core of the GObject-introspection is an XML format which is called GIR (
GObject Introspection Repository) which contains the API introspection
metadata for a library or interface entity.

GIR currently contains three different XML namespaces:
 - core
   contains features available in popular programming languages,
   classes, methods, functions, interfaces, properties, strings,
   enums etc.
 - c
   contains features specific to the C language:
   identifiers, symbol names, C types
 - glib
   contains features specific to GLib/GObject:
   signal, GType, flags, paramspec,

The separation of different data in different namespaces allow you
to reuse it allows you to arbitrarily extend the metadata available
in different languages.

I've noticed that the Typelib is missing an attribute for the API version, that is, something similar to the "since" in gtk-doc. My guess is the GIR format is missing that, as well. I think it would be useful to track the version at which each symbol was introduced, so that language bindings, for example, can build against multiple versions of a library.

Also, an indication of whether a function has variadic arguments would be useful. I can't find that in the typelib, as far as I've looked.

I'd like to append to this suggestion a field for the default value of a parameter, perhaps stored as a ConstantInfo in the typelib. ConstantInfo seems to only support numeric values now, but it might be good to make the value a GValue, so that we can have e.g. string constants too.
 

Thanks for picking up this project and doing a great job,
Michael





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]