gobject introspection



Hi,

I am wondering what is happening with GObject introspection. It seems that it has been in the works for some time now but that development has stalled.

Here are somethings IMHO need to be considered before introspection is ready for prime-time:

1) What are the overall goals of the project? From what I gather the goals are twofold:
  a) To define a common representation (GIDL) for GObject-based API's. Binding generators can then be ported to use a standard format rather than the current assortment of defs files, GAPI, etc.
  b) To support run-time introspection by accessing a binary blob of metadata.

2) How is the GIDL/metadata generated? The Vala project has some scripts that generate GIDL from header files. This is obviously a difficult task, because things like memory management, in/out parameters, etc cannot be automatically derived from header files. Thus, human annotation is necessary. In some langauges, eg Vala, we can derive everything from the language itself. That solves a lot of headaches.

3) There needs to be a clean way of combining the descriptions extracted from the headers with the annotations, like the "metadata" mechanism in GAPI.

4) How does the GIDL coexist with existing runtime metadata like GEnum and GType?

5) Runtime introspection seems to come pretty close to defining a common runtime between languages. Currently, gobject-introspection seems to be designed only for invoking C functions (using libffi). Maybe that could be abstracted so that each language that provides GTypes could have its own marshaling implementation. Parameters would just be sent as GValues. For invoking methods defined in a dynamically-typed language, type checking would be disabled.

6) Is libffi even necessary? Given that the blob of metadata needs to be generated beforehand, why not also generate a hash table of wrappers that marshal C functions?

7) Would gobject-introspection remain a separate library or be merged into GObject?

That's all the main ones for now. I hope this generates some discussion, because I'd love to see gobject-introspection reach fruition.

Thanks,
Michael


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