= TODO

== Use GIR to bootstrap the GIRepository namespace

Currently, all the classes used to read the GIR are hand-coded. It should
be possible to hand-code only part of it and use that to generate the rest.
This would also integrate that properly with the rest of the GObject type
system.

Update: This has been tried, but the problem is that the GIRepository
namespace is not object-oriented: The Info structs are not GObjects, and
the methods that act upon them are just functions in the GIRepository
namespace. Perhaps some custom method_missing can be implemented to handle
this, though.

== Handle passing of generic pointers

Many GObject methods take a pointer to 'user data'. This means we should be
able to pass any Ruby object. On the other hand, these cases cannot be
distinguished, based on the GIR data, from methods that take a pointer to
any GObject.

I'm currently passing the object id as the value of the 'gpointer'. Special
overrides will have to be used for the cases where the 'gpointer' actually
needs to be a GObject. I consider it an omission in GIRepository that these
two cases are not distinguished.

Update: generic pointers have been declared 'not introspectable', so
handling them can be removed.

== Handle fundamental objects that are not GObject.

This is a big one. See commit 1e9822c7817062a9b853269b9418fd78782090b5 in
gobject-introspection, and TestFundamentalObject in Regress.

== Check binding of GObject:

(11:37:03 PM) walters: the basic story is that GObject should be manually bound
(11:47:02 PM) ebassi: the really necessary bits are: GObject/GInitiallyUnowned memory management; properties accessors; GSignal connection API
(11:47:15 PM) ebassi: the rest is "nice to have"
(11:47:37 PM) ebassi: oh, and probably GBinding - but that's just because I wrote it ;-)

== Compatibility with all implementations.

Currently, there are the following incompatibilities:

* JRuby disables ObjectSpace by default, so using _id2ref for handling the
  passing of generic pointers is not ideal.

== See Also

rake notes
