[Libguestfs] Issues with GObject bindings

Richard W.M. Jones rjones at redhat.com
Tue Dec 18 16:11:30 UTC 2012


Matt, further to the conversation today.

When you run the tests (make -C gobject check) you'll find it now
prints the descriptive message:

  "GObject bind tests skipped: Int64, OInt64 and OStringList are all broken"

That nicely sums up the first two problems.

(1) When I tested passing the full range of int64, it turns out to be
broken.  There are probably two layers of brokenness, ie. Javascript
itself has broken integers as a design failure of the language, but
also I convinced myself at some point that something in GObject
truncates all integers to 32 bits.  BTW also check it works on a 32
bit architecture.

(2) OStringList: IIRC I added this type to the generator but was
unable / didn't have time to add it to the GObject bindings.

(3) Stability of the API: GObject doesn't understand the
once_had_no_optargs feature of the generator, which means that
converting a no-optargs call to an optargs call (which is now
permitted) will break the GObject API.  You may or may not care about
this.

(4) Coverity found a potential bug in header inclusion.  It seems that
GObject headers recursively include themselves.  Both Ondrej and I
tried different approaches to fixing this but were unable to make it
work.

(5) I heavily refactored the code in generator/gobject.ml.  Although I
checked that the output of the generator didn't change, you might also
want to check those commits for sanity.

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
virt-top is 'top' for virtual machines.  Tiny program with many
powerful monitoring features, net stats, disk stats, logging, etc.
http://et.redhat.com/~rjones/virt-top




More information about the Libguestfs mailing list