From c163cf24782b41ec118008be2b40684a69b5c969 Mon Sep 17 00:00:00 2001 From: Colin Walters Date: Fri, 13 Feb 2009 16:25:23 +0000 Subject: Merge branch 'master' of ssh://walters@git.gnome.org/git/gobject-introspection --- diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a161504 --- /dev/null +++ b/.gitignore @@ -0,0 +1,96 @@ +*.la +*.lo +*.o +*.pyc +*.stamp +.deps +.libs +Makefile +Makefile.in +aclocal.m4 +autom4te.cache +compile +config.guess +config.h +config.h.in +config.log +config.status +config.sub +configure +COPYING +depcomp +gtk-doc.make +gobject-introspection-1.0.pc +INSTALL +install-sh +libtool +ltmain.sh +missing +stamp-h1 +ylwrap +py-compile +docs/reference/html +docs/reference/xml +gir/GIRepository-2.0.gir +gir/GIRepository-2.0.typelib +gir/GL-1.0.typelib +gir/GLib-2.0.gir +gir/GLib-2.0.typelib +gir/GModule-2.0.gir +gir/GModule-2.0.typelib +gir/GObject-2.0.gir +gir/GObject-2.0.typelib +gir/Gio-2.0.gir +gir/Gio-2.0.typelib +gir/cairo-1.0.typelib +gir/fontconfig-2.0.typelib +gir/freetype2-2.0.typelib +gir/libxml2-2.0.typelib +gir/xfixes-4.0.typelib +gir/xft-2.0.typelib +gir/xlib-2.0.typelib +giscanner/config.py +giscanner/scannerlexer.c +giscanner/scannerparser.c +giscanner/scannerparser.h +m4/libtool.m4 +m4/ltoptions.m4 +m4/ltsugar.m4 +m4/ltversion.m4 +m4/lt~obsolete.m4 +tests/everything/Everything-1.0.gir +tests/everything/Everything-1.0.tgir +tests/everything/Everything-1.0.typelib +tests/invoke/testfns-metadata.c +tests/invoke/genericmarshaller +tests/invoke/invoke +tests/offsets/gitestoffsets.c +tests/offsets/gitestoffsets +tests/offsets/offsets-1.0.gir +tests/offsets/offsets-1.0.typelib +tests/offsets/offsets.compiled +tests/offsets/offsets.introspected +tests/repository/gitestrepo +tests/repository/gitestthrows +tests/scanner/BarApp-1.0.gir +tests/scanner/BarApp-1.0.tgir +tests/scanner/BarApp-1.0.typelib +tests/scanner/GtkFrob-1.0.gir +tests/scanner/GtkFrob-1.0.tgir +tests/scanner/GtkFrob-1.0.typelib +tests/scanner/annotation-1.0.gir +tests/scanner/annotation-1.0.tgir +tests/scanner/annotation-1.0.typelib +tests/scanner/barapp +tests/scanner/drawable-1.0.gir +tests/scanner/drawable-1.0.tgir +tests/scanner/drawable-1.0.typelib +tests/scanner/foo-1.0.gir +tests/scanner/foo-1.0.tgir +tests/scanner/foo-1.0.typelib +tests/scanner/utility-1.0.gir +tests/scanner/utility-1.0.tgir +tests/scanner/utility-1.0.typelib +tests/extended.gir.test +tools/g-ir-compiler +tools/g-ir-generate diff --git a/ChangeLog b/ChangeLog index d12f5e6..e69de29 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6128 +0,0 @@ -2009-02-10 Rober Carr - - Bug 569633 – Typelib compiler fails with vararg callbacks - - * girepository/girparser.c: Also filter out callback functions - which take vararg arguments. - -2009-02-10 Xan Lopez - - Bug 570903 - Add information about -I flag to scanner manpage - - * docs/g-ir-scanner.1: Add info about -I flag. - -2009-02-06 Owen Taylor - - * gir/xlib-2.0.gir: Add KeySym and KeyCode to the dummy - xlib-2.0.gir. - -2009-02-04 Johan Dahlin - - * girepository/Makefile.am: - * girepository/girffi.c (g_callable_info_get_ffi_arg_types), - (g_callable_info_get_ffi_return_type), - (g_callable_info_prepare_closure), (g_callable_info_free_closure): - * girepository/girffi.h: - Add utility functions for invocing closures given a GICallableInfo - using libffi. - -2009-02-03 Andreas Rottmann - - * tests/scanner/utility.h (UtilityTaggedValue): Make the union - member anonymous. - (UtilityByte): New union typedef with an unnamed struct in it. - - * giscanner/transformer.py (Transformer._create_struct): Create - unnamed structs for symbols with a None ident. - (Transformer._create_union): Likewise. - - * giscanner/girwriter.py (GIRWriter._write_record): Allow name - being None. - (GIRWriter._write_union): Likewise. - - * girepository/girparser.c (start_struct): Allow a NULL name for - non-toplevel structs. - (start_union): Likewise. - - * tests/scanner/utility.h (UtilityTaggedValue): New struct - typedef, which has a nested union member. - * tests/scanner/utility-expected.gir: Adapted. - - * giscanner/transformer.py (Transformer._create_member): Create - struct/union members if appropriate. - (Transformer._create_struct, Transformer._create_union): Allow for - structs/unions without a C type. - - * giscanner/glibtransformer.py (GLibTransformer._resolve_field): - We don't need to resolve non-typef'd - (GLibTransformer._resolve_field): Add cases for non-typedef'd - struct/union "fields". - - * giscanner/girwriter.py (GIRWriter._write_record): Allow for - records without a C type. - (GIRWriter._write_field): structs and unions may appear in places - where fields do. - -2009-02-03 Andreas Rottmann - - * girepository/girparser.c (ParseContext): Removed member - current_node, added node_stack instead. - (CURRENT_NODE): New macro, returns the current node (top of - node_stack). - (pop_node, push_node): New functions; pop or push a node from - node_stack. - Rest of the file adapted to these changes, which are necessary - for supporting nested structs/and unions. - -2009-02-02 Dan Winship - - * girepository/ginfo.c (g_registered_type_info_get_g_type): handle - the special case for GObject, whose glib:get-type is listed as - "intern". - -2009-02-02 Andreas Rottmann - - Bug 569408 – Scanner doesn't handle arbitrary typedefs correctly - - * giscanner/glibtransformer.py (GLibTransformer._create_gobject): - Treat GInitiallyUnowned specially. - - Bug 568680 – Scanner misses fields (at least in GObject.Object) - - * girepository/giroffsets.c (compute_struct_field_offsets): Fix - handling of callbacks (a callback member clobbered the size - computed so far). - - * giscanner/transformer.py (Transformer._create_compound): Use - the (empty) compound created by a typedef if present; this means - that fields will no longer get lost. - - * giscanner/transformer.py (Transformer._create_compound): New - method, contains logic common to _create_union and _create_struct. - (Transformer._create_struct, Transformer._create_union): Rewritten - in terms of _create_compound. - - * gir/GObject-2.0.xpath: Some new assertations of the presence - GObject fields. - * tests/offsets/Makefile.am, tests/offsets/offsets.h: Added test - for object field offsets. - - 2009-02-02 Andreas Rottmann - - Bug 563469 – Arrays not treated correctly in struct offset calculation - - * tests/offsets/offsets.h (OffsetsArray): New struct, containing a - bunch of arrays. - - * tests/offsets/gen-gitestoffsets (FIELD_RE): Handle arrays. - - * girepository/giroffsets.c (get_interface_size_alignment): - Refactored to make it more general, now takes a GIrNodeType* - instead of a GIrNodeField*, plus an additional 'who' parameter - that denotes what the size/alignment is calculated for. - (get_type_size_alignment): New function, refactored version of - get_field_size_alignment(). - (get_field_size_alignment): Implemented in terms of - get_type_size_alignment(). - (get_type_size_alignment): Handle array types correctly. - - 2009-01-28 Johan Bilien - - * tests/scanner/annotation-1.0-expected.gir: add missing - with_voidp - -2009-01-27 Johan Dahlin - - * gir/cairo-1.0.gir: - * gir/fontconfig-2.0.gir: - * gir/freetype2-2.0.gir: - * gir/libxml2-2.0.gir: - * gir/xfixes-4.0.gir: - * gir/xft-2.0.gir: - * gir/xlib-2.0.gir: - Remove shared-library tags for these too. - -2009-01-27 Johan Dahlin - - * gir/GL-1.0.gir: - Remove shared-library which removes the build - time dependency on mesa. - -2009-01-27 Dan Winship - - Misc warning fixes - - * giscanner/scannerparser.y: Fix the "Ignoring non-UTF-8 constant - string" error to print the right value. - - * tests/scanner/annotation.c (backslash_parsing_tester) - (backslash_parsing_tester_2): make these non-static to avoid a - warning. - (annotation_object_string_out) - (annotation_string_zero_terminated): fix return values - - * tests/scanner/annotation.h (annotation_object_with_voidp): - prototype this - - * tests/scanner/gtkfrob.c: - * tests/scanner/gtkfrob.h (gtk_frob_language_manager_get_default): - fix prototype. (s/()/(void)/). - - * tools/compiler.c (format_output): fix signed/unsigned warning. - Output a prototype for register_typelib() to avoid warnings later. - -2009-01-26 Johan Dahlin - - * tests/everything/everything.c (test_callback): - * tests/everything/everything.h: - Add a couple of callback tests. - -2009-01-26 Johan Dahlin - - * girepository/ginfo.c (g_base_info_unref): - Only unref the repository if it's actually set. - -2009-01-23 Johan Dahlin - - * tests/everything/everything.c (test_enum_param): - * tests/everything/everything.h: - - Add an enum param test function - -2009-01-21 Johan Dahlin - - * configure.ac: - Post-release version bump - -=== 0.6.2 === -2009-01-21 Johan Dahlin - - * NEWS: Update - -2009-01-21 Johan Dahlin - - Bug 562622 – Errordomains missing - - * giscanner/girwriter.py: - * giscanner/glibast.py: - * giscanner/glibtransformer.py: - * tests/scanner/Makefile.am: - * tests/scanner/foo-1.0-expected.gir: - * tests/scanner/foo-1.0-expected.tgir: - * tests/scanner/foo.c (foo_error_get_type), (foo_error_quark): - * tests/scanner/foo.h: - -2009-01-20 Johan Dahlin - - * giscanner/scannerlexer.l: - Increase the buffer size to 1M, so - gtkalias.h can be parsed. - -2009-01-20 Johan Dahlin - - * giscanner/glibtransformer.py: - When trying to map functions to structs, do - not require a public structure to exist, should - fix Gst gir generation in. - -2009-01-20 Johan Dahlin - - Bug 562615 – Struct methods missing - - * giscanner/annotationparser.py: - * giscanner/ast.py: - * giscanner/girwriter.py: - * giscanner/glibast.py: - * giscanner/glibtransformer.py: - * tests/scanner/foo-1.0-expected.gir: - * tests/scanner/foo-1.0-expected.tgir: - -2009-01-16 Dan Winship - - * gir/GL-1.0.gir: add back GLvoid, which got lost during the - gir-repository -> gobject-introspection migration - -2009-01-15 Johan Dahlin - - * gir/freetype2-2.0.gir: add FT_Int32 - * gir/xft-2.0.gir: add XftFont - * girepository/gdump.c (g_irepository_dump): - Report errors when an invalid type is encountered - * giscanner/glibtransformer.py: - Make the error message a bit nicer. - - Part of preparating for gir generating inside pango. - -2009-01-15 Johan Dahlin - - * gir/GL-1.0.gir: - * gir/Makefile.am: - * gir/cairo-1.0.gir: - * gir/fontconfig-2.0.gir: - * gir/freetype2-2.0.gir: - * gir/libxml2-2.0.gir: - * gir/xfixes-4.0.gir: - * gir/xft-2.0.gir: - * gir/xlib-2.0.gir: - - Move over the hand-written girs from gir-repository - so upstream libraries depending on these can avoid - a gir-repository dependency. - -2009-01-15 Johan Dahlin - - Bug 567813 – Everything should be versioned - - * gir/Makefile.am: - * girepository/Makefile.am: - * girepository/girepository.c (init_globals): - * girepository/girparser.c (locate_gir): - * giscanner/dumper.py: - * giscanner/transformer.py: - * gobject-introspection-1.0.pc.in: - * tests/everything/Makefile.am: - * tests/invoke/Makefile.am: - * tests/offsets/Makefile.am: - * tests/repository/Makefile.am: - * tests/scanner/Makefile.am: - * tools/Makefile.am: - -2009-01-13 Johan Dahlin - - Bug 555036 – put gtk-doc in GIR - - * giscanner/annotationparser.py: - * giscanner/ast.py: - * giscanner/girwriter.py: - * giscanner/glibast.py: - * tests/scanner/annotation-1.0-expected.gir: - * tests/scanner/annotation.h: - * tests/scanner/foo-1.0-expected.gir: - -2009-01-13 Johan Dahlin - - * giscanner/cachestore.py (CacheStore.load): Catch AttributeError - which seems to be occasionally raised for Record. - - * giscanner/annotationparser.py: - Fix a bug where \n was not present in a comment - -2009-01-12 Johan Dahlin - - Bug 562467 – Property annotation - - * giscanner/annotationparser.py: - * tests/scanner/annotation-1.0-expected.gir: - * tests/scanner/annotation-1.0-expected.tgir: - * tests/scanner/annotation.c (annotation_object_set_property), - (annotation_object_get_property), (annotation_object_class_init): - - Annotations are parsed for properties. - -2009-01-12 Johan Dahlin - - Bug 546739 – Introspection should know precise signal parameter types - - * giscanner/annotationparser.py: - * tests/scanner/annotation-1.0-expected.gir: - * tests/scanner/annotation-1.0-expected.tgir: - * tests/scanner/annotation.c (annotation_object_class_init): - - Annotations are parsed for signals, the (type) annotation is introduced. - -2009-01-12 Johan Dahlin - - Bug 563591 – Flags not recognized when there is no introspection data - - * giscanner/ast.py: - * giscanner/girwriter.py: - * giscanner/giscannermodule.c (type_get_is_bitfield): - * giscanner/glibast.py: - * giscanner/glibtransformer.py: - * giscanner/scannerparser.y: - * giscanner/sourcescanner.c (gi_source_type_copy): - * giscanner/sourcescanner.h: - * giscanner/sourcescanner.py: - * giscanner/transformer.py: - * tests/scanner/foo-1.0-expected.gir: - * tests/scanner/foo-1.0-expected.tgir: - * tests/scanner/foo.h: - - Large parts of this patch was done by Jürg Billeter. - -2009-01-12 Havoc Pennington - - Bug 563386 – scanner ignores "const" on boxed return values - - * tests/everything/everything.c (test_simple_boxed_a_const_return): - * tests/everything/everything.h: - - This adds just the tests specified in the bug above, the fix itself - was included in Bug 563794 - -2009-01-03 Andreas Rottmann - - Bug 566404 – Annotations for GLib - - * gir/glib-2.0.c: Added allow-none annotations for g_thread_init() - and g_main_loop_new(). - -2009-01-12 Johan Dahlin - - Bug 566419 – Element type of arrays not properly handled in all cases - - * giscanner/annotationparser.py: - * tests/scanner/annotation-1.0-expected.gir: - * tests/scanner/annotation-1.0-expected.tgir: - * tests/scanner/annotation.c (annotation_object_set_data), - (annotation_object_set_data2), (annotation_object_set_data3): - * tests/scanner/annotation.h: - - Based on patch by Andreas Rottmann - -2009-01-12 Johan Dahlin - - Bug 566560 – giscanner.transformer.SkipError - - * giscanner/transformer.py: - - Catch SkipError for all nodes, not just functions. - Makes it possible to skip unsupported parameter types in - callbacks. - -2009-01-12 Johan Dahlin - - Bug 563794 - Redo annotation parsing & applying - - Thanks to Colin for helping out considerably in landing this. - - * giscanner/Makefile.am: - * giscanner/ast.py: - * giscanner/dumper.py: - * giscanner/girparser.py: - * giscanner/giscannermodule.c (pygi_source_scanner_get_comments), - (calc_attrs_length), (pygi_collect_attributes), (init_giscanner): - * giscanner/glibtransformer.py: - * giscanner/scannerlexer.l: - * giscanner/sourcescanner.c (gi_source_symbol_unref), - (gi_source_scanner_new), (gi_source_scanner_free), - (gi_source_scanner_get_comments): - * giscanner/sourcescanner.h: - * giscanner/sourcescanner.py: - * giscanner/transformer.py: - * giscanner/xmlwriter.py: - * tests/scanner/annotation-1.0-expected.gir: - * tests/scanner/annotation-1.0-expected.tgir: - * tests/scanner/annotation.c: - * tests/scanner/annotation.h: - * tests/scanner/foo-1.0-expected.gir: - * tests/scanner/foo-1.0-expected.tgir: - * tests/scanner/foo.h: - * tools/g-ir-scanner: - - This commit merges the annotation parser rewrite branch. - It'll change the annotation parsing to be done completely in python - code which will make it easier to do further annotation parsing - easier. - -2009-01-03 Andreas Rottmann - - Bug 563469 – Arrays not treated correctly in struct offset calculation - - * tests/scanner/foo.h (FooObject): Added field `some_int'. - * tests/scanner/foo-1.0-expected.gir, - * tests/scanner/foo-1.0-expected.tgir: Adapted. - - * giscanner/glibtransformer.py (GLibTransformer._create_gobject): - carry over object fields from original (struct) node. - (GLibTransformer._pair_class_struct): Don't add fields of the - class struct to to the node for the class, they should go under a - nested element (see also Bug 551738). This is needed as - otherwise offset calculation would not work, as the instance - fields are mingled with the class fields without a way to - distinguish them. - -2009-01-03 Johan Dahlin - - * misc/pep8.py: - Disable blank line check, it works differently under - Python 2.5 from 2.6 and was rather annoying from the start. - -2008-01-03 Andreas Rottmann - - Bug 556489 – callback annotations - - * giscanner/transformer.py - - * tools/generate.c (write_callable_info): Write out the new scope, - closure and destroy attributes. - - * giscanner/transformer.py (Transformer._type_is_callback): New - method, checking if a given type is a callback. - (Transformer._augment_callback_params): New method; adds - information (closure, destroy) to callback parameters. - (Transformer._handle_closure, Transformer._handle_destroy): New methods, - auxiliary to _augment_callback_params. - (Transformer._create_function): Call _augment_callback_params(). - (Transformer._create_parameter): Handle scope option. - - (Transformer._create_typedef_callback): New method, creates a - callback, and registers it in the typedef namespace - (Transformer._create_typedef): Use _create_typedef_callback() - instead of the plain _create_callback(). - - * giscanner/ast.py (Parameter): Added callback-related fields. - * giscanner/girwriter.py: Write out new Parameter fields. - - * girepository/girnode.h (GIrNodeParam): Added fields scope, - closure and destroy. - * girepository/gtypelib.h (ArgBlob): Ditto. - * girepository/girparser.c (start_parameter): Handle new fields. - - * girepository/girmodule.c (g_ir_module_build_typelib): Adjust - arg_blob_size, bump major version due to this change. - * girepository/girnode.c (g_ir_node_get_full_size_internal) - (g_ir_node_build_typelib) - * girepository/gtypelib.c (g_typelib_check_sanity): ArgBlob size - adjustments. - (g_ir_node_build_typelib): Fill in new ArgBlob flags from param. - - * girepository/girepository.h (GIScope): New enumeration, listing - the different possible scopes for callbacks. - - * girepository/ginfo.c (g_arg_info_get_scope) - (g_arg_info_get_closure, g_arg_info_get_destroy): Accessors for - callback-related argument indices (callback scope, closure for a - callback, destroy notification for a callback). - - * tests/scanner/: Added testcases for new features. - -2009-01-03 Jürg Billeter - - * giscanner/ast.py: - * giscanner/dumper.py: - * giscanner/girparser.py: - * giscanner/glibtransformer.py: - * giscanner/sourcescanner.py: - * giscanner/transformer.py: - * giscanner/xmlwriter.py: - - Fix inconsistencies with PEP8 - -2008-12-21 Johan Dahlin - - * gir/gio-2.0.c: - Annotate transfer, direction and allow none for - g_file_load_contents, g_file_load_contents_finish and - g_file_load_partial_contents_finish parameters. - -2008-12-12 Owen Taylor - - Disable array auto-detection for out-annotated parameters (#563934) - - If we have a parameter annotated as (out), then having a ctype of - 'char **' (or similar) doesn't necessarily indicate an array. - - * giscanner/transformer.py: Skip array-detection logic for - (out)-annotated parameters. - * tests/scanner/annotation.h tests/scanner/annotation.c - tests/scanner/annotation-1.0-expected.gir - tests/scanner/annotation-1.0-expected.tgir: Add a test for - an (out) string parameter. - -2008-12-12 Johan Dahlin - - * giscanner/dumper.py (DumpCompiler._link): Pass in - --tag=CC to libtool to avoid making libtool confused - when CC is different from gcc on some systems. - -2008-12-10 Johan Bilien - - Bug 563998 – Cache the GIBaseInfo for GTypes - - * girepository/girepository.c (g_irepository_find_by_gtype): - add a cache of GType -> GIBaseInfo. - -2008-12-09 Johan Bilien - - Bug 562545 – Add function taking / returning GValue - - * tests/everything/everything.[ch]: add a test of function taking and - returning "const GValue *" - -2008-12-09 Johan Dahlin - - * giscanner/cachestore.py (CacheStore.store): Use - shutil.move instead of os.rename, since it will - automatically fall back to copying+remove if the - src directory is on a different partition from - the dst directory. - -2008-12-08 Tristan Van Berkom - - Bug 563742 – introspection should record the introduced version of - symbols marked with the "Since:" tag - - reviewed by: Johan - - * giscanner/ast.py: - * giscanner/girwriter.py: - * giscanner/scannerlexer.l: - * giscanner/transformer.py: - * tests/scanner/annotation-1.0-expected.gir: - * tests/scanner/annotation-1.0-expected.tgir: - * tests/scanner/annotation.c (annotation_versioned): - * tests/scanner/annotation.h: - -2008-12-08 Johan Dahlin - - * giscanner/cachestore.py (_get_cachedir): Don't require - HOME to be set and if it set, don't require the - directory to exist. - -2008-12-08 Johan Dahlin - - * giscanner/cachestore.py (CacheStore.store): Dump the cache - file to a temporary file and rename it the expected filename - only when it's completely written. - This should make the cache more roboust when run in parallel, - and hopefully avoid triggering bugs in Python. - -2008-12-03 Christophe Fergeau - - Bug 562971 – g-ir-scanner failure on libgpod headers - - * giscanner/scannerlexer.l: raise YY_BUF_SIZE to 65536 up from the - default 16384. Without it, the lexer was aborting with a cryptic - error message on source files containing really long comment - blocks. - -2008-12-01 Colin Walters - - * girepository/gfield.c: Fix memory leak; unref type info we - created, not field info - -2008-11-30 Johan Dahlin - - Bug 562289 – Race when removing invalid cache - - * giscanner/cachestore.py: - ENOENT is mapped to a OSError, not IOError. - -2008-11-27 Johan Dahlin - - * gir/glib-2.0.c: Add return value transfer annotation - for g_markup_escape_text. - -2008-11-25 Colin Walters - - * tools/g-ir-scanner: Add --libtool option which we expect Automake-using - people to pass. - * giscanner/dumper.py: Implement it. - * gir/Makefile.am, tests/**/Makefile.am: Use it. - -2008-11-25 Colin Walters - - * tests/scanner/Makefile.am: Remove hand-rolled generation of .tgir; easier - to just use a Makefile rule and dependencies. This corresponds with a change - made to gir-repository to fix srcdir != builddir issues. - -2008-11-25 Johan Dahlin - - * configure.ac: - Post release version bump - -=== 0.6.1 === -2008-11-25 Johan Dahlin - - * NEWS: - Release 0.6.1 - -2008-11-25 Colin Walters - - Bug 559705 – Missing association between static methods and classes - - * docs/typelib-format.txt: - * girepository/ginfo.c (g_function_info_get_flags): - * girepository/girmodule.c (g_ir_module_build_typelib): - * girepository/girnode.c (g_ir_node_get_size), - (g_ir_node_build_typelib): - * girepository/girparser.c (start_function): - * girepository/gtypelib.c (g_typelib_check_sanity), - (validate_header), (validate_function_blob): - * girepository/gtypelib.h: - * giscanner/ast.py: - * giscanner/girwriter.py: - * giscanner/glibtransformer.py: - * tests/scanner/foo-1.0-expected.gir: - * tests/scanner/foo-1.0-expected.tgir: - * tests/scanner/foo.h: - -2008-11-25 Johan Dahlin - - * giscanner/ast.py: Define socklen_t as an alias for int32. - -2008-11-24 Johan Dahlin - - * girepository/gdump.c (dump_type): Remove a warning, - be less verbose on error on fundamental types. - -2008-11-23 Johan Dahlin - - * giscanner/dumper.py: Add license headers, - refactor into a class, avoid some duplication and do some - extra pedantic checks. - -2008-11-23 Johan Dahlin - - Make it compilable with -Werror on my system by adding - a couple of prototypes and including headers. - -2008-11-23 Johan Dahlin - - Bug 562022 – gobject-introspection needs python headers - - * configure.ac: fail without python headers present. - Patch by: Tom Parker - -2008-11-21 Johan Dahlin - - Bug 561617 – Return value array annotations - - * giscanner/transformer.py: - * tests/scanner/annotation.c (annotation_return_array): - * tests/scanner/annotation.h: - Add support for (array) for return value annotations as well. - -2008-11-20 Johan Bilien - - * tests/everything/everything.[ch]: add a test function which calls a - closure. - -2008-11-19 Johan Dahlin - - * giscanner/cachestore.py: - Catch ValueError exceptions. - -2008-11-18 Tommi Komulainen - - * tests/scanner/Makefile.am (barapp_SOURCES): fix builddir != srcdir - -2008-11-18 Andreas Rottmann - - * girepository/girnode.c (g_ir_node_build_typelib): Use sizeof() - instead of hard-coding struct sizes. - -2008-11-18 Owen Taylor - - Bug 561296 - Add "storage type" to the typelib data for enums - - In order to set and get enum and flag fields in structures, we need - to know the integral type that the enumeration is stored as. We are already - computing that at compile time in order to compute struct offsets, so the - easiest thing to do is to save that in the typelib. - - * docs/typelib-format.txt girepository/girnode.[ch] girepository/giroffsets.c - girepository/gtypelib.h: Add 'storage_type' to the typelib format for EnumBlob - and compute and save it at compile time. - - * girepository/girepository.h girepository/ginfo.c: - Add g_enum_info_get_storage_type(). - - * girepository/gfield.c: Implement reading and writing enum and flags fields - based on the storage type. - -2008-11-18 Owen Taylor - - Add enums to the Everything test module - - * tests/everything/everything.[ch]: Add TestEnum and TestFlags to the Everything - test module and register them as GTypes. - - https://bugzilla.gnome.org/show_bug.cgi?id=561296 - -2008-11-18 Johan Dahlin - - * giscanner/cachestore.py: - Catch BadPickleGet exceptions as well. - -2008-11-17 Owen Taylor - - * tests/everything/everything.c: Fix doc comment annotations - for test_struct_b_clone() to refer to the right function. - -2008-11-17 Dan Winship - - * giscanner/glibtransformer.py (GLibTransformer.__init__): fix - spelling of GHashTable. #561135 - - * tests/scanner/annotation.c (annotation_object_get_hash): - * tests/scanner/annotation-1.0-expected.gir: - * tests/scanner/annotation-1.0-expected.tgir: add a test of - GHashTable annotations - -2008-11-17 Andreas Rottmann - - * giscanner/ast.py: Change string array match type to be in terms - of canonicalized type. - * giscanner/transformer.py: Add canonicalize_ctype which gives us - a version of a c:type without aliases, so we can deep canonicalize - char** to utf8*. Update parse_ctype to use it. - * tests/*: Add gtk_init like int*/char*** arg functions for testing. - -2008-11-16 Colin Walters - - * girepository/girepository.c: Ensure we always call init_globals, - even if passed a non-default repository. - -2008-11-16 Colin Walters - - Bug 559706 - Interface prerequisites - - * common.mk: Dep on libgirepository.la for scanner libs so that - we rebuild things even if just gdump.c changes. - * girepository/gdump.c: Dump prerequisites. - * giscanner/ast.py: Add prerequisite list. - * giscanner/girparser.py: Parse them from gdump. - * giscanner/girwriter.py: Write them. - * giscanner/glibtransformer.py: Resolve them. - * tests/*: Test. - -2008-11-16 Owen Taylor - - Bug 561087 - Respect is_pointer in serialize_type() - - Add a '*' to the serialization for the cases where we set is_pointer - in the type blob we write out depending on node->is_pointer. Don't - add the '*' in the cases where is_pointer is set or not set in a - fixed fashion. - - http://bugzilla.gnome.org/show_bug.cgi?id=561087 - -2008-11-16 Owen Taylor - - Bug 560825 – Add size and alignment to typelib - - Include the size and alignment of structures and unions in the typelib, - and add getter methods to retrieve them from GIStructInfo/GIUnionInfo. - - * docs/typelib-format.txt girepository/gtypelib.h girepository/girnode.c - girepository/girmodule.c girepository/gtypelib.c: Add size and alignment - to StructBlob and UnionBlob. - - * girepository/ginfo.c girepository/girepository.h: - Add g_[struct|union]_get[size|alignment](). - - * test/offsets/gen-gitestoffsets: Test overall structure size and alignment. - -2008-11-16 Owen Taylor - - Bug 552371 – implement struct field get/set - - * girepository/gfield.c girepository/girepository.h: Add - convenience functions g_field_info_set_field() and - g_field_info_get_field() to set and get fields based on the - offsets in GIFieldInfo. - -2008-11-16 Andreas Rottmann - - Bug 560241 - Out-arguments should not be marked as being pointers - in all cases - - * girepository/girparser.c: Improved logic for out arguments. - -2008-11-16 Andreas Rottmann - - Bug 559601 - Pointers in structs/unions unduly treated as arrays - - * giscanner/transformer.py: Differentiate type creation logic - between parameters and struct components. - -2008-11-15 Colin Walters - - * giscanner/dumper.py: Check return code from pkg-config - invocations. - -2008-11-14 Johan Dahlin - - * tests/everything/everything.c (test_array_int_in), - (test_array_gtype_in): - * tests/everything/everything.h: - Rename the int/gtype array tests. Make the return value - useful, an aggregation of the array input values. - -2008-11-14 Johan Dahlin - - * tests/everything/Makefile.am: - * tests/everything/everything.c: - * tests/everything/everything.h: - * tests/everything/gitesttypes.c: - * tests/everything/gitesttypes.h: - Rename gitesttypes.[ch] to everything.[ch] - -2008-11-13 Andreas Rottmann - - Bug 560708 – Don't treat arrays that have a length specified as - zero-terminated by default - - * giscanner/transformer.py: Default to non zero terminated for - arrays with length. - * tests/*: Update, add test for zero vs not. - -2008-11-13 Andreas Rottmann - - Bug 557788 - Return types for constructors in generated typelib bogus - - * girepository/girnode.c: Namespace-qualify XREFs; not doing so is - obviously broken in the face of duplicate names in different - namespaces. - * tests/scanner/*expected.gir: Fix up. - -2008-11-13 Owen Taylor - - * girepository/girffi.c: Fix "Unexpected time for time_t" - message. - -2008-11-13 Colin Walters - - Bug 558436 - avoid having scanner load app code - - * giscanner/cgobject.py: Delete; we no longer load shared - libraries directly. - * giscanner/dumper.py: Support for linking a library to - a stub binary for introspection. - * giscanner/glibtransformer.py: Rewrite to use gdump XML - from invocation of child binary. - * giscanner/transformer.py: Fix up to use fully qualified - name in parse tree. Make parse_ctype public so we can use - it inside glibtransformer. - * tests/scanner/barapp.c: New test, using --program arg - for g-ir-scanner. - * tests/*: Update to use common.mk for invoking scanner. - * tools/g-ir-scanner: Add options --program, --program-arg, - and --no-libtool. - * docs/g-ir-scanner.1: Update. - -2008-11-13 Colin Walters - - * configure.ac: Depend on Gio, we use it in gdump.c. - * girepository/gdump.c: Code to dump GType data to XML. - * girepository/girepository.c: Add option group for dumping. - * girepository/girepository.h: Define API for the above. - -2008-11-13 Colin Walters - - * common.mk: Add a file to include with Makefile fragments - useful for scanner invocation. - -2008-11-13 Tommi Komulainen - - * tests/everything/gitesttypes.c (test_filename_return): Return - strings in filename encoding. - -2008-11-13 Owen Taylor - - Bug 560253 – Add structure and boxed types to Everything test module - - * tests/everything/gitesttypes.[ch]: Add examples of: - - Plain old data structs - Plain old data structs with nested fields - Plain old data boxed - Plain old data boxed with nested fields - More complicated boxed types with internal state - -2008-11-12 Johan Dahlin - - * tests/everything/gitesttypes.c (test_gtype_in): - * tests/everything/gitesttypes.h: - Add a test of GType arrays, a la gtk_list_store_set_columns. - -2008-11-12 Owen Taylor - - Bug 560419 – Cache includes when parsing - - Keep track of all modules parsed within a GIrParser, and when a - module is referenced a second time, use the existing parsed copy - instead of reparsing. - -2008-11-12 Owen Taylor - - Fix management of ParseContext.includes_modules (#560419) - - * girepository/girparser.c: Fix some trivial bugs in managing the - list of include modules. (Add to module's list twice, not - initialized to NULL, not freed.) - -2008-11-12 Owen Taylor - - Keep aliases and disguised_structures local to each module (#560419) - - * girepository/girmodule.[ch]: When parsing, keep keep a separate - hash tables of aliases and 'disguised' flags for each module, and - store that on the module. - - After parsing an include merge the aliases/disguised flags to the - including module. - - * girepository/girparser.c: Remove 'prefix_aliases' flag and - always prefix aliases/disguised structure types when parsing; this - simplifies the code considerably. - -2008-11-12 Owen Taylor - - Fix mismatches between .gir name and 'name' attribute (#560419) - - * tests/boxed.gir tests/constant.gir tests/enum.gir tests/invoke/invoke.c - tests/invoke/testfns-1.0.gir tests/object.gir tests/struct.gir: Fix places - where the 'name' element of didn't match the filename of the - gir, an assumption that the compiler has always expected and now enforces. - -2008-11-12 Owen Taylor - - Only allow one element per (#560419) - - * girepository/girparser.c: The logic in girparser.c didn't work - very well if there were multiple nodes within a - single (context->namespace was always the overall - filename and not the the name specified in the - element for one thing; this would cause aliases to be mis-prefixed - in include modules.) Also check that the "name" in the - node matches the filename. - -2008-11-12 Owen Taylor - - Add a GirParser object to hold the state of a compilation - - * girepository/girparser.[ch] tools/compiler.c: Add a toplevel - GirParser object to hold state that is global across a - compilation. Currently just holds the include path, but will - eventually also keep a cached list of parsed modules. - -2008-11-12 Tommi Komulainen - - * girepository/girepository.c (find_namespace_latest): Fix - minor memory leak. - -2008-11-12 Tommi Komulainen - - * configure.ac: use 'introspection' component for bugs - -2008-11-12 Johan Dahlin - - * tests/everything/gitesttypes.c (test_filename_return): - * tests/everything/gitesttypes.h: - Add a filename return test. - -2008-11-12 Tommi Komulainen - - * tests/offsets/Makefile.am (gitestoffsets.c): fix - gen-gitestoffsets invocation with builddir != srcdir - -2008-11-12 Johan Dahlin - - * girepository/girepository.c: - Change the element type from utf8 to filename - * girepository/girnode.c (g_ir_node_build_typelib): - Special case filename equally to utf8 here. - -2008-11-12 Johan Dahlin - - * gir/Makefile.am: - Remove unused variables, add a dependency of girepository.ch, so when - they change we rebuild the gir automatically. - -2008-11-12 Johan Dahlin - - * girepository/girepository.c (g_irepository_get_search_path): - * girepository/girepository.h: - Add a g_irepository_get_search_path, so we can access the search - paths from runtime. - -2008-11-12 Johan Bilien - - Bug 560474 – g-ir-compiler crashes when compiling the glib gir - - * girepository/girparser.c: avoid freeing an uninitialized pointer - -2008-11-12 Johan Dahlin - - * gir/Makefile.am: - * giscanner/glibtransformer.py: - * tools/g-ir-scanner: - Add a GIRepository-2.0.gir. Change the libtool lookup slightly - so we can just pass in --library=foo/bar/baz.la and the scanner - does the right thing. - Don't warn for _get_type() functions if they don't take any - parameters - -2008-11-11 Owen Taylor - - Bug 560404 – Prefix types when resolving aliases in included modules - - * girepository/girparser.c: When resolving aliases in an included - module, prefix types before looking them up. - -2008-11-11 Owen Taylor - - Compute field offsets and overall size for object structures - - Bug 560326 – Fails to build Gtk-2.0.typelib with "Unexpected non-pointer - field of type object in structure" - - Do basic computation of field offsets for objects and interfaces; - this doesn't attempt to address all of the "mess" for virtual - functions described in Bug 560281. - -2008-11-11 Tommi Komulainen - - Bug 560308 – g-ir-compiler goes in infinite loop on Gdk-2.0.gir - - Based on patch by Johan Bilien. - - * giscanner/transformer.py (_create_member, _create_parameter): - Resolve types here as well. - (_resolve_type_name_1): Try resolving using 'ctype' first since - it's least ambiguous. Fixes struct member type resolution with - similarly named types, e.g. Gdk.PangoRendererClass and - Pango.RendererClass - * tests/scanner/foo*: Add test. - -2008-11-11 Owen Taylor - - * girepository/girparser.c: Search provided include dirs before - the default directories. - -2008-11-11 Owen Taylor - - * girepository/giroffsets.c: Include fully-qualified names in - all error messages. - -2008-11-11 Owen Taylor - - * girepository/giroffsets.c: Fail gracefully with an informative - error message when recursion is encountered when computing a - structure size. - -2008-11-11 Owen Taylor - - * girepository/girparser.c: Remove an unused variable. - -2008-11-10 Owen Taylor - - Add tests for field offset computations - - * tests/offsets/offsets.h: Header file with structure definitions to test - - * tests/offsets/gen-gitestoffsets: Generate a C program that computes - field offsets for the structures in offsets.h two ways: using - the information from a generated typelib, and as computed by the - compiler. - - We diff these two versions to test that everything is OK. - -2008-11-10 Owen Taylor - - Remove field offsets from g-ir-generate output and test inputs - - Field offsets are a) architecture dependent so they shouldn't be part - of the architecture-independent gir format which is installed in - datadir. b) Are architecture-dependent so they shouldn't be in test - expected output. - - * girepository/girparser.c: Don't parse offset for fields - * tools/generate.c: Don't parse offset for fields - * tests/*.gir test/scanner/*.tgir: Remove offsets - - (Virtual function and discriminator offsets are not removed, as they - aren't fully hooked up to the field-offset computation machinery yet.) - -2008-11-10 Owen Taylor - - Bug 560252 - Compute field offsets before writing typelib - - * girepository/girnode.h: Store the total size and alignment for - GIrNodeStruct/Boxed/Union. - - * girepository/giroffset.c: New file implementing computation of - structure field offsets. - - * girepository/girnode.c: Compute structure field offsets before - writing types into the typelib. - - * docs/typelib-format.txt: Document that a field offset of 0xFFFF - means "unknown". Also fix description of the discriminator_offset - field for unions. - -2008-11-10 Owen Taylor - - Bug 560250 - Fully parse included modules - - For some things, like computing structure offsets to put into the typelib - we need more than just the aliases from included modules. Do a completel - parse of included modules and store in module->included_modules. - - Also add g_ir_find_node() to find node information from within the - active set of modules and their includes. - -2008-11-10 Owen Taylor - - Split g_ir_ffi_get_ffi_type() out from ginvoke.c - - Extract a function to convert GITypeTag to ffi_type from the internals - of ginvoke.c. This will be useful in figure out structure alignment. - - Also fix handling of gsize and time_t to be portable. (Add a check - to configure.ac to figure out the width of time_t.) - -2008-11-10 Owen Taylor - - Bug 560248 – "disguised structures" - - Certain types like GIConv and GdkAtom are pointers internally but don't - look like pointers when referenced. They have the form. - - typedef struct _X *X; - - Parse these as structures/records but mark them in the gir with a 'disguised' - attribute so that we know that they need special handling. - - In the typelib treat them like any other structure. - -2008-11-09 Jürg Billeter - - * giscanner/ast.py: - * giscanner/girwriter.py: - - Write throws attribute for virtual functions, fixes bug 559703 - -2008-11-07 Johan Dahlin - - * giscanner/libtoolimporter.py (LibtoolImporter.find_module): Clear - up some confusion about the second argument to find_module, it's - actually the packages __path__ attribute which we can safely ignore - for our purposes. - (LibtoolImporter.load_module): Set module.__loader__ as per PEP 302. - -2008-11-07 Owen Taylor - - Bug 559737 – Deal with continuations in macros - - * giscanner/giscannerlexer.l: Treat continuation lines the same - as regular newlines. This makes the scanner not complain about - #define foo(x) \ inside a C file. There's no attempt - however to handle parsing macro definitions split across lines. - -2008-11-07 Johan Dahlin - - * giscanner/cachestore.py: - Handle broken cache entries, write only filesystems and - running out of diskspace. - -2008-11-07 Owen Taylor - - * giscanner/giscannermodule.c (pygi_source_scanner_lex_filename): - Set current_filename before lexing the file so error messages - are reported in the right file. - -2008-11-06 Colin Walters - - * tests/everything/*: Add some tests for strv. - -2008-11-05 Colin Walters - - * girepository/ginvoke.c (g_function_info_invoke): Don't use - nested scope local variable for error which may go away after - conditional is complete. - -2008-11-05 Colin Walters - - * giscanner/scannerlexer.l: Avoid static 256 char buf which we - manipulate hackily; just use GString. This avoids an - uninitialized memory read pointed out by Havoc. - -2008-11-04 Johan Dahlin - - * giscanner/__init__.py: - * giscanner/ast.py: - * giscanner/cachestore.py: - * giscanner/cgobject.py: - * giscanner/girparser.py: - * giscanner/girwriter.py: - * giscanner/giscannermodule.c: - * giscanner/glibast.py: - * giscanner/glibtransformer.py: - * giscanner/libtoolimporter.py: - * giscanner/minixpath.py: - * giscanner/odict.py: - * giscanner/sourcescanner.c: - * giscanner/sourcescanner.h: - * giscanner/sourcescanner.py: - * giscanner/transformer.py: - * giscanner/utils.py: - * giscanner/xmlwriter.py: - * COPYING: - Relicense the giscanner library under LGPLv2+. - This has been approved by all contributors. - -2008-11-01 Owen Taylor - - Bug 558848 giparser.py: shared library should be optional - - When parsing a .gir, allow the shared-library attribute - of to be missing: this corresponds to the handling - in libgirepository and elsewhere. - -2008-11-01 Tommi Komulainen - - Bug 557898 – Fails to build on OSX 10.4 - - * configure.ac: Check for $shrext_cmds that should be implicitly - available if you're using libtool >= 2.0. If undefined, call - libtool --config explicitly to get its value. - * girepository/gtypelib.c: Remove special case for (non-)Darwin - systems as unneeded. - -2008-10-31 Colin Walters - - * COPYING, COPYING.lib, COPYING.tools: Clarify licensing status. - -2008-10-31 Johan Dahlin - - * configure.ac: Post release version bump - -=== 0.6.0 === -2008-10-31 Johan Dahlin - - * NEWS: - * configure.ac: - * docs/release-checklist.txt: - 0.6.0 - -2008-10-31 Johan Dahlin - - * Makefile.am: add an upload-release target - * docs/release-checklist.txt: - Release process documentation - -2008-10-31 Colin Walters - - Bug 558109 – _g_typelib_init fails to find shared libraries - - * transformer/glibtransformer.py: Use ctypes' find_library - on passed libraries and write that for the shared-library - entry. We want to avoid depending on -devel packages. - -2008-10-31 Johan Dahlin - - * docs/g-ir-scanner.1: - Document the renaming options. - -2008-10-31 Tommi Komulainen - - * giscanner/Makefile.am: - * tests/invoke/Makefile.am: - * tests/repository/Makefile.am: List in-tree libraries first in - LDADD / LIBADD. If installed library is listed first, the - resulting binary will prefer installed version to one in .libs, - possibly making 'make check' behave strangely. - -2008-10-30 Tommi Komulainen - - * giscanner/ast.py: map 'id' (ObjC) to 'any' type to stop - gir-repository from choking with gdk/quartz - -2008-10-30 Johan Dahlin - - * giscanner/giscannermodule.c (calc_attrs_length), - (pygi_collect_attributes): - * giscanner/xmlwriter.py: - Write a C version of the xml namespace formatter. - Saves 15% of the time it takes to create a gtk gir. - -2008-10-30 Johan Dahlin - - * giscanner/xmlwriter.py: Abstract attribute formatting - to a function external to the XMLWriter class. - - * giscanner/scannerlexer.l: - Parse and discard __typeof and __attribute. - -2008-10-30 Johan Dahlin - - * giscanner/girparser.py: - Remove arguments from the constructor, move them to - separate accessors. Add a new parse_tree method - which takes an element tree instance. - * tools/g-ir-scanner: - Update callsite for this - - * giscanner/Makefile.am: - * giscanner/cachestore.py: - * giscanner/transformer.py: - Cache the include parsing. Saves ~25% time when - creating vte (which includes everything up to gtk+). - -2008-10-30 Colin Walters - - * giscanner/transformer.py: Don't reparse includes - we've already processed. - -2008-10-30 Johan Dahlin - - * giscanner/girparser.py: - * giscanner/transformer.py: - Avoid parsing parameters, types etc when parsing - includes. Should speed up include parsing a bit. - -2008-10-30 Johan Dahlin - - * giscanner/girparser.py: - Avoid big if/else and use a dispatch table like - approach. - -2008-10-30 Johan Dahlin - - * giscanner/transformer.py: - Clean up include parsing and registration. - -2008-10-30 Johan Dahlin - - * giscanner/transformer.py: - Clean up imports - -2008-10-30 Johan Dahlin - - Bug 558383 – builddir != srcdir build fails if giscanner python module not already installed - - * gir/Makefile.am: - construct PYTHONPATH just once - - * tests/everything/Makefile.am: - * tests/scanner/Makefile.am: - add $(top_srcdir) to PYTHONPATH to - handle builddir != srcdir - - * giscanner/libtoolimporter.py: - * giscanner/sourcescanner.py: - Make the libtoolimporter work when distchecking too. - - Mostly based on patch by Tommi Komulainen - -2008-10-29 Owen Taylor - - * giscanner/glibtransformer.py: If a filename of an existing - file is passed to --library, hunt for it directly, rather than - searching for a corresponding library. - -2008-10-29 Johan Dahlin - - * giscanner/libtoolimporter.py: - * giscanner/sourcescanner.py: - Clean up the libtool importer a bit. Add a context so we - can use it through a with statement. - Don't just look in the current directory, look in the whole - sys.path. - -2008-10-29 Tommi Komulainen - - Bug 558065 – gitesttypes should be installed - - * configure.ac: - * tests/Makefile.am: - * tests/types/Makefile.am -> tests/everything/Makefile.am - * tests/types/gitesttypes.c -> tests/everything/gitesttypes.c - * tests/types/gitesttypes.h -> tests/everything/gitesttypes.h - move tests/types to tests/everything - - * tests/everything/Makefile.am: build normal shared library - libgirepository-everything.so.1.0.0 and corresponding typelib - Everything-1.0.typelib - - * tests/everything/Makefile.am: explicitly link libtool - versioning with typelib versioning with variables - -2008-10-28 Johan Bilien - - * tools/g-ir-scanner: add LD_LIBRARY_PATH to LPATH before calling ld. - -2008-10-27 Johan Bilien - - * gio/gio-2.0.c: add allow-none annotations, based on the pygobject - .defs file - -2008-10-27 Johan Bilien - - Bug 558068 – when invoking a method, offset the in arguments by one, - not the out - - * tests/invoke/invoke.c, tests/invoke/testfns.c, - tests/invoke/testfns-1.0.gir: Add testing of method and constructor. - * girepository/ginvoke.c: do not offset the index of given out - arguments by one for methods, "this" is provided as in argument only. - -2008-10-27 Johan Bilien - - * gir/gio-2.0.c: add annotation for g_file_delete - -2008-10-27 Tommi Komulainen - - Bug 558062 – provide and use paths in the .pc file - - * gobject-introspection-1.0.pc.in: provide typelibdir variable - for where .typelibs should be installed (callers shouldn't need - to construct paths from bits and pieces) - -2008-10-25 Andreas Rottmann - - Bug 557791 – g_irepository_require() could return a GTypelib * - - * girepository/girepository.c: Return GTypelib; this is useful - for low level manipulation. - -2008-10-25 Colin Walters - - Bug 557788 – Return types for constructors in generated typelib bogus - - * giscanner/glibtransformer.py: Don't resolve ctors incrementally, - rely on end pass resolution. - -2008-10-25 Andreas Rottmann - - Bug 557786 - support fixed size arrays - - * girepository/ginfo.c: Add g_type_info_get_array_fixed_size. - * giscanner/scannerparser.y: Retain fixed array size. - * giscanner/ast.py: Add to note. - * giscanner/girwriter.py: Write to gir. - * girepository/girnode.c: Write it to typelib. - * tools/generate.c: Generate. - * tests/*: Add tests. - -2008-10-25 Colin Walters - - Bug 557076 - move typelibs to $libdir - - * configure.ac: Steal some configury bits from dbus to expand - libdir. - * gir/Makefile.am: Move to libdir. - * girepository/girepository.c: Stop searching XDG_DATA_DIRS; - instead just look at one hardcoded path in libdir. - * acinclude.m4: Bits from dbus. - -2008-10-24 Johan Dahlin - - * girepository/girnode.c (g_ir_node_check_unhandled_members): - Be quiet, do not warn about unhandled members. - -2008-10-24 Johan Dahlin - - * girepository/gtypelib.c: - Only use SHLIB_SUFFIX on darwin, otherwise use - G_MODULE_SUFFIX, we cannot get shext_cmds from libtool 2.2. - -2008-10-24 Lucas Rocha - - Bug 557623 - Constructors shouldn't be flagged as methods. - - * girepository/ginfo.c (g_function_info_get_flags): ditto. - -2008-10-24 Johan Dahlin - - * giscanner/scannerparser.y: - Check against division by zero for the modula operator. - This fixes header parsing of OSX system headers included - by libsoup. - -2008-10-24 Johan Dahlin - - * CONTRIBUTORS: - * Makefile.am: - Add a CONTRIBUTORS file and dist it. - -2008-10-23 Tommi Komulainen - - Bug 556739 – transfer-ownership attribute should be mandatory in .gir - - * girepository/girparser.c (parse_param_transfer): - * giscanner/transformer.py (_create_parameter, _create_return): - * giscanner/girwriter.py (_write_return, _write_parameter): - * tools/generate.c (write_callable_info): always write and - require "transfer-ownership" for return-values and parameters - - * tests/boxed.gir: - * tests/invoke/testfns-1.0.gir: - * tests/object.gir: - * tests/scanner/DrawableAdditions.xml: - * tests/scanner/GtkFrob-1.0-expected.tgir: - * tests/scanner/annotation-1.0-expected.tgir: - * tests/scanner/drawable-1.0-expected.tgir: - * tests/scanner/drawable-injected-1.0-expected.gir: - * tests/scanner/drawable-injected-1.0-expected.tgir: - * tests/scanner/foo-1.0-expected.tgir: Updated - -2008-10-23 Tommi Komulainen - - * giscanner/cgobject.py: build fundamental types same way as glib - - * giscanner/glibtransformer.py (_type_from_gtype): record GType - when constructing the Type from it - - * giscanner/glibtransformer.py (_adjust_transfer): Check whether - the parameter is a GObject from its GType, if available. - - * giscanner/glibtransformer.py (_adjust_transfer): - * tests/scanner/foo-1.0-expected.gir: - * tests/scanner/foo-1.0-expected.tgir: deduce - transfer-ownership from GTypes - -2008-10-23 Tommi Komulainen - - * giscanner/transformer.py (_create_parameter): - * tests/scanner/foo-1.0-expected.gir: make varargs - transfer-ownership="none" - -2008-10-23 Colin Walters - - Bug 556739 - transfer ownership - - * giscanner/ast.py: Refactor Parameter/Return to share - common attributes. Add transfer_inferred attribute - which says whether or not we made a guess. - * giscanner/transformer.py: Add much more extensive - heuristics around parameter and return transfer. - * giscanner/glibtransformer.py: Adjust to inspect - transfer_inferred. - * tests/*: Adjust. - -2008-10-22 Tommi Komulainen - - Bug 557377 – Add test to ensure annotations survive the roundtrip via typelib - - * tests/scanner/Makefile.am: - * tests/scanner/annotation-1.0-expected.tgir: - * tests/scanner/drawable-1.0-expected.tgir: - * tests/scanner/drawable-injected-1.0-expected.tgir: - * tests/scanner/foo-1.0-expected.tgir: - * tests/scanner/GtkFrob-1.0-expected.tgir: - * tests/scanner/utility-1.0-expected.tgir: Add test to ensure - annotations survive the roundtrip via typelib - - The expectations are as currently produced by g-ir-generate, - comparison with the .gir files shows there are differences. - -2008-10-23 Johan Bilien - - Bug 557468 – Support for GI_TYPELIB_PATH - - * girepository/girepository.c: if the GI_TYPELIB_PATH is set, add the - provided paths to the global search path. - -2008-10-22 Tommi Komulainen - - Bug 557379 – g-ir-generate not writing the 'abstract' attribute - - * tests/scanner/drawable-1.0-expected.tgir: - * tests/scanner/drawable-injected-1.0-expected.tgir: - * tests/scanner/foo-1.0-expected.tgir: - * tools/generate.c (write_object_info): write 'abstract' - attribute for classes - -2008-10-22 Lucas Rocha - - * girepository/girmodule.c, girepository/gtypelib.c, - girepository/girparser.[ch]: fix some build warnings. - -2008-10-22 Tommi Komulainen - - Bug 557405 – Use 'allow-none' consistently - - * docs/typelib-format.txt: - * girepository/ginfo.c (g_arg_info_may_be_null): - * girepository/girnode.c (g_ir_node_build_typelib): - * girepository/girnode.h (struct _GIrNodeParam): - * girepository/girparser.c (start_parameter): - * girepository/girwriter.c (function_generate): - * girepository/gtypelib.h (ArgBlob): - * tests/errors.gir: - * tests/function.gir: - * tools/generate.c (write_callable_info): Use 'allow-none' - consistently throughout - -2008-10-22 Tommi Komulainen - - Bug 557092 – Callback annotations not used - - * giscanner/transformer.py (_create_callback): use annotations - for callbacks - * tests/scanner/annotation.h - * tests/scanner/annotation-1.0-expected.gir: add tests - -2008-10-21 Colin Walters - - * giscanner/scannerlexer.l: Don't require trailing whitespace after - uncommented parameters. - * tests/*: Test it. - -2008-10-21 Colin Walters - - * girepository/girepository.c: Ensure that when doing an unversioned - require, we prefer items earlier in the search path to later ones. - -2008-10-21 Owen Taylor - - * giscanner/transformer.py: For string parameters allow transfer annotation - to override the standard automatic guessing based on 'const'. - -2008-10-21 Johan Bilien - - Bug 557241 – "throws" flag for functions - - * tests/scanner/drawable-1.0-expected.gir, - tests/scanner/drawable-injected-1.0-expected.gir, - tests/scanner/drawable.[ch]: add simple test for throwing - function (has GError ** as last argument) - - * giscanner/ast.py: add a 'throws' flag to Function - * giscanner/glibtransformer.py: if a function's last paramerter is - a GError, set the 'throws' flag and remove that parameter - * giscanner/girwriter.py: write out the 'throws' attribute - * giscanner/girparser.py: support parsing the 'throws' attribute - - * tests/repository/gitestthrows.c: add a simple test to check the - throws flag in a typelib and invoke the function - - * girepository/ginfo.c, girepository/girnode.[ch], - girepository/girnode.h, girepository/girparser.c, - girepository/girepository.h: Add and parse the GI_FUNCTION_THROWS flag - - * girepository/ginvoke.c: if a function throws, add a GError as last - arguments, and propagate the error to the invoker. - -2008-10-21 Tommi Komulainen - - * giscanner/transformer.py (_create_parameters): Warn if we see - annotations for unknown parameters. If .h and .c files name - parameters differently, the annotations may be lost. - -2008-10-21 Johan Dahlin - - Bug 556358 - don't use libtool internals - - * giscanner/Makefile.am: - * giscanner/libtoolimporter.py: - * giscanner/sourcescanner.py: - * giscanner/utils.py: - Add a python meta importer and remove a libtool symlink hack. - -2008-10-20 Andreas Rottmann - - * tests/scanner/Makefile.am (%.typelib): Set PYTHONPATH - and --add-include-path appropriately when invoking the scanner. - * tests/types/Makefile.am (%typelib): Likewise. - -2008-10-20 Colin Walters - - Bug 556777 - validate properties - - * giscanner/transformer.py: Add option to throw on unknown types. - * giscanner/glibtransformer.py: Use it on properties. - * tests/*: Add a test. - -2008-10-20 Colin Walters - - * giscanner/glibast.py: Also register g variants of - default_array_types. This is not beautiful, but - good alternatives aren't easy to come by. - This fixes gchar ** parsing. - -2008-10-20 Colin Walters - - * docs/typelib-format.txt, girepository/gtypelib.h: - Take a bit from ObjectInfo to represent abstract flag. - * giscanner/cgobject.py: Expose g_type_get_flags. - * girepository/girepository.h: Add accessor. - * girepository/ginfo.c: Implement it. - * giscanner/ast.py: Add is_abstract flag to generic - class object. - * giscanner/glibast.py: Use it. - * giscanner/girwriter.py: Write it. - * girepository/girparser.c: Parse it. - * tests/*: Test it. - -2008-10-20 Tommi Komulainen - - * giscanner/girparser.py (_parse_function): don't lose - 'transfer-ownership' attributes when injecting, check for the - correct attribute - -2008-10-19 Johan Dahlin - - * giscanner/scannerlexer.l: Parse and ignore __asm. - -2008-10-19 Colin Walters - - * giscanner/girparser.py: Parse array length= to ensure - it doesn't get lost from --inject. - -2008-10-17 Colin Walters - - Bug 556795 - char ** regression - - * giscanner/transformer.py: Fix parsing of ctypes, add some - comments about what's going on. - * tests/*: Add a test for char **. - -2008-10-17 Colin Walters - - Bug 556783 - change namespace handling to be more consistent - - * giscanner/transformer.py: Eliminate usage of - strip_namespace_object. We now treat --namespace as the default - --strip-prefix; however, if --strip-prefix is specified it - overrides --namespace. This applies to everything except function - names, where we do also strip the namespace. - * giscanner/glibtransformer.py: Remove usage of - strip_namespace_object. - * tests/*: Update. - * tests/*: Add skeletal GtkFrob-1.0 test which has different - --namespace and --strip-prefix. - -2008-10-17 Tommi Komulainen - - Bug 556732 – generate gir files consistently - - * girepository/girparser.c (start_parameter): - * tests/boxed.gir: - * tests/invoke/testfns-1.0.gir: - * tools/generate.c (write_callable_info): write - 'transfer-ownership' attribute consistently with both - return-value and parameter elements - -2008-10-17 Tommi Komulainen - - Bug 556732 – generate gir files consistently - - * tools/generate.c (write_callable_info): write 'direction' - attribute only if other than 'in' to be consistent with - girwriter.py - * tests/boxed.gir: - * tests/object.gir: remove direction="in" which is the default - -2008-10-17 Tommi Komulainen - - Bug 556732 – generate gir files consistently - - * giscanner/ast.py (Field): add readable and writable properties - * giscanner/girparser.py (_parse_field): copy 'readable' and - 'writable' attributes - * giscanner/transformer.py (_create_member): create fields as - read-write - * giscanner/glibtransformer.py (_introspect_object, - _pair_class_struct): make object instance and class fields - read-only - * giscanner/girwriter.py (_write_field): - * tools/generate.c (write_field_info): write field 'readable' - and 'writable' attributes only if non-default (read-only) - * girepository/girparser.c (start_field): in the absence of - attributes assume fields are read-only - * tests/boxed.gir: - * tests/struct.gir: remove redundant readable="1" from fields - * tests/scanner/foo-1.0-expected.gir: - * tests/scanner/utility-1.0-expected.gir: add writable="1" to - all record and union fields - -2008-10-17 Tommi Komulainen - - Bug 556732 – generate gir files consistently - - * giscanner/girwriter.py (_write_property): write properties - 'construct' attribute if set - * tools/generate.c (write_property_info): write properties - 'readable' and 'writable' attributes only if non-default - * tests/object.gir: add writable="0" - * tests/scanner/foo-1.0-expected.gir: add construct="1" - -2008-10-17 Johan Bilien - - * gir/glib-2.0.c: added annotations - -2008-10-16 Johan Bilien - - * giscanner/ast.py: Also assume direction=out for size_t*, ssize_t* - arguments - -2008-10-16 Johan Bilien - - Bug 556610 – giscanner/girparser.py drops parameter options - - * tests/scanner/drawable-injected-1.0-expected.gir, - tests/scanner/DrawableAdditions.xml: added simple test for injection. - * giscanner/ast.py: allow Parameter to take options in the constructor - * giscanner/girparser.py: parse parameter options (transfer, - direction, allow-none) - -2008-10-16 Colin Walters - - Bug 556185 - segfault on g_callable_info_get_return_type - - Initial patch from John Ehresman. - - * tests/repository/*: Add a test using - g_callable_info_get_return_type. Instead of casting a - GITypeInfo directly to a GIRegisteredTypeInfo, we need - to call g_type_info_get_interface. - -2008-10-16 Colin Walters - - Bug 556579 - union and struct name misresolved - - * giscanner/transformer.py: The calls to _resolve_type_name - for struct/union names was a legacy holdover from when type - resolution had multiple phases. Now it's actively harmful - since we might pull in an identical name from another - namespace. - * tests/*: Update. - -2008-10-16 Colin Walters - - Bug 556432 - transfer annotations and defaults - - * giscanner/transformer.py: Canonicalize type - after removing *, not before. This ensures that - guchar* is transformed to 'uint8'. - Add some comments here. - * giscanner/glibtransformer.py: Add _adjust_transfer - phase for tweaking GObject transfers. - * tests/*: test it. - -2008-10-16 Tommi Komulainen - - * configure.ac: enable bunch of gcc warning CFLAGS - -2008-10-16 Tommi Komulainen - - Bug 556543 – reduce compiler warnings - - * girepository/ginfo.c: - * girepository/girepository.c (register_internal, - count_interfaces, find_interface, find_namespace_version, - parse_version, g_irepository_require): - * girepository/girmodule.c (g_ir_module_build_typelib): - * girepository/girnode.c (init_stats, dump_stats, - _g_irnode_init_stats, _g_irnode_dump_stats, - g_ir_node_can_have_member): - * girepository/girparser.c (firstpass_end_element_handler, - locate_gir, parse_basic, parse_type_internal, resolve_aliases, - start_alias, start_type, end_type_top, parse_include, cleanup, - post_filter): - * girepository/gtypelib.c (validate_function_blob, validate_enum_blob): - * giscanner/giscannermodule.c (directive_get_options, - type_get_child_list): - * giscanner/scannerlexer.l (parse_gtkdoc): - * giscanner/scannerparser.y (ctype_free): - * giscanner/sourcescanner.c: - * giscanner/sourcescanner.h (gi_source_scanner_parse_macros): - * tests/types/gitesttypes.c: - * tools/compiler.c (main): - * tools/generate.c (write_repository): Remove unused variables - and code, add missing includes, declarations and case - statements. - -2008-10-16 Tommi Komulainen - - Bug 556541 – access union members through UnionBlob rather than - StructBlob - - * girepository/ginfo.c (g_union_info_find_method): access union - members through UnionBlob rather than StructBlob - -2008-10-15 Colin Walters - - Bug 556331 - clean up includes handling - - * tools/g-ir-scanner: Rework command line arguments; now we take - --add-include-path and --include separately. - * giscanner/girwriter.py: Separate name= and version= in include - directives. - * giscanner/ast.py: Add Include type. - * giscanner/transformer.py: Cleanups to register_include now that - we don't need to handle mixed filenames and relative arguments. - * girepository/girparser.c: Parse name and version separately; - this fixes a bug as a side effect where we weren't resolving - through aliases for basic types. - * girepository/girepository.c: Fix format string args. - * gir/Makefile.am: Update. - * tests/*: Update. - -2008-10-15 Tommi Komulainen - - Bug 556434 – unhandled interface/object/... member types - - * girepository/girnode.c (g_ir_node_check_unhandled_members, - g_ir_node_build_typelib): Check all - interface/object/boxed/struct/union members are processed and - abort if they are not. (Mostly callbacks in structs, but also - fields in interfaces.) - -2008-10-15 Tommi Komulainen - - * a/girepository/girnode.c (g_ir_node_build_members, - g_ir_node_build_typelib): refactor common code for processing - members to a function - -2008-10-15 Tommi Komulainen - - * gir/Makefile.am (check-local): check that typelib -> gir -> typelib - transformation is lossless (it's not) - -2008-10-15 Tommi Komulainen - - * tests/Makefile.am: fix tests to compare xml to xml instead of - typelib to xml, and stop on error - -2008-10-15 Tommi Komulainen - - * tools/generate.c (write_type_name, write_type_info, - write_type_info, write_object_info, write_object_info, - write_interface_info, write_error_domain_info): reduce code - duplication - -2008-10-15 Tommi Komulainen - - Bug 556174 – parse types for lists etc. - - * girepository/girparser.c (end_type_recurse): - * tests/boxed.gir: - * tools/generate.c (write_type_info, write_field_info, - write_callable_info, write_callable_info, write_constant_info, - write_property_info): use nested s for lists and hashes - -2008-10-15 Tommi Komulainen - - * tests/enum.gir: - * tests/object.gir: remove trailing whitespace from inside - elements to match g-ir-generate output - -2008-10-15 Tommi Komulainen - - * tools/generate.c (xml_printf): quote printf arguments so that - we don't generate invalid XML by writing unescaped double quotes - and such in attributes - -2008-10-15 Tommi Komulainen - - * tools/generate.c (write_field_info, write_callable_info, - write_function_info, write_callback_info, write_struct_info, - write_constant_value, write_signal_info, write_vfunc_info, - write_object_info, write_interface_info, write_union_info, - write_repository): remove unused indent parameters, xmlwriter - keeps track of necessary indentation - -2008-10-15 Tommi Komulainen - - * tools/generate.c (xml_element_new, xml_element_free, - xml_start_element, xml_end_element, xml_end_element_unchecked, - xml_open, xml_close): Keep track of generated XML tree and - handle indentation and closing tags properly. - (write_field_info, write_callable_info, write_function_info, - write_callback_info, write_struct_info, write_value_info, - write_constant_info, write_enum_info, write_signal_info, - write_vfunc_info, write_property_info, write_object_info, - write_interface_info, write_error_domain_info, write_union_info, - write_repository): Use xml_start_element and xml_end_element to - open/close tags. - -2008-10-15 Tommi Komulainen - - * tools/generate.c (xml_printf, xml_open, xml_close, xml_free): - (write_type_name, write_type_info, write_field_info, - write_callable_info, write_function_info, write_callback_info, - write_struct_info, write_value_info, write_constant_value, - write_constant_info, write_enum_info, write_signal_info, - write_vfunc_info, write_property_info, write_object_info, - write_interface_info, write_error_domain_info, write_union_info, - write_repository): wrap all FILE access to go through simple xmlwriter - -2008-10-15 Tommi Komulainen - - Bug 556400 – Fails to build on OS X 10.4 - - * configure.ac: check for functions backtrace and backtrace_symbols - * girepository/girparser.c (backtrace_stderr): Comment out - implementation if the functions are not available. - * gcov.mak (clean-gcov, clean-gcno): always call 'find' with a - directory for better portability - -2008-10-15 Johan Bilien - - Bug 556433 – assume direction = out for int * parameters - - * giscanner/ast.py: define a list of types for which, if passed as - reference, we assume a default direction of 'out' - * giscanner/transformer.py: if a type has type pointer to one of the - previously defined types, and no direction is set, assume out. - * tests/scanner/drawable.[ch]: added tests for guessed direction=out - -2008-10-15 Johan Bilien - - * tests/scanner/annotation.c: fixed a few copy-paste errors - -2008-10-14 Johan Bilien - - Bug 556323 – transfer-ownership is wrong for functions returning const - char * - - * giscanner/transformer.py: check for a const string as return value, - not just const char*. Suggested by Colin Walters - * tests/scanner/annotation-1.0-expected.gir: updated expected output - -2008-10-14 Johan Bilien - - * girepository/ginfo.c, girepository/girepository.h: add - g_union_info_find_method - -2008-10-14 Colin Walters - - * tests/repository/Makefile.am: Reenable repo test. - * tests/repository/gitestrepo.c: Prepend search - path for $(top_builddir)/gir dir so that we don't - require installation for "make check" to pass. - -2008-10-13 Jürg Billeter - - * giscanner/glibtransformer.py: - * tests/scanner/annotation-1.0-expected.gir: - * tests/scanner/drawable-1.0-expected.gir: - * tests/scanner/foo-1.0-expected.gir: - * tests/scanner/utility-1.0-expected.gir: - - Support fields in GObject structs - -2008-10-13 Jürg Billeter - - * giscanner/ast.py: add signed integer and off_t to type_names - -2008-10-12 Jürg Billeter - - * giscanner/girparser.py: Parse bits attribute of fields - -2008-10-12 Tommi Komulainen - - * tests/repository/Makefile.am: run 'gitestrepo' in 'make check' - * tests/repository/gitestrepo.c (main): instantiate - 'GCancellable' to ensure the GType is registered before using - g_type_from_name() - -2008-10-12 Johan Bilien - - * giscanner/girparser.py: actually add the parsed constant nodes - -2008-10-12 Colin Walters - - * girepository/girepository.c: Don't cast DirEntry to Blob, - actually look it up by offset. - -2008-10-12 Johan Bilien - - * giscanner/girparser.py: parse constant nodes in gir files - -2008-10-12 Johan Bilien - - * giscanner/transformer.py: prefix for constants have an underscore, - so remove them as if they were functions, not objects. - -2008-10-12 Johan Bilien - - * tests/scanner/foo-1.0-expected.gir: add constants to expected gir - file - -2008-10-12 Colin Walters - - Initial patch from Jani Monoses. - - * girepository/gtypelib.c: Fix inverted test for success - in version parsing. - -2008-10-12 Tommi Komulainen - - * tools/generate.c (write_callable_info): use "transfer-ownership" - attribute for return values - -2008-10-12 Tommi Komulainen - - * tools/generate.c (write_callable_info): move "transfer" and - "null-ok" attributes from to element - -2008-10-12 Tommi Komulainen - - * girepository/girparser.c (start_return_value): handle - "transfer-ownership" attribute - -2008-10-12 Tommi Komulainen - - * girepository/girparser.c (parse_param_transfer): - * tools/generate.c (write_callable_info): use "container" for - container/shallow ownership transfer (not "shallow") - -2008-10-12 Tommi Komulainen - - * girepository/girparser.c (parse_param_transfer, - start_parameter): Refactor handling of transfer=none/shallow/full - to separate function - -2008-10-12 Tommi Komulainen - - Bug 556048 – Crash in g_irepository_find_by_gtype - - * girepository/gtypelib.h (BLOB_IS_REGISTERED_TYPE): added - * girepository/girepository.c (find_interface): Fix - find_by_gtype case to get the type name from right offset - -2008-10-12 Jürg Billeter - - * giscanner/girparser.py: Fix parsing transfer-ownership attribute - of - -2008-10-12 Tommi Komulainen - - * girepository/gtypelib.h (RegisteredTypeBlob): make - 'unregistered' one bit wide as everywhere else - -2008-10-12 Jürg Billeter - - * giscanner/glibtransformer.py: - * tests/scanner/annotation-1.0-expected.gir: - * tests/scanner/drawable-1.0-expected.gir: - * tests/scanner/drawable.h: - * tests/scanner/foo-1.0-expected.gir: - * tests/scanner/utility-1.0-expected.gir: - - Readd class records as workaround to not break Gtk typelib - -2008-10-12 Tommi Komulainen - - * tests/types/Makefile.am: fix typo in gitesttypes namespace - -2008-10-12 Jürg Billeter - - * giscanner/glibtransformer.py: Don't generate elements - for class structs. - * tests/scanner/*: Update test cases - -2008-10-11 Colin Walters - - Bug 552858: versioning - - This is a big patch. You should probably remove your installation - tree to be cleaner. - - * docs/typelib-format.txt: Add nsversion entry which holds - version of namespace. - * girepository/girepository.h: Add 'version' parameter to - g_irepository_require. This may be NULL. Normally - bindings should pass an explicit version though. - * girepository/girepository.c: Lots of infrastructure to - support versioning. Add some more documentation. Disallow - some usage of NULL namespaces. - * girepository/girmodule.c: Add version parameter. - * girepository/gtypelib.c: Update header size. - * giscanner/ast.py: Add version to Namespace. - * giscanner/girparser.py: Parse version attribute from - XML, pass to Namespace. - * giscanner/girwriter.py: Write out version parameter. - * giscanner/transformer.py: Clean up include registration. - * tests/*: Add version attribute. - * tests/invoke/invoke.c: Don't try looking up test before - it's loaded in repository. - * tools/generate.c: Output version parameter. - * gir/Makefile.am: Add 2.0 version to .gir files. - -2008-10-11 Colin Walters - - * giscanner/scannerlexer.l (parse_gtkdoc): Don't lose - if we have mismatched parens. - -2008-10-11 Lucas Rocha - - * giscanner/girparser.py (_parse_enumeration_bitfield): fix typo - on 'members' variable. - -2008-10-11 Colin Walters - - Bug 555947 - update annotations syntax - - * giscanner/ast.py: Default to None for transfer. Remove - default transfers for container types; we require this to - be specified now. - * giscanner/girwriter.py: Transfer is now 'none', 'container', - 'full' to match repository. - * giscanner/scannerlexer.l: Annotations now are parenthesized. - * giscanner/transformer.py: Update for new annotations syntax. - * tests/*: Update. - -2008-10-11 Johan Bilien - - * giscanner/scannerparser.y: ignore non-UTF-8 string constants - -2008-10-11 Johan Bilien - - Bug 552347: Parse #defines constants - - * girepository/gtypelib.c: update the list of value_size - with recently defined type tags - * giscanner/scannerparser.y: brought back parsing of #defined, as - present in older version - * giscanner/giscannermodule.c: bind gi_source_scanner_append_filename - * giscanner/girwriter.py: write out constant tags in the gir - * giscanner/sourcescanner.py: add accessor for const_string - * giscanner/transformer.py, giscanner/glibtransformer.py: handle - constant - -2008-10-11 Tommi Komulainen - - Bug 555946: Install a test module exercising all types, transfer - rules, etc. - - * configure.ac - * tests/Makefile.am - * tests/types/*: Add and install a test module that has functions - accepting and returning most of the basic types to enable bindings - implementors to more easily test their type conversion routines. - -2008-10-11 Jürg Billeter - - Bug 552374: Const strings should be identified in the gir. - - * giscanner/transformer.py: support string memory management - * tests/scanner/foo.h: use char * and const char * - * tests/scanner/foo-expected.gir: test that - -2008-10-11 Johan Dahlin - - * giscanner/girparser.py: - Also parse enums which are not glib types. - -2008-10-11 Lucas Rocha - - Bug 552370: add one more test for unsigned as a type, not as - a type qualifier. - - * giscanner/ast.py: add 'uint' type name for 'unsigned'. - * test/scanner/foo.h: add function which uses unsigned as a type. - * test/scanner/foo-expected.gir: test that. - -2008-10-11 Andreas Rottmann - - Bug 555712: Struct and union issues - - * giscanner/scannerparser.y (struct_declarator): Use information - provided about the bit width of a field. - * giscanner/transformer.py (Transformer._create_member): Pass the - symbol's const_int member to the created field (it represents the - bit width). - * giscanner/girwriter.py (GIRWriter._write_field): Output 'bits' - field attribute, if present. - * giscanner/ast.py (Field): Add 'bits' member, specifying the - width in bits of the field (only relevant for bitfields). - * tests/*: Updated. - - * giscanner/transformer.py (Transformer._create_typedef_struct) - (Transformer._create_typedef_union): Add calls to _create_struct() - and _create_union(), respectively. This causes the scanner to - generate output for fields of struct and union typedefs. - * tests/*: Updated. - -2008-10-11 Jürg Billeter - - Bug 552370: unsigned not scanned properly - - * giscanner/scannerparser.y: combine basic types such as unsigned - int and long long when scanning - * tests/scanner/foo-expected.gir: - * tests/scanner/foo.c: (foo_test_unsigned): - * tests/scanner/foo.h: test that - -2008-10-11 Lucas Rocha - - Bug 554854: The --typelib-xml and --inject options should reuse - giscanner parser/writer. - - * giscanner/ast.py: add constructor list to Struct and Union. - Add new param in Return's contructor to define transfer. - * giscanner/girparser.py: several additions to the parser in order - to have parsing all nodes of the gir xml files. - * tools/g-ir-scanner (typelib_xml_strip, inject): use gir parser - and writer in --inject and --typelib-xml options. - * giscanner/xmlwriter.py: ignore empty attributes instead of - raising an error as this basically exposes a bug in GIRParser. - This should be reverted as soon as the parser is fixed. - -2008-10-11 Lucas Rocha - - Bug 552376: scanner generates wrong names for enum members when - there's no defined gtype. - - * giscanner/utils.py (strip_common_prefix): Always strip common - prefix exactly up to the last "_", and not beyond. - * tests/scanner/foo.h (FooEnumNoType): add FOO_ENUM_NEUF. The point - here is that the first character after the last '_' should should be - the same as the character in the same position on the type name. - * tests/scanner/foo-expected.gir: test that - -2008-10-10 Lucas Rocha - - Bug 555293: append library_paths to LPATH env variable to work - around a bug in find_library when using ldconfig. - - * tools/g-ir-scanner (main): ditto. - -2008-10-09 Lucas Rocha - - * girepository/girepository.c (register_internal): fix regression on - invoke test case by making sure we load the global module in the - typelib when dealing with inline typelibs. - * girepository/gtypelib.c: a couple of coding style fixes. - -2008-10-06 Lucas Rocha - - Bug 555294: Add support for multiple shared libraries per typelib. - - * girepository/ginvoke.c (g_function_info_invoke), - girepository/ginfo.c(g_registered_type_info_get_g_type): use - g_typelib_symbol instead of g_module_symbol. - * girepository/girepository.h: remove g_typelib_set_module and add - g_typelib_symbol. - * girepository/gtypelib.[ch] (find_some_symbol, _g_typelib_init, - g_typelib_new_from_memory, g_typelib_new_from_const_memory, - g_typelib_free, g_typelib_symbol): chnage GTypeLib to hold a list of - modules instead of just one. The symbol lookup is now abstracted - behind g_typelib_symbol which tries to find the passed symbol name in - one of its modules. - * giscanner/girwriter.py, tools/g-ir-scanner: change scanner to read - and write shared_library attribute as a comma-separated list of libs. - -2008-10-06 Colin Walters - - * giscanner/transformer.py: Parse length= annotation as - a parameter name, not a raw int. - * tests/*: Update. - -2008-10-03 Colin Walters - - Bug 551744: Non-GObject types aren't aggregating ctors and methods - - * girepository/gtypelib.c: Allow ctors/methods on struct,union, - and boxed. - * giscanner/glibtransformer.py: Ditto, and GLibBoxed is also a - registered type. - * tests/*: Extend. - -2008-10-03 Colin Walters - - Bug 554576: scan problem with ev_selection_render_selection() - - * giscanner/transformer.py: Only do type resolution once we've - scanned all types. What could happen before is that we'd strip - the namespace from local type "EvSelection" => Selection, and - then later pull a "Selection" from some other namespace because - we hadn't yet seen the local EvSelection. This could come - down to hash table ordering and other things so not easy - to write a test for. - -2008-10-03 Lucas Rocha - - * giscanner/girwriter.py (_parser_member): fix the last parameter of - GLibEnumMember constructor as it should be the enum member nick. - -2008-10-02 Colin Walters - - Bug 552961: remove this parameter for methods - - * giscanner/glibtransformer.py: Delete this parameter; it is - redundant. - * girepository/ginvoke.c: Insert this parameter for methods. - * girepository/gtypelib.c: Remove no longer needed verification of - method this parameter. - * tests/*: Update. - -2008-09-30 Dan Winship - - Bug 554490: g-ir-scanner gets confused by '\\' - - * giscanner/scannerlexer.l (chartext, stringtext): fix use of - backslashes so it will correctly parse '\\' and "\\" - - * tests/scanner/annotation.c: add a use of '\\' to make sure that - this stays fixed - - * giscanner/glibtransformer.py (GLibTransformer.count_type): typo - -2008-10-02 Colin Walters - - bug 552393: Note variadic functions - - * giscanner/scannerparser.y: Parse ellipsis. Refactor grammar - to use parameter_list directly. - * giscanner/sourcescanner.h: Add ellipsis csymbol type. - * giscanner/ast.py: Add Varargs type. - * giscanner/transformer.py: Check for ellipsis symbol, transform - to varargs type. - * girepository/girnode.h: Add varargs flag to in-memory nodes. - Parse varargs functions, but filter them out before we start - compiling the typelib. - -2008-10-02 Colin Walters - - Bug 554632: type tag for GType - - * girepository/girepository.h, girepository/girepository.c: - Add type tag for GType - it's a special type we don't want - to resolve to just "long". - * docs/typelib-format.txt: Update. - * girepository/girparser.c: Parse it. - * giscanner/glibtransformer.py: Ensure we don't put GType in - the GObject.gir. - * tools/generate.c: Remove hardcoded type list. - * test/* update. - -2008-09-30 Dan Winship - - Bug 554521: scanner generates wrong names for enum members with - full type name prefix - - * giscanner/utils.py (strip_common_prefix): Fix this to strip the - right amount when the entire "first" string is a prefix of - "second" - - * tests/scanner/foo.h (FooEnumFullname): - * tests/scanner/foo-expected.gir: test that - -2008-09-29 Colin Walters - - Bug 552380: Array parameters should be marked in the gir - - * giscanner/ast.py: Default char** to utf8[], and guchar* to - uint8[]. Add Array, List, and Map subclasses of Type; - these types can be generic. Return transfer defaults - to true if return value is string or container type. - Delete Sequence type. - * giscanner/scannerlexer.l: Syntax change for annotations; - use <> since it's more readable. - * giscanner/girwriter.py: Write out these changes. - * giscanner/girparser.py: Parse them. - * giscanner/transformer.py: Have a defined set of - both list and map types. When creating a type, - check if the ctype we've parsed is one of them, - if so create a container type subclass as appropriate. - * girepository/girparser.c: Parse in generic types. - * tests/*: Update. - -2008-09-27 Colin Walters - - * tools/g-ir-scanner: Add --inject option. - -2008-09-25 Colin Walters - - Remove non-repository types from GIR - - * giscanner/ast.py: The canonical name is 'utf8', not - 'string'. - * giscanner/glibast.py: A few more glib type mappings. - * girepository/girparser.c: We only parse repository types. - * tests/*.gir: Update. - -2008-09-23 Colin Walters - - Bug 552566: Add time_t type - - We need a type for time_t since it's special in C, and just - mapping it to long precluded bindings from handling it - in a nice way. - -2008-09-19 Colin Walters - - Bug 552390: Handle capitialization like "DBus" more robustly - - The to_underscores function was designed for use against prefixed - names; we need a separate function which will convert names like - DBusFoo into dbus_foo, not d_bus_foo. - -2008-09-19 Colin Walters - - Add check to make sure we're not hitting out unresolved types - - Validate the "this" argument for methods - - Remove heuristic matching of methods to classes based on prefix - - It was a broken hack that dated from when we handled underscoring - and capitalization conventions less well. - -2008-09-18 Colin Walters - - Bug 552384: Use SHLIB_SUFFIX intead of G_MODULE_SUFFIX for Darwin - - On Darwin, the suffix for installed shared libraries (.dylib) is - different from loadable modules (.so). We use a bit of magic shell - script from Behdad Esfahbod to figure out the right suffix. - -2008-09-15 Johan Dahlin - - * giscanner/sourcescanner.py (SourceType.type_qualifier): Add - a wrapper for type_qualifier as well. - -2008-09-15 Colin Walters - - http://bugzilla.gnome.org/show_bug.cgi?id=552065 - - * giscanner/ast.py: Add deprecation attributes. - * giscanner/girwriter.py: Write out deprecation data. - * girepository/girparser.c: Relax parsing; deprecated - attribute now includes freeform string. - * giscanner/scannerlexer.l: Parse Deprecated. - * giscanner/transformer.py: Look for deprecated attribute - on functions. - * tests/scanner/*: Add a Deprecated test. - -2008-09-14 Tor Lillqvist - - * tests/scanner/Makefile.am (%.typelib): Use $(EXEEXT). - -2008-09-14 Colin Walters - - * giscanner/glibtransformer.py: Ignore functions with - leading _. - -2008-09-12 Colin Walters - - * giscanner/glibtransformer.py: Accept Gtk.Type as GType. - -2008-09-12 Colin Walters - - * giscanner/ast.py: Bind pid_t to INT for vte. - -2008-09-12 Colin Walters - - * giscanner/girparser.py: Parse c:type for boxed records/unions. - * giscanner/glibast.py: Avoid overwriting ctype. - * giscsanner/transformer.py: Try resolving types using the GType names. - -2008-09-12 Colin Walters - - * giscanner/minixpath.py: Code to run an "XPath" - assertion against an XML tree, taken from - gir-repository/gir/tests.py. - * giscanner/Makefile.am: Ship it. - * tools/g-ir-scanner: Add --xpath-assertions option. - * gir/GLib-assertions.txt: Add a few assertions. - * gir/Makefile.am: Run them. - -2008-09-11 Colin Walters - - http://bugzilla.gnome.org/show_bug.cgi?id=551737 - - * giscanner/transformer.py: Fix strip_namespace_func to only strip - prefix if it ends with _. Tweak callback stripping to determine - based on presence of _ whether we need to use strip_namespace_func - or strip_namespace_object. - -2008-09-09 Owen Taylor - - * docs/typelib-format.txt: Wether => Whether - -2008-09-08 Colin Walters - - * girepository/girparser.c: Default to "readable" for properties. - * giscanner/ast.py: Add readable, writable etc. - * giscanner/girwriter.py: Writ them. - * giscanner/glibtransformer.py: Inspect them. - * tests/*: Update. - -2008-09-07 Colin Walters - - * giscanner/cgobject.py: Add comment. - -2008-09-07 Colin Walters - - * giscanner/cgobject.py: Also call g_thread_init. - -2008-09-07 Colin Walters - - * giscanner/transformer.py: Fix regression by not - stripping prefix before stripping namespace for unions - either. - -2008-09-06 Colin Walters - - * giscanner/transformer.py: If a namespace contains - multiple caps, try stripping both gnomekeyring_ and - gnome_keyring_. - -2008-09-07 Johan Dahlin - - Bug 551162 – giscanner does not recognize asm and __asm__ - * giscanner/scannerlexer.l: - Patch by Jani Monoses. - -2008-09-06 Colin Walters - - * girepository/girnode.c: Allow gtype_name - and gtype_init in struct and union. - * girepository/girparser.c: Parse glib: - boxed bits for both structure and union. - * girepository/gtypelib.c: Don't barf - if structure is boxed. - * giscanner/girparser.py: Parse new XML - format. - * giscanner/girwriter.py: Write out new - XML format. - * giscanner/glibast.py: Define new classes - which are both Boxed and Struct/Union, as - well as an "Other" for everything else. - * giscanner/glibtransformer.py: Handle - boxed types specially; we try to merge - them with a struct/union if one exists, - otherwise fall back to generic boxed. - * tests/*: Update. - * tools/generate.c: Write out new format. - -2008-09-06 Johan Dahlin - - * giscanner/grealpath.h: Include stdlib.h - - * docs/g-ir-generate.1: Remove leading % - -2008-09-01 Colin Walters - - * girepository/girparser.c: Look at c:type to determine - whether or not an item is a pointer. - -2008-09-01 Johan Dahlin - - * tests/scanner/Makefile.am: - Set PYTHONPATH so the scanner can run - even if you didn't install anything. - -2008-09-01 Johan Dahlin - - * configure.ac: - Post-release version bump - -=== 0.5.0 === -2008-09-01 Johan Dahlin - - * NEWS: Update - -2008-08-31 Colin Walters - - * giscanner/glibtransformer.py: Quiet info - prints for now. - -2008-08-31 Johan Dahlin - - * configure.ac: - Bump version to 0.5.0 - -2008-08-31 Colin Walters - - * giscanner/glibtransformer.py: Follow aliases to ensure - we don't get a constructor returning a basic type. - * giscanner/transformer.py: Add function to follow aliases. - * tests/ Update. - -2008-08-31 Johan Dahlin - - * giscanner/scannerlexer.l: - * giscanner/scannerparser.y: - * giscanner/sourcescanner.h: - * giscanner/sourcescanner.py: - Parse GCC extensions in the parser instead of just undeffing them - in the pre-processor. - -2008-08-31 Johan Dahlin - - * giscanner/glibtransformer.py: - Clean up a huge if. Do not add methods or constructors - to enums/flags. - * giscanner/utils.py: - second might be longer than first, check that. - -2008-08-31 Johan Dahlin - - * gir/Makefile.am: - Add a GModule.gir - -2008-08-31 Colin Walters - - * girepository/girparser.c: Don't lose if we - have no includedirs - -2008-08-31 Colin Walters - - * giscanner/glibtransformer.py: Look for libtool - library in current directory - * tests/scanner - Update. - -2008-08-30 Colin Walters - - * docs/typelib-format.txt: Add a guint32 - for dependencies. - * gir/Makefile.am: Dep on Makefile - * girepository/ginfo.c: - * girepository/girepository.c: Clean up - default typelib handling; remove global - default_typelib variable. Ensure we handle - NULL repository in more places. - Support dependency resolution. - Support lazy loading. - * girepository/girepository.h: Remove - g_irepository_unregister; we don't support - unloading typelibs since really they're - process-global. Update for lazy loading - API. - * girepository/girmodule.c: Use g_new0. - Add dependencies to GirModule. - * girepository/girparser.c: Parse dependencies. - * girepository/gtypelib.c: Add 4 bytes for - dependencies. - * tests/Makefile.am: Kill off gobject.gir, - it conflicts with the real one. - * tests/object.gir: Dep on GObject. - * tools/generate.c: Take --includedir - argument to say which directories to search - for typelibs. Print out dependencies. - -2008-08-30 Colin Walters - - * giscanner/glibtransformer.py: Reduce warning noise. - -2008-08-29 Colin Walters - - * girepository/ginfo.c: Add some assertions regarding - refcounts, just to be sure. - * giscanner/glibtransformer.py: Blacklist a few more - odd Gio methods. - -2008-08-29 Colin Walters - - * giscanner/glibtransformer.py: Blacklist a few - functions that use GError oddly - -2008-08-29 Colin Walters - - * girepository/gtypelib.c: Don't crash if no - shlib is embedded - -2008-08-29 Colin Walters - - * girepository/girparser.c: Handle chains of aliases - across modules by ensuring we fully qualify aliases - from includes. - -2008-08-29 Colin Walters - - * girepository/girparser.c: Don't search aliases - for basic types. - -2008-08-29 Colin Walters - - * girepository/girparser.c: Rewrite type parsing - to handle both GLib parsing case as well as correctly - handling GLib.List and friends. Don't try to treat - e.g. ListStore as a List. - -2008-08-29 Colin Walters - - * girepository/gtypelib.c: Add more context - during validate. - -2008-08-29 Colin Walters - - * giscanner/glibtransformer.py: Add some informative - logging messages in corner cases. Be sure we use - the most recent node set instead of a cache - when generating result set. - * tests/: Remove duplicated bits in expected girs - * girepository/girparser.c: Accept both List (for - compiling GLib) and GLib.List (what the scanner - generates). - * tests/ - Update. - * tools/generate.c: Generate canonical form. - -2008-08-29 Johan Dahlin - - * giscanner/config.py.in: - Use datarootdir instead of datadir to avoid - an autoconf warning. - -2008-08-29 Johan Dahlin - - * README: - * TODO: - * examples/gdk-pixbuf.gidl: - * libffi.pc.in: - Update and remove old cruft. - -2008-08-29 Johan Dahlin - - * Makefile.am: - * docs/g-ir-compiler.1: - * docs/g-ir-generate.1: - * docs/g-ir-scanner.1: - Add man pages for the generator and compiler. - -2008-08-29 Johan Dahlin - - * docs/g-ir-scanner.1: Document - - * giscanner/Makefile.am: - * giscanner/gidlparser.py: - * giscanner/gidlwriter.py: - * tools/g-ir-scanner: - Remove gidl support. - -2008-08-28 Colin Walters - - * tests/scanner/Makefile.am: Pass the right - --includedir args. Add a Makefile dep. - * tools/compiler.c: Pass includedirs down. - * girepository/girparser.c: Actually put - includedirs in context, pass down. Fix - locate_gir. - -2008-08-28 Colin Walters - - * gir/Makefile.am: Use --includedir - * girepository/girparser.c: Recursively parse - includes to pull in aliases and expand them. - We need this to avoid putting unknown names in - the typelibs. - * tools/compiler.c: Add --includedir option. - * giscanner/ast.py: Map size/ssize to types - too. - -2008-08-28 Tor Lillqvist - - Make check now runs successfully on Windows. - - * tools/compiler.c (write_out_typelib): Use binary mode for output - file on Windows. - - * girepository/girnode.c: Don't print NULL strings. - - * tests/invoke/Makefile.am - * tests/scanner/Makefile.am: Use -no-undefined on Windows to - convince libtool to build shared libraries. - - * tests/invoke/invoke.c: Don't needlessly include . Use - g_assert() instead of printing out expected errors. - -2008-08-28 Tor Lillqvist - - * girepository/gtypelib.h: Change type of bitfield fields from - guint to the most suitable smaller type. This makes the struct - sizes match the ones on Linux that the sanity check expects when - using gcc -mms-bitfields on Windows. - -2008-08-28 Johan Dahlin - - * Makefile.am: - * configure.ac: - * gir/Makefile.am: - * giscanner/Makefile.am: - * tests/Makefile.am: - * tests/scanner/Makefile.am: - Make distcheck pass. - -2008-08-27 Johan Dahlin - - * giscanner/Makefile.am: - Only send in -no-undefined on Win32 as it breaks on MacOS X. - -2008-08-27 Tor Lillqvist - - Make g-ir-scanner work on Windows. Still problems with the typelib - code. Changes okayed by jdahlin. - - * configure.ac: Check for Windows, set Automake conditional - OS_WIN32. Change backslashes to forward slashes in pyexecdir to - avoid shell quoting issues - - * girepository/Makefile.am: Use -no-undefined so that libtool - agrees to build a shared library on Windows. - - * girepository/girparser.c (backtrace_stderr): No backtrace() on - Windows. Empty implementation on Windows so far. - - * girepository/gtypelib.c (g_typelib_check_sanity): Give more - informative error message for the assertion failures. Tell also - what the expected size of the struct is. Check all sizes first and - fail afterwards if at least one size was different from expected. - - * tools/Makefile.am: Reorder libraries into proper logical - dependency order. - - * tools/generate.c: Don't include , not used. - - * giscanner/Makefile.am: On Windows, link with the Python library, - and install the module DLL as _giscanner.pyd. Remove the - unnecessary import library and libtool library that libtool has - installed. - - * giscanner/scannerlexer.l: Recognize the gcc __attribute__ syntax - and just skip it. Recognize also two "l" suffixes for long long - constants. Recognize also __inline__. - - * giscanner/grealpath.h (g_realpath): Implement on Windows, using - GetFullPathName(). As such, GetFullPathName() does more than the - UNIX realpath(). It also changes relative paths into absolute - paths. But for our purposes that shouldn't matter. - - * giscanner/giscannermodule.c (pygi_source_scanner_parse_file): On - Windows the file descriptor passed to us is from Python. Python - Python2.5 uses the msvcr71.dll C library, while mingw-built code - uses msvcrt.dll. On Windows, file descriptors are specific to - which C library is used. So we must find out what underlying OS - handle corresponds to the file descriptor Python passes us, and - then make that into a file descriptor valid for the C library this - code uses. - - * giscanner/sourcescanner.py (_parse): Don't need to bypass - __attribute__ as the lexer now handles it. The definition as empty - was ineffective for mingw anyway, as mingw's _mingw.h undefines - __attribute__. Close the temp file before unlinking it. - - * giscanner/cgobject.py: Use correct library name for the gobject - DLL on Windows. - - * gir/Makefile.am: Must pass the full basename of the DLLs on - Windows to g-ir-scanner. It's a bit ugly that we have to "know" - that the names of the GLib DLLs are like libglib-2.0-0.dll, but in - reality they won't change, until there is a GLib 3, and then also - the Unix code here needs changing. - - Must pass CPPFLAGS to g-ir-scanner when building GLib.gir so that - libintl.h is found. - -2008-08-26 Colin Walters - - * girepository/girepository.c: Search - $DATADIR/girepository instead of - $DATADIR/gitypelibs; this naming makes - it clearer that e.g. jgir can install - .jars there. - * gir/Makefile.am: Install there. - -2008-08-26 Colin Walters - - * girepository/gtypelib.c (_g_typelib_init): Also - use G_MODULE_SUFFIX instead of hardcoding .so. - -2008-08-26 Colin Walters - - * girepository/gtypelib.c (_g_typelib_init): Free - string in the right place. - -2008-08-26 Colin Walters - - * girepository/gtypelib.c (_g_typelib_init): Handle - both .la and .so names; this works better in the - uninstalled library case. - -2008-08-26 Johan Dahlin - - * gir/Makefile.am: - * giscanner/Makefile.am: - * giscanner/cgobject.py: - * giscanner/config.py.in: - * giscanner/sourcescanner.py: - Avoid undeffing __GNUC__, instead define - __attribute__ & friends. Remove glibconfig.h hack. - This makes gobject-introspection work better on - MacOS X, Thanks to Richard Hult for kind help. - -2008-08-25 Colin Walters - - * giscanner/glibtransformer.py: Always print - statistics. - -2008-08-25 Colin Walters - - * giscanner/glibtransformer.py: Skip over - interfaces we don't know. - -2008-08-25 Colin Walters - - * girepository/girparser.c: Parse new implements - syntax, drop gapi one. - * tests/object.gir: Update. - * tools/generate.c: Generate new syntax. - -2008-08-25 Colin Walters - - * giscanner/ast.py: Add interfaces property - to class. - * giscanner/girwriter.py: Write out implemented - interfaces. - * giscanner/glibtransformer.py: Introspect - implemented interfaces. - * tests/scanner/*: Make FooObject implement - FooInterface. - -2008-08-25 Colin Walters - - * giscanner/glibtransformer.py: More correctly pair - methods; if we have a symbol that starts with - e.g. hippo_canvas look for a matching HippoCanvas - class before accepting e.g. HippoCanvasImage. - -2008-08-24 Colin Walters - - * tools/g-ir-scanner: Filter out unknown options from - pkg-config files. - -2008-08-24 Colin Walters - - * giscanner/glibtransformer.py: Fail with better - error if we can't find library. - -2008-08-24 Colin Walters - - * tools/g-ir-scanner: Use subprocess instead of - commands, works on Windows and avoids the evil - shell on Unix. - -2008-08-24 Colin Walters - - * giscanner/glibtransformer.py: Skip over - g_object_get_type from GLib trunk. - -2008-08-24 Colin Walters - - * girepository/girepository.c (g_irepository_require): - Don't open shared library here; we already do it - in gtypelib.c. - -2008-08-24 Colin Walters - - * girepository/gtypelib.c: Add context stack so - when we get an error we can print out nicely - where it is. - -2008-08-24 Johan Dahlin - - * girepository/girparser.c (start_glib_boxed), (start_function), - (start_field), (start_alias): - Refactor a couple of parsing functions to be simpler to follow. - Avoid huge ifs. - -2008-08-24 Johan Dahlin - - * girepository/girparser.c (start_function): - Remove left-over code, checking type of function. - -2008-08-23 Colin Walters - - * giscanner/config.py: Define DATADIR. - * giscanner/transformer.py: Look in DATADIR. - -2008-08-23 Colin Walters - - * girepository/gtypelib.c: Check constructor - returns. - * girepository/girnode.c: Small tweaks. - * girepository/ginfo.c: Calculate signature offsets - more robustly. - * girepository/girparser.c: Remove duplicate - start_boxed. - * giscanner/glibtransformer.py: Avoid marking - functions which return a basic type as - constructors. - -2008-08-23 Colin Walters - - * girepository/girparser.c: Ignore . - * giscanner/girparser.py: Parse them. - * giscanner/girwriter.py: Generate them. - * giscanner/transformer.py: Process - recursively. Don't require full path for - includes, look in {$XDG_DATA_DIRS}/gir. - * tools/g-ir-scanner: Pass through includes. - * Makefile.am: Remove extra --include - args for scanner. - * *-expected.gir: Add expected includes. - -2008-08-23 Johan Dahlin - - * tests/scanner/Makefile.am: - * tests/scanner/annotation-expected.gir: - * tests/scanner/drawable-expected.gir: - Avoid duplication in the Makefile, regenerate with new - namespaces (same as the filename) - -2008-08-22 Colin Walters - - * girepository/girnode.c: Don't hardcode integers, - use GITypeTag. - -2008-08-22 Johan Dahlin - - * giscanner/sourcescanner.py: - Check for ../gobject-introspection-1.0.pc.in to determine - if we run installed or uninstalled. - -2008-08-22 Johan Dahlin - - * gir/Makefile.am: - * giscanner/sourcescanner.py: - Send in undefs/defines via writing it directly to stdin - of cpp instead of via arguments. - -2008-08-22 Colin Walters - - * tools/generate.c, tools/compiler.c: Default - to --raw. - * all Makefile.am: Update. - -2008-08-22 Colin Walters - - * girepository/girparser.c: Pass through - recursive types. Avoid overwriting errors. - * giscanner/xmlwriter.py: Always write the - XML header. - * tests/*.gir: Adjust. - * tests/scanner/Makefile.am: Build typelibs, - and generate XML from those. Once we - have a good diff mechanism... - * tests/scanner/*-expected.gir: Add XML - header. - * tools/g-ir-scanner: Accept --typelib-xml - option. - * tools/generate.c: Better defaults for transfer. - -2008-08-22 Johan Dahlin - - * configure.ac: - * gir/Makefile.am: - * giscanner/Makefile.am: - * giscanner/config.py.in: - * giscanner/sourcescanner.py: - Use the generated glibconfig.h for all scanner invokations. - Rename it to glibconfig-scanner.h and install it. - Add a config.py which so far contains the include dir. - -2008-08-22 Johan Dahlin - - * gir/Makefile.am: - Replace glibconfig.h with our own, do some replacement - for CPP/C features we do not support - -2008-08-22 Colin Walters - - * tools/generate.c (write_callable_info): Fix unref - sequence. - -2008-08-22 Colin Walters - - * gobject-introspection-1.0.pc.in: Add g-ir-generate. - * tests/Makefile.am: Support $(DEBUG) - * tools/generate.c: Do immediate close tags if no - sub-elements. - -2008-08-21 Colin Walters - - * tests/scanner/drawable-expected.gir, - * tests/scanner/drawable.c, - * tests/scanner/drawable.h: - Add a method. - -2008-08-21 Colin Walters - - * giscanner/glibtransformer.py: Compute prefix - by searching through the symbol for bits - rather than going directly from ctype; this fixes - webkit_ namespace. - -2008-08-21 Colin Walters - - * giscanner/glibtransformer.py: Also try squashing - underscores from namespace, fixes webkit_web_view_new. - -2008-08-21 Colin Walters - - * giscanner/glibtransformer.py: More ctor work, - avoid having gtk_window_group_new end up under - GtkWindow. - -2008-08-21 Colin Walters - - * giscanner/glibtransformer.py: Much simpler approach - of mapping uscored names to classes. - * giscanner/utils.py: Remove unnecessary function. - -2008-08-21 Johan Dahlin - - * girepository/girepository.c (g_irepository_require): - Plug memory leak and avoid using freed memory. - Resolve the whole module path, here as well. - -2008-08-21 Colin Walters - - * giscanner/glibtransformer.py: Look up all permutations - of class names when scanning methods/ctors based on - the prefix instead of using the return value. This - associates gtk_window_new with the right class. - -2008-08-21 Colin Walters - - * girepository/girmodule.c (g_ir_module_build_typelib): - Revert change to increment header_size; we do that in - write_string. - -2008-08-21 Colin Walters - - * girepository/girnode.c (write_string): Tweak to - use UINT instead of INT. Not likely to matter. - * girepository/girmodule.c (g_ir_module_build_typelib): - Add to header_offset as well for header strings - to match what write_string does. - * girepository/gtypelib.c: Replace is_name with - validate_name, which more strongly validates and - handles errors in a better way. Update all callers. - * giscanner/glibtransformer.py: Handle constructors - better. - -2008-08-21 Johan Dahlin - - * gir/Makefile.am (typelibs_DATA): Build and - install the Gio.typelib too - - * girepository/gtypelib.c (_g_typelib_init): - Use g_module_build_path to resolve the shlib name - -2008-08-21 Colin Walters - - * gir/Makefile.am: CLEANFILES typelibs too. - -2008-08-21 Johan Dahlin - - * giscanner/glibtransformer.py: - Do not send .la files through find_library. - -2008-08-21 Colin Walters - - * girepository/girparser.c (g_irepository_require): - Fix one small leak in error case. - -2008-08-21 Johan Dahlin - - * gir/Makefile.am: - Parse glibconfig.h as well and install the compiled - typelib - -2008-08-21 Johan Dahlin - - * gir/Makefile.am: - * giscanner/glibtransformer.py: - * tools/g-ir-scanner: - Do not hard-core library names in the Makefile, reuse - ctypes find_library instead. - -2008-08-21 Johan Dahlin - - * girepository/girparser.c (resolve_aliases): - Remove compilation warnings - -2008-08-21 Johan Dahlin - - * girepository/girepository.c (g_irepository_require): - Rewrap and fix double free bug by leaking a bit. - -2008-08-20 Colin Walters - - * girepository/girepository.c: Add new function - g_irepository_get_typelib_path which tells - us from where we loaded a namespace. - -2008-08-20 Colin Walters - - * tests/scanner/*-expected.gir: Adjust for - added shared-library. - * giscanner/giwriter.py: Make pylint happy. - -2008-08-20 Colin Walters - - * girepository/girmodule.c (g_ir_module_build_typelib): - Calculate size correctly, avoid use-after-free. - -2008-08-20 Colin Walters - - * girepository/girepository.c: Remove - g_irepository_register_file in favor of - g_irepository_require. There are two - possible deployment scenarios for typelibs: - First, separate in $DATADIR/gitypelibs/. Second, - they may be embedded in shlibs. However since - the first is now the normal case, the API is - optimized around it. - - Refactor internals to look up typelibs for - namespaces just-in-time, but we expect - consumers to call g_irepository_require. - - Also, add some docs. No one has died from that - before. - * gir/Makefile.am: Need --library for glib. - * giscanner/girwriter.py: Write out shared-library. - * tools/g-ir-writer: Take the first --library - argument as the target of shared-library. In - the future we should make this nicer with pkg-config - probably. - -2008-08-20 Colin Walters - - * girepository/girparser.py: And parse them. - -2008-08-20 Johan Dahlin - - * giscanner/glibast.py: Add gshort/gushort types - -2008-08-20 Colin Walters - - * gir/Makefile.am: Rename .gir files using GI namespace. - * girepository/girepository.c: Use XDG_DATA_DIRS for - looking up typelibs. Also typelibs are now suffixed - with .typelib. - * tests/invoke/Makefile.am: Only use metadata. - * girepository/Makefile.am: Remove unnecessary include. - * tests/scanner/Makefile.am: Update using GI namespaces - for scanner includes. - -2008-08-20 Colin Walters - - * girepository/transformer.py: Suppress aliases whose - name is a builtin. - * girepository/ast.py: Define some more aliases. - -2008-08-20 Colin Walters - - * girepository/girparser.c: Avoid alias infloops. - -2008-08-20 Colin Walters - - * tests/scanner/foo-expected.gir: Fix expected list type. - -2008-08-20 Johan Dahlin - - * giscanner/glibtransformer.py (GLibTransformer._resolve_type_name): - Add a workaround for #548689. - We can now compile gtk! - -2008-08-20 Colin Walters - - * giscanner/glibtransformer.py: Try to look up - aliases using the c:type too. - -2008-08-20 Colin Walters - - * girepository/girparser.c: Parse union fields. - -2008-08-20 Johan Dahlin - - * giscanner/ast.py: Make time_t an alias for long - - * gir/gio-2.0-good.gir: - * gir/glib-2.0-good.gir: - * gir/gobject-2.0-good.gir: - Regnerate - * giscanner/glibtransformer.py: - Do not delete Class structures, we need them in gdk/gtk. - * tests/scanner/drawable-expected.gir: - * tests/scanner/foo-expected.gir: - * tests/scanner/utility-expected.gir: - Update tests. - -2008-08-20 Johan Dahlin - - * tests/scanner/Makefile.am: - * tests/scanner/annotation-expected.gir: - * tests/scanner/annotation.c (annotation_object_class_init), - (annotation_object_init), (annotation_object_method), - (annotation_object_in), (annotation_object_out), - (annotation_object_inout), (annotation_object_inout2), - (annotation_object_inout3), (annotation_object_calleeowns), - (annotation_object_calleesowns), (annotation_object_get_strings), - (annotation_object_with_voidp), (annotation_object_get_objects), - (annotation_object_create_object), (annotation_object_allow_none): - * tests/scanner/annotation.h: - * tests/scanner/foo-expected.gir: - * tests/scanner/foo.c: - * tests/scanner/foo.h: - Split out annotation tests out of foo - -2008-08-20 Johan Dahlin - - * tests/scanner/Foo-expected.gir: - * tests/scanner/Makefile.am: - * tests/scanner/foo-expected.gir: - * tests/scanner/foo-object.h: - * tests/scanner/foo.c: - Foo->foo, foo-object.h -> foo.h - -2008-08-20 Johan Dahlin - - * tests/scanner/Foo-expected.gir: - * tests/scanner/Makefile.am: - * tests/scanner/drawable-expected.gir: - * tests/scanner/drawable.c (test_drawable_class_init), - (test_drawable_init): - * tests/scanner/drawable.h: - * tests/scanner/foo-object.h: - * tests/scanner/foo.c (foo_boxed_method): - Move the drawable parts out of Foo to its own test. - -2008-08-20 Johan Dahlin - - * tests/scanner/Foo-expected.gir: - * tests/scanner/foo-object.h: - * tests/scanner/foo.c (foo_drawable_class_init), - (foo_drawable_init): - Add a based on GdkDrawable which generates - a broken gir. - -2008-08-19 Colin Walters - - * giscanner/transformer.py: Don't try - to strip prefix before namespace. - -2008-08-19 Johan Dahlin - - * giscanner/transformer.py: - * tests/scanner/Foo-expected.gir: - * tests/scanner/foo-object.h: - Add support for typedef void foo type of - aliases. - -2008-08-19 Johan Dahlin - - * giscanner/ast.py: - * giscanner/girwriter.py: - * giscanner/glibtransformer.py: - * giscanner/transformer.py: - * tests/scanner/Foo-expected.gir: - Add basic support for union, base the code much - on Struct. Add a testcase. - -2008-08-19 Johan Dahlin - - * tests/scanner/Foo-expected.gir: - * tests/scanner/foo-object.h: - Add a union testcase which the compiler currently - barfs at. - -2008-08-19 Johan Dahlin - - * gobject-introspection-1.0.pc.in: - Add a g_ir_compiler variable - -2008-08-19 Colin Walters - - * giscanner/ast.py: Rework types to be more closely - based on GITypeTag. - * giscanner/girparser.py: Parse more bits. - * giscanner/girwriter.py: Write sequences in a new - way that specifies container type. - * giscanner/glibast.py: Adjust for ast.py changes, - add 'ctype' property to GLibObject and GLibInterface - so we can look things up by it later. - * gicanner/transformer.py: Names is new class holding - the various namespaces we manage. Do not confuse - with Namespace which is toplevel XML node effectively. - Rework all type resolution to go through - _resolve_type_name_1. - * giscanner/glibtransformer.py: Raise UnknownTypeError - instead of ValueError for cleanliness. Add Unresolved - class to mark types whose parent we haven't seen yet. - Use new Names object from transformer.py. - Correctly look up parent=. - Fix type validation to handle sequences. - * tests/scanner/Foo-expected.gir: Update for sequence - work, int instead of int32. - * tools/g-ir-scanner: Add --noclosure option - * gir/Makefile.am: Use --noclosure by default for - GLib/GObject. - -2008-08-18 Johan Dahlin - - * gir/gio-2.0-good.gir: - * gir/glib-2.0-good.gir: - * gir/gobject-2.0-good.gir: - Regenerate. - -2008-08-18 Johan Dahlin - - * giscanner/ast.py: - * giscanner/girparser.py: - * giscanner/girwriter.py: - * giscanner/glibast.py: - * giscanner/glibtransformer.py: - * giscanner/transformer.py: - * tests/scanner/Foo-expected.gir: - * tests/scanner/foo-object.h: - * tests/scanner/utility-expected.gir: - * tests/scanner/utility.h: - Redo type resolving and validation. - Add a couple of new tests. - Patch mostly written by Colin. - -2008-08-18 Johan Dahlin - - * gir/Makefile.am: - * giscanner/girparser.py: - Set ctype of enums - * giscanner/transformer.py: - Improve enum parsing for enums without a GType. - Make flags/enum references to other girs work - * giscanner/utils.py: - Simplify this a bit - * tests/scanner/Makefile.am: - * tests/scanner/foo-object.h: - * tests/scanner/utility-expected.gir: - * tests/scanner/utility.h: - Add a new test for external enum references - -2008-08-18 Johan Dahlin - - * docs/global-module-registry.txt: Update - - * tests/array.gir: Update with new type proposal - - * girepository/girepository.c (g_type_tag_to_string): - * girepository/girepository.h: - * girepository/girnode.c (g_ir_node_get_full_size_internal), - (find_entry_node): - * girepository/girnode.h: - Make enum serializing functions public. Clean up some whitespace. - -2008-08-17 Johan Dahlin - - * docs/global-module-registry.txt: - Add a document for an on disk module registry format - -2008-08-17 Johan Dahlin - - * gir/Makefile.am: - * gir/gio-2.0-good.gir: - Add a gio gir. - -2008-08-17 Johan Dahlin - - * gir/Makefile.am: - * gir/glib-2.0-good.gir: - * gir/gobject-2.0-good.gir: - * giscanner/cgobject.py: - * giscanner/glibtransformer.py: - Regenerate GObject & GType. - Avoid warnings when generating gobject-2.0.gir. - Introspect a little more, and skip *_get_type functions. - -2008-08-17 Colin Walters - - * gir/glib-2.0.gir, gir/gobject-2.0.gir: - Rename to -good, always generate during build. - * gir/Makefile.am: Ensure .gir files dep on - all scanner sources. - * Makefile.am: Switch build order to ensure - the scanner is ready before we do gir/. - * tools/g-ir-scanner: Look for .git too. - -2008-08-17 Johan Dahlin - - * girepository/gtypelib.c (validate_enum_blob): - * giscanner/glibtransformer.py: - * giscanner/transformer.py: - Remove resolve_possible_typedefs, it was unused. - Allow multiple enum values of the sample value in an enum, - since it's actually pretty common. - Register enums so they can be resolved too. - -2008-08-16 Johan Dahlin - - * giscanner/girparser.py: - Parse enumeration/bitfield. - -2008-08-16 Johan Dahlin - - * giscanner/girparser.py: - Parse boxed types. - -2008-08-16 Johan Dahlin - - * giscanner/glibtransformer.py: - Resolve type names for alias targets - * giscanner/transformer.py: - Skip FILE* parameters fow now - -2008-08-16 Johan Dahlin - - * gir/glib-2.0.gir: - * gir/gobject-2.0.gir: - Regenerate - - * tests/scanner/Makefile.am: - parser -> scanner - -2008-08-15 Colin Walters - - * giscanner/glibtransformer.py: Explicitly construct - new list, since we're deleting as we iterate. - Don't delete all structures which end in Class; just - ones which have a paired GObject. - Fix printing of type warning. - * giscanner/transformer.py: Make strip_namespace_object - be the identity function if it doesn't match the - namespace. - -2008-08-15 Colin Walters - - * giscanner/cgobject.py: Define yet more argument - prototypes; fix prototype for g_type_fundamental. - -2008-08-14 Johan Dahlin - - * tests/Makefile.am: - * tests/constant.gir: - * tests/gobject.gir: - * tests/struct.gir: - * tools/generate.c (write_struct_info): - Fix generator for constant/gobject/struct - -2008-08-14 Johan Dahlin - - * tests/Makefile.am: - * tests/enum.gir: - * tools/generate.c (write_enum_info): - Fix generation of enum/bitfields - -2008-08-14 Johan Dahlin - - * girepository/girparser.c (start_field), (start_constant), - (start_type), (end_element_handler): - Clear up constant parsing - - * tests/object.gir: - Update - - * tools/generate.c (write_callable_info), (write_function_info), - (write_callback_info), (write_constant_info), (write_signal_info), - (write_vfunc_info), (write_property_info), (write_object_info), - (write_interface_info): - Constants/Signals are handled now. - -2008-08-14 Johan Dahlin - - * girepository/girparser.c (start_type): - Don't require c:type. - * tests/Makefile.am: - Test boxed.gir - * tests/boxed.gir: - Update, remove parts we don't support yet - * tests/roundtrips.sh: - Remove - * tools/generate.c (write_type_info), (write_field_info), - (write_callable_info), (write_struct_info): - Make it emit proper gir. - -2008-08-14 Johan Dahlin - - * giscanner/transformer.py: - New internal function for adding a new node. - -2008-08-14 Johan Dahlin - - * gir/Makefile.am: - Define an internal _H_ variable so we skip parsing both - i18n headers, only one is needed. - * gir/glib-2.0.gir: - Add the glib-2.0.gir too. - * giscanner/glibast.py: - Add gconstpointer as an alias for ANY - * giscanner/transformer.py: - Do not lower case enumeration names per se. - Skip functions which has parameters called 'va_list' - -2008-08-14 Colin Walters - - * giscanner/transformer.py: Comment data structures. - Also squash pointers in resolve_type_name to correspond - with what we do for params. - * giscanner/glibtransformer.py: Print warnings in more - situations. Rework checks for method/constructor to - look up in our GType database instead of just checking - for *. Avoid generating for GObject which - duplicate the . - * gir/Makefile.am: Generate glib-2.0.gir and gobject-2.0.gir - in here. - -2008-08-14 Johan Dahlin - - * giscanner/girwriter.py: - * giscanner/glibast.py: - * giscanner/glibtransformer.py: - * giscanner/transformer.py: - * misc/pyflakes.py: - * tests/Makefile.am: - Add pyflakes.py and run it in make check. - Update the source code to fix the errors reported by - pyflakes. - -2008-08-14 Johan Dahlin - - * giscanner/ast.py: - * giscanner/girparser.py: - * giscanner/glibast.py: - * giscanner/glibtransformer.py: - Refactor the parser a bit. - Add parent type to interfaces and update callsites. - -2008-08-14 Johan Dahlin - - * giscanner/glibtransformer.py: - * giscanner/utils.py: - Refactor a bit, avoid isinstance and add a method - for each type we parse. - -2008-08-14 Johan Dahlin - - * giscanner/ast.py: - * giscanner/girparser.py: - * giscanner/glibtransformer.py: - * tests/Makefile.am: - Run pep8.py in make check, fix old errors. - -2008-08-13 Colin Walters - - * giscanner/girparser.py: Parse records. - -2008-08-13 Colin Walters - - * gir/Makefile.am: Install again. - * gir/gobject-2.0.gir: Add some more bits. - -2008-08-13 Colin Walters - - * gir/gobject-2.0.gir: Use correct namespace, add GType. - * giscanner/girparser.py: Handle aliases. - * giscanner/transformer.py: Record aliases. Make resolver - functions public; we now call into these explicitly from - glibtransformer. Handle resolving aliases. - * giscanner/glibtransformer.py: Separate our internal namespace - from included ones. Call up into transformer's resolver functions. - -2008-08-13 Johan Dahlin - - * girepository/girnode.c (g_ir_node_get_full_size_internal): - * girepository/girparser.c (start_class): - * giscanner/glibtransformer.py: - Allow get_type to be None, set a get_type for GInitiallyUnowned too. - -2008-08-13 Johan Dahlin - - * giscanner/cgobject.py: - Register GInitiallyUnowned - * giscanner/girwriter.py: - * giscanner/glibtransformer.py: - Special case GObject/GInitially owned as they are a bit special to use. - -2008-08-13 Colin Walters - - * tests/scanner/Foo-expected.gir, tests/scanner/utility-expected.gir: - Object is in GObject namespace. - -2008-08-13 Colin Walters - - * giscanner/girparser.py: Fix processing of functions - from last commit. - -2008-08-13 Colin Walters - - * giscanner/girparser.py: Parse more than just - - * tools/g-ir-scanner: - Allow multiple libraries - * giscanner/glibtransformer.py: - Rename load_library to add_library, traverse over all libraries - when trying to resolve a function - -2008-08-12 Colin Walters - - * giscanner/transformer.py: Record typedefs as elements. - Also attempt to look up types in external namespaces. - * giscanner/girwriter.py: Write them. - * giscanner/glibtransformer.py: Rework resolver using real instanceof - checks. Resolve interface methods and properties. - * tests/scanner/foo-object.h: Add a method with typedef. - * tests/scanner/Foo-expected.gir: Update. - * girepository/girnode.c: Debug tweaks. - * girepository/girparser.c: Make a first pass through the XML where we - record all the aliases. This lets us resolve them as we go through the - second pass. - * gir/Makefile.am: Don't install gobject-2.0.gir; we want that to come - from gir-repository. - -2008-08-12 Colin Walters - - * giscanner/glibtransformer.py: Resolve typedefs (e.g. AtkAttributeSet -> GSList). - Correctly do subclasseing in 2nd pass resolution. Handle callbacks in structure - fields. - * giscanner/transformer.py: Record typedefs and expose public API for resolving - them. - * tests/scanner/Foo-expected.gir: Fix expected callback types. - -2008-08-12 Colin Walters - - * giscanner/glibtransformer.py: Also transform object properties. - -2008-08-12 Colin Walters - - * giscanner/glibtransformer.py: Also transform callbacks - and structure field types. - * tests/scanner/Fooe-expected.gir: Update to expect correct - names for callbacks and structs. - -2008-08-12 Colin Walters - - * girepository/girparser.c: Handle 'any'. - * tests/scanner/Foo-expected.gir, tests/scanner/foo-object.h: - Add test for void *. - -2008-08-12 Colin Walters - - * giscanner/glibtransformer.py: We need to do type - resolution in a second pass after we've seen all the - enums, records, etc. - -2008-08-12 Colin Walters - - * tests/scanner/Foo-expected.gir, tests/scanner/foo-object.h: - Add enum return value. - * giscanner/glibtransformer.py: Transform function return types - too. - -2008-08-12 Colin Walters - - * tests/scanner/Makefile.am: Dep .gir files on scanner - sources too. Also remove @ so we see scanner invocations. - -2008-08-12 Colin Walters - - * girepository/girparser.c, girepository/gtypelib.c, - girepository/gtypelib.h, girepository/girnode.c: - Remove usage of (GAPI-oriented) TypeTag in favor of - GITypeTag from girepository.h. - -2008-08-10 Colin Walters - - * tests/roundtrips.sh: Use the correct tests. - -2008-08-10 Colin Walters - - * giscanner/cgobject.py: Declare/wrap a few more functions. - Fix parameter types for g_object_new and g_type_fundamental. - -2008-08-10 Colin Walters - - * giscanner/cgobject.py: Add new decorator @gwrap which forces - us to declare types for both return value and parameters. The - ctypes default of 'int' is bad because it hides 32/64 bit - problems. Convert all existing functions to use it. - -2008-08-09 Johan Dahlin - - * giscanner/__init__.py: - * giscanner/ast.py: - * giscanner/cgobject.py: - * giscanner/gidlparser.py: - * giscanner/gidlwriter.py: - * giscanner/girparser.py: - * giscanner/girwriter.py: - * giscanner/glibast.py: - * giscanner/glibtransformer.py: - * giscanner/odict.py: - * giscanner/sourcescanner.py: - * giscanner/transformer.py: - * giscanner/utils.py: - * giscanner/xmlwriter.py: - * tools/g-ir-scanner: - - PEP8ify - -2008-08-09 Johan Dahlin - - * relaxng/api.xml: - * relaxng/c-types.xml: - * relaxng/g-types.xml: - * relaxng/relaxng.rng: - * relaxng/util.xml: - Remove outdated relaxng schemas. - -2008-08-09 Johan Dahlin - - * *.[ch]: - Rename metadata to typelib in variable names, - comments and apis. - -2008-08-09 Johan Dahlin - - * tools/scanner.c: - * tools/scanner.h: - Remove old C scanner, which got rewritten in python. - -2008-08-09 Johan Dahlin - - * girepository/Makefile.am: - * tools/Makefile.am: - * tools/girmodule.c: - * tools/girmodule.h: - * tools/girnode.c: - * tools/girnode.h: - * tools/girparser.c: - * tools/girparser.h: - * tools/girwriter.c: - * tools/girwriter.h: - Move shared *.[ch] files to girepository from tools - -2008-08-09 Johan Dahlin - - * tests/Makefile.am: - * tests/array.test: - * tests/boxed.test: - * tests/constant.test: - * tests/enum.test: - * tests/errors.test: - * tests/function.test: - * tests/gobject.test: - * tests/interface.test: - * tests/object.test: - * tests/struct.test: - * tests/types.test: - * tests/union.test: - * tests/xref1.test: - * tests/xref2.test: - Rename *.test to *.gir - -2008-08-09 Johan Dahlin - - * configure.ac: - * tests/Makefile.am: - * tests/parser/Foo-expected.gir: - * tests/parser/Makefile.am: - * tests/parser/foo-object.h: - * tests/parser/foo.c: - * tests/parser/utility-expected.gir: - * tests/parser/utility.c: - * tests/parser/utility.h: - * tests/scanner/Makefile.am: - Rename tests/parser to test/scanner - -2008-08-08 Colin Walters - - * tests/roundtrips.sh: Use local .gir files again. - -2008-08-08 Colin Walters - - * tests/invoke/Makefile.am: .gir file depends on libtool - library. - -2008-08-08 Colin Walters - - * tools/girnode.c: Pass through parent node so we can - print the node whose child is NULL, if that occurs. - -2008-08-08 Johan Dahlin - - * tests/Makefile.am: - Disable roundtrip tests which are not yet working - * tests/invoke/testfns.gir: - Rewrite as gir. - -2008-08-08 Johan Dahlin - - * giscanner/girwriter.py: - type -> ntype - * giscanner/glibast.py: - * giscanner/glibtransformer.py: - Swap order of members, to keep it consistent with - base enum class - -2008-08-08 Johan Dahlin - - * girepository/gtypelib.c (validate_header): - * girepository/gtypelib.h: - * giscanner/ast.py: - * giscanner/girwriter.py: - * giscanner/sourcescanner.c (gi_source_symbol_ref), - (gi_source_symbol_unref): - * tests/array.test: - * tests/boxed.test: - * tests/constant.test: - * tests/enum.test: - * tests/errors.test: - * tests/function.test: - * tests/gobject.test: - * tests/interface.test: - * tests/invoke/Makefile.am: - * tests/invoke/testfns.xml: - * tests/object.test: - * tests/parser/Makefile.am: - * tests/roundtrips.sh: - * tests/struct.test: - * tests/types.test: - * tests/union.test: - * tests/xref1.test: - * tests/xref2.test: - * tools/Makefile.am: - * tools/compiler.c (main): - * tools/generate.c (write_callable_info), (write_function_info), - (write_repository): - * tools/gidlmodule.c: - * tools/gidlmodule.h: - * tools/gidlnode.c: - * tools/gidlnode.h: - * tools/gidlparser.c: - * tools/gidlparser.h: - * tools/gidlwriter.c: - * tools/gidlwriter.h: - * tools/scanner.c (create_node_from_gtype), - (create_node_from_ctype), (g_igenerator_process_properties), - (g_igenerator_process_signals), (g_igenerator_create_object), - (g_igenerator_create_interface), (g_igenerator_create_boxed), - (g_igenerator_create_enum), (g_igenerator_create_flags), - (g_igenerator_process_function_symbol), - (g_igenerator_process_unregistered_struct_typedef), - (g_igenerator_process_struct_typedef), - (g_igenerator_process_union_typedef), - (g_igenerator_process_enum_typedef), - (g_igenerator_process_function_typedef), - (g_igenerator_process_constant), (g_igenerator_process_symbols), - (g_igenerator_add_module), (g_igenerator_add_include_idl): - Merge in the gir-compiler branch. - Thanks to Philip and Colin for their help. - -2008-07-26 Colin Walters - - * tools/Makefile.am (bin_PROGRAMS): Install g-idl-compiler - and g-idl-generate to go along with how we're changing this - module to be installed. - * gobject-introspection-1.0.pc.in: Set up Cflags and Libs. - -2008-07-24 Colin Walters - - * girepository/girepository.c (g_irepository_register): Add - environment variable G_IREPOSITORY_VERBOSE so we can print - out what we're doing. - * girepository/girepository.c (g_irepository_register_file): - Add GError error message to g_debug call. - -2008-07-08 Jürg Billeter - - * giscanner/glibast.py: - - Fix typo - -2008-06-21 Johan Dahlin - - * giscanner/girparser.py (GIRParser._parse_api): Ignore a few - more tags - -2008-06-20 Johan Dahlin - - * giscanner/ast.py: - * giscanner/girwriter.py: - * giscanner/transformer.py: - * tests/parser/Foo-expected.gir: - * tests/parser/foo-object.h: - * tests/parser/foo.c (foo_object_allow_none): - Add support for gtk-doc annotations for allow-none. - Add test case. - -2008-06-19 Johan Dahlin - - * giscanner/ast.py: - * giscanner/girwriter.py: - * giscanner/glibast.py: - * giscanner/glibtransformer.py: - * giscanner/transformer.py: - * tests/parser/Foo-expected.gir: - Start using abstract type instead of the raw C types. - Register a bunch of glib types we care about. - -2008-06-19 Rob Taylor - - * AUTHORS: - Update authors - -2008-06-08 Philip Van Hoof - - * girepository/girepository.c: - * girepository/gtypelib.c: - * girepository/ginfo.c: - * girepository/ginvoke.c: - * girepository/girepository.h: - * girepository/gtypelib.h: - * girepository/gmetadata.c: - * girepository/Makefile.am: - * girepository/gmetadata.h: - * tools/compiler.c: - * tools/gidlmodule.c: - * tools/gidlnode.c - * tools/generate.c: - * tools/gidlmodule.h: - * tools/gidlparser.c: - - Renamed GMetadata to GTypelib - -2008-06-07 Johan Dahlin - - * giscanner/xmlwriter.py: - Improve line wrapping when > 79 charaters - -2008-06-05 Jürg Billeter - - * giscanner/ast.py: - * giscanner/girwriter.py: - * giscanner/transformer.py: - Use element for field types - * tests/parser/Foo-expected.gir: - Update testcase - -2008-06-04 Johan Dahlin - - * giscanner/glibtransformer.py: - Fix a bug which prevented GdkEvent from being generated - -2008-06-03 Johan Dahlin - - * giscanner/Makefile.am: - * giscanner/ast.py: - * giscanner/girwriter.py: - * giscanner/glibast.py: - * giscanner/glibtransformer.py: - * giscanner/transformer.py: - * giscanner/utils.py: - * tests/parser/Foo-expected.gir: - Improve enum member parsing and introspection - -2008-05-31 Johan Dahlin - - * giscanner/scannerparser.y: - * giscanner/sourcescanner.h: - * giscanner/sourcescanner.py: - Add a new source type enum for member. - Use __repr__ for improved debugging - * giscanner/girparser.py: - Ignore some more - * giscanner/transformer.py: - Improve parsing of struct members. - * tests/parser/foo-object.h: - Add a new testcase - -2008-05-31 Johan Dahlin - - * giscanner/xmlwriter.py: - Improve error reporting when trying to quote None. - * giscanner/girparser.py: - Do not print warnings when including more complete .gir files - * giscanner/girwriter.py: - Do not require a name for parameters, add a todo for singletons - * giscanner/glibtransformer.py: - Refactor the way structs are done, add a couple of hacks to allow - us to get further. - * giscanner/transformer.py: - Add enough hacks so cairo, atk and pango.gir can be parsed properly - * gobject-introspection-1.0.pc.in: - Export girdir, so we can access gobject-2.0.gir from outside - -2008-05-31 Johan Dahlin - - * tools/g-ir-scanner: - * tests/parser/Makefile.am: - Update sys.path before running the parser so we don't have - to setup PYTHONPATH ourselves. - - * Makefile.am: - * configure.ac: - * girepository/Makefile.am: - * giscanner/transformer.py: - * gobject-introspection-1.0.pc.in: - * gobject-introspection.pc.in: - * tools/Makefile.am: - - Rename pkg-config name to gobject-introspection-1.0, - Do not installed anything which is not using the gir format. - Disable compililation the old C scanner, but still keep the source - until all the remaning functionallity has been ported. - -2008-05-31 Johan Dahlin - - * giscanner/giscannermodule.c (symbol_get_ident): Prevent - a crash when symbol->indent is NULL. - - * giscanner/sourcescanner.py (ctype_name): Add ctype_name, - a function to convert a CTYPE symbol to a string - -2008-05-24 Johan Dahlin - - * giscanner/ast.py: - * giscanner/girwriter.py: - * giscanner/giscannermodule.c - (pygi_source_scanner_append_filename), - (pygi_source_scanner_parse_file): - * giscanner/glibtransformer.py: - * giscanner/sourcescanner.py: - Revert back to using temporary files to send in headers. - Allow Functions to be passed in as callbacks, add a couple - of try/excepts missing features. - We can now scan pango - -2008-05-08 Johan Dahlin - - * giscanner/glibtransformer.py: - * giscanner/transformer.py: - Move namespace stripping glibtransformer->transformer - -2008-05-08 Johan Dahlin - - * giscanner/ast.py: - * giscanner/girwriter.py: - * giscanner/glibtransformer.py: - * giscanner/transformer.py: - * tools/g-ir-scanner: - Introduce a namespace ast node - -2008-05-05 Johan Dahlin - - * giscanner/__init__.py: - * giscanner/sourcescanner.py: - * giscanner/transformer.py: - Move sourcescanner symbols to the sourcescanner module, instead - of in the global __init__ namespace. - -2008-05-03 Johan Dahlin - - * giscanner/glibtransformer.py: - * tools/g-ir-scanner: - Handle missing parameters better, allow - and + in .la dlname - filenames. - -2008-05-03 Johan Dahlin - - * giscanner/__init__.py: - * giscanner/ast.py: - * giscanner/girwriter.py: - * giscanner/glibtransformer.py: - * giscanner/transformer.py: - Parse struct fields properly, improve debugging. - -2008-04-29 Johan Dahlin - - * giscanner/ast.py: - * giscanner/girwriter.py: - * giscanner/transformer.py: - * tests/parser/Foo-expected.gir: - * TODO: - Use transfer-ownership everywhere, to mark ownership/calle/caller etc. - -2008-04-29 Johan Dahlin - - * Makefile.am: - * docs/g-ir-scanner.1: - * metadata-annotations-proposal.txt: - * metadata-format.txt: - Add a basic, unfinshed man page for g-ir-scanner, move documents into .txt - -2008-04-29 Johan Dahlin - - * giscanner/girwriter.py: - * giscanner/glibtransformer.py: - * giscanner/transformer.py: - * giscanner/xmlwriter.py: - * tests/parser/Foo-expected.gir: - * tests/parser/foo-object.h: - Write record/structs to gir file too. Add a couple of tests, - fix an off by one error in xmlwriter.py. - -2008-04-28 Johan Dahlin - - * giscanner/xmlwriter.py: Calculate the line length properly, - include the provided extra indentation in the calculation, really. - -2008-04-28 Johan Dahlin - - * giscanner/ast.py: - * giscanner/glibast.py: - * giscanner/glibtransformer.py: - * giscanner/transformer.py: - * tools/g-ir-scanner: - Add a --strip-prefix and sort out confusion between names and symbols - for functions and struct + derivaties. - Refactor bootstrap of g-ir-scanner, so we can set options on - Transformer() before parsing everything. - -2008-04-28 Johan Dahlin - - * giscanner/transformer.py (Transformer._traverse_one): Avoid recursion - when scanning girepository.h - - * giscanner/sourcescanner.py (SourceScanner._preprocess): Define - a __GI_SCANNER__ when we run. - -2008-04-28 Johan Dahlin - - * giscanner/ast.py: - * giscanner/girwriter.py: - * giscanner/glibast.py: - * giscanner/glibtransformer.py: - * tests/parser/Foo-expected.gir: - * tests/parser/utility-expected.gir: - Rename most c:identifier to c:type. Add new ones to - class/interface/enum/boxed. - -2008-04-28 Johan Dahlin - - * giscanner/ast.py: - * giscanner/girwriter.py: - * giscanner/glibtransformer.py: - * tests/parser/Foo-expected.gidl: - * tests/parser/Makefile.am: - Move c:identifier from return-value to subchild type, - as per Jürgs suggestion - -2008-04-28 Johan Dahlin - - * giscanner/girwriter.py: - * tests/parser/Foo-expected.gir: - Write property.type as a child node. - -2008-04-27 Johan Dahlin - - * Makefile.am: - * configure.ac: - * gidl/Makefile.am: - * gidl/gobject-2.0.gidl: - * gir/Makefile.am: - * gir/gobject-2.0.gir: - * tests/parser/Makefile.am: - Replace the GObject gidl with a GObject gir. - -2008-04-27 Johan Dahlin - - * tools/Makefile.am (bin_SCRIPTS): g-ir-scanner is a script, - not a program. - - * giscanner/xmlwriter.py: - * tests/parser/Foo-expected.gir: - Include indentation in line length calculation - -2008-04-27 Johan Dahlin - - * giscanner/girparser.py: - Prettify NS parsing using elementtree. - -2008-04-27 Johan Dahlin - - * configure.ac: - * giscanner/Makefile.am: - * giscanner/girparser.py: - * giscanner/glibtransformer.py: - * tests/parser/Foo-expected.gidl: - * tests/parser/Foo-expected.gir: - * tests/parser/Makefile.am: - * tests/parser/utility-expected.gidl: - * tests/parser/utility-expected.gir: - * tools/g-ir-scanner: - Switch over to GIR as the default format. Add a simple GIDL - parser. - Update tests and fix simplify makefiles by depending - on GNU make extensions. - -2008-04-27 Johan Dahlin - - * giscanner/xmlwriter.py: - Wrap attributes for lines which are wider than 79 characters - - * giscanner/scannerlexer.l: - Allow parenthesis in annotations - - * giscanner/ast.py: - * giscanner/gidlwriter.py: - * giscanner/girwriter.py: - * giscanner/glibtransformer.py: - * giscanner/transformer.py: - Add initial sequence support, including annotation. - Refactor type handling a bit. - -2008-04-27 Johan Dahlin - - * tests/parser/Foo-expected.gidl: - * tests/parser/foo-object.h: - * tests/parser/foo.c (foo_object_class_init), - (foo_object_get_strings), (foo_object_get_objects): - Add two new functions to check sequence return values. - Also fixes a compilation warning. - -2008-04-27 Johan Dahlin - - * giscanner/giscannermodule.c (]): Cast the getter, avoids - a compilation warning. - - * tools/Makefile.am (g_ir_scanner_SOURCES): - g-ir-scanner has no sources. - -2008-04-25 Johan Dahlin - - * giscanner/Makefile.am: - * giscanner/ast.py: - * giscanner/gidlparser.py: - * giscanner/gidlwriter.py: - * giscanner/girwriter.py: - * giscanner/glibast.py: - * giscanner/glibtransformer.py: - * giscanner/transformer.py: - Split out nodes to ast.py and glibast.py - -2008-04-25 Johan Dahlin - - * giscanner/Makefile.am: - * giscanner/gidlparser.py: - * giscanner/gidlwriter.py: - * giscanner/girwriter.py: - * giscanner/glibtransformer.py: - * giscanner/gobjecttreebuilder.py: - * giscanner/transformer.py: - * giscanner/treebuilder.py: - * tools/g-ir-scanner: - Rename treebuilder to transformer and - gobjectreebuilder to glibtransformer. - -2008-04-25 Johan Dahlin - - * giscanner/Makefile.am: - * giscanner/__init__.py: - * giscanner/cgobject.py: - * giscanner/gidlparser.py: - * giscanner/gidlwriter.py: - * giscanner/girwriter.py: - * giscanner/gobjecttreebuilder.py: - * giscanner/odict.py: - * giscanner/sourcescanner.py: - * giscanner/treebuilder.py: - * giscanner/xmlwriter.py: - * tools/Makefile.am: - * tools/g-ir-scanner: - Add LGPLv2 license header and install all python files - -2008-04-25 Johan Dahlin - - * TODO: - * giscanner/gidlwriter.py: - * giscanner/giscannermodule.c (pygi_source_directive_new), - (directive_get_options), (pygi_source_symbol_new), - (symbol_get_base_type), (pygi_source_type_new), - (type_get_base_type), (type_get_child_list), - (pygi_source_scanner_get_symbols), - (pygi_source_scanner_get_directives): - * giscanner/gobjecttreebuilder.py: - * giscanner/sourcescanner.py: - * giscanner/treebuilder.py: - * tests/parser/foo-object.h: - Add support for virtual methods. - Pair struct FooClass with struct Foo. - Clean up the SourceScanner bindings a bit. - Add a testcase for virtual methods. - -2008-04-25 Johan Dahlin - - * giscanner/cgobject.py: - * giscanner/gidlwriter.py: - * giscanner/gobjecttreebuilder.py: - Add support for signals - - * tests/parser/foo.c (foo_object_class_init): - * Foo-expected.gidl: - Add a signal and update the expected output. - -2008-04-24 Johan Dahlin - - * giscanner/gidlwriter.py: - * giscanner/girwriter.py: - * giscanner/giscannermodule.c (directive_get_name), - (directive_get_value), (directive_get_options), - (symbol_get_directives), (symbol_set_directives), - (pygi_source_scanner_parse_file), - (pygi_source_scanner_lex_filename), - (pygi_source_scanner_get_directives), (init_giscanner): - * giscanner/sourcescanner.c (gi_source_scanner_get_directives): - * giscanner/sourcescanner.h: - * giscanner/sourcescanner.py: - * giscanner/treebuilder.py: - * tools/g-ir-scanner: - Add support for source/header annotations. - -2008-04-22 Johan Dahlin - - * giscanner/gidlwriter.py: - * giscanner/girwriter.py: - * giscanner/gobjecttreebuilder.py: - * giscanner/treebuilder.py: - Add support for Callbacks - -2008-04-22 Havoc Pennington - - * girepository/ginvoke.c (g_function_info_invoke): If a symbol is - not in metadata->module, look for it in the global module, in case - some other object or the app itself provides the symbol. - -2008-04-22 Havoc Pennington - - * girepository/gmetadata.c (_g_metadata_init): hack to avoid - dlopening a library that is already in the main app, by checking - whether one of the lib's symbols is already loaded. - -2008-04-22 Johan Dahlin - - * tests/parser/Foo-expected.gidl: - * tests/parser/foo-object.h: - Add a callback test - -2008-04-22 Havoc Pennington - - * girepository/ginfo.c (g_interface_info_find_method): - Use interface_blob_size not object_blob_size to compute offset. - -2008-04-22 Havoc Pennington - - * girepository/gmetadata.c (_g_metadata_init): remove - G_MODULE_BIND_LOCAL flag when loading libraries, since some libs - (Glade and Clutter for example) rely on being loaded globally. - -2008-04-22 Havoc Pennington - - * girepository/ginfo.c (g_registered_type_info_get_g_type): new - function to get the GType given a RegisteredTypeInfo - -2008-04-22 Johan Dahlin - - * COPYING: Add a LGPL license, to prevent automake to - put in a copy of GPL here. Pointed out by Havoc. - - * girepository/ginfo.c (g_info_from_entry), (g_type_info_new), - (g_type_info_is_pointer), (g_type_info_get_tag), - (g_type_info_get_param_type), (g_type_info_get_interface), - (g_type_info_get_array_length), (g_type_info_is_zero_terminated), - (g_type_info_get_n_error_domains), (g_type_info_get_error_domain), - (g_error_domain_info_get_codes), (g_enum_info_get_value), - (g_object_info_get_interface), (g_object_info_get_field), - (g_interface_info_get_prerequisite), - (g_signal_info_get_class_closure), (g_constant_info_get_value): - * girepository/ginvoke.c (get_ffi_type): - * girepository/girepository.h: - * girepository/gmetadata.c (g_metadata_get_dir_entry), - (g_metadata_check_sanity), (validate_header), - (validate_array_type_blob), (validate_iface_type_blob), - (validate_param_type_blob), (validate_error_type_blob), - (validate_type_blob), (validate_constant_blob), - (validate_struct_blob), (validate_enum_blob): - * girepository/gmetadata.h: - * tests/Makefile.am: - * tests/invoke/Makefile.am: - * tests/invoke/invoke.c (main): - * tests/roundtrips.sh: - * tools/Makefile.am: - * tools/compiler.c (format_output), (write_out_metadata), (main): - * tools/generate.c (write_type_name), (write_type_info), - (write_constant_value), (write_enum_info), (load_metadata), (main): - * tools/gidlcompilercontext.c: - * tools/gidlcompilercontext.h: - * tools/gidlcompilerentrynode.c: - * tools/gidlcompilerentrynode.h: - * tools/gidlcompilertypenode.c: - * tools/gidlcompilertypenode.h: - * tools/gidlmodule.c (g_idl_module_build_metadata): - * tools/gidlmodule.h: - * tools/gidlnode.c (init_stats), (dump_stats), - (g_idl_node_get_size), (g_idl_node_get_full_size), - (g_idl_node_cmp), (g_idl_node_can_have_member), - (g_idl_node_add_member), (g_idl_node_param_direction_string), - (parse_int_value), (parse_uint_value), (parse_float_value), - (parse_boolean_value), (find_entry_node), (find_entry), - (serialize_type), (g_idl_node_build_metadata), (write_string): - * tools/gidlnode.h: - * tools/gidlparser.c (parse_type_internal): - * tools/quote-file.sh: - Revert revisions 157,149-148,136-129 and 120. - Move back to using g-idl-generate to generate the metadata and - avoids dependency on a c compiler. - -2008-04-22 Johan Dahlin - - * giscanner/girwriter.py: - * tools/g-ir-scanner: - Add an initial GIR writer and a --format option to g-ir-scanner - -2008-04-21 Johan Dahlin - - * giscanner/cgobject.py: Use ctypes.util.find_library to locate - gobject-2.0 and raise ImportError if not found. - - * giscanner/gidlparser.py: - * giscanner/gidlwriter.py: - * giscanner/gobjecttreebuilder.py: - * tools/g-ir-scanner: - Add a --include argument to include types from other idls. - Add a minimalistic GIDL parser (just objects for now) - Implement resolving of external type references and use it to - resolve parent types, argument types and return types. - -2008-04-21 Johan Dahlin - - * giscanner/gidlwriter.py: - * giscanner/gobjecttreebuilder.py: - * giscanner/treebuilder.py: - Add support for properties. - Refactor Class/Interface support a bit, to share more code and - always initialize their method attribute to an empty list. - -2008-04-21 Johan Dahlin - - * giscanner/cgobject.py: - Add a workaround for a glib bug interface introspection bug - (object_interface_list_properties, object_class_list_properties): - Cast the return value to GParamSpec. - - * tests/parser/Foo-expected.gidl: Update - * tests/parser/foo.c: Add a string property - - * giscanner/gobjecttreebuilder.py: - After stripping namespaces, remove the original - item to avoid duplication (GtkButton struct and Button object) - -2008-04-21 Johan Dahlin - - * giscanner/gobjecttreebuilder.py: - * giscanner/treebuilder.py: - Strip namespaces before objects, so we'll export - GtkButton as Button in the gtk namespace - -2008-04-21 Johan Dahlin - - * giscanner/gidlwriter.py: - * giscanner/gobjecttreebuilder.py: - * giscanner/treebuilder.py: - Add constructors for object/boxed types. - -2008-04-21 Johan Dahlin - - * giscanner/gidlwriter.py: - * giscanner/gobjecttreebuilder.py: - Add support for boxed types - -2008-04-21 Johan Dahlin - - * giscanner/giscannermodule.c: Mark structures as const, - wrap SourceType.const_string. - - * tests/parser/foo-object.h: Add a couple of constants. - - * giscanner/gidlwriter.py: - * giscanner/gobjecttreebuilder.py: - * giscanner/treebuilder.py: - Add basic support for interfaces - - * tools/g-ir-scanner: - Add -o/--output for writing to a file - -2008-04-21 Havoc Pennington - - * TODO: add some C API wishlist items I could think of quickly - -2008-04-21 Johan Dahlin - - * giscanner/gidlwriter.py: - * giscanner/xmlwriter.py: - Add a simple api for writing tags which can be used - with the new 'with statement' in python 2.5 - -2008-04-21 Johan Dahlin - - * giscanner/gobjecttreebuilder.py: - Strip namespace and object prefix from method names. - -2008-04-21 Johan Dahlin - - * tools/g-ir-scanner (main): Add --pkg option to pass in - pkg-config modules to get cflags from. - - * giscanner/gidlwriter.py (GIDLWriter._write_method): - Avoid duplication, reuse function writer for methods. - -2008-04-21 Johan Dahlin - - * giscanner/gidlwriter.py: - * giscanner/gobjecttreebuilder.py: - * giscanner/treebuilder.py: - * tools/g-ir-scanner: - Resolve libtool .la files. - Strip name spaces for methods. - Add function symbols - -2008-04-20 Johan Dahlin - - * giscanner/cgobject.py: - * giscanner/gidlwriter.py: - * giscanner/gobjecttreebuilder.py: - * giscanner/treebuilder.py: - Add support for classes and methods - -2008-04-20 Johan Dahlin - - * giscanner/gidlwriter.py: - * giscanner/gobjecttreebuilder.py: - * giscanner/odict.py: - Avoid conflicts, keep the output ordered similar to - the order of the input. - Add a simple ordered dictionary implemenation - -2008-04-19 Johan Dahlin - - * giscanner/cgobject.py: - * giscanner/gidlwriter.py: - * giscanner/gobjecttreebuilder.py: - * tools/g-ir-scanner: - Start introspecting get-type functions. - Implement support for GLib/GFlags GTypes. - Add a ctype based GObject binding. - -2008-04-18 Johan Dahlin - - * giscanner/gidlwriter.py: - * giscanner/xmlwriter.py: - * tools/g-ir-scanner: - Add a simplistic gidl writer, which can't do too much. - -2008-04-18 Johan Dahlin - - * giscanner/sourcescanner.py: - * giscanner/treebuilder.py: - * tools/g-ir-scanner: - split tree building and source scanning interface to separate files. - -2008-04-18 Johan Dahlin - - * tools/g-ir-scanner (Parameter.__init__): Start constructing - a real node tree. - - Add support for struct/parameter/return, start parsing of ctypes - - * giscanner/giscannermodule.c: wrap GISourceType.child_list and - fix the style - -2008-03-31 Johan Dahlin - - * tools/g-ir-scanner: - Start to build abstract syntax node of scanned sources. - Add support for cpp options. - -2008-03-27 Johan Dahlin - - * giscanner/giscannermodule.c: - * giscanner/scannerlexer.l: - * giscanner/sourcescanner.c: - * tools/g-ir-scanner: - - Add simple pre-processor using subprocess and a PIPE. - Change the parse_file apis to accept a file descriptor. - -2008-03-25 Johan Dahlin - - * giscanner/__init__.py: - * tools/g-ir-scanner: - Fix a typo and add an example python test program. - -2008-03-25 Johan Dahlin - - * giscanner/__init__.py: - * giscanner/giscannermodule.c: - * giscanner/sourcescanner.c: - * giscanner/sourcescanner.h: - Add constants and wrap a few more SymbolType fields - -2008-03-25 Johan Dahlin - - * configure.ac: - * giscanner: - * giscanner/__init__.py: - * giscanner/giscannermodule.c: - * giscanner/Makefile.am: - - Add initial python bindings for the scanner and - depend on python 2.5. - -2008-03-25 Johan Dahlin - - * Makefile.am: - * configure.ac: - * giscanner/Makefile.am: - * giscanner/sourcescanner.c: - * giscanner/sourcescanner.h: - * tools/Makefile.am: - * tools/grealpath.h: - * tools/sourcescanner.c: - * tools/sourcescanner.h: - - Move the scanner to a separate library. - -2008-03-23 Johan Dahlin - - * tools/Makefile.am: - * tools/scanner.c: - * tools/scanner.h: - * tools/scannerlexer.l: - * tools/scannerparser.y: - * tools/sourcescanner.c: - * tools/sourcescanner.h: - Split out the source scanner from the generator. - Rename the symbols used in the scanner to use the gi_ prefix. - This should make it possible to use the raw C parser from - other programs. - -2008-03-23 Johan Dahlin - - * tests/parser/Makefile.am (utility.gidl): - * tests/parser/utility-expected.gidl: - Pass in the gobject.gidl since we're defining a GObject. - -2008-03-12 Johan Dahlin - - * relaxng/relaxng.rng: - Add a releaxng in relaxng we can use to validate the relaxngs - schemas - -2008-03-12 Jürg Billeter - - * tools/scanner.c: (g_igenerator_new): - * tools/scannerparser.y: - Fix compiler warnings. - -2008-03-12 Jürg Billeter - - * tools/scanner.c: - * tools/scanner.h: - * tools/scannerparser.y: - Start fixing memory management in g-idl-scanner. - -2008-03-12 Rob Taylor - - * tools/gidlcompilercontext.c: (write_compiled): - Fix critical warning when no shlib passed to g-idl-compiler. - -2008-03-12 Johan Dahlin - - * tests/parser/utility-expected.gidl: - * tests/parser/utility.h: - Add a get_type-function, so the scanner actually - parses it as an object. - -2008-03-12 Johan Dahlin - - * tools/gidlwriter.c (function_generate): Add missing trailing quote. - Bad Philip! - - * tests/parser/Foo-expected.gidl: - * tests/parser/Makefile.am: - * tests/parser/foo-object.h: - * tests/parser/foo.c: - * tests/parser/utility-expected.gidl: - * tests/parser/utility.c: - * tests/parser/utility.h: - - Add a new gidl test. 'utility.gidl', which is used to be able - to test external type references. Add a reference to UtilityObject* - in the idl file. - -2008-03-11 Johan Dahlin - - * tools/compiler.c: - * tools/generate.c: - Remove most global variables - -2008-03-11 Philip Van Hoof - - * tools/scannerlexer.l: - * tools/scanner.c: - * tests/parser/Foo-expected.gidl: - * tests/parser/foo.c: - * tests/parser/Makefile.am: - * tests/parser/foo-object.h: - - Added a few extra tests. Which resulted in finding a few - bugs. Which resulted in me fixing those bugs - -2008-03-11 Rob Taylor - - * tools/gidlcompilercontext.c: (g_idl_compiler_write_dir_entry), - (g_idl_compiler_write_xref_entry), (g_idl_compiler_add_xref): - Add some comments for strings into generated output for - easier debugging. - -2008-03-11 Rob Taylor - - * tools/gidlcompilercontext.c: (write_compiled): - Write out the shlibs variable before writing out the strings - length. Fixes compiler warning when using '-l' flag with - g-idl-compiler - -2008-03-11 Johan Dahlin - - * tests/parser/Foo-expected.gidl: - * tests/parser/foo-object.h: - * tools/scanner.c: - * tools/scanner.h: - * tools/scannerlexer.l: - Add support for parsing return arguments. Add support for - caller-owns return types. - Patch by Philip Van Hoof. - - * tools/scannerparser.y: - Remove parsing of the @deprecated syntax used in headers. - We will support gtk-doc deprecation in the future instead. - -2008-03-11 Johan Dahlin - - * tools/compiler.c (main): Coding style fixes - -2008-03-10 Johan Dahlin - - * configure.ac: - Add GCOV_LIBS to GILIBS - -2008-03-10 Johan Dahlin - - * tests/parser/Foo-expected.gidl: - * tests/parser/foo.c: - Rename null-ok to direction=out - -2008-03-10 Philip Van Hoof - - reviewed and extensively tested by Johan - - * tests/parser/Foo-expected.gidl: - * tests/parser/foo-object.h: - * tests/parser/foo.c: - * tools/gidlnode.c: - * tools/gidlnode.h: - * tools/gidlwriter.c: - * tools/scanner.c: - * tools/scanner.h: - * tools/scannerlexer.l: - * tools/scannerparser.y: - - Add support for scanning for gtk-doc comments inside - C source files. Add tests - -2008-03-10 Johan Dahlin - - * tests/parser/Makefile.am: - * tests/parser/foo.c: - * tools/scanner.c: - * tools/scanner.h: - * tools/scannerparser.y: - Add an api to lex filenames. - Lex all source .c files passed in on the command line. - Scan sources in a test and a couple of private structures - which should not be included in the generated gidl - -2008-03-10 Johan Dahlin - - * tests/invoke/Makefile.am: Make the generated metadata - depend on the g-idl-compiler - -2008-02-21 Mark Doffman - - * tools/gidlmodule.c - * tools/gidlmodule.h - * tools/gidlnode.c - * tools/gidlnode.h - Remove the old g-idl-compiler code. - - -2008-02-22 Mark Doffman - - * tools/quote-file.sh - * tools/compiler.c - * tools/generate.c - Move to using the 'C' struct compiler code. - -2008-02-21 Mark Doffman - - * girepository/ginfo.c - * tools/generate.c - Change the way that external references with no namespace - are dealt with. External references with no namespace - are placed into the XML as-if they are a local reference. - This is temporary, but helps with roundtrip tests. - -2008-02-21 Mark Doffman - - * girepository/ginfo.c - Add the ability to get the value of a constant of - type TYPE_TAG_SYMBOL. In the case of a symbol the value - is provided as a string. - - This would deal properly with: - typedef char* random; - const random = "A string"; - -2008-02-21 Mark Doffman - - * girepository/ginfo.c - * girepository/girepository.h - * tools/generate.c - Add a function to check if an enum is registered or not. - Previously anything testing this relied on the g-type - string offset having a value of 0. - - * girepository/gmetadata.c - * girepository/gmetadata.h - * tools/generate.c - Remove unneccesary or erroneous checks. There were two - metadata validation checks which made sure that the blob - sizes were the same as some magic numbers compiled into the code. - This is wrong as it breaks any forwards compatibility that may - be possible. - - Checks were also present that made sure that unregistered type - blobs had a value of 0 in the g-type offset field. This is - unneccessary. If a type blob is unregistered then any value - in its g-type field is simply invalid. - -2008-02-21 Mark Doffman - - * girepository/ginfo.c - * girepository/gmetadata.c - * girepository/gmetadata.h - - Change the metadata format to have a standard header - for all the type blobs. Merge the SimpleTypeBlob - and InterfaceTypeBlob into a union. A union of these - two blobs existed previously but was not explicit - in the metadata format. - -2008-02-21 Mark Doffman - - * tools/gidlcompilercontext.c - * tools/gidlcompilercontext.h - * tools/gidlcompilerentrynode.c - * tools/gidlcompilerentrynode.h - * tools/gidlcompilertypenode.c - * tools/gidlcompilertypenode.h - - Add code to compile a tree of GIdlNodes to - a 'C' struct representing the metadata. - This is to aid cross-compiling. Previously - the g-idl-compiler created a binary blob with - data written in the byte order and alignment - of the tool rather than the intended target. - - Cleaned up and improved by Johan and Robert :-) - -2008-02-21 Mark Doffman - - * girepository/ginvoke.c - * girepository/girepository.h - * girepository/gmetadata.c - * girepository/gmetadata.h - * tools/generate.c - * tools/gidlparser.c - Modify TYPE_TAG_INTERFACE to TYPE_TAG_SYMBOL - to avoid confusion with the interface blob. - - * tools/generate.c - * tools/gidlparser.c - Remove magic numbers and replace with type-tag - enumeration symbols. - - * girepository/gmetadata.c - Add validate declaration. - -2008-03-10 Jürg Billeter - - * tools/gidlparser.c: (parse_type_internal): - * tools/scannerlexer.l: - * tools/scannerparser.y: - Support C99 _Bool type in scanner. - -2008-03-10 Jürg Billeter - - * tests/parser/Foo-expected.gidl: - * tests/parser/foo-object.h: - * tests/parser/foo.c: (foo_enum_method): - * tools/scanner.c: (g_igenerator_process_function_symbol): - Don't skip functions that are defined in the namespace of a type - that doesn't support methods, as for example enums. - -2008-03-10 Johan Dahlin - - * gidl.dtd: Remove, we're using relaxng for now - - * tests/parser/Foo-expected.gidl: - * tests/parser/foo-object.h: - * tests/parser/foo.c: - Rename the enum/flags get_type functions to include the whole type. - -2008-03-08 Marc-Andre Lureau - - * tools/gidlwriter.c (enum_generate): added "type-name", - "get-type" and "deprecated" missing arguments. - * tests/parser/Foo-expected.gidl: - * tests/parser/foo-object.h: test enum type, and no type. - -2008-03-06 Johan Dahlin - - * configure.ac: - Consistent checks, add missing 'test' - -2008-03-05 Havoc Pennington - - * configure.ac: Take advantage of a libffi.pc if one exists, as it - does on Fedora 8. Make libffi a hard requirement, since it was in - practice anyway (was not really conditional in the code or - makefile, only in configure). - -2008-02-21 Mark Doffman - - reviewed by: Rob Taylor - reviewed by: Johan Dahlin - - * tests/Makefile.am: - * tests/roundtrips.sh: - Modify the roundtrips test so that they do not use the - --raw option of the gidl compiler but instead compile a - shared library to use with g_module. - - * tests/invoke/Makefile.am: - * tests/invoke/invoke.c: - Modify the invoke tests to build a shared library rather - than use the --raw option. - - * tests/invoke/invoke-namespace-find.sh: Removed: - Noone knows why this was here, so removed. - -2008-02-19 Rob Taylor - - * tools/scanner.c: (g_igenerator_process_function_symbol): - Move g_idl_node_can_have_member test later, as it broke spotting - get_type's for nodes that can't have members. - -2008-02-18 Rob Taylor - - * tools/gidlnode.h: - * tools/gidlnode.c: (g_idl_node_can_have_member): - Add g_idl_node_can_have_member. - - * tools/scanner.c: (g_igenerator_process_function_symbol): - Use g_idl_node_can_have_member to test if we should add a function - as a member of the type node. - -2008-02-18 Rob Taylor - - * gidl/GLib.gidl: Renamed to gidl/gobject-2.0.gidl: - * gidl/Makefile.am: - * tests/parser/Makefile.am: - Rename GLib.gidl to gobject-2.0.gidl and install in /usr/share/gidl. - -2008-02-18 Rob Taylor - - * tools/scanner.c: (main): - Ignore -pthread when passed to g-idl-scanner. - -2008-02-18 Rob Taylor - - * tools/grealpath.h: Added: - * tools/scanner.c: (main): - * tools/scannerlexer.l: - * tools/Makefile.am: - Always use absolute paths with symbolic links resolved when - comparing filenames. - -2008-02-18 Rob Taylor - - * gobject-introspection.pc.in: - Provide variables for g-idl-parser, scanner and compiler in the - pkgconfig file. - -2008-02-13 Rob Taylor - - * gcov.mak: - * girepository/Makefile.am: - * tools/Makefile.am: - Rename GCOV_SOURCES to GCOVSOURCES to top automake complaining. - -2008-02-10 Johan Dahlin - - * tests/parser/Foo-expected.gidl: - * tests/parser/foo-object.h: - * tests/parser/foo.c: (foo_boxed_copy), (foo_boxed_free), - (foo_boxed_get_type), (foo_boxed_new), (foo_boxed_method): - Add boxed test. - -2008-02-10 Johan Dahlin - - * tests/parser/Foo-expected.gidl: - * tests/parser/foo-object.h: - * tests/parser/foo.c: (foo_enum_get_type), (foo_flags_get_type): - Add enum and flags test. - -2008-02-10 Johan Dahlin - - * Makefile.am: - * configure.ac: - * girepository/Makefile.am: - Make 'make distcheck' work again. - -2008-02-10 Johan Dahlin - - * m4/Makefile.am (EXTRA_DIST): its called as-compiler-flag.m4, - not as-compiler.m4. - - * tests/parser/Makefile.am: Only create Foo.gidl when running make - check, eg exclude it from BUILT_SOURCES. - -2008-02-08 Rob Taylor - - * Makefile.am: - * configure.ac: - * gcov.mak: Added: - * girepository/Makefile.am: - * m4/Makefile.am: Added: - * m4/as-compiler-flag.m4: Added: - * m4/gcov.m4: Added: - * tools/Makefile.am: - Add ability to generate a coverage report. - Adds configure option --enable-gcov and make rule 'check-coverage'. - -2008-02-08 Rob Taylor - - * Makefile.am: - * configure.ac: - * gidl/Makefile.am: Added: - * girepository/Makefile.am: Added: - * src/Makefile.am: Renamed to tools/Makefile.am: - * src/compiler.c: Renamed to tools/compiler.c: - * src/g-idl-offsets.pl: Renamed to tools/g-idl-offsets.pl: - * src/generate.c: Renamed to tools/generate.c: - * src/gidlmodule.c: Renamed to tools/gidlmodule.c: - * src/gidlmodule.h: Renamed to tools/gidlmodule.h: - * src/gidlnode.c: Renamed to tools/gidlnode.c: - * src/gidlnode.h: Renamed to tools/gidlnode.h: - * src/gidlparser.c: Renamed to tools/gidlparser.c: - * src/gidlparser.h: Renamed to tools/gidlparser.h: - * src/gidlwriter.c: Renamed to tools/gidlwriter.c: - * src/gidlwriter.h: Renamed to tools/gidlwriter.h: - * src/ginfo.c: Renamed to girepository/ginfo.c: - * src/ginvoke.c: Renamed to girepository/ginvoke.c: - * src/girepository.c: Renamed to girepository/girepository.c: - * src/girepository.h: Renamed to girepository/girepository.h: - * src/gmetadata.c: Renamed to girepository/gmetadata.c: - * src/gmetadata.h: Renamed to girepository/gmetadata.h: - * src/scanner.c: Renamed to tools/scanner.c: - * src/scanner.h: Renamed to tools/scanner.h: - * src/scannerlexer.l: Renamed to tools/scannerlexer.l: - * src/scannerparser.y: Renamed to tools/scannerparser.y: - * tests/invoke/Makefile.am: - Split src/ into girepository/ and tools/ - - * Makefile.am: - * configure.ac: - * girepository/Makefile.am: - * tests/Makefile.am: - * tests/invoke/Makefile.am: - * tests/parser/Makefile.am: - * tests/roundtrips.sh: - * tools/Makefile.am: - Make distcheck work. - -2008-02-04 Rob Taylor - - * tests/invoke/invoke.c: (main): - * tests/invoke/testfns.c: (test6), (test7): - * tests/invoke/testfns.xml: - Add tests for invokation with a GList argument. - Also tests caller-owns return values. - -2008-02-04 Rob Taylor - - * src/ginfo.c: - Add some documentation for GICallableInfo - -2008-02-01 Mark Doffman - - * gidl.dtd: - Correct syntax errors in the DTD file. - * relaxng/api.xml: - * relaxng/c-types.xml: - * relaxng/g-types.xml: - * relaxng/util.xml: - Add a RelaxNG specification for the GObject Introspection XML data. - The Specification has validated all of the test files. - -2008-01-25 Rob Taylor - - * tests/roundtrips.sh: - * tests/struct.test: - Add roundtrip tests for structs. - -2008-01-11 Johan Dahlin - - * src/scanner.c (g_igenerator_process_function_symbol): - Refactor out g_idle_node_add_member. - (create_node_from_gtype, create_node_from_ctype): - Use case instead of if...else - (get_type_from_type_id): - Rename to create_node_from_gtype - (get_type_from_ctype): - Rename to create_node_from_ctype - - Rename ginode -> node, gitype -> type, gifunc -> func. - - * src/gidlnode.c (g_idl_node_add_member, g_idl_node_cmp): - Two new functions, refactor out of scanner.c - - * src/scanner.c: (g_igenerator_process_function_symbol): - * src/scannerlexer.l: - Do not save the content of the deprecated variable, only - if it's set or not. - -2008-01-11 Johan Dahlin - - * tests/parser/foo-object.h: Add a couple of comment parser tests. - -2008-01-11 Jürg Billeter - - * src/scannerlexer.l: - Fix GTK-Doc parsing. - -2008-01-11 Jürg Billeter - - * src/scannerlexer.l: - Fix GTK-Doc parsing. - -2008-01-11 Jürg Billeter - - * src/scanner.c: (lookup_symbol): - Return unresolved name if we find unknown symbol. - -2008-01-11 Jürg Billeter - - * src/scanner.c: (g_igenerator_generate): - Initialize GObject to fix scanning interface properties. - - * tests/parser/Foo-expected.gidl: - * tests/parser/foo-object.h: - * tests/parser/foo.c: (foo_interface_get_type): - Test interfaces with GObject prerequisite. - - * tests/parser/Makefile.am: - Set G_DEBUG=fatal_warnings to abort test on warnings and criticals. - -2007-12-27 Johan Dahlin - - * src/scannerlexer.l: - Parse gtk-doc comments. - - * src/gidlwriter.c: (function_generate): - Reorganize, avoid duplication and add support for - writing deprecated functions. - - * src/scannerparser.y: - * src/scanner.h: - Add new structure CDirective and functions to create/free them. - - * src/scanner.c: (g_igenerator_process_function_symbol), - (g_igenerator_process_unregistered_struct_typedef), - (g_igenerator_process_struct_typedef), - (g_igenerator_process_union_typedef), - (g_igenerator_process_enum_typedef), - (g_igenerator_process_function_typedef), (g_igenerator_add_symbol), - (g_igenerator_start_preprocessor): - Parse @deprecated directive for functions. - Remove some more C99isms. - Send in -C to cpp to avoid stripping comments. - - * tests/parser/foo-object.h: - * tests/parser/Foo-expected.gidl: - Add deprecated directive - -2007-12-27 Johan Dahlin - - * src/scannerlexer.l (intsuffix): Add emacs mode line and - escape ' and " so it looks more like C. - - * src/scanner.c: - Unlink temporary file used. - -2007-12-27 Johan Dahlin - - * src/scanner.c: (g_igenerator_new), (g_igenerator_free), - (g_igenerator_start_preprocessor), (main): - * src/scanner.h: - * src/scannerparser.y: - Plug a couple of simple memory leaks. - -2007-12-27 Johan Dahlin - - * src/scanner.c: (g_igenerator_parse_macros), - (g_igenerator_start_preprocessor), (g_igenerator_set_verbose), - (main): - * src/scanner.h: - * src/scannerparser.y: - * tests/parser/Makefile.am: - - Improve error reporting, return when the preprocessor fails. - Add a verbose parameter, to aid debugging. - Revert to using a temporary file to communicate between the - preprocessor and the parser, because we need to wait for - the exit code from the pre-processor before starting to parse. - -2007-12-16 Johan Dahlin - - * src/Makefile.am: Rename clexer.l to scannerlexer.l and - cparser.y to scannerparser.y - -2007-12-11 Johan Dahlin - - * src/clexer.l: - * src/cparser.y: - * src/scanner.c: (g_igenerator_new): - * src/scanner.h: - Get rid of the global the_generator variable. - -2007-12-10 Johan Dahlin - - * src/scanner.c (main): Add an output option, - add checks for required parameters - - * src/Makefile.am: - set BUILD_SOURCES and CLEANFILES properly - - * src/gidlwriter.c: (g_writer_write_inline), (g_writer_write), - (g_writer_write_indent), (g_writer_write_unindent), - (field_generate), (value_generate), (constant_generate), - (property_generate), (function_generate), (vfunc_generate), - (signal_generate), (interface_generate), (struct_generate), - (union_generate), (boxed_generate), (enum_generate), - (node_generate), (g_writer_write_module), (g_idl_writer_save_file): - * src/gidlwriter.h: - * src/scanner.c: (g_igenerator_generate): - * src/scanner.h: - * src/scannerwriter.c: - - Refactor scannerwriter to only be tied to a GIdlModule and move - it (again!) to gidlwriter.c. Change the writer function to take - a filename. - -2007-12-10 Johan Dahlin - - * src/Makefile.am: - * src/scanner.c: (g_igenerator_generate): - * src/scanner.h: - * src/scannerwriter.c: (g_igenerator_write_inline), - (g_igenerator_write), (g_igenerator_write_indent), - (g_igenerator_write_unindent), (field_generate), (value_generate), - (constant_generate), (property_generate), (function_generate), - (vfunc_generate), (signal_generate), (interface_generate), - (struct_generate), (union_generate), (boxed_generate), - (enum_generate), (node_generate), (module_generate), - (g_scanner_write_file): - - Move the scanner gidl writing to a separate source file. - -2007-12-10 Johan Dahlin - - * src/cparser.y: - * src/scanner.c: - * src/scanner.h: - Move over all CType construction functions. - - * tests/parser/Makefile.am: - Be verbose when printing parsing tests results. - -2007-12-10 Johan Dahlin - - * src/scanner.c (g_igenerator_start_preprocessor): Refactor - preprocessor handling to here. Start cpp insteado of cc -E, - always include -U__GNUC__, since it's specific to the preprocessor - we use. - - * tests/parser/Makefile.am (check-local): Silent diff and skip - -U__GNUC__ which is always defined now - -2007-12-10 Johan Dahlin,,, - - reviewed by: - - * src/scanner.c: (g_igenerator_start_preprocessor), (main): - * tests/parser/Makefile.am: - -2007-12-09 Johan Dahlin - - * src/scanner.c: - Use GOption for command line options. - (g_igenerator_new, main): Simplify constructor and they way - parameters are passed into it. - - * src/cparser.y: - * src/Makefile.am: - * src/clexer.l: - * src/cparser.y: - * src/gen-introspect.c: - * src/gen-introspect.h: - * src/scanner.c: - Rename gen-introspect.[ch] to scanner.[ch] - -2007-12-09 Johan Dahlin - - * TODO: Update - - * src/Makefile.am: Rename gen-introspect to g-idl-scanner, - don't make the repository library and the other utilites link against - gthread-2.0 - - * src/gen-introspect.c: (g_igenerator_create_object), - (g_igenerator_create_interface), (g_igenerator_create_boxed), - (g_igenerator_create_enum), (g_igenerator_create_flags), - (g_igenerator_process_module_symbol), - (g_igenerator_process_module), (g_igenerator_generate), (main): - * src/gen-introspect.h: - Refactor g_igenerator_process_types into smaller pieces. - - * tests/parser/Makefile.am: - Depend on the gen-introspect binary - -2007-12-09 Johan Dahlin - - * src/gen-introspect.c (g_igenerator_process_types): - Break into smaller pieces, one for each generated node type. - -2007-12-08 Johan Dahlin - - * src/gen-introspect.c: (g_igenerator_process_types), - (g_igenerator_add_module): - * tests/parser/Foo-expected.gidl: - * tests/parser/foo-object.h: - * tests/parser/foo.c: (foo_subobject_class_init), - (foo_subobject_init): - - Add a subobject test and make sure to register defined classes - in the lookup symbol hash table. - -2007-12-08 Johan Dahlin - - * gidl/GLib.gidl: - * src/Makefile.am: - * src/gen-introspect.c: (g_igenerator_new), (lookup_symbol), - (g_igenerator_process_types), (g_igenerator_add_module), - (g_igenerator_add_include_idl), (main): - * src/gen-introspect.h: - * tests/parser/Makefile.am: - * tests/parser/Foo-expected.gidl: - - Change the gen-introspect to generate namespaced module names, - such as GLib.Object instead of GObject. - Add a GLib.gidl which introduces GLib.Object and GLib.InitiallyUnowned, - add a --include-idl parameter to gen-introspect, - and update the parser test. - -2007-12-08 Johan Dahlin - - * src/gen-introspect.c: - Move main to the end of the file and attempt to make it valid - ansi c. - - * tests/parser/Makefile.am (BUILT_SOURCES): Remove .repo here, - we're not quite ready to generate metadata yet. - - * tests/parser/: - * configure.ac: - - Add a simple gen-introspect parser test - -2007-12-06 Gustavo J. A. M. Carneiro - - reviewed by: Johan Dahlin - - * configure.ac: - * gobject-introspection.pc.in: - * src/Makefile.am: - * src/compiler.c: (format_output), (write_out_metadata), (main): - * src/gen-introspect.c: (main): - * src/gen-introspect.h: - * src/generate.c: (write_callable_info), (write_repository), - (load_metadata), (main): - * src/gidlmodule.c: (g_idl_module_new), - (g_idl_module_build_metadata): - * src/gidlmodule.h: - * src/gidlparser.c: (start_element_handler): - * src/ginfo.c: (g_info_new), (g_info_from_entry), - (g_base_info_get_name), (g_base_info_get_namespace), - (g_base_info_is_deprecated), (g_base_info_get_annotation), - (g_base_info_get_metadata), (g_function_info_get_symbol), - (g_function_info_get_flags), (g_function_info_get_property), - (g_function_info_get_vfunc), (signature_offset), (g_type_info_new), - (g_callable_info_may_return_null), - (g_callable_info_get_caller_owns), (g_callable_info_get_n_args), - (g_callable_info_get_arg), (g_arg_info_get_direction), - (g_arg_info_is_return_value), (g_arg_info_is_dipper), - (g_arg_info_is_optional), (g_arg_info_may_be_null), - (g_arg_info_get_ownership_transfer), (g_type_info_is_pointer), - (g_type_info_get_tag), (g_type_info_get_param_type), - (g_type_info_get_interface), (g_type_info_get_array_length), - (g_type_info_is_zero_terminated), - (g_type_info_get_n_error_domains), (g_type_info_get_error_domain), - (g_error_domain_info_get_quark), (g_error_domain_info_get_codes), - (g_value_info_get_value), (g_field_info_get_flags), - (g_field_info_get_size), (g_field_info_get_offset), - (g_registered_type_info_get_type_name), - (g_registered_type_info_get_type_init), - (g_struct_info_get_n_fields), (g_struct_info_get_field), - (g_struct_info_get_n_methods), (g_struct_info_get_method), - (find_method), (g_struct_info_find_method), - (g_enum_info_get_n_values), (g_enum_info_get_value), - (g_object_info_get_parent), (g_object_info_get_type_name), - (g_object_info_get_type_init), (g_object_info_get_n_interfaces), - (g_object_info_get_interface), (g_object_info_get_n_fields), - (g_object_info_get_field), (g_object_info_get_n_properties), - (g_object_info_get_property), (g_object_info_get_n_methods), - (g_object_info_get_method), (g_object_info_find_method), - (g_object_info_get_n_signals), (g_object_info_get_signal), - (g_object_info_get_n_vfuncs), (g_object_info_get_vfunc), - (g_object_info_get_n_constants), (g_object_info_get_constant), - (g_interface_info_get_n_prerequisites), - (g_interface_info_get_prerequisite), - (g_interface_info_get_n_properties), - (g_interface_info_get_property), (g_interface_info_get_n_methods), - (g_interface_info_get_method), (g_interface_info_find_method), - (g_interface_info_get_n_signals), (g_interface_info_get_signal), - (g_interface_info_get_n_vfuncs), (g_interface_info_get_vfunc), - (g_interface_info_get_n_constants), - (g_interface_info_get_constant), (g_property_info_get_flags), - (g_signal_info_get_flags), (g_signal_info_get_class_closure), - (g_signal_info_true_stops_emit), (g_vfunc_info_get_flags), - (g_vfunc_info_get_offset), (g_vfunc_info_get_signal), - (g_constant_info_get_value), (g_union_info_get_n_fields), - (g_union_info_get_field), (g_union_info_get_n_methods), - (g_union_info_get_method), (g_union_info_is_discriminated), - (g_union_info_get_discriminator_offset), - (g_union_info_get_discriminator): - * src/ginvoke.c: (g_function_info_invoke): - * src/girepository.c: (g_irepository_register), - (g_irepository_unregister), (g_irepository_get_default), - (count_interfaces), (g_irepository_get_n_infos), (find_interface), - (g_irepository_get_info), (g_irepository_find_by_name), - (g_irepository_get_shared_library), - (g_irepository_build_search_path), (g_irepository_register_file), - (g_irepository_error_quark): - * src/girepository.h: - * src/gmetadata.c: (g_metadata_get_dir_entry), - (g_metadata_check_sanity), (validate_header), - (validate_array_type_blob), (validate_iface_type_blob), - (validate_param_type_blob), (validate_error_type_blob), - (validate_type_blob), (validate_arg_blob), - (validate_signature_blob), (validate_function_blob), - (validate_callback_blob), (validate_constant_blob), - (validate_value_blob), (validate_field_blob), - (validate_property_blob), (validate_signal_blob), - (validate_vfunc_blob), (validate_struct_blob), - (validate_enum_blob), (validate_object_blob), - (validate_interface_blob), (validate_errordomain_blob), - (validate_union_blob), (validate_blob), (validate_directory), - (validate_annotations), (g_metadata_validate), (_g_metadata_init), - (g_metadata_new_from_memory), (g_metadata_new_from_const_memory), - (g_metadata_new_from_mapped_file), (g_metadata_free), - (g_metadata_set_module), (g_metadata_get_namespace): - * src/gmetadata.h: - * tests/Makefile.am: - * tests/invoke/Makefile.am: - * tests/invoke/invoke-namespace-find.sh: - * tests/invoke/invoke.c: (main): - - Add a namespace/shared library mapping. fixes #313268. - -2007-12-03 Johan Dahlin - - * src/gidlparser.c (parse_type_internal): Disable char/gchar and - guchar for now. - -2007-11-30 Jürg Billeter - - * configure.ac: - * src/Makefile.am: - * src/clexer.l: - * src/cparser.y: - * src/gen-introspect.c: (g_idl_node_cmp), (g_igenerator_new), - (g_igenerator_write_inline), (g_igenerator_write), - (g_igenerator_write_indent), (g_igenerator_write_unindent), - (field_generate), (value_generate), (constant_generate), - (property_generate), (function_generate), (vfunc_generate), - (signal_generate), (interface_generate), (struct_generate), - (union_generate), (boxed_generate), (enum_generate), - (node_generate), (module_generate), (get_type_from_type_id), - (str_replace), (g_igenerator_process_properties), - (g_igenerator_process_signals), (g_igenerator_process_types), - (get_type_from_ctype), (g_igenerator_process_function_symbol), - (g_igenerator_process_unregistered_struct_typedef), - (g_igenerator_process_struct_typedef), - (g_igenerator_process_union_typedef), - (g_igenerator_process_enum_typedef), - (g_igenerator_process_function_typedef), - (g_igenerator_process_constant), (g_igenerator_process_symbols), - (g_igenerator_add_symbol), (g_igenerator_is_typedef), - (g_igenerator_generate), (main), (csymbol_new), - (csymbol_get_const_boolean), (ctype_new), (ctype_copy), - (cbasic_type_new), (ctypedef_new), (cstruct_new), (cunion_new), - (cenum_new), (cpointer_new), (carray_new), (cfunction_new), - (eat_hspace), (eat_line), (read_identifier), - (g_igenerator_parse_macros): - * src/gen-introspect.h: - - Import gen-introspect to generate introspection information by - parsing C headers. - -2007-11-30 Jürg Billeter - - * src/gidlnode.c: (g_idl_node_new): support creating callback nodes - -2007-11-30 Jürg Billeter - - * src/gidlparser.c: (end_element_handler): Don't leave requires - state too early. - -2007-11-29 Johan Dahlin - - * src/gidlparser.c (parse_type_internal): Add char, - gchar and guchar to the builtin types. - -2007-11-26 Johan Dahlin - - * src/ginfo.c: (g_object_info_get_type_name), - (g_object_info_get_type_init): - * src/girepository.c: (g_irepository_is_registered): - * src/girepository.h: - - Add g_object_info_get_type_name, g_object_info_get_type_init and - g_irepository_is_registered. - -2006-08-14 Jürg Billeter - - * src/gidlparser.c: (end_element_handler): Don't leave - namespace and implements states too early. - Fixes #351264 - -2007-11-26 Johan Dahlin - - * src/gmetadata.c (validate_struct_blob): - pass blob_type to validate_function_blob instead of - hard-coding BLOB_TYPE_STRUCT. - - Patch by Torsten Schoenfeld, fixes #314190 - -2006-10-03 Torsten Schoenfeld - - * src/compiler.c, src/generate.c, src/gidlnode.c, - src/gidlparser.c, src/ginfo.c, src/girepository.c, - tests/invoke/invoke.c, test/invoke/testfns.c: Hush compiler - warnings about return values, signedness mismatches, unused - variables, and unhandles enum values in switch statements. - - * tests/invoke/Makefile.am: Don't install the invoke test program. - Add -I ../../src to the cflags used for the test functions files. - -2005-08-31 Torsten Schoenfeld - - * src/girepository.h: Export g_invoke_error_quark. - -2005-08-31 Torsten Schoenfeld - - * src/ginvoke.c: Remove the fallback implementation of - g_function_info_invoke since we now formally depend on libffi. - -2005-07-25 Matthias Clasen - - * src/Makefile, tests/Makefile, tests/invoke/Makefile: - Remove these files from cvs, as they are now generated. - - * src/gmetadata.c (validate_iface_type_blob): Don't - complain if blob->pointer is not set, since that - happens for enum and flag types. (#308935, Gustavo - Carneiro) - - * Commit an autoconf-conversion patch by - Gustavo Carneiro (#308708) - -2005-05-24 Matthias Clasen - - * src/compiler.c (main): Use it here to validate - the generated metadata. - - * src/gmetadata.[hc]: Add code to validate a - metadata blob. - - * metadata-format.txt: Updates - -2005-05-22 Matthias Clasen - - * tests/*: Add struct offsets to field and vfunc - elements. - - * src/generate.c (write_vfunc_info): Write offset - information for vfuncs. - - * src/gidlnode.c (g_idl_node_build_metadata): Write - the struct offsets into the metadata. - - * src/gidlparser.c: Parse the offset attributes of - field and vfunc elements. - - * src/gidlnode.h: Add offset members to field and - vfunc nodes. - -2005-05-21 Matthias Clasen - - * TODO: Updates. - - * gidl.dtd: Updates. - - * src/g-idl-offsets.pl: A perl script which reads a .gidl - file, creates, compiles and runs a C file, and folds the - resulting struct offsets back into the .gidl file. - -2005-05-20 Matthias Clasen - - * src/gidlparser.c (start_field): Make fields in objects - work. - - * src/gidlmodule.c: Include string.h - - * TODO: Updates. - : - - * metadata-format.txt: Cleanup basic types. - * src/*: Adapt to the changes. - * tests/*: Adapt to the changes. - * examples/gdk-pixbuf.gidl: Adapt to the changes. - - * src/gidlnode.c (g_idl_node_get_size): Report the correct - size for enum blobs. - (g_idl_node_get_full_size): Report the correct size for - function blobs. - - * src/gidlmodule.c (g_idl_module_build_metadata): Add some - error checking for blob sizes. - -2005-05-19 Matthias Clasen - - * src/gidlnode.c (g_idl_node_build_metadata): Correctly handle - interface types for which is_pointer is FALSE, e.g. enums. - - * src/gidlnode.c (g_idl_node_get_full_size) - * src/gidlparser.c (parse_type_internal): - * src/generate.c (write_type_info): Support unspecialized - lists, hashtables and errors. Also emit a '*' after these. - - * TODO: Updates - -2005-05-17 Matthias Clasen - - * TODO: Updates - - * metadata-format.txt: Cleanups by Maciej Katafiasz. - -2005-05-15 Matthias Clasen - - * src/*.c: Change the directory to be addressed by - 1-based indexes, and use an index of zero to mean - 'no object'. - -2005-05-15 Matthias Clasen - - * tests/roundtrips.sh (SIMPLE_TESTS): Add union.test. - - * tests/union.test: Add a union test. - - * src/generate.c: Handle unions. - - * src/girepository.h: - * src/ginfo.c: Add GIUnionInfo and functions to access it. - - * src/gidlnode.c: Handle GIdlNodeUnion nodes. - - * src/gidlparser.c (start_union): Parse elements. - - * src/gidlnode.h: Add a GIdlNodeUnion. - - * gidl.dtd: Add a element. - - * src/gmetadata.c (g_metadata_check_sanity): Check - union_blob_size. - - * src/gmetadata.h: Add union_blob_size to Header, - add a UnionBlob. - - * metadata-format.txt: Add a UnionBlob. - -2005-05-13 Matthias Clasen - - * tests/*: Update testcases. - - * src/generate.c (write_callable_info): Don't forget to - write transfer and null-ok attributes for return types - and parameters. - - * src/girepository.h: - * src/ginfo.c (g_callable_info_may_return_null): - New function to find out if a function may return NULL. - - * src/compiler.c (format_output): Make the generated - C code compile. - - * README: Point to a recent libffi snapshot. - - * tests/invoke/*: Some invoke tests. - - * src/Makefile: Add ginvoke.c and the necessary - libffi information. - - * src/girepository.h (g_function_info_invoke): Add - a GError argument. - - * src/ginvoke.c (g_function_info_invoke): Initial - implementation of invoke functionality based on libffi. - - * src/gidlnode.c (g_idl_node_build_metadata): Pass the - strings and types hash tables in the right order when - recursing. - (find_entry_node): Free the name parts. - -2005-05-12 Johan Dahlin - - * src/generate.c: Generate consistent end tags. - - * tests/*: Update - -2005-05-12 Matthias Clasen - - * TODO: Updates - - * src/gidlparser.c (start_function): Actually add - methods to objects. (Steven Walter) - - * src/girepository.h: - * src/ginfo.c: Rename Transfer and Direction to - GITransfer and GIDirection. (Torsten Schoenfeld) - - * tests/*: Make tests work with the changes in name - handling. - - * src/gidlnode.c (find_entry_node): Parse qualified - names and generate xref nodes for them if needed. Don't - require all modules to be loaded any more. - - * src/gidlmodule.c (g_idl_module_build_metadata): Choke - on '.' in names. - - * src/ginfo.c (g_object_info_get_parent): Return NULL - if blob->parent is 0. Still need to make sure index - 0 is not used. - - * src/generate.c: Generate qualified names when - referring to non-local types. Emit transfer attribute - for return types. - - * src/compiler.c (format_output): Put the function - attributes where gcc accepts them. - -2005-05-11 Matthias Clasen - - * src/compiler.c (main): Add a --verbose cmdline option - and only log messages if it is specified. - - * src/gidlnode.h: - * src/gidlnode.c (init_stats, dump_stats): Collect some - statistics on string and type sharing. - - * src/gidlmodule.c (g_idl_module_build_metadata): Use - g_message() instead of fprintf(). - - * src/gidlnode.c (g_idl_node_free): Make this more robust. - (g_idl_node_get_size): Implement for structs. - (g_idl_node_get_full_size): Handle parent being NULL. - (serialize_type): Handle lookup failures more gracefully. - -2005-05-10 Matthias Clasen - - * src/gidlnode.c (g_idl_node_get_full_size): Correct the - size calculation for 2-parameter types and for objects. - - * src/compiler.c: Add a cmdline option for debug output - and install a log handler to implement it. - * src/gidlnode.c: Add some debug spew. - - * TODO: Updates - - * src/gidlmodule.c (g_idl_module_build_metadata): Don't - forget to count the module name when calculating the - required size for the metadata. - - * src/gidlnode.c: - * src/gidlparser.c: Fix compiler warnings. - -2005-05-09 Matthias Clasen - - * src/compiler.c (main): Free the option context. - - * gidl.dtd: Clean up handling of names. All elements - have a "name", only the elements corresponding to - actual callable functions (function, method, constructor), - have an additional "symbol" attribute holding the - dlsym()-able function name. - - * src/generate.c: Adapt to generate xml matching the - new dtd. - - * src/gidlparser.c: - * src/gidlnode.c: Adapt to parse the new dtd. - - * tests/*.test: Adjust to the new dtd. - - * metadata-format.txt: - * src/gmetadata.h: Remove the short_name field - from the ValueBlob. - * src/gmetadata.c: Shrink size of ValueBlob to 12. - * src/girepository.h: - * src/ginfo.c (g_value_info_get_short_name): Removed - -2005-05-09 Matthias Clasen - - * gidl.dtd: Allow constructors for boxed types, - patch by Jonathan Blandford. - - -2005-05-09 Matthias Clasen - - * --- Initial import --- diff --git a/ChangeLog.pre-git b/ChangeLog.pre-git new file mode 100644 index 0000000..d12f5e6 --- /dev/null +++ b/ChangeLog.pre-git @@ -0,0 +1,6128 @@ +2009-02-10 Rober Carr + + Bug 569633 – Typelib compiler fails with vararg callbacks + + * girepository/girparser.c: Also filter out callback functions + which take vararg arguments. + +2009-02-10 Xan Lopez + + Bug 570903 - Add information about -I flag to scanner manpage + + * docs/g-ir-scanner.1: Add info about -I flag. + +2009-02-06 Owen Taylor + + * gir/xlib-2.0.gir: Add KeySym and KeyCode to the dummy + xlib-2.0.gir. + +2009-02-04 Johan Dahlin + + * girepository/Makefile.am: + * girepository/girffi.c (g_callable_info_get_ffi_arg_types), + (g_callable_info_get_ffi_return_type), + (g_callable_info_prepare_closure), (g_callable_info_free_closure): + * girepository/girffi.h: + Add utility functions for invocing closures given a GICallableInfo + using libffi. + +2009-02-03 Andreas Rottmann + + * tests/scanner/utility.h (UtilityTaggedValue): Make the union + member anonymous. + (UtilityByte): New union typedef with an unnamed struct in it. + + * giscanner/transformer.py (Transformer._create_struct): Create + unnamed structs for symbols with a None ident. + (Transformer._create_union): Likewise. + + * giscanner/girwriter.py (GIRWriter._write_record): Allow name + being None. + (GIRWriter._write_union): Likewise. + + * girepository/girparser.c (start_struct): Allow a NULL name for + non-toplevel structs. + (start_union): Likewise. + + * tests/scanner/utility.h (UtilityTaggedValue): New struct + typedef, which has a nested union member. + * tests/scanner/utility-expected.gir: Adapted. + + * giscanner/transformer.py (Transformer._create_member): Create + struct/union members if appropriate. + (Transformer._create_struct, Transformer._create_union): Allow for + structs/unions without a C type. + + * giscanner/glibtransformer.py (GLibTransformer._resolve_field): + We don't need to resolve non-typef'd + (GLibTransformer._resolve_field): Add cases for non-typedef'd + struct/union "fields". + + * giscanner/girwriter.py (GIRWriter._write_record): Allow for + records without a C type. + (GIRWriter._write_field): structs and unions may appear in places + where fields do. + +2009-02-03 Andreas Rottmann + + * girepository/girparser.c (ParseContext): Removed member + current_node, added node_stack instead. + (CURRENT_NODE): New macro, returns the current node (top of + node_stack). + (pop_node, push_node): New functions; pop or push a node from + node_stack. + Rest of the file adapted to these changes, which are necessary + for supporting nested structs/and unions. + +2009-02-02 Dan Winship + + * girepository/ginfo.c (g_registered_type_info_get_g_type): handle + the special case for GObject, whose glib:get-type is listed as + "intern". + +2009-02-02 Andreas Rottmann + + Bug 569408 – Scanner doesn't handle arbitrary typedefs correctly + + * giscanner/glibtransformer.py (GLibTransformer._create_gobject): + Treat GInitiallyUnowned specially. + + Bug 568680 – Scanner misses fields (at least in GObject.Object) + + * girepository/giroffsets.c (compute_struct_field_offsets): Fix + handling of callbacks (a callback member clobbered the size + computed so far). + + * giscanner/transformer.py (Transformer._create_compound): Use + the (empty) compound created by a typedef if present; this means + that fields will no longer get lost. + + * giscanner/transformer.py (Transformer._create_compound): New + method, contains logic common to _create_union and _create_struct. + (Transformer._create_struct, Transformer._create_union): Rewritten + in terms of _create_compound. + + * gir/GObject-2.0.xpath: Some new assertations of the presence + GObject fields. + * tests/offsets/Makefile.am, tests/offsets/offsets.h: Added test + for object field offsets. + + 2009-02-02 Andreas Rottmann + + Bug 563469 – Arrays not treated correctly in struct offset calculation + + * tests/offsets/offsets.h (OffsetsArray): New struct, containing a + bunch of arrays. + + * tests/offsets/gen-gitestoffsets (FIELD_RE): Handle arrays. + + * girepository/giroffsets.c (get_interface_size_alignment): + Refactored to make it more general, now takes a GIrNodeType* + instead of a GIrNodeField*, plus an additional 'who' parameter + that denotes what the size/alignment is calculated for. + (get_type_size_alignment): New function, refactored version of + get_field_size_alignment(). + (get_field_size_alignment): Implemented in terms of + get_type_size_alignment(). + (get_type_size_alignment): Handle array types correctly. + + 2009-01-28 Johan Bilien + + * tests/scanner/annotation-1.0-expected.gir: add missing + with_voidp + +2009-01-27 Johan Dahlin + + * gir/cairo-1.0.gir: + * gir/fontconfig-2.0.gir: + * gir/freetype2-2.0.gir: + * gir/libxml2-2.0.gir: + * gir/xfixes-4.0.gir: + * gir/xft-2.0.gir: + * gir/xlib-2.0.gir: + Remove shared-library tags for these too. + +2009-01-27 Johan Dahlin + + * gir/GL-1.0.gir: + Remove shared-library which removes the build + time dependency on mesa. + +2009-01-27 Dan Winship + + Misc warning fixes + + * giscanner/scannerparser.y: Fix the "Ignoring non-UTF-8 constant + string" error to print the right value. + + * tests/scanner/annotation.c (backslash_parsing_tester) + (backslash_parsing_tester_2): make these non-static to avoid a + warning. + (annotation_object_string_out) + (annotation_string_zero_terminated): fix return values + + * tests/scanner/annotation.h (annotation_object_with_voidp): + prototype this + + * tests/scanner/gtkfrob.c: + * tests/scanner/gtkfrob.h (gtk_frob_language_manager_get_default): + fix prototype. (s/()/(void)/). + + * tools/compiler.c (format_output): fix signed/unsigned warning. + Output a prototype for register_typelib() to avoid warnings later. + +2009-01-26 Johan Dahlin + + * tests/everything/everything.c (test_callback): + * tests/everything/everything.h: + Add a couple of callback tests. + +2009-01-26 Johan Dahlin + + * girepository/ginfo.c (g_base_info_unref): + Only unref the repository if it's actually set. + +2009-01-23 Johan Dahlin + + * tests/everything/everything.c (test_enum_param): + * tests/everything/everything.h: + + Add an enum param test function + +2009-01-21 Johan Dahlin + + * configure.ac: + Post-release version bump + +=== 0.6.2 === +2009-01-21 Johan Dahlin + + * NEWS: Update + +2009-01-21 Johan Dahlin + + Bug 562622 – Errordomains missing + + * giscanner/girwriter.py: + * giscanner/glibast.py: + * giscanner/glibtransformer.py: + * tests/scanner/Makefile.am: + * tests/scanner/foo-1.0-expected.gir: + * tests/scanner/foo-1.0-expected.tgir: + * tests/scanner/foo.c (foo_error_get_type), (foo_error_quark): + * tests/scanner/foo.h: + +2009-01-20 Johan Dahlin + + * giscanner/scannerlexer.l: + Increase the buffer size to 1M, so + gtkalias.h can be parsed. + +2009-01-20 Johan Dahlin + + * giscanner/glibtransformer.py: + When trying to map functions to structs, do + not require a public structure to exist, should + fix Gst gir generation in. + +2009-01-20 Johan Dahlin + + Bug 562615 – Struct methods missing + + * giscanner/annotationparser.py: + * giscanner/ast.py: + * giscanner/girwriter.py: + * giscanner/glibast.py: + * giscanner/glibtransformer.py: + * tests/scanner/foo-1.0-expected.gir: + * tests/scanner/foo-1.0-expected.tgir: + +2009-01-16 Dan Winship + + * gir/GL-1.0.gir: add back GLvoid, which got lost during the + gir-repository -> gobject-introspection migration + +2009-01-15 Johan Dahlin + + * gir/freetype2-2.0.gir: add FT_Int32 + * gir/xft-2.0.gir: add XftFont + * girepository/gdump.c (g_irepository_dump): + Report errors when an invalid type is encountered + * giscanner/glibtransformer.py: + Make the error message a bit nicer. + + Part of preparating for gir generating inside pango. + +2009-01-15 Johan Dahlin + + * gir/GL-1.0.gir: + * gir/Makefile.am: + * gir/cairo-1.0.gir: + * gir/fontconfig-2.0.gir: + * gir/freetype2-2.0.gir: + * gir/libxml2-2.0.gir: + * gir/xfixes-4.0.gir: + * gir/xft-2.0.gir: + * gir/xlib-2.0.gir: + + Move over the hand-written girs from gir-repository + so upstream libraries depending on these can avoid + a gir-repository dependency. + +2009-01-15 Johan Dahlin + + Bug 567813 – Everything should be versioned + + * gir/Makefile.am: + * girepository/Makefile.am: + * girepository/girepository.c (init_globals): + * girepository/girparser.c (locate_gir): + * giscanner/dumper.py: + * giscanner/transformer.py: + * gobject-introspection-1.0.pc.in: + * tests/everything/Makefile.am: + * tests/invoke/Makefile.am: + * tests/offsets/Makefile.am: + * tests/repository/Makefile.am: + * tests/scanner/Makefile.am: + * tools/Makefile.am: + +2009-01-13 Johan Dahlin + + Bug 555036 – put gtk-doc in GIR + + * giscanner/annotationparser.py: + * giscanner/ast.py: + * giscanner/girwriter.py: + * giscanner/glibast.py: + * tests/scanner/annotation-1.0-expected.gir: + * tests/scanner/annotation.h: + * tests/scanner/foo-1.0-expected.gir: + +2009-01-13 Johan Dahlin + + * giscanner/cachestore.py (CacheStore.load): Catch AttributeError + which seems to be occasionally raised for Record. + + * giscanner/annotationparser.py: + Fix a bug where \n was not present in a comment + +2009-01-12 Johan Dahlin + + Bug 562467 – Property annotation + + * giscanner/annotationparser.py: + * tests/scanner/annotation-1.0-expected.gir: + * tests/scanner/annotation-1.0-expected.tgir: + * tests/scanner/annotation.c (annotation_object_set_property), + (annotation_object_get_property), (annotation_object_class_init): + + Annotations are parsed for properties. + +2009-01-12 Johan Dahlin + + Bug 546739 – Introspection should know precise signal parameter types + + * giscanner/annotationparser.py: + * tests/scanner/annotation-1.0-expected.gir: + * tests/scanner/annotation-1.0-expected.tgir: + * tests/scanner/annotation.c (annotation_object_class_init): + + Annotations are parsed for signals, the (type) annotation is introduced. + +2009-01-12 Johan Dahlin + + Bug 563591 – Flags not recognized when there is no introspection data + + * giscanner/ast.py: + * giscanner/girwriter.py: + * giscanner/giscannermodule.c (type_get_is_bitfield): + * giscanner/glibast.py: + * giscanner/glibtransformer.py: + * giscanner/scannerparser.y: + * giscanner/sourcescanner.c (gi_source_type_copy): + * giscanner/sourcescanner.h: + * giscanner/sourcescanner.py: + * giscanner/transformer.py: + * tests/scanner/foo-1.0-expected.gir: + * tests/scanner/foo-1.0-expected.tgir: + * tests/scanner/foo.h: + + Large parts of this patch was done by Jürg Billeter. + +2009-01-12 Havoc Pennington + + Bug 563386 – scanner ignores "const" on boxed return values + + * tests/everything/everything.c (test_simple_boxed_a_const_return): + * tests/everything/everything.h: + + This adds just the tests specified in the bug above, the fix itself + was included in Bug 563794 + +2009-01-03 Andreas Rottmann + + Bug 566404 – Annotations for GLib + + * gir/glib-2.0.c: Added allow-none annotations for g_thread_init() + and g_main_loop_new(). + +2009-01-12 Johan Dahlin + + Bug 566419 – Element type of arrays not properly handled in all cases + + * giscanner/annotationparser.py: + * tests/scanner/annotation-1.0-expected.gir: + * tests/scanner/annotation-1.0-expected.tgir: + * tests/scanner/annotation.c (annotation_object_set_data), + (annotation_object_set_data2), (annotation_object_set_data3): + * tests/scanner/annotation.h: + + Based on patch by Andreas Rottmann + +2009-01-12 Johan Dahlin + + Bug 566560 – giscanner.transformer.SkipError + + * giscanner/transformer.py: + + Catch SkipError for all nodes, not just functions. + Makes it possible to skip unsupported parameter types in + callbacks. + +2009-01-12 Johan Dahlin + + Bug 563794 - Redo annotation parsing & applying + + Thanks to Colin for helping out considerably in landing this. + + * giscanner/Makefile.am: + * giscanner/ast.py: + * giscanner/dumper.py: + * giscanner/girparser.py: + * giscanner/giscannermodule.c (pygi_source_scanner_get_comments), + (calc_attrs_length), (pygi_collect_attributes), (init_giscanner): + * giscanner/glibtransformer.py: + * giscanner/scannerlexer.l: + * giscanner/sourcescanner.c (gi_source_symbol_unref), + (gi_source_scanner_new), (gi_source_scanner_free), + (gi_source_scanner_get_comments): + * giscanner/sourcescanner.h: + * giscanner/sourcescanner.py: + * giscanner/transformer.py: + * giscanner/xmlwriter.py: + * tests/scanner/annotation-1.0-expected.gir: + * tests/scanner/annotation-1.0-expected.tgir: + * tests/scanner/annotation.c: + * tests/scanner/annotation.h: + * tests/scanner/foo-1.0-expected.gir: + * tests/scanner/foo-1.0-expected.tgir: + * tests/scanner/foo.h: + * tools/g-ir-scanner: + + This commit merges the annotation parser rewrite branch. + It'll change the annotation parsing to be done completely in python + code which will make it easier to do further annotation parsing + easier. + +2009-01-03 Andreas Rottmann + + Bug 563469 – Arrays not treated correctly in struct offset calculation + + * tests/scanner/foo.h (FooObject): Added field `some_int'. + * tests/scanner/foo-1.0-expected.gir, + * tests/scanner/foo-1.0-expected.tgir: Adapted. + + * giscanner/glibtransformer.py (GLibTransformer._create_gobject): + carry over object fields from original (struct) node. + (GLibTransformer._pair_class_struct): Don't add fields of the + class struct to to the node for the class, they should go under a + nested element (see also Bug 551738). This is needed as + otherwise offset calculation would not work, as the instance + fields are mingled with the class fields without a way to + distinguish them. + +2009-01-03 Johan Dahlin + + * misc/pep8.py: + Disable blank line check, it works differently under + Python 2.5 from 2.6 and was rather annoying from the start. + +2008-01-03 Andreas Rottmann + + Bug 556489 – callback annotations + + * giscanner/transformer.py + + * tools/generate.c (write_callable_info): Write out the new scope, + closure and destroy attributes. + + * giscanner/transformer.py (Transformer._type_is_callback): New + method, checking if a given type is a callback. + (Transformer._augment_callback_params): New method; adds + information (closure, destroy) to callback parameters. + (Transformer._handle_closure, Transformer._handle_destroy): New methods, + auxiliary to _augment_callback_params. + (Transformer._create_function): Call _augment_callback_params(). + (Transformer._create_parameter): Handle scope option. + + (Transformer._create_typedef_callback): New method, creates a + callback, and registers it in the typedef namespace + (Transformer._create_typedef): Use _create_typedef_callback() + instead of the plain _create_callback(). + + * giscanner/ast.py (Parameter): Added callback-related fields. + * giscanner/girwriter.py: Write out new Parameter fields. + + * girepository/girnode.h (GIrNodeParam): Added fields scope, + closure and destroy. + * girepository/gtypelib.h (ArgBlob): Ditto. + * girepository/girparser.c (start_parameter): Handle new fields. + + * girepository/girmodule.c (g_ir_module_build_typelib): Adjust + arg_blob_size, bump major version due to this change. + * girepository/girnode.c (g_ir_node_get_full_size_internal) + (g_ir_node_build_typelib) + * girepository/gtypelib.c (g_typelib_check_sanity): ArgBlob size + adjustments. + (g_ir_node_build_typelib): Fill in new ArgBlob flags from param. + + * girepository/girepository.h (GIScope): New enumeration, listing + the different possible scopes for callbacks. + + * girepository/ginfo.c (g_arg_info_get_scope) + (g_arg_info_get_closure, g_arg_info_get_destroy): Accessors for + callback-related argument indices (callback scope, closure for a + callback, destroy notification for a callback). + + * tests/scanner/: Added testcases for new features. + +2009-01-03 Jürg Billeter + + * giscanner/ast.py: + * giscanner/dumper.py: + * giscanner/girparser.py: + * giscanner/glibtransformer.py: + * giscanner/sourcescanner.py: + * giscanner/transformer.py: + * giscanner/xmlwriter.py: + + Fix inconsistencies with PEP8 + +2008-12-21 Johan Dahlin + + * gir/gio-2.0.c: + Annotate transfer, direction and allow none for + g_file_load_contents, g_file_load_contents_finish and + g_file_load_partial_contents_finish parameters. + +2008-12-12 Owen Taylor + + Disable array auto-detection for out-annotated parameters (#563934) + + If we have a parameter annotated as (out), then having a ctype of + 'char **' (or similar) doesn't necessarily indicate an array. + + * giscanner/transformer.py: Skip array-detection logic for + (out)-annotated parameters. + * tests/scanner/annotation.h tests/scanner/annotation.c + tests/scanner/annotation-1.0-expected.gir + tests/scanner/annotation-1.0-expected.tgir: Add a test for + an (out) string parameter. + +2008-12-12 Johan Dahlin + + * giscanner/dumper.py (DumpCompiler._link): Pass in + --tag=CC to libtool to avoid making libtool confused + when CC is different from gcc on some systems. + +2008-12-10 Johan Bilien + + Bug 563998 – Cache the GIBaseInfo for GTypes + + * girepository/girepository.c (g_irepository_find_by_gtype): + add a cache of GType -> GIBaseInfo. + +2008-12-09 Johan Bilien + + Bug 562545 – Add function taking / returning GValue + + * tests/everything/everything.[ch]: add a test of function taking and + returning "const GValue *" + +2008-12-09 Johan Dahlin + + * giscanner/cachestore.py (CacheStore.store): Use + shutil.move instead of os.rename, since it will + automatically fall back to copying+remove if the + src directory is on a different partition from + the dst directory. + +2008-12-08 Tristan Van Berkom + + Bug 563742 – introspection should record the introduced version of + symbols marked with the "Since:" tag + + reviewed by: Johan + + * giscanner/ast.py: + * giscanner/girwriter.py: + * giscanner/scannerlexer.l: + * giscanner/transformer.py: + * tests/scanner/annotation-1.0-expected.gir: + * tests/scanner/annotation-1.0-expected.tgir: + * tests/scanner/annotation.c (annotation_versioned): + * tests/scanner/annotation.h: + +2008-12-08 Johan Dahlin + + * giscanner/cachestore.py (_get_cachedir): Don't require + HOME to be set and if it set, don't require the + directory to exist. + +2008-12-08 Johan Dahlin + + * giscanner/cachestore.py (CacheStore.store): Dump the cache + file to a temporary file and rename it the expected filename + only when it's completely written. + This should make the cache more roboust when run in parallel, + and hopefully avoid triggering bugs in Python. + +2008-12-03 Christophe Fergeau + + Bug 562971 – g-ir-scanner failure on libgpod headers + + * giscanner/scannerlexer.l: raise YY_BUF_SIZE to 65536 up from the + default 16384. Without it, the lexer was aborting with a cryptic + error message on source files containing really long comment + blocks. + +2008-12-01 Colin Walters + + * girepository/gfield.c: Fix memory leak; unref type info we + created, not field info + +2008-11-30 Johan Dahlin + + Bug 562289 – Race when removing invalid cache + + * giscanner/cachestore.py: + ENOENT is mapped to a OSError, not IOError. + +2008-11-27 Johan Dahlin + + * gir/glib-2.0.c: Add return value transfer annotation + for g_markup_escape_text. + +2008-11-25 Colin Walters + + * tools/g-ir-scanner: Add --libtool option which we expect Automake-using + people to pass. + * giscanner/dumper.py: Implement it. + * gir/Makefile.am, tests/**/Makefile.am: Use it. + +2008-11-25 Colin Walters + + * tests/scanner/Makefile.am: Remove hand-rolled generation of .tgir; easier + to just use a Makefile rule and dependencies. This corresponds with a change + made to gir-repository to fix srcdir != builddir issues. + +2008-11-25 Johan Dahlin + + * configure.ac: + Post release version bump + +=== 0.6.1 === +2008-11-25 Johan Dahlin + + * NEWS: + Release 0.6.1 + +2008-11-25 Colin Walters + + Bug 559705 – Missing association between static methods and classes + + * docs/typelib-format.txt: + * girepository/ginfo.c (g_function_info_get_flags): + * girepository/girmodule.c (g_ir_module_build_typelib): + * girepository/girnode.c (g_ir_node_get_size), + (g_ir_node_build_typelib): + * girepository/girparser.c (start_function): + * girepository/gtypelib.c (g_typelib_check_sanity), + (validate_header), (validate_function_blob): + * girepository/gtypelib.h: + * giscanner/ast.py: + * giscanner/girwriter.py: + * giscanner/glibtransformer.py: + * tests/scanner/foo-1.0-expected.gir: + * tests/scanner/foo-1.0-expected.tgir: + * tests/scanner/foo.h: + +2008-11-25 Johan Dahlin + + * giscanner/ast.py: Define socklen_t as an alias for int32. + +2008-11-24 Johan Dahlin + + * girepository/gdump.c (dump_type): Remove a warning, + be less verbose on error on fundamental types. + +2008-11-23 Johan Dahlin + + * giscanner/dumper.py: Add license headers, + refactor into a class, avoid some duplication and do some + extra pedantic checks. + +2008-11-23 Johan Dahlin + + Make it compilable with -Werror on my system by adding + a couple of prototypes and including headers. + +2008-11-23 Johan Dahlin + + Bug 562022 – gobject-introspection needs python headers + + * configure.ac: fail without python headers present. + Patch by: Tom Parker + +2008-11-21 Johan Dahlin + + Bug 561617 – Return value array annotations + + * giscanner/transformer.py: + * tests/scanner/annotation.c (annotation_return_array): + * tests/scanner/annotation.h: + Add support for (array) for return value annotations as well. + +2008-11-20 Johan Bilien + + * tests/everything/everything.[ch]: add a test function which calls a + closure. + +2008-11-19 Johan Dahlin + + * giscanner/cachestore.py: + Catch ValueError exceptions. + +2008-11-18 Tommi Komulainen + + * tests/scanner/Makefile.am (barapp_SOURCES): fix builddir != srcdir + +2008-11-18 Andreas Rottmann + + * girepository/girnode.c (g_ir_node_build_typelib): Use sizeof() + instead of hard-coding struct sizes. + +2008-11-18 Owen Taylor + + Bug 561296 - Add "storage type" to the typelib data for enums + + In order to set and get enum and flag fields in structures, we need + to know the integral type that the enumeration is stored as. We are already + computing that at compile time in order to compute struct offsets, so the + easiest thing to do is to save that in the typelib. + + * docs/typelib-format.txt girepository/girnode.[ch] girepository/giroffsets.c + girepository/gtypelib.h: Add 'storage_type' to the typelib format for EnumBlob + and compute and save it at compile time. + + * girepository/girepository.h girepository/ginfo.c: + Add g_enum_info_get_storage_type(). + + * girepository/gfield.c: Implement reading and writing enum and flags fields + based on the storage type. + +2008-11-18 Owen Taylor + + Add enums to the Everything test module + + * tests/everything/everything.[ch]: Add TestEnum and TestFlags to the Everything + test module and register them as GTypes. + + https://bugzilla.gnome.org/show_bug.cgi?id=561296 + +2008-11-18 Johan Dahlin + + * giscanner/cachestore.py: + Catch BadPickleGet exceptions as well. + +2008-11-17 Owen Taylor + + * tests/everything/everything.c: Fix doc comment annotations + for test_struct_b_clone() to refer to the right function. + +2008-11-17 Dan Winship + + * giscanner/glibtransformer.py (GLibTransformer.__init__): fix + spelling of GHashTable. #561135 + + * tests/scanner/annotation.c (annotation_object_get_hash): + * tests/scanner/annotation-1.0-expected.gir: + * tests/scanner/annotation-1.0-expected.tgir: add a test of + GHashTable annotations + +2008-11-17 Andreas Rottmann + + * giscanner/ast.py: Change string array match type to be in terms + of canonicalized type. + * giscanner/transformer.py: Add canonicalize_ctype which gives us + a version of a c:type without aliases, so we can deep canonicalize + char** to utf8*. Update parse_ctype to use it. + * tests/*: Add gtk_init like int*/char*** arg functions for testing. + +2008-11-16 Colin Walters + + * girepository/girepository.c: Ensure we always call init_globals, + even if passed a non-default repository. + +2008-11-16 Colin Walters + + Bug 559706 - Interface prerequisites + + * common.mk: Dep on libgirepository.la for scanner libs so that + we rebuild things even if just gdump.c changes. + * girepository/gdump.c: Dump prerequisites. + * giscanner/ast.py: Add prerequisite list. + * giscanner/girparser.py: Parse them from gdump. + * giscanner/girwriter.py: Write them. + * giscanner/glibtransformer.py: Resolve them. + * tests/*: Test. + +2008-11-16 Owen Taylor + + Bug 561087 - Respect is_pointer in serialize_type() + + Add a '*' to the serialization for the cases where we set is_pointer + in the type blob we write out depending on node->is_pointer. Don't + add the '*' in the cases where is_pointer is set or not set in a + fixed fashion. + + http://bugzilla.gnome.org/show_bug.cgi?id=561087 + +2008-11-16 Owen Taylor + + Bug 560825 – Add size and alignment to typelib + + Include the size and alignment of structures and unions in the typelib, + and add getter methods to retrieve them from GIStructInfo/GIUnionInfo. + + * docs/typelib-format.txt girepository/gtypelib.h girepository/girnode.c + girepository/girmodule.c girepository/gtypelib.c: Add size and alignment + to StructBlob and UnionBlob. + + * girepository/ginfo.c girepository/girepository.h: + Add g_[struct|union]_get[size|alignment](). + + * test/offsets/gen-gitestoffsets: Test overall structure size and alignment. + +2008-11-16 Owen Taylor + + Bug 552371 – implement struct field get/set + + * girepository/gfield.c girepository/girepository.h: Add + convenience functions g_field_info_set_field() and + g_field_info_get_field() to set and get fields based on the + offsets in GIFieldInfo. + +2008-11-16 Andreas Rottmann + + Bug 560241 - Out-arguments should not be marked as being pointers + in all cases + + * girepository/girparser.c: Improved logic for out arguments. + +2008-11-16 Andreas Rottmann + + Bug 559601 - Pointers in structs/unions unduly treated as arrays + + * giscanner/transformer.py: Differentiate type creation logic + between parameters and struct components. + +2008-11-15 Colin Walters + + * giscanner/dumper.py: Check return code from pkg-config + invocations. + +2008-11-14 Johan Dahlin + + * tests/everything/everything.c (test_array_int_in), + (test_array_gtype_in): + * tests/everything/everything.h: + Rename the int/gtype array tests. Make the return value + useful, an aggregation of the array input values. + +2008-11-14 Johan Dahlin + + * tests/everything/Makefile.am: + * tests/everything/everything.c: + * tests/everything/everything.h: + * tests/everything/gitesttypes.c: + * tests/everything/gitesttypes.h: + Rename gitesttypes.[ch] to everything.[ch] + +2008-11-13 Andreas Rottmann + + Bug 560708 – Don't treat arrays that have a length specified as + zero-terminated by default + + * giscanner/transformer.py: Default to non zero terminated for + arrays with length. + * tests/*: Update, add test for zero vs not. + +2008-11-13 Andreas Rottmann + + Bug 557788 - Return types for constructors in generated typelib bogus + + * girepository/girnode.c: Namespace-qualify XREFs; not doing so is + obviously broken in the face of duplicate names in different + namespaces. + * tests/scanner/*expected.gir: Fix up. + +2008-11-13 Owen Taylor + + * girepository/girffi.c: Fix "Unexpected time for time_t" + message. + +2008-11-13 Colin Walters + + Bug 558436 - avoid having scanner load app code + + * giscanner/cgobject.py: Delete; we no longer load shared + libraries directly. + * giscanner/dumper.py: Support for linking a library to + a stub binary for introspection. + * giscanner/glibtransformer.py: Rewrite to use gdump XML + from invocation of child binary. + * giscanner/transformer.py: Fix up to use fully qualified + name in parse tree. Make parse_ctype public so we can use + it inside glibtransformer. + * tests/scanner/barapp.c: New test, using --program arg + for g-ir-scanner. + * tests/*: Update to use common.mk for invoking scanner. + * tools/g-ir-scanner: Add options --program, --program-arg, + and --no-libtool. + * docs/g-ir-scanner.1: Update. + +2008-11-13 Colin Walters + + * configure.ac: Depend on Gio, we use it in gdump.c. + * girepository/gdump.c: Code to dump GType data to XML. + * girepository/girepository.c: Add option group for dumping. + * girepository/girepository.h: Define API for the above. + +2008-11-13 Colin Walters + + * common.mk: Add a file to include with Makefile fragments + useful for scanner invocation. + +2008-11-13 Tommi Komulainen + + * tests/everything/gitesttypes.c (test_filename_return): Return + strings in filename encoding. + +2008-11-13 Owen Taylor + + Bug 560253 – Add structure and boxed types to Everything test module + + * tests/everything/gitesttypes.[ch]: Add examples of: + + Plain old data structs + Plain old data structs with nested fields + Plain old data boxed + Plain old data boxed with nested fields + More complicated boxed types with internal state + +2008-11-12 Johan Dahlin + + * tests/everything/gitesttypes.c (test_gtype_in): + * tests/everything/gitesttypes.h: + Add a test of GType arrays, a la gtk_list_store_set_columns. + +2008-11-12 Owen Taylor + + Bug 560419 – Cache includes when parsing + + Keep track of all modules parsed within a GIrParser, and when a + module is referenced a second time, use the existing parsed copy + instead of reparsing. + +2008-11-12 Owen Taylor + + Fix management of ParseContext.includes_modules (#560419) + + * girepository/girparser.c: Fix some trivial bugs in managing the + list of include modules. (Add to module's list twice, not + initialized to NULL, not freed.) + +2008-11-12 Owen Taylor + + Keep aliases and disguised_structures local to each module (#560419) + + * girepository/girmodule.[ch]: When parsing, keep keep a separate + hash tables of aliases and 'disguised' flags for each module, and + store that on the module. + + After parsing an include merge the aliases/disguised flags to the + including module. + + * girepository/girparser.c: Remove 'prefix_aliases' flag and + always prefix aliases/disguised structure types when parsing; this + simplifies the code considerably. + +2008-11-12 Owen Taylor + + Fix mismatches between .gir name and 'name' attribute (#560419) + + * tests/boxed.gir tests/constant.gir tests/enum.gir tests/invoke/invoke.c + tests/invoke/testfns-1.0.gir tests/object.gir tests/struct.gir: Fix places + where the 'name' element of didn't match the filename of the + gir, an assumption that the compiler has always expected and now enforces. + +2008-11-12 Owen Taylor + + Only allow one element per (#560419) + + * girepository/girparser.c: The logic in girparser.c didn't work + very well if there were multiple nodes within a + single (context->namespace was always the overall + filename and not the the name specified in the + element for one thing; this would cause aliases to be mis-prefixed + in include modules.) Also check that the "name" in the + node matches the filename. + +2008-11-12 Owen Taylor + + Add a GirParser object to hold the state of a compilation + + * girepository/girparser.[ch] tools/compiler.c: Add a toplevel + GirParser object to hold state that is global across a + compilation. Currently just holds the include path, but will + eventually also keep a cached list of parsed modules. + +2008-11-12 Tommi Komulainen + + * girepository/girepository.c (find_namespace_latest): Fix + minor memory leak. + +2008-11-12 Tommi Komulainen + + * configure.ac: use 'introspection' component for bugs + +2008-11-12 Johan Dahlin + + * tests/everything/gitesttypes.c (test_filename_return): + * tests/everything/gitesttypes.h: + Add a filename return test. + +2008-11-12 Tommi Komulainen + + * tests/offsets/Makefile.am (gitestoffsets.c): fix + gen-gitestoffsets invocation with builddir != srcdir + +2008-11-12 Johan Dahlin + + * girepository/girepository.c: + Change the element type from utf8 to filename + * girepository/girnode.c (g_ir_node_build_typelib): + Special case filename equally to utf8 here. + +2008-11-12 Johan Dahlin + + * gir/Makefile.am: + Remove unused variables, add a dependency of girepository.ch, so when + they change we rebuild the gir automatically. + +2008-11-12 Johan Dahlin + + * girepository/girepository.c (g_irepository_get_search_path): + * girepository/girepository.h: + Add a g_irepository_get_search_path, so we can access the search + paths from runtime. + +2008-11-12 Johan Bilien + + Bug 560474 – g-ir-compiler crashes when compiling the glib gir + + * girepository/girparser.c: avoid freeing an uninitialized pointer + +2008-11-12 Johan Dahlin + + * gir/Makefile.am: + * giscanner/glibtransformer.py: + * tools/g-ir-scanner: + Add a GIRepository-2.0.gir. Change the libtool lookup slightly + so we can just pass in --library=foo/bar/baz.la and the scanner + does the right thing. + Don't warn for _get_type() functions if they don't take any + parameters + +2008-11-11 Owen Taylor + + Bug 560404 – Prefix types when resolving aliases in included modules + + * girepository/girparser.c: When resolving aliases in an included + module, prefix types before looking them up. + +2008-11-11 Owen Taylor + + Compute field offsets and overall size for object structures + + Bug 560326 – Fails to build Gtk-2.0.typelib with "Unexpected non-pointer + field of type object in structure" + + Do basic computation of field offsets for objects and interfaces; + this doesn't attempt to address all of the "mess" for virtual + functions described in Bug 560281. + +2008-11-11 Tommi Komulainen + + Bug 560308 – g-ir-compiler goes in infinite loop on Gdk-2.0.gir + + Based on patch by Johan Bilien. + + * giscanner/transformer.py (_create_member, _create_parameter): + Resolve types here as well. + (_resolve_type_name_1): Try resolving using 'ctype' first since + it's least ambiguous. Fixes struct member type resolution with + similarly named types, e.g. Gdk.PangoRendererClass and + Pango.RendererClass + * tests/scanner/foo*: Add test. + +2008-11-11 Owen Taylor + + * girepository/girparser.c: Search provided include dirs before + the default directories. + +2008-11-11 Owen Taylor + + * girepository/giroffsets.c: Include fully-qualified names in + all error messages. + +2008-11-11 Owen Taylor + + * girepository/giroffsets.c: Fail gracefully with an informative + error message when recursion is encountered when computing a + structure size. + +2008-11-11 Owen Taylor + + * girepository/girparser.c: Remove an unused variable. + +2008-11-10 Owen Taylor + + Add tests for field offset computations + + * tests/offsets/offsets.h: Header file with structure definitions to test + + * tests/offsets/gen-gitestoffsets: Generate a C program that computes + field offsets for the structures in offsets.h two ways: using + the information from a generated typelib, and as computed by the + compiler. + + We diff these two versions to test that everything is OK. + +2008-11-10 Owen Taylor + + Remove field offsets from g-ir-generate output and test inputs + + Field offsets are a) architecture dependent so they shouldn't be part + of the architecture-independent gir format which is installed in + datadir. b) Are architecture-dependent so they shouldn't be in test + expected output. + + * girepository/girparser.c: Don't parse offset for fields + * tools/generate.c: Don't parse offset for fields + * tests/*.gir test/scanner/*.tgir: Remove offsets + + (Virtual function and discriminator offsets are not removed, as they + aren't fully hooked up to the field-offset computation machinery yet.) + +2008-11-10 Owen Taylor + + Bug 560252 - Compute field offsets before writing typelib + + * girepository/girnode.h: Store the total size and alignment for + GIrNodeStruct/Boxed/Union. + + * girepository/giroffset.c: New file implementing computation of + structure field offsets. + + * girepository/girnode.c: Compute structure field offsets before + writing types into the typelib. + + * docs/typelib-format.txt: Document that a field offset of 0xFFFF + means "unknown". Also fix description of the discriminator_offset + field for unions. + +2008-11-10 Owen Taylor + + Bug 560250 - Fully parse included modules + + For some things, like computing structure offsets to put into the typelib + we need more than just the aliases from included modules. Do a completel + parse of included modules and store in module->included_modules. + + Also add g_ir_find_node() to find node information from within the + active set of modules and their includes. + +2008-11-10 Owen Taylor + + Split g_ir_ffi_get_ffi_type() out from ginvoke.c + + Extract a function to convert GITypeTag to ffi_type from the internals + of ginvoke.c. This will be useful in figure out structure alignment. + + Also fix handling of gsize and time_t to be portable. (Add a check + to configure.ac to figure out the width of time_t.) + +2008-11-10 Owen Taylor + + Bug 560248 – "disguised structures" + + Certain types like GIConv and GdkAtom are pointers internally but don't + look like pointers when referenced. They have the form. + + typedef struct _X *X; + + Parse these as structures/records but mark them in the gir with a 'disguised' + attribute so that we know that they need special handling. + + In the typelib treat them like any other structure. + +2008-11-09 Jürg Billeter + + * giscanner/ast.py: + * giscanner/girwriter.py: + + Write throws attribute for virtual functions, fixes bug 559703 + +2008-11-07 Johan Dahlin + + * giscanner/libtoolimporter.py (LibtoolImporter.find_module): Clear + up some confusion about the second argument to find_module, it's + actually the packages __path__ attribute which we can safely ignore + for our purposes. + (LibtoolImporter.load_module): Set module.__loader__ as per PEP 302. + +2008-11-07 Owen Taylor + + Bug 559737 – Deal with continuations in macros + + * giscanner/giscannerlexer.l: Treat continuation lines the same + as regular newlines. This makes the scanner not complain about + #define foo(x) \ inside a C file. There's no attempt + however to handle parsing macro definitions split across lines. + +2008-11-07 Johan Dahlin + + * giscanner/cachestore.py: + Handle broken cache entries, write only filesystems and + running out of diskspace. + +2008-11-07 Owen Taylor + + * giscanner/giscannermodule.c (pygi_source_scanner_lex_filename): + Set current_filename before lexing the file so error messages + are reported in the right file. + +2008-11-06 Colin Walters + + * tests/everything/*: Add some tests for strv. + +2008-11-05 Colin Walters + + * girepository/ginvoke.c (g_function_info_invoke): Don't use + nested scope local variable for error which may go away after + conditional is complete. + +2008-11-05 Colin Walters + + * giscanner/scannerlexer.l: Avoid static 256 char buf which we + manipulate hackily; just use GString. This avoids an + uninitialized memory read pointed out by Havoc. + +2008-11-04 Johan Dahlin + + * giscanner/__init__.py: + * giscanner/ast.py: + * giscanner/cachestore.py: + * giscanner/cgobject.py: + * giscanner/girparser.py: + * giscanner/girwriter.py: + * giscanner/giscannermodule.c: + * giscanner/glibast.py: + * giscanner/glibtransformer.py: + * giscanner/libtoolimporter.py: + * giscanner/minixpath.py: + * giscanner/odict.py: + * giscanner/sourcescanner.c: + * giscanner/sourcescanner.h: + * giscanner/sourcescanner.py: + * giscanner/transformer.py: + * giscanner/utils.py: + * giscanner/xmlwriter.py: + * COPYING: + Relicense the giscanner library under LGPLv2+. + This has been approved by all contributors. + +2008-11-01 Owen Taylor + + Bug 558848 giparser.py: shared library should be optional + + When parsing a .gir, allow the shared-library attribute + of to be missing: this corresponds to the handling + in libgirepository and elsewhere. + +2008-11-01 Tommi Komulainen + + Bug 557898 – Fails to build on OSX 10.4 + + * configure.ac: Check for $shrext_cmds that should be implicitly + available if you're using libtool >= 2.0. If undefined, call + libtool --config explicitly to get its value. + * girepository/gtypelib.c: Remove special case for (non-)Darwin + systems as unneeded. + +2008-10-31 Colin Walters + + * COPYING, COPYING.lib, COPYING.tools: Clarify licensing status. + +2008-10-31 Johan Dahlin + + * configure.ac: Post release version bump + +=== 0.6.0 === +2008-10-31 Johan Dahlin + + * NEWS: + * configure.ac: + * docs/release-checklist.txt: + 0.6.0 + +2008-10-31 Johan Dahlin + + * Makefile.am: add an upload-release target + * docs/release-checklist.txt: + Release process documentation + +2008-10-31 Colin Walters + + Bug 558109 – _g_typelib_init fails to find shared libraries + + * transformer/glibtransformer.py: Use ctypes' find_library + on passed libraries and write that for the shared-library + entry. We want to avoid depending on -devel packages. + +2008-10-31 Johan Dahlin + + * docs/g-ir-scanner.1: + Document the renaming options. + +2008-10-31 Tommi Komulainen + + * giscanner/Makefile.am: + * tests/invoke/Makefile.am: + * tests/repository/Makefile.am: List in-tree libraries first in + LDADD / LIBADD. If installed library is listed first, the + resulting binary will prefer installed version to one in .libs, + possibly making 'make check' behave strangely. + +2008-10-30 Tommi Komulainen + + * giscanner/ast.py: map 'id' (ObjC) to 'any' type to stop + gir-repository from choking with gdk/quartz + +2008-10-30 Johan Dahlin + + * giscanner/giscannermodule.c (calc_attrs_length), + (pygi_collect_attributes): + * giscanner/xmlwriter.py: + Write a C version of the xml namespace formatter. + Saves 15% of the time it takes to create a gtk gir. + +2008-10-30 Johan Dahlin + + * giscanner/xmlwriter.py: Abstract attribute formatting + to a function external to the XMLWriter class. + + * giscanner/scannerlexer.l: + Parse and discard __typeof and __attribute. + +2008-10-30 Johan Dahlin + + * giscanner/girparser.py: + Remove arguments from the constructor, move them to + separate accessors. Add a new parse_tree method + which takes an element tree instance. + * tools/g-ir-scanner: + Update callsite for this + + * giscanner/Makefile.am: + * giscanner/cachestore.py: + * giscanner/transformer.py: + Cache the include parsing. Saves ~25% time when + creating vte (which includes everything up to gtk+). + +2008-10-30 Colin Walters + + * giscanner/transformer.py: Don't reparse includes + we've already processed. + +2008-10-30 Johan Dahlin + + * giscanner/girparser.py: + * giscanner/transformer.py: + Avoid parsing parameters, types etc when parsing + includes. Should speed up include parsing a bit. + +2008-10-30 Johan Dahlin + + * giscanner/girparser.py: + Avoid big if/else and use a dispatch table like + approach. + +2008-10-30 Johan Dahlin + + * giscanner/transformer.py: + Clean up include parsing and registration. + +2008-10-30 Johan Dahlin + + * giscanner/transformer.py: + Clean up imports + +2008-10-30 Johan Dahlin + + Bug 558383 – builddir != srcdir build fails if giscanner python module not already installed + + * gir/Makefile.am: + construct PYTHONPATH just once + + * tests/everything/Makefile.am: + * tests/scanner/Makefile.am: + add $(top_srcdir) to PYTHONPATH to + handle builddir != srcdir + + * giscanner/libtoolimporter.py: + * giscanner/sourcescanner.py: + Make the libtoolimporter work when distchecking too. + + Mostly based on patch by Tommi Komulainen + +2008-10-29 Owen Taylor + + * giscanner/glibtransformer.py: If a filename of an existing + file is passed to --library, hunt for it directly, rather than + searching for a corresponding library. + +2008-10-29 Johan Dahlin + + * giscanner/libtoolimporter.py: + * giscanner/sourcescanner.py: + Clean up the libtool importer a bit. Add a context so we + can use it through a with statement. + Don't just look in the current directory, look in the whole + sys.path. + +2008-10-29 Tommi Komulainen + + Bug 558065 – gitesttypes should be installed + + * configure.ac: + * tests/Makefile.am: + * tests/types/Makefile.am -> tests/everything/Makefile.am + * tests/types/gitesttypes.c -> tests/everything/gitesttypes.c + * tests/types/gitesttypes.h -> tests/everything/gitesttypes.h + move tests/types to tests/everything + + * tests/everything/Makefile.am: build normal shared library + libgirepository-everything.so.1.0.0 and corresponding typelib + Everything-1.0.typelib + + * tests/everything/Makefile.am: explicitly link libtool + versioning with typelib versioning with variables + +2008-10-28 Johan Bilien + + * tools/g-ir-scanner: add LD_LIBRARY_PATH to LPATH before calling ld. + +2008-10-27 Johan Bilien + + * gio/gio-2.0.c: add allow-none annotations, based on the pygobject + .defs file + +2008-10-27 Johan Bilien + + Bug 558068 – when invoking a method, offset the in arguments by one, + not the out + + * tests/invoke/invoke.c, tests/invoke/testfns.c, + tests/invoke/testfns-1.0.gir: Add testing of method and constructor. + * girepository/ginvoke.c: do not offset the index of given out + arguments by one for methods, "this" is provided as in argument only. + +2008-10-27 Johan Bilien + + * gir/gio-2.0.c: add annotation for g_file_delete + +2008-10-27 Tommi Komulainen + + Bug 558062 – provide and use paths in the .pc file + + * gobject-introspection-1.0.pc.in: provide typelibdir variable + for where .typelibs should be installed (callers shouldn't need + to construct paths from bits and pieces) + +2008-10-25 Andreas Rottmann + + Bug 557791 – g_irepository_require() could return a GTypelib * + + * girepository/girepository.c: Return GTypelib; this is useful + for low level manipulation. + +2008-10-25 Colin Walters + + Bug 557788 – Return types for constructors in generated typelib bogus + + * giscanner/glibtransformer.py: Don't resolve ctors incrementally, + rely on end pass resolution. + +2008-10-25 Andreas Rottmann + + Bug 557786 - support fixed size arrays + + * girepository/ginfo.c: Add g_type_info_get_array_fixed_size. + * giscanner/scannerparser.y: Retain fixed array size. + * giscanner/ast.py: Add to note. + * giscanner/girwriter.py: Write to gir. + * girepository/girnode.c: Write it to typelib. + * tools/generate.c: Generate. + * tests/*: Add tests. + +2008-10-25 Colin Walters + + Bug 557076 - move typelibs to $libdir + + * configure.ac: Steal some configury bits from dbus to expand + libdir. + * gir/Makefile.am: Move to libdir. + * girepository/girepository.c: Stop searching XDG_DATA_DIRS; + instead just look at one hardcoded path in libdir. + * acinclude.m4: Bits from dbus. + +2008-10-24 Johan Dahlin + + * girepository/girnode.c (g_ir_node_check_unhandled_members): + Be quiet, do not warn about unhandled members. + +2008-10-24 Johan Dahlin + + * girepository/gtypelib.c: + Only use SHLIB_SUFFIX on darwin, otherwise use + G_MODULE_SUFFIX, we cannot get shext_cmds from libtool 2.2. + +2008-10-24 Lucas Rocha + + Bug 557623 - Constructors shouldn't be flagged as methods. + + * girepository/ginfo.c (g_function_info_get_flags): ditto. + +2008-10-24 Johan Dahlin + + * giscanner/scannerparser.y: + Check against division by zero for the modula operator. + This fixes header parsing of OSX system headers included + by libsoup. + +2008-10-24 Johan Dahlin + + * CONTRIBUTORS: + * Makefile.am: + Add a CONTRIBUTORS file and dist it. + +2008-10-23 Tommi Komulainen + + Bug 556739 – transfer-ownership attribute should be mandatory in .gir + + * girepository/girparser.c (parse_param_transfer): + * giscanner/transformer.py (_create_parameter, _create_return): + * giscanner/girwriter.py (_write_return, _write_parameter): + * tools/generate.c (write_callable_info): always write and + require "transfer-ownership" for return-values and parameters + + * tests/boxed.gir: + * tests/invoke/testfns-1.0.gir: + * tests/object.gir: + * tests/scanner/DrawableAdditions.xml: + * tests/scanner/GtkFrob-1.0-expected.tgir: + * tests/scanner/annotation-1.0-expected.tgir: + * tests/scanner/drawable-1.0-expected.tgir: + * tests/scanner/drawable-injected-1.0-expected.gir: + * tests/scanner/drawable-injected-1.0-expected.tgir: + * tests/scanner/foo-1.0-expected.tgir: Updated + +2008-10-23 Tommi Komulainen + + * giscanner/cgobject.py: build fundamental types same way as glib + + * giscanner/glibtransformer.py (_type_from_gtype): record GType + when constructing the Type from it + + * giscanner/glibtransformer.py (_adjust_transfer): Check whether + the parameter is a GObject from its GType, if available. + + * giscanner/glibtransformer.py (_adjust_transfer): + * tests/scanner/foo-1.0-expected.gir: + * tests/scanner/foo-1.0-expected.tgir: deduce + transfer-ownership from GTypes + +2008-10-23 Tommi Komulainen + + * giscanner/transformer.py (_create_parameter): + * tests/scanner/foo-1.0-expected.gir: make varargs + transfer-ownership="none" + +2008-10-23 Colin Walters + + Bug 556739 - transfer ownership + + * giscanner/ast.py: Refactor Parameter/Return to share + common attributes. Add transfer_inferred attribute + which says whether or not we made a guess. + * giscanner/transformer.py: Add much more extensive + heuristics around parameter and return transfer. + * giscanner/glibtransformer.py: Adjust to inspect + transfer_inferred. + * tests/*: Adjust. + +2008-10-22 Tommi Komulainen + + Bug 557377 – Add test to ensure annotations survive the roundtrip via typelib + + * tests/scanner/Makefile.am: + * tests/scanner/annotation-1.0-expected.tgir: + * tests/scanner/drawable-1.0-expected.tgir: + * tests/scanner/drawable-injected-1.0-expected.tgir: + * tests/scanner/foo-1.0-expected.tgir: + * tests/scanner/GtkFrob-1.0-expected.tgir: + * tests/scanner/utility-1.0-expected.tgir: Add test to ensure + annotations survive the roundtrip via typelib + + The expectations are as currently produced by g-ir-generate, + comparison with the .gir files shows there are differences. + +2008-10-23 Johan Bilien + + Bug 557468 – Support for GI_TYPELIB_PATH + + * girepository/girepository.c: if the GI_TYPELIB_PATH is set, add the + provided paths to the global search path. + +2008-10-22 Tommi Komulainen + + Bug 557379 – g-ir-generate not writing the 'abstract' attribute + + * tests/scanner/drawable-1.0-expected.tgir: + * tests/scanner/drawable-injected-1.0-expected.tgir: + * tests/scanner/foo-1.0-expected.tgir: + * tools/generate.c (write_object_info): write 'abstract' + attribute for classes + +2008-10-22 Lucas Rocha + + * girepository/girmodule.c, girepository/gtypelib.c, + girepository/girparser.[ch]: fix some build warnings. + +2008-10-22 Tommi Komulainen + + Bug 557405 – Use 'allow-none' consistently + + * docs/typelib-format.txt: + * girepository/ginfo.c (g_arg_info_may_be_null): + * girepository/girnode.c (g_ir_node_build_typelib): + * girepository/girnode.h (struct _GIrNodeParam): + * girepository/girparser.c (start_parameter): + * girepository/girwriter.c (function_generate): + * girepository/gtypelib.h (ArgBlob): + * tests/errors.gir: + * tests/function.gir: + * tools/generate.c (write_callable_info): Use 'allow-none' + consistently throughout + +2008-10-22 Tommi Komulainen + + Bug 557092 – Callback annotations not used + + * giscanner/transformer.py (_create_callback): use annotations + for callbacks + * tests/scanner/annotation.h + * tests/scanner/annotation-1.0-expected.gir: add tests + +2008-10-21 Colin Walters + + * giscanner/scannerlexer.l: Don't require trailing whitespace after + uncommented parameters. + * tests/*: Test it. + +2008-10-21 Colin Walters + + * girepository/girepository.c: Ensure that when doing an unversioned + require, we prefer items earlier in the search path to later ones. + +2008-10-21 Owen Taylor + + * giscanner/transformer.py: For string parameters allow transfer annotation + to override the standard automatic guessing based on 'const'. + +2008-10-21 Johan Bilien + + Bug 557241 – "throws" flag for functions + + * tests/scanner/drawable-1.0-expected.gir, + tests/scanner/drawable-injected-1.0-expected.gir, + tests/scanner/drawable.[ch]: add simple test for throwing + function (has GError ** as last argument) + + * giscanner/ast.py: add a 'throws' flag to Function + * giscanner/glibtransformer.py: if a function's last paramerter is + a GError, set the 'throws' flag and remove that parameter + * giscanner/girwriter.py: write out the 'throws' attribute + * giscanner/girparser.py: support parsing the 'throws' attribute + + * tests/repository/gitestthrows.c: add a simple test to check the + throws flag in a typelib and invoke the function + + * girepository/ginfo.c, girepository/girnode.[ch], + girepository/girnode.h, girepository/girparser.c, + girepository/girepository.h: Add and parse the GI_FUNCTION_THROWS flag + + * girepository/ginvoke.c: if a function throws, add a GError as last + arguments, and propagate the error to the invoker. + +2008-10-21 Tommi Komulainen + + * giscanner/transformer.py (_create_parameters): Warn if we see + annotations for unknown parameters. If .h and .c files name + parameters differently, the annotations may be lost. + +2008-10-21 Johan Dahlin + + Bug 556358 - don't use libtool internals + + * giscanner/Makefile.am: + * giscanner/libtoolimporter.py: + * giscanner/sourcescanner.py: + * giscanner/utils.py: + Add a python meta importer and remove a libtool symlink hack. + +2008-10-20 Andreas Rottmann + + * tests/scanner/Makefile.am (%.typelib): Set PYTHONPATH + and --add-include-path appropriately when invoking the scanner. + * tests/types/Makefile.am (%typelib): Likewise. + +2008-10-20 Colin Walters + + Bug 556777 - validate properties + + * giscanner/transformer.py: Add option to throw on unknown types. + * giscanner/glibtransformer.py: Use it on properties. + * tests/*: Add a test. + +2008-10-20 Colin Walters + + * giscanner/glibast.py: Also register g variants of + default_array_types. This is not beautiful, but + good alternatives aren't easy to come by. + This fixes gchar ** parsing. + +2008-10-20 Colin Walters + + * docs/typelib-format.txt, girepository/gtypelib.h: + Take a bit from ObjectInfo to represent abstract flag. + * giscanner/cgobject.py: Expose g_type_get_flags. + * girepository/girepository.h: Add accessor. + * girepository/ginfo.c: Implement it. + * giscanner/ast.py: Add is_abstract flag to generic + class object. + * giscanner/glibast.py: Use it. + * giscanner/girwriter.py: Write it. + * girepository/girparser.c: Parse it. + * tests/*: Test it. + +2008-10-20 Tommi Komulainen + + * giscanner/girparser.py (_parse_function): don't lose + 'transfer-ownership' attributes when injecting, check for the + correct attribute + +2008-10-19 Johan Dahlin + + * giscanner/scannerlexer.l: Parse and ignore __asm. + +2008-10-19 Colin Walters + + * giscanner/girparser.py: Parse array length= to ensure + it doesn't get lost from --inject. + +2008-10-17 Colin Walters + + Bug 556795 - char ** regression + + * giscanner/transformer.py: Fix parsing of ctypes, add some + comments about what's going on. + * tests/*: Add a test for char **. + +2008-10-17 Colin Walters + + Bug 556783 - change namespace handling to be more consistent + + * giscanner/transformer.py: Eliminate usage of + strip_namespace_object. We now treat --namespace as the default + --strip-prefix; however, if --strip-prefix is specified it + overrides --namespace. This applies to everything except function + names, where we do also strip the namespace. + * giscanner/glibtransformer.py: Remove usage of + strip_namespace_object. + * tests/*: Update. + * tests/*: Add skeletal GtkFrob-1.0 test which has different + --namespace and --strip-prefix. + +2008-10-17 Tommi Komulainen + + Bug 556732 – generate gir files consistently + + * girepository/girparser.c (start_parameter): + * tests/boxed.gir: + * tests/invoke/testfns-1.0.gir: + * tools/generate.c (write_callable_info): write + 'transfer-ownership' attribute consistently with both + return-value and parameter elements + +2008-10-17 Tommi Komulainen + + Bug 556732 – generate gir files consistently + + * tools/generate.c (write_callable_info): write 'direction' + attribute only if other than 'in' to be consistent with + girwriter.py + * tests/boxed.gir: + * tests/object.gir: remove direction="in" which is the default + +2008-10-17 Tommi Komulainen + + Bug 556732 – generate gir files consistently + + * giscanner/ast.py (Field): add readable and writable properties + * giscanner/girparser.py (_parse_field): copy 'readable' and + 'writable' attributes + * giscanner/transformer.py (_create_member): create fields as + read-write + * giscanner/glibtransformer.py (_introspect_object, + _pair_class_struct): make object instance and class fields + read-only + * giscanner/girwriter.py (_write_field): + * tools/generate.c (write_field_info): write field 'readable' + and 'writable' attributes only if non-default (read-only) + * girepository/girparser.c (start_field): in the absence of + attributes assume fields are read-only + * tests/boxed.gir: + * tests/struct.gir: remove redundant readable="1" from fields + * tests/scanner/foo-1.0-expected.gir: + * tests/scanner/utility-1.0-expected.gir: add writable="1" to + all record and union fields + +2008-10-17 Tommi Komulainen + + Bug 556732 – generate gir files consistently + + * giscanner/girwriter.py (_write_property): write properties + 'construct' attribute if set + * tools/generate.c (write_property_info): write properties + 'readable' and 'writable' attributes only if non-default + * tests/object.gir: add writable="0" + * tests/scanner/foo-1.0-expected.gir: add construct="1" + +2008-10-17 Johan Bilien + + * gir/glib-2.0.c: added annotations + +2008-10-16 Johan Bilien + + * giscanner/ast.py: Also assume direction=out for size_t*, ssize_t* + arguments + +2008-10-16 Johan Bilien + + Bug 556610 – giscanner/girparser.py drops parameter options + + * tests/scanner/drawable-injected-1.0-expected.gir, + tests/scanner/DrawableAdditions.xml: added simple test for injection. + * giscanner/ast.py: allow Parameter to take options in the constructor + * giscanner/girparser.py: parse parameter options (transfer, + direction, allow-none) + +2008-10-16 Colin Walters + + Bug 556185 - segfault on g_callable_info_get_return_type + + Initial patch from John Ehresman. + + * tests/repository/*: Add a test using + g_callable_info_get_return_type. Instead of casting a + GITypeInfo directly to a GIRegisteredTypeInfo, we need + to call g_type_info_get_interface. + +2008-10-16 Colin Walters + + Bug 556579 - union and struct name misresolved + + * giscanner/transformer.py: The calls to _resolve_type_name + for struct/union names was a legacy holdover from when type + resolution had multiple phases. Now it's actively harmful + since we might pull in an identical name from another + namespace. + * tests/*: Update. + +2008-10-16 Colin Walters + + Bug 556432 - transfer annotations and defaults + + * giscanner/transformer.py: Canonicalize type + after removing *, not before. This ensures that + guchar* is transformed to 'uint8'. + Add some comments here. + * giscanner/glibtransformer.py: Add _adjust_transfer + phase for tweaking GObject transfers. + * tests/*: test it. + +2008-10-16 Tommi Komulainen + + * configure.ac: enable bunch of gcc warning CFLAGS + +2008-10-16 Tommi Komulainen + + Bug 556543 – reduce compiler warnings + + * girepository/ginfo.c: + * girepository/girepository.c (register_internal, + count_interfaces, find_interface, find_namespace_version, + parse_version, g_irepository_require): + * girepository/girmodule.c (g_ir_module_build_typelib): + * girepository/girnode.c (init_stats, dump_stats, + _g_irnode_init_stats, _g_irnode_dump_stats, + g_ir_node_can_have_member): + * girepository/girparser.c (firstpass_end_element_handler, + locate_gir, parse_basic, parse_type_internal, resolve_aliases, + start_alias, start_type, end_type_top, parse_include, cleanup, + post_filter): + * girepository/gtypelib.c (validate_function_blob, validate_enum_blob): + * giscanner/giscannermodule.c (directive_get_options, + type_get_child_list): + * giscanner/scannerlexer.l (parse_gtkdoc): + * giscanner/scannerparser.y (ctype_free): + * giscanner/sourcescanner.c: + * giscanner/sourcescanner.h (gi_source_scanner_parse_macros): + * tests/types/gitesttypes.c: + * tools/compiler.c (main): + * tools/generate.c (write_repository): Remove unused variables + and code, add missing includes, declarations and case + statements. + +2008-10-16 Tommi Komulainen + + Bug 556541 – access union members through UnionBlob rather than + StructBlob + + * girepository/ginfo.c (g_union_info_find_method): access union + members through UnionBlob rather than StructBlob + +2008-10-15 Colin Walters + + Bug 556331 - clean up includes handling + + * tools/g-ir-scanner: Rework command line arguments; now we take + --add-include-path and --include separately. + * giscanner/girwriter.py: Separate name= and version= in include + directives. + * giscanner/ast.py: Add Include type. + * giscanner/transformer.py: Cleanups to register_include now that + we don't need to handle mixed filenames and relative arguments. + * girepository/girparser.c: Parse name and version separately; + this fixes a bug as a side effect where we weren't resolving + through aliases for basic types. + * girepository/girepository.c: Fix format string args. + * gir/Makefile.am: Update. + * tests/*: Update. + +2008-10-15 Tommi Komulainen + + Bug 556434 – unhandled interface/object/... member types + + * girepository/girnode.c (g_ir_node_check_unhandled_members, + g_ir_node_build_typelib): Check all + interface/object/boxed/struct/union members are processed and + abort if they are not. (Mostly callbacks in structs, but also + fields in interfaces.) + +2008-10-15 Tommi Komulainen + + * a/girepository/girnode.c (g_ir_node_build_members, + g_ir_node_build_typelib): refactor common code for processing + members to a function + +2008-10-15 Tommi Komulainen + + * gir/Makefile.am (check-local): check that typelib -> gir -> typelib + transformation is lossless (it's not) + +2008-10-15 Tommi Komulainen + + * tests/Makefile.am: fix tests to compare xml to xml instead of + typelib to xml, and stop on error + +2008-10-15 Tommi Komulainen + + * tools/generate.c (write_type_name, write_type_info, + write_type_info, write_object_info, write_object_info, + write_interface_info, write_error_domain_info): reduce code + duplication + +2008-10-15 Tommi Komulainen + + Bug 556174 – parse types for lists etc. + + * girepository/girparser.c (end_type_recurse): + * tests/boxed.gir: + * tools/generate.c (write_type_info, write_field_info, + write_callable_info, write_callable_info, write_constant_info, + write_property_info): use nested s for lists and hashes + +2008-10-15 Tommi Komulainen + + * tests/enum.gir: + * tests/object.gir: remove trailing whitespace from inside + elements to match g-ir-generate output + +2008-10-15 Tommi Komulainen + + * tools/generate.c (xml_printf): quote printf arguments so that + we don't generate invalid XML by writing unescaped double quotes + and such in attributes + +2008-10-15 Tommi Komulainen + + * tools/generate.c (write_field_info, write_callable_info, + write_function_info, write_callback_info, write_struct_info, + write_constant_value, write_signal_info, write_vfunc_info, + write_object_info, write_interface_info, write_union_info, + write_repository): remove unused indent parameters, xmlwriter + keeps track of necessary indentation + +2008-10-15 Tommi Komulainen + + * tools/generate.c (xml_element_new, xml_element_free, + xml_start_element, xml_end_element, xml_end_element_unchecked, + xml_open, xml_close): Keep track of generated XML tree and + handle indentation and closing tags properly. + (write_field_info, write_callable_info, write_function_info, + write_callback_info, write_struct_info, write_value_info, + write_constant_info, write_enum_info, write_signal_info, + write_vfunc_info, write_property_info, write_object_info, + write_interface_info, write_error_domain_info, write_union_info, + write_repository): Use xml_start_element and xml_end_element to + open/close tags. + +2008-10-15 Tommi Komulainen + + * tools/generate.c (xml_printf, xml_open, xml_close, xml_free): + (write_type_name, write_type_info, write_field_info, + write_callable_info, write_function_info, write_callback_info, + write_struct_info, write_value_info, write_constant_value, + write_constant_info, write_enum_info, write_signal_info, + write_vfunc_info, write_property_info, write_object_info, + write_interface_info, write_error_domain_info, write_union_info, + write_repository): wrap all FILE access to go through simple xmlwriter + +2008-10-15 Tommi Komulainen + + Bug 556400 – Fails to build on OS X 10.4 + + * configure.ac: check for functions backtrace and backtrace_symbols + * girepository/girparser.c (backtrace_stderr): Comment out + implementation if the functions are not available. + * gcov.mak (clean-gcov, clean-gcno): always call 'find' with a + directory for better portability + +2008-10-15 Johan Bilien + + Bug 556433 – assume direction = out for int * parameters + + * giscanner/ast.py: define a list of types for which, if passed as + reference, we assume a default direction of 'out' + * giscanner/transformer.py: if a type has type pointer to one of the + previously defined types, and no direction is set, assume out. + * tests/scanner/drawable.[ch]: added tests for guessed direction=out + +2008-10-15 Johan Bilien + + * tests/scanner/annotation.c: fixed a few copy-paste errors + +2008-10-14 Johan Bilien + + Bug 556323 – transfer-ownership is wrong for functions returning const + char * + + * giscanner/transformer.py: check for a const string as return value, + not just const char*. Suggested by Colin Walters + * tests/scanner/annotation-1.0-expected.gir: updated expected output + +2008-10-14 Johan Bilien + + * girepository/ginfo.c, girepository/girepository.h: add + g_union_info_find_method + +2008-10-14 Colin Walters + + * tests/repository/Makefile.am: Reenable repo test. + * tests/repository/gitestrepo.c: Prepend search + path for $(top_builddir)/gir dir so that we don't + require installation for "make check" to pass. + +2008-10-13 Jürg Billeter + + * giscanner/glibtransformer.py: + * tests/scanner/annotation-1.0-expected.gir: + * tests/scanner/drawable-1.0-expected.gir: + * tests/scanner/foo-1.0-expected.gir: + * tests/scanner/utility-1.0-expected.gir: + + Support fields in GObject structs + +2008-10-13 Jürg Billeter + + * giscanner/ast.py: add signed integer and off_t to type_names + +2008-10-12 Jürg Billeter + + * giscanner/girparser.py: Parse bits attribute of fields + +2008-10-12 Tommi Komulainen + + * tests/repository/Makefile.am: run 'gitestrepo' in 'make check' + * tests/repository/gitestrepo.c (main): instantiate + 'GCancellable' to ensure the GType is registered before using + g_type_from_name() + +2008-10-12 Johan Bilien + + * giscanner/girparser.py: actually add the parsed constant nodes + +2008-10-12 Colin Walters + + * girepository/girepository.c: Don't cast DirEntry to Blob, + actually look it up by offset. + +2008-10-12 Johan Bilien + + * giscanner/girparser.py: parse constant nodes in gir files + +2008-10-12 Johan Bilien + + * giscanner/transformer.py: prefix for constants have an underscore, + so remove them as if they were functions, not objects. + +2008-10-12 Johan Bilien + + * tests/scanner/foo-1.0-expected.gir: add constants to expected gir + file + +2008-10-12 Colin Walters + + Initial patch from Jani Monoses. + + * girepository/gtypelib.c: Fix inverted test for success + in version parsing. + +2008-10-12 Tommi Komulainen + + * tools/generate.c (write_callable_info): use "transfer-ownership" + attribute for return values + +2008-10-12 Tommi Komulainen + + * tools/generate.c (write_callable_info): move "transfer" and + "null-ok" attributes from to element + +2008-10-12 Tommi Komulainen + + * girepository/girparser.c (start_return_value): handle + "transfer-ownership" attribute + +2008-10-12 Tommi Komulainen + + * girepository/girparser.c (parse_param_transfer): + * tools/generate.c (write_callable_info): use "container" for + container/shallow ownership transfer (not "shallow") + +2008-10-12 Tommi Komulainen + + * girepository/girparser.c (parse_param_transfer, + start_parameter): Refactor handling of transfer=none/shallow/full + to separate function + +2008-10-12 Tommi Komulainen + + Bug 556048 – Crash in g_irepository_find_by_gtype + + * girepository/gtypelib.h (BLOB_IS_REGISTERED_TYPE): added + * girepository/girepository.c (find_interface): Fix + find_by_gtype case to get the type name from right offset + +2008-10-12 Jürg Billeter + + * giscanner/girparser.py: Fix parsing transfer-ownership attribute + of + +2008-10-12 Tommi Komulainen + + * girepository/gtypelib.h (RegisteredTypeBlob): make + 'unregistered' one bit wide as everywhere else + +2008-10-12 Jürg Billeter + + * giscanner/glibtransformer.py: + * tests/scanner/annotation-1.0-expected.gir: + * tests/scanner/drawable-1.0-expected.gir: + * tests/scanner/drawable.h: + * tests/scanner/foo-1.0-expected.gir: + * tests/scanner/utility-1.0-expected.gir: + + Readd class records as workaround to not break Gtk typelib + +2008-10-12 Tommi Komulainen + + * tests/types/Makefile.am: fix typo in gitesttypes namespace + +2008-10-12 Jürg Billeter + + * giscanner/glibtransformer.py: Don't generate elements + for class structs. + * tests/scanner/*: Update test cases + +2008-10-11 Colin Walters + + Bug 552858: versioning + + This is a big patch. You should probably remove your installation + tree to be cleaner. + + * docs/typelib-format.txt: Add nsversion entry which holds + version of namespace. + * girepository/girepository.h: Add 'version' parameter to + g_irepository_require. This may be NULL. Normally + bindings should pass an explicit version though. + * girepository/girepository.c: Lots of infrastructure to + support versioning. Add some more documentation. Disallow + some usage of NULL namespaces. + * girepository/girmodule.c: Add version parameter. + * girepository/gtypelib.c: Update header size. + * giscanner/ast.py: Add version to Namespace. + * giscanner/girparser.py: Parse version attribute from + XML, pass to Namespace. + * giscanner/girwriter.py: Write out version parameter. + * giscanner/transformer.py: Clean up include registration. + * tests/*: Add version attribute. + * tests/invoke/invoke.c: Don't try looking up test before + it's loaded in repository. + * tools/generate.c: Output version parameter. + * gir/Makefile.am: Add 2.0 version to .gir files. + +2008-10-11 Colin Walters + + * giscanner/scannerlexer.l (parse_gtkdoc): Don't lose + if we have mismatched parens. + +2008-10-11 Lucas Rocha + + * giscanner/girparser.py (_parse_enumeration_bitfield): fix typo + on 'members' variable. + +2008-10-11 Colin Walters + + Bug 555947 - update annotations syntax + + * giscanner/ast.py: Default to None for transfer. Remove + default transfers for container types; we require this to + be specified now. + * giscanner/girwriter.py: Transfer is now 'none', 'container', + 'full' to match repository. + * giscanner/scannerlexer.l: Annotations now are parenthesized. + * giscanner/transformer.py: Update for new annotations syntax. + * tests/*: Update. + +2008-10-11 Johan Bilien + + * giscanner/scannerparser.y: ignore non-UTF-8 string constants + +2008-10-11 Johan Bilien + + Bug 552347: Parse #defines constants + + * girepository/gtypelib.c: update the list of value_size + with recently defined type tags + * giscanner/scannerparser.y: brought back parsing of #defined, as + present in older version + * giscanner/giscannermodule.c: bind gi_source_scanner_append_filename + * giscanner/girwriter.py: write out constant tags in the gir + * giscanner/sourcescanner.py: add accessor for const_string + * giscanner/transformer.py, giscanner/glibtransformer.py: handle + constant + +2008-10-11 Tommi Komulainen + + Bug 555946: Install a test module exercising all types, transfer + rules, etc. + + * configure.ac + * tests/Makefile.am + * tests/types/*: Add and install a test module that has functions + accepting and returning most of the basic types to enable bindings + implementors to more easily test their type conversion routines. + +2008-10-11 Jürg Billeter + + Bug 552374: Const strings should be identified in the gir. + + * giscanner/transformer.py: support string memory management + * tests/scanner/foo.h: use char * and const char * + * tests/scanner/foo-expected.gir: test that + +2008-10-11 Johan Dahlin + + * giscanner/girparser.py: + Also parse enums which are not glib types. + +2008-10-11 Lucas Rocha + + Bug 552370: add one more test for unsigned as a type, not as + a type qualifier. + + * giscanner/ast.py: add 'uint' type name for 'unsigned'. + * test/scanner/foo.h: add function which uses unsigned as a type. + * test/scanner/foo-expected.gir: test that. + +2008-10-11 Andreas Rottmann + + Bug 555712: Struct and union issues + + * giscanner/scannerparser.y (struct_declarator): Use information + provided about the bit width of a field. + * giscanner/transformer.py (Transformer._create_member): Pass the + symbol's const_int member to the created field (it represents the + bit width). + * giscanner/girwriter.py (GIRWriter._write_field): Output 'bits' + field attribute, if present. + * giscanner/ast.py (Field): Add 'bits' member, specifying the + width in bits of the field (only relevant for bitfields). + * tests/*: Updated. + + * giscanner/transformer.py (Transformer._create_typedef_struct) + (Transformer._create_typedef_union): Add calls to _create_struct() + and _create_union(), respectively. This causes the scanner to + generate output for fields of struct and union typedefs. + * tests/*: Updated. + +2008-10-11 Jürg Billeter + + Bug 552370: unsigned not scanned properly + + * giscanner/scannerparser.y: combine basic types such as unsigned + int and long long when scanning + * tests/scanner/foo-expected.gir: + * tests/scanner/foo.c: (foo_test_unsigned): + * tests/scanner/foo.h: test that + +2008-10-11 Lucas Rocha + + Bug 554854: The --typelib-xml and --inject options should reuse + giscanner parser/writer. + + * giscanner/ast.py: add constructor list to Struct and Union. + Add new param in Return's contructor to define transfer. + * giscanner/girparser.py: several additions to the parser in order + to have parsing all nodes of the gir xml files. + * tools/g-ir-scanner (typelib_xml_strip, inject): use gir parser + and writer in --inject and --typelib-xml options. + * giscanner/xmlwriter.py: ignore empty attributes instead of + raising an error as this basically exposes a bug in GIRParser. + This should be reverted as soon as the parser is fixed. + +2008-10-11 Lucas Rocha + + Bug 552376: scanner generates wrong names for enum members when + there's no defined gtype. + + * giscanner/utils.py (strip_common_prefix): Always strip common + prefix exactly up to the last "_", and not beyond. + * tests/scanner/foo.h (FooEnumNoType): add FOO_ENUM_NEUF. The point + here is that the first character after the last '_' should should be + the same as the character in the same position on the type name. + * tests/scanner/foo-expected.gir: test that + +2008-10-10 Lucas Rocha + + Bug 555293: append library_paths to LPATH env variable to work + around a bug in find_library when using ldconfig. + + * tools/g-ir-scanner (main): ditto. + +2008-10-09 Lucas Rocha + + * girepository/girepository.c (register_internal): fix regression on + invoke test case by making sure we load the global module in the + typelib when dealing with inline typelibs. + * girepository/gtypelib.c: a couple of coding style fixes. + +2008-10-06 Lucas Rocha + + Bug 555294: Add support for multiple shared libraries per typelib. + + * girepository/ginvoke.c (g_function_info_invoke), + girepository/ginfo.c(g_registered_type_info_get_g_type): use + g_typelib_symbol instead of g_module_symbol. + * girepository/girepository.h: remove g_typelib_set_module and add + g_typelib_symbol. + * girepository/gtypelib.[ch] (find_some_symbol, _g_typelib_init, + g_typelib_new_from_memory, g_typelib_new_from_const_memory, + g_typelib_free, g_typelib_symbol): chnage GTypeLib to hold a list of + modules instead of just one. The symbol lookup is now abstracted + behind g_typelib_symbol which tries to find the passed symbol name in + one of its modules. + * giscanner/girwriter.py, tools/g-ir-scanner: change scanner to read + and write shared_library attribute as a comma-separated list of libs. + +2008-10-06 Colin Walters + + * giscanner/transformer.py: Parse length= annotation as + a parameter name, not a raw int. + * tests/*: Update. + +2008-10-03 Colin Walters + + Bug 551744: Non-GObject types aren't aggregating ctors and methods + + * girepository/gtypelib.c: Allow ctors/methods on struct,union, + and boxed. + * giscanner/glibtransformer.py: Ditto, and GLibBoxed is also a + registered type. + * tests/*: Extend. + +2008-10-03 Colin Walters + + Bug 554576: scan problem with ev_selection_render_selection() + + * giscanner/transformer.py: Only do type resolution once we've + scanned all types. What could happen before is that we'd strip + the namespace from local type "EvSelection" => Selection, and + then later pull a "Selection" from some other namespace because + we hadn't yet seen the local EvSelection. This could come + down to hash table ordering and other things so not easy + to write a test for. + +2008-10-03 Lucas Rocha + + * giscanner/girwriter.py (_parser_member): fix the last parameter of + GLibEnumMember constructor as it should be the enum member nick. + +2008-10-02 Colin Walters + + Bug 552961: remove this parameter for methods + + * giscanner/glibtransformer.py: Delete this parameter; it is + redundant. + * girepository/ginvoke.c: Insert this parameter for methods. + * girepository/gtypelib.c: Remove no longer needed verification of + method this parameter. + * tests/*: Update. + +2008-09-30 Dan Winship + + Bug 554490: g-ir-scanner gets confused by '\\' + + * giscanner/scannerlexer.l (chartext, stringtext): fix use of + backslashes so it will correctly parse '\\' and "\\" + + * tests/scanner/annotation.c: add a use of '\\' to make sure that + this stays fixed + + * giscanner/glibtransformer.py (GLibTransformer.count_type): typo + +2008-10-02 Colin Walters + + bug 552393: Note variadic functions + + * giscanner/scannerparser.y: Parse ellipsis. Refactor grammar + to use parameter_list directly. + * giscanner/sourcescanner.h: Add ellipsis csymbol type. + * giscanner/ast.py: Add Varargs type. + * giscanner/transformer.py: Check for ellipsis symbol, transform + to varargs type. + * girepository/girnode.h: Add varargs flag to in-memory nodes. + Parse varargs functions, but filter them out before we start + compiling the typelib. + +2008-10-02 Colin Walters + + Bug 554632: type tag for GType + + * girepository/girepository.h, girepository/girepository.c: + Add type tag for GType - it's a special type we don't want + to resolve to just "long". + * docs/typelib-format.txt: Update. + * girepository/girparser.c: Parse it. + * giscanner/glibtransformer.py: Ensure we don't put GType in + the GObject.gir. + * tools/generate.c: Remove hardcoded type list. + * test/* update. + +2008-09-30 Dan Winship + + Bug 554521: scanner generates wrong names for enum members with + full type name prefix + + * giscanner/utils.py (strip_common_prefix): Fix this to strip the + right amount when the entire "first" string is a prefix of + "second" + + * tests/scanner/foo.h (FooEnumFullname): + * tests/scanner/foo-expected.gir: test that + +2008-09-29 Colin Walters + + Bug 552380: Array parameters should be marked in the gir + + * giscanner/ast.py: Default char** to utf8[], and guchar* to + uint8[]. Add Array, List, and Map subclasses of Type; + these types can be generic. Return transfer defaults + to true if return value is string or container type. + Delete Sequence type. + * giscanner/scannerlexer.l: Syntax change for annotations; + use <> since it's more readable. + * giscanner/girwriter.py: Write out these changes. + * giscanner/girparser.py: Parse them. + * giscanner/transformer.py: Have a defined set of + both list and map types. When creating a type, + check if the ctype we've parsed is one of them, + if so create a container type subclass as appropriate. + * girepository/girparser.c: Parse in generic types. + * tests/*: Update. + +2008-09-27 Colin Walters + + * tools/g-ir-scanner: Add --inject option. + +2008-09-25 Colin Walters + + Remove non-repository types from GIR + + * giscanner/ast.py: The canonical name is 'utf8', not + 'string'. + * giscanner/glibast.py: A few more glib type mappings. + * girepository/girparser.c: We only parse repository types. + * tests/*.gir: Update. + +2008-09-23 Colin Walters + + Bug 552566: Add time_t type + + We need a type for time_t since it's special in C, and just + mapping it to long precluded bindings from handling it + in a nice way. + +2008-09-19 Colin Walters + + Bug 552390: Handle capitialization like "DBus" more robustly + + The to_underscores function was designed for use against prefixed + names; we need a separate function which will convert names like + DBusFoo into dbus_foo, not d_bus_foo. + +2008-09-19 Colin Walters + + Add check to make sure we're not hitting out unresolved types + + Validate the "this" argument for methods + + Remove heuristic matching of methods to classes based on prefix + + It was a broken hack that dated from when we handled underscoring + and capitalization conventions less well. + +2008-09-18 Colin Walters + + Bug 552384: Use SHLIB_SUFFIX intead of G_MODULE_SUFFIX for Darwin + + On Darwin, the suffix for installed shared libraries (.dylib) is + different from loadable modules (.so). We use a bit of magic shell + script from Behdad Esfahbod to figure out the right suffix. + +2008-09-15 Johan Dahlin + + * giscanner/sourcescanner.py (SourceType.type_qualifier): Add + a wrapper for type_qualifier as well. + +2008-09-15 Colin Walters + + http://bugzilla.gnome.org/show_bug.cgi?id=552065 + + * giscanner/ast.py: Add deprecation attributes. + * giscanner/girwriter.py: Write out deprecation data. + * girepository/girparser.c: Relax parsing; deprecated + attribute now includes freeform string. + * giscanner/scannerlexer.l: Parse Deprecated. + * giscanner/transformer.py: Look for deprecated attribute + on functions. + * tests/scanner/*: Add a Deprecated test. + +2008-09-14 Tor Lillqvist + + * tests/scanner/Makefile.am (%.typelib): Use $(EXEEXT). + +2008-09-14 Colin Walters + + * giscanner/glibtransformer.py: Ignore functions with + leading _. + +2008-09-12 Colin Walters + + * giscanner/glibtransformer.py: Accept Gtk.Type as GType. + +2008-09-12 Colin Walters + + * giscanner/ast.py: Bind pid_t to INT for vte. + +2008-09-12 Colin Walters + + * giscanner/girparser.py: Parse c:type for boxed records/unions. + * giscanner/glibast.py: Avoid overwriting ctype. + * giscsanner/transformer.py: Try resolving types using the GType names. + +2008-09-12 Colin Walters + + * giscanner/minixpath.py: Code to run an "XPath" + assertion against an XML tree, taken from + gir-repository/gir/tests.py. + * giscanner/Makefile.am: Ship it. + * tools/g-ir-scanner: Add --xpath-assertions option. + * gir/GLib-assertions.txt: Add a few assertions. + * gir/Makefile.am: Run them. + +2008-09-11 Colin Walters + + http://bugzilla.gnome.org/show_bug.cgi?id=551737 + + * giscanner/transformer.py: Fix strip_namespace_func to only strip + prefix if it ends with _. Tweak callback stripping to determine + based on presence of _ whether we need to use strip_namespace_func + or strip_namespace_object. + +2008-09-09 Owen Taylor + + * docs/typelib-format.txt: Wether => Whether + +2008-09-08 Colin Walters + + * girepository/girparser.c: Default to "readable" for properties. + * giscanner/ast.py: Add readable, writable etc. + * giscanner/girwriter.py: Writ them. + * giscanner/glibtransformer.py: Inspect them. + * tests/*: Update. + +2008-09-07 Colin Walters + + * giscanner/cgobject.py: Add comment. + +2008-09-07 Colin Walters + + * giscanner/cgobject.py: Also call g_thread_init. + +2008-09-07 Colin Walters + + * giscanner/transformer.py: Fix regression by not + stripping prefix before stripping namespace for unions + either. + +2008-09-06 Colin Walters + + * giscanner/transformer.py: If a namespace contains + multiple caps, try stripping both gnomekeyring_ and + gnome_keyring_. + +2008-09-07 Johan Dahlin + + Bug 551162 – giscanner does not recognize asm and __asm__ + * giscanner/scannerlexer.l: + Patch by Jani Monoses. + +2008-09-06 Colin Walters + + * girepository/girnode.c: Allow gtype_name + and gtype_init in struct and union. + * girepository/girparser.c: Parse glib: + boxed bits for both structure and union. + * girepository/gtypelib.c: Don't barf + if structure is boxed. + * giscanner/girparser.py: Parse new XML + format. + * giscanner/girwriter.py: Write out new + XML format. + * giscanner/glibast.py: Define new classes + which are both Boxed and Struct/Union, as + well as an "Other" for everything else. + * giscanner/glibtransformer.py: Handle + boxed types specially; we try to merge + them with a struct/union if one exists, + otherwise fall back to generic boxed. + * tests/*: Update. + * tools/generate.c: Write out new format. + +2008-09-06 Johan Dahlin + + * giscanner/grealpath.h: Include stdlib.h + + * docs/g-ir-generate.1: Remove leading % + +2008-09-01 Colin Walters + + * girepository/girparser.c: Look at c:type to determine + whether or not an item is a pointer. + +2008-09-01 Johan Dahlin + + * tests/scanner/Makefile.am: + Set PYTHONPATH so the scanner can run + even if you didn't install anything. + +2008-09-01 Johan Dahlin + + * configure.ac: + Post-release version bump + +=== 0.5.0 === +2008-09-01 Johan Dahlin + + * NEWS: Update + +2008-08-31 Colin Walters + + * giscanner/glibtransformer.py: Quiet info + prints for now. + +2008-08-31 Johan Dahlin + + * configure.ac: + Bump version to 0.5.0 + +2008-08-31 Colin Walters + + * giscanner/glibtransformer.py: Follow aliases to ensure + we don't get a constructor returning a basic type. + * giscanner/transformer.py: Add function to follow aliases. + * tests/ Update. + +2008-08-31 Johan Dahlin + + * giscanner/scannerlexer.l: + * giscanner/scannerparser.y: + * giscanner/sourcescanner.h: + * giscanner/sourcescanner.py: + Parse GCC extensions in the parser instead of just undeffing them + in the pre-processor. + +2008-08-31 Johan Dahlin + + * giscanner/glibtransformer.py: + Clean up a huge if. Do not add methods or constructors + to enums/flags. + * giscanner/utils.py: + second might be longer than first, check that. + +2008-08-31 Johan Dahlin + + * gir/Makefile.am: + Add a GModule.gir + +2008-08-31 Colin Walters + + * girepository/girparser.c: Don't lose if we + have no includedirs + +2008-08-31 Colin Walters + + * giscanner/glibtransformer.py: Look for libtool + library in current directory + * tests/scanner - Update. + +2008-08-30 Colin Walters + + * docs/typelib-format.txt: Add a guint32 + for dependencies. + * gir/Makefile.am: Dep on Makefile + * girepository/ginfo.c: + * girepository/girepository.c: Clean up + default typelib handling; remove global + default_typelib variable. Ensure we handle + NULL repository in more places. + Support dependency resolution. + Support lazy loading. + * girepository/girepository.h: Remove + g_irepository_unregister; we don't support + unloading typelibs since really they're + process-global. Update for lazy loading + API. + * girepository/girmodule.c: Use g_new0. + Add dependencies to GirModule. + * girepository/girparser.c: Parse dependencies. + * girepository/gtypelib.c: Add 4 bytes for + dependencies. + * tests/Makefile.am: Kill off gobject.gir, + it conflicts with the real one. + * tests/object.gir: Dep on GObject. + * tools/generate.c: Take --includedir + argument to say which directories to search + for typelibs. Print out dependencies. + +2008-08-30 Colin Walters + + * giscanner/glibtransformer.py: Reduce warning noise. + +2008-08-29 Colin Walters + + * girepository/ginfo.c: Add some assertions regarding + refcounts, just to be sure. + * giscanner/glibtransformer.py: Blacklist a few more + odd Gio methods. + +2008-08-29 Colin Walters + + * giscanner/glibtransformer.py: Blacklist a few + functions that use GError oddly + +2008-08-29 Colin Walters + + * girepository/gtypelib.c: Don't crash if no + shlib is embedded + +2008-08-29 Colin Walters + + * girepository/girparser.c: Handle chains of aliases + across modules by ensuring we fully qualify aliases + from includes. + +2008-08-29 Colin Walters + + * girepository/girparser.c: Don't search aliases + for basic types. + +2008-08-29 Colin Walters + + * girepository/girparser.c: Rewrite type parsing + to handle both GLib parsing case as well as correctly + handling GLib.List and friends. Don't try to treat + e.g. ListStore as a List. + +2008-08-29 Colin Walters + + * girepository/gtypelib.c: Add more context + during validate. + +2008-08-29 Colin Walters + + * giscanner/glibtransformer.py: Add some informative + logging messages in corner cases. Be sure we use + the most recent node set instead of a cache + when generating result set. + * tests/: Remove duplicated bits in expected girs + * girepository/girparser.c: Accept both List (for + compiling GLib) and GLib.List (what the scanner + generates). + * tests/ - Update. + * tools/generate.c: Generate canonical form. + +2008-08-29 Johan Dahlin + + * giscanner/config.py.in: + Use datarootdir instead of datadir to avoid + an autoconf warning. + +2008-08-29 Johan Dahlin + + * README: + * TODO: + * examples/gdk-pixbuf.gidl: + * libffi.pc.in: + Update and remove old cruft. + +2008-08-29 Johan Dahlin + + * Makefile.am: + * docs/g-ir-compiler.1: + * docs/g-ir-generate.1: + * docs/g-ir-scanner.1: + Add man pages for the generator and compiler. + +2008-08-29 Johan Dahlin + + * docs/g-ir-scanner.1: Document + + * giscanner/Makefile.am: + * giscanner/gidlparser.py: + * giscanner/gidlwriter.py: + * tools/g-ir-scanner: + Remove gidl support. + +2008-08-28 Colin Walters + + * tests/scanner/Makefile.am: Pass the right + --includedir args. Add a Makefile dep. + * tools/compiler.c: Pass includedirs down. + * girepository/girparser.c: Actually put + includedirs in context, pass down. Fix + locate_gir. + +2008-08-28 Colin Walters + + * gir/Makefile.am: Use --includedir + * girepository/girparser.c: Recursively parse + includes to pull in aliases and expand them. + We need this to avoid putting unknown names in + the typelibs. + * tools/compiler.c: Add --includedir option. + * giscanner/ast.py: Map size/ssize to types + too. + +2008-08-28 Tor Lillqvist + + Make check now runs successfully on Windows. + + * tools/compiler.c (write_out_typelib): Use binary mode for output + file on Windows. + + * girepository/girnode.c: Don't print NULL strings. + + * tests/invoke/Makefile.am + * tests/scanner/Makefile.am: Use -no-undefined on Windows to + convince libtool to build shared libraries. + + * tests/invoke/invoke.c: Don't needlessly include . Use + g_assert() instead of printing out expected errors. + +2008-08-28 Tor Lillqvist + + * girepository/gtypelib.h: Change type of bitfield fields from + guint to the most suitable smaller type. This makes the struct + sizes match the ones on Linux that the sanity check expects when + using gcc -mms-bitfields on Windows. + +2008-08-28 Johan Dahlin + + * Makefile.am: + * configure.ac: + * gir/Makefile.am: + * giscanner/Makefile.am: + * tests/Makefile.am: + * tests/scanner/Makefile.am: + Make distcheck pass. + +2008-08-27 Johan Dahlin + + * giscanner/Makefile.am: + Only send in -no-undefined on Win32 as it breaks on MacOS X. + +2008-08-27 Tor Lillqvist + + Make g-ir-scanner work on Windows. Still problems with the typelib + code. Changes okayed by jdahlin. + + * configure.ac: Check for Windows, set Automake conditional + OS_WIN32. Change backslashes to forward slashes in pyexecdir to + avoid shell quoting issues + + * girepository/Makefile.am: Use -no-undefined so that libtool + agrees to build a shared library on Windows. + + * girepository/girparser.c (backtrace_stderr): No backtrace() on + Windows. Empty implementation on Windows so far. + + * girepository/gtypelib.c (g_typelib_check_sanity): Give more + informative error message for the assertion failures. Tell also + what the expected size of the struct is. Check all sizes first and + fail afterwards if at least one size was different from expected. + + * tools/Makefile.am: Reorder libraries into proper logical + dependency order. + + * tools/generate.c: Don't include , not used. + + * giscanner/Makefile.am: On Windows, link with the Python library, + and install the module DLL as _giscanner.pyd. Remove the + unnecessary import library and libtool library that libtool has + installed. + + * giscanner/scannerlexer.l: Recognize the gcc __attribute__ syntax + and just skip it. Recognize also two "l" suffixes for long long + constants. Recognize also __inline__. + + * giscanner/grealpath.h (g_realpath): Implement on Windows, using + GetFullPathName(). As such, GetFullPathName() does more than the + UNIX realpath(). It also changes relative paths into absolute + paths. But for our purposes that shouldn't matter. + + * giscanner/giscannermodule.c (pygi_source_scanner_parse_file): On + Windows the file descriptor passed to us is from Python. Python + Python2.5 uses the msvcr71.dll C library, while mingw-built code + uses msvcrt.dll. On Windows, file descriptors are specific to + which C library is used. So we must find out what underlying OS + handle corresponds to the file descriptor Python passes us, and + then make that into a file descriptor valid for the C library this + code uses. + + * giscanner/sourcescanner.py (_parse): Don't need to bypass + __attribute__ as the lexer now handles it. The definition as empty + was ineffective for mingw anyway, as mingw's _mingw.h undefines + __attribute__. Close the temp file before unlinking it. + + * giscanner/cgobject.py: Use correct library name for the gobject + DLL on Windows. + + * gir/Makefile.am: Must pass the full basename of the DLLs on + Windows to g-ir-scanner. It's a bit ugly that we have to "know" + that the names of the GLib DLLs are like libglib-2.0-0.dll, but in + reality they won't change, until there is a GLib 3, and then also + the Unix code here needs changing. + + Must pass CPPFLAGS to g-ir-scanner when building GLib.gir so that + libintl.h is found. + +2008-08-26 Colin Walters + + * girepository/girepository.c: Search + $DATADIR/girepository instead of + $DATADIR/gitypelibs; this naming makes + it clearer that e.g. jgir can install + .jars there. + * gir/Makefile.am: Install there. + +2008-08-26 Colin Walters + + * girepository/gtypelib.c (_g_typelib_init): Also + use G_MODULE_SUFFIX instead of hardcoding .so. + +2008-08-26 Colin Walters + + * girepository/gtypelib.c (_g_typelib_init): Free + string in the right place. + +2008-08-26 Colin Walters + + * girepository/gtypelib.c (_g_typelib_init): Handle + both .la and .so names; this works better in the + uninstalled library case. + +2008-08-26 Johan Dahlin + + * gir/Makefile.am: + * giscanner/Makefile.am: + * giscanner/cgobject.py: + * giscanner/config.py.in: + * giscanner/sourcescanner.py: + Avoid undeffing __GNUC__, instead define + __attribute__ & friends. Remove glibconfig.h hack. + This makes gobject-introspection work better on + MacOS X, Thanks to Richard Hult for kind help. + +2008-08-25 Colin Walters + + * giscanner/glibtransformer.py: Always print + statistics. + +2008-08-25 Colin Walters + + * giscanner/glibtransformer.py: Skip over + interfaces we don't know. + +2008-08-25 Colin Walters + + * girepository/girparser.c: Parse new implements + syntax, drop gapi one. + * tests/object.gir: Update. + * tools/generate.c: Generate new syntax. + +2008-08-25 Colin Walters + + * giscanner/ast.py: Add interfaces property + to class. + * giscanner/girwriter.py: Write out implemented + interfaces. + * giscanner/glibtransformer.py: Introspect + implemented interfaces. + * tests/scanner/*: Make FooObject implement + FooInterface. + +2008-08-25 Colin Walters + + * giscanner/glibtransformer.py: More correctly pair + methods; if we have a symbol that starts with + e.g. hippo_canvas look for a matching HippoCanvas + class before accepting e.g. HippoCanvasImage. + +2008-08-24 Colin Walters + + * tools/g-ir-scanner: Filter out unknown options from + pkg-config files. + +2008-08-24 Colin Walters + + * giscanner/glibtransformer.py: Fail with better + error if we can't find library. + +2008-08-24 Colin Walters + + * tools/g-ir-scanner: Use subprocess instead of + commands, works on Windows and avoids the evil + shell on Unix. + +2008-08-24 Colin Walters + + * giscanner/glibtransformer.py: Skip over + g_object_get_type from GLib trunk. + +2008-08-24 Colin Walters + + * girepository/girepository.c (g_irepository_require): + Don't open shared library here; we already do it + in gtypelib.c. + +2008-08-24 Colin Walters + + * girepository/gtypelib.c: Add context stack so + when we get an error we can print out nicely + where it is. + +2008-08-24 Johan Dahlin + + * girepository/girparser.c (start_glib_boxed), (start_function), + (start_field), (start_alias): + Refactor a couple of parsing functions to be simpler to follow. + Avoid huge ifs. + +2008-08-24 Johan Dahlin + + * girepository/girparser.c (start_function): + Remove left-over code, checking type of function. + +2008-08-23 Colin Walters + + * giscanner/config.py: Define DATADIR. + * giscanner/transformer.py: Look in DATADIR. + +2008-08-23 Colin Walters + + * girepository/gtypelib.c: Check constructor + returns. + * girepository/girnode.c: Small tweaks. + * girepository/ginfo.c: Calculate signature offsets + more robustly. + * girepository/girparser.c: Remove duplicate + start_boxed. + * giscanner/glibtransformer.py: Avoid marking + functions which return a basic type as + constructors. + +2008-08-23 Colin Walters + + * girepository/girparser.c: Ignore . + * giscanner/girparser.py: Parse them. + * giscanner/girwriter.py: Generate them. + * giscanner/transformer.py: Process + recursively. Don't require full path for + includes, look in {$XDG_DATA_DIRS}/gir. + * tools/g-ir-scanner: Pass through includes. + * Makefile.am: Remove extra --include + args for scanner. + * *-expected.gir: Add expected includes. + +2008-08-23 Johan Dahlin + + * tests/scanner/Makefile.am: + * tests/scanner/annotation-expected.gir: + * tests/scanner/drawable-expected.gir: + Avoid duplication in the Makefile, regenerate with new + namespaces (same as the filename) + +2008-08-22 Colin Walters + + * girepository/girnode.c: Don't hardcode integers, + use GITypeTag. + +2008-08-22 Johan Dahlin + + * giscanner/sourcescanner.py: + Check for ../gobject-introspection-1.0.pc.in to determine + if we run installed or uninstalled. + +2008-08-22 Johan Dahlin + + * gir/Makefile.am: + * giscanner/sourcescanner.py: + Send in undefs/defines via writing it directly to stdin + of cpp instead of via arguments. + +2008-08-22 Colin Walters + + * tools/generate.c, tools/compiler.c: Default + to --raw. + * all Makefile.am: Update. + +2008-08-22 Colin Walters + + * girepository/girparser.c: Pass through + recursive types. Avoid overwriting errors. + * giscanner/xmlwriter.py: Always write the + XML header. + * tests/*.gir: Adjust. + * tests/scanner/Makefile.am: Build typelibs, + and generate XML from those. Once we + have a good diff mechanism... + * tests/scanner/*-expected.gir: Add XML + header. + * tools/g-ir-scanner: Accept --typelib-xml + option. + * tools/generate.c: Better defaults for transfer. + +2008-08-22 Johan Dahlin + + * configure.ac: + * gir/Makefile.am: + * giscanner/Makefile.am: + * giscanner/config.py.in: + * giscanner/sourcescanner.py: + Use the generated glibconfig.h for all scanner invokations. + Rename it to glibconfig-scanner.h and install it. + Add a config.py which so far contains the include dir. + +2008-08-22 Johan Dahlin + + * gir/Makefile.am: + Replace glibconfig.h with our own, do some replacement + for CPP/C features we do not support + +2008-08-22 Colin Walters + + * tools/generate.c (write_callable_info): Fix unref + sequence. + +2008-08-22 Colin Walters + + * gobject-introspection-1.0.pc.in: Add g-ir-generate. + * tests/Makefile.am: Support $(DEBUG) + * tools/generate.c: Do immediate close tags if no + sub-elements. + +2008-08-21 Colin Walters + + * tests/scanner/drawable-expected.gir, + * tests/scanner/drawable.c, + * tests/scanner/drawable.h: + Add a method. + +2008-08-21 Colin Walters + + * giscanner/glibtransformer.py: Compute prefix + by searching through the symbol for bits + rather than going directly from ctype; this fixes + webkit_ namespace. + +2008-08-21 Colin Walters + + * giscanner/glibtransformer.py: Also try squashing + underscores from namespace, fixes webkit_web_view_new. + +2008-08-21 Colin Walters + + * giscanner/glibtransformer.py: More ctor work, + avoid having gtk_window_group_new end up under + GtkWindow. + +2008-08-21 Colin Walters + + * giscanner/glibtransformer.py: Much simpler approach + of mapping uscored names to classes. + * giscanner/utils.py: Remove unnecessary function. + +2008-08-21 Johan Dahlin + + * girepository/girepository.c (g_irepository_require): + Plug memory leak and avoid using freed memory. + Resolve the whole module path, here as well. + +2008-08-21 Colin Walters + + * giscanner/glibtransformer.py: Look up all permutations + of class names when scanning methods/ctors based on + the prefix instead of using the return value. This + associates gtk_window_new with the right class. + +2008-08-21 Colin Walters + + * girepository/girmodule.c (g_ir_module_build_typelib): + Revert change to increment header_size; we do that in + write_string. + +2008-08-21 Colin Walters + + * girepository/girnode.c (write_string): Tweak to + use UINT instead of INT. Not likely to matter. + * girepository/girmodule.c (g_ir_module_build_typelib): + Add to header_offset as well for header strings + to match what write_string does. + * girepository/gtypelib.c: Replace is_name with + validate_name, which more strongly validates and + handles errors in a better way. Update all callers. + * giscanner/glibtransformer.py: Handle constructors + better. + +2008-08-21 Johan Dahlin + + * gir/Makefile.am (typelibs_DATA): Build and + install the Gio.typelib too + + * girepository/gtypelib.c (_g_typelib_init): + Use g_module_build_path to resolve the shlib name + +2008-08-21 Colin Walters + + * gir/Makefile.am: CLEANFILES typelibs too. + +2008-08-21 Johan Dahlin + + * giscanner/glibtransformer.py: + Do not send .la files through find_library. + +2008-08-21 Colin Walters + + * girepository/girparser.c (g_irepository_require): + Fix one small leak in error case. + +2008-08-21 Johan Dahlin + + * gir/Makefile.am: + Parse glibconfig.h as well and install the compiled + typelib + +2008-08-21 Johan Dahlin + + * gir/Makefile.am: + * giscanner/glibtransformer.py: + * tools/g-ir-scanner: + Do not hard-core library names in the Makefile, reuse + ctypes find_library instead. + +2008-08-21 Johan Dahlin + + * girepository/girparser.c (resolve_aliases): + Remove compilation warnings + +2008-08-21 Johan Dahlin + + * girepository/girepository.c (g_irepository_require): + Rewrap and fix double free bug by leaking a bit. + +2008-08-20 Colin Walters + + * girepository/girepository.c: Add new function + g_irepository_get_typelib_path which tells + us from where we loaded a namespace. + +2008-08-20 Colin Walters + + * tests/scanner/*-expected.gir: Adjust for + added shared-library. + * giscanner/giwriter.py: Make pylint happy. + +2008-08-20 Colin Walters + + * girepository/girmodule.c (g_ir_module_build_typelib): + Calculate size correctly, avoid use-after-free. + +2008-08-20 Colin Walters + + * girepository/girepository.c: Remove + g_irepository_register_file in favor of + g_irepository_require. There are two + possible deployment scenarios for typelibs: + First, separate in $DATADIR/gitypelibs/. Second, + they may be embedded in shlibs. However since + the first is now the normal case, the API is + optimized around it. + + Refactor internals to look up typelibs for + namespaces just-in-time, but we expect + consumers to call g_irepository_require. + + Also, add some docs. No one has died from that + before. + * gir/Makefile.am: Need --library for glib. + * giscanner/girwriter.py: Write out shared-library. + * tools/g-ir-writer: Take the first --library + argument as the target of shared-library. In + the future we should make this nicer with pkg-config + probably. + +2008-08-20 Colin Walters + + * girepository/girparser.py: And parse them. + +2008-08-20 Johan Dahlin + + * giscanner/glibast.py: Add gshort/gushort types + +2008-08-20 Colin Walters + + * gir/Makefile.am: Rename .gir files using GI namespace. + * girepository/girepository.c: Use XDG_DATA_DIRS for + looking up typelibs. Also typelibs are now suffixed + with .typelib. + * tests/invoke/Makefile.am: Only use metadata. + * girepository/Makefile.am: Remove unnecessary include. + * tests/scanner/Makefile.am: Update using GI namespaces + for scanner includes. + +2008-08-20 Colin Walters + + * girepository/transformer.py: Suppress aliases whose + name is a builtin. + * girepository/ast.py: Define some more aliases. + +2008-08-20 Colin Walters + + * girepository/girparser.c: Avoid alias infloops. + +2008-08-20 Colin Walters + + * tests/scanner/foo-expected.gir: Fix expected list type. + +2008-08-20 Johan Dahlin + + * giscanner/glibtransformer.py (GLibTransformer._resolve_type_name): + Add a workaround for #548689. + We can now compile gtk! + +2008-08-20 Colin Walters + + * giscanner/glibtransformer.py: Try to look up + aliases using the c:type too. + +2008-08-20 Colin Walters + + * girepository/girparser.c: Parse union fields. + +2008-08-20 Johan Dahlin + + * giscanner/ast.py: Make time_t an alias for long + + * gir/gio-2.0-good.gir: + * gir/glib-2.0-good.gir: + * gir/gobject-2.0-good.gir: + Regnerate + * giscanner/glibtransformer.py: + Do not delete Class structures, we need them in gdk/gtk. + * tests/scanner/drawable-expected.gir: + * tests/scanner/foo-expected.gir: + * tests/scanner/utility-expected.gir: + Update tests. + +2008-08-20 Johan Dahlin + + * tests/scanner/Makefile.am: + * tests/scanner/annotation-expected.gir: + * tests/scanner/annotation.c (annotation_object_class_init), + (annotation_object_init), (annotation_object_method), + (annotation_object_in), (annotation_object_out), + (annotation_object_inout), (annotation_object_inout2), + (annotation_object_inout3), (annotation_object_calleeowns), + (annotation_object_calleesowns), (annotation_object_get_strings), + (annotation_object_with_voidp), (annotation_object_get_objects), + (annotation_object_create_object), (annotation_object_allow_none): + * tests/scanner/annotation.h: + * tests/scanner/foo-expected.gir: + * tests/scanner/foo.c: + * tests/scanner/foo.h: + Split out annotation tests out of foo + +2008-08-20 Johan Dahlin + + * tests/scanner/Foo-expected.gir: + * tests/scanner/Makefile.am: + * tests/scanner/foo-expected.gir: + * tests/scanner/foo-object.h: + * tests/scanner/foo.c: + Foo->foo, foo-object.h -> foo.h + +2008-08-20 Johan Dahlin + + * tests/scanner/Foo-expected.gir: + * tests/scanner/Makefile.am: + * tests/scanner/drawable-expected.gir: + * tests/scanner/drawable.c (test_drawable_class_init), + (test_drawable_init): + * tests/scanner/drawable.h: + * tests/scanner/foo-object.h: + * tests/scanner/foo.c (foo_boxed_method): + Move the drawable parts out of Foo to its own test. + +2008-08-20 Johan Dahlin + + * tests/scanner/Foo-expected.gir: + * tests/scanner/foo-object.h: + * tests/scanner/foo.c (foo_drawable_class_init), + (foo_drawable_init): + Add a based on GdkDrawable which generates + a broken gir. + +2008-08-19 Colin Walters + + * giscanner/transformer.py: Don't try + to strip prefix before namespace. + +2008-08-19 Johan Dahlin + + * giscanner/transformer.py: + * tests/scanner/Foo-expected.gir: + * tests/scanner/foo-object.h: + Add support for typedef void foo type of + aliases. + +2008-08-19 Johan Dahlin + + * giscanner/ast.py: + * giscanner/girwriter.py: + * giscanner/glibtransformer.py: + * giscanner/transformer.py: + * tests/scanner/Foo-expected.gir: + Add basic support for union, base the code much + on Struct. Add a testcase. + +2008-08-19 Johan Dahlin + + * tests/scanner/Foo-expected.gir: + * tests/scanner/foo-object.h: + Add a union testcase which the compiler currently + barfs at. + +2008-08-19 Johan Dahlin + + * gobject-introspection-1.0.pc.in: + Add a g_ir_compiler variable + +2008-08-19 Colin Walters + + * giscanner/ast.py: Rework types to be more closely + based on GITypeTag. + * giscanner/girparser.py: Parse more bits. + * giscanner/girwriter.py: Write sequences in a new + way that specifies container type. + * giscanner/glibast.py: Adjust for ast.py changes, + add 'ctype' property to GLibObject and GLibInterface + so we can look things up by it later. + * gicanner/transformer.py: Names is new class holding + the various namespaces we manage. Do not confuse + with Namespace which is toplevel XML node effectively. + Rework all type resolution to go through + _resolve_type_name_1. + * giscanner/glibtransformer.py: Raise UnknownTypeError + instead of ValueError for cleanliness. Add Unresolved + class to mark types whose parent we haven't seen yet. + Use new Names object from transformer.py. + Correctly look up parent=. + Fix type validation to handle sequences. + * tests/scanner/Foo-expected.gir: Update for sequence + work, int instead of int32. + * tools/g-ir-scanner: Add --noclosure option + * gir/Makefile.am: Use --noclosure by default for + GLib/GObject. + +2008-08-18 Johan Dahlin + + * gir/gio-2.0-good.gir: + * gir/glib-2.0-good.gir: + * gir/gobject-2.0-good.gir: + Regenerate. + +2008-08-18 Johan Dahlin + + * giscanner/ast.py: + * giscanner/girparser.py: + * giscanner/girwriter.py: + * giscanner/glibast.py: + * giscanner/glibtransformer.py: + * giscanner/transformer.py: + * tests/scanner/Foo-expected.gir: + * tests/scanner/foo-object.h: + * tests/scanner/utility-expected.gir: + * tests/scanner/utility.h: + Redo type resolving and validation. + Add a couple of new tests. + Patch mostly written by Colin. + +2008-08-18 Johan Dahlin + + * gir/Makefile.am: + * giscanner/girparser.py: + Set ctype of enums + * giscanner/transformer.py: + Improve enum parsing for enums without a GType. + Make flags/enum references to other girs work + * giscanner/utils.py: + Simplify this a bit + * tests/scanner/Makefile.am: + * tests/scanner/foo-object.h: + * tests/scanner/utility-expected.gir: + * tests/scanner/utility.h: + Add a new test for external enum references + +2008-08-18 Johan Dahlin + + * docs/global-module-registry.txt: Update + + * tests/array.gir: Update with new type proposal + + * girepository/girepository.c (g_type_tag_to_string): + * girepository/girepository.h: + * girepository/girnode.c (g_ir_node_get_full_size_internal), + (find_entry_node): + * girepository/girnode.h: + Make enum serializing functions public. Clean up some whitespace. + +2008-08-17 Johan Dahlin + + * docs/global-module-registry.txt: + Add a document for an on disk module registry format + +2008-08-17 Johan Dahlin + + * gir/Makefile.am: + * gir/gio-2.0-good.gir: + Add a gio gir. + +2008-08-17 Johan Dahlin + + * gir/Makefile.am: + * gir/glib-2.0-good.gir: + * gir/gobject-2.0-good.gir: + * giscanner/cgobject.py: + * giscanner/glibtransformer.py: + Regenerate GObject & GType. + Avoid warnings when generating gobject-2.0.gir. + Introspect a little more, and skip *_get_type functions. + +2008-08-17 Colin Walters + + * gir/glib-2.0.gir, gir/gobject-2.0.gir: + Rename to -good, always generate during build. + * gir/Makefile.am: Ensure .gir files dep on + all scanner sources. + * Makefile.am: Switch build order to ensure + the scanner is ready before we do gir/. + * tools/g-ir-scanner: Look for .git too. + +2008-08-17 Johan Dahlin + + * girepository/gtypelib.c (validate_enum_blob): + * giscanner/glibtransformer.py: + * giscanner/transformer.py: + Remove resolve_possible_typedefs, it was unused. + Allow multiple enum values of the sample value in an enum, + since it's actually pretty common. + Register enums so they can be resolved too. + +2008-08-16 Johan Dahlin + + * giscanner/girparser.py: + Parse enumeration/bitfield. + +2008-08-16 Johan Dahlin + + * giscanner/girparser.py: + Parse boxed types. + +2008-08-16 Johan Dahlin + + * giscanner/glibtransformer.py: + Resolve type names for alias targets + * giscanner/transformer.py: + Skip FILE* parameters fow now + +2008-08-16 Johan Dahlin + + * gir/glib-2.0.gir: + * gir/gobject-2.0.gir: + Regenerate + + * tests/scanner/Makefile.am: + parser -> scanner + +2008-08-15 Colin Walters + + * giscanner/glibtransformer.py: Explicitly construct + new list, since we're deleting as we iterate. + Don't delete all structures which end in Class; just + ones which have a paired GObject. + Fix printing of type warning. + * giscanner/transformer.py: Make strip_namespace_object + be the identity function if it doesn't match the + namespace. + +2008-08-15 Colin Walters + + * giscanner/cgobject.py: Define yet more argument + prototypes; fix prototype for g_type_fundamental. + +2008-08-14 Johan Dahlin + + * tests/Makefile.am: + * tests/constant.gir: + * tests/gobject.gir: + * tests/struct.gir: + * tools/generate.c (write_struct_info): + Fix generator for constant/gobject/struct + +2008-08-14 Johan Dahlin + + * tests/Makefile.am: + * tests/enum.gir: + * tools/generate.c (write_enum_info): + Fix generation of enum/bitfields + +2008-08-14 Johan Dahlin + + * girepository/girparser.c (start_field), (start_constant), + (start_type), (end_element_handler): + Clear up constant parsing + + * tests/object.gir: + Update + + * tools/generate.c (write_callable_info), (write_function_info), + (write_callback_info), (write_constant_info), (write_signal_info), + (write_vfunc_info), (write_property_info), (write_object_info), + (write_interface_info): + Constants/Signals are handled now. + +2008-08-14 Johan Dahlin + + * girepository/girparser.c (start_type): + Don't require c:type. + * tests/Makefile.am: + Test boxed.gir + * tests/boxed.gir: + Update, remove parts we don't support yet + * tests/roundtrips.sh: + Remove + * tools/generate.c (write_type_info), (write_field_info), + (write_callable_info), (write_struct_info): + Make it emit proper gir. + +2008-08-14 Johan Dahlin + + * giscanner/transformer.py: + New internal function for adding a new node. + +2008-08-14 Johan Dahlin + + * gir/Makefile.am: + Define an internal _H_ variable so we skip parsing both + i18n headers, only one is needed. + * gir/glib-2.0.gir: + Add the glib-2.0.gir too. + * giscanner/glibast.py: + Add gconstpointer as an alias for ANY + * giscanner/transformer.py: + Do not lower case enumeration names per se. + Skip functions which has parameters called 'va_list' + +2008-08-14 Colin Walters + + * giscanner/transformer.py: Comment data structures. + Also squash pointers in resolve_type_name to correspond + with what we do for params. + * giscanner/glibtransformer.py: Print warnings in more + situations. Rework checks for method/constructor to + look up in our GType database instead of just checking + for *. Avoid generating for GObject which + duplicate the . + * gir/Makefile.am: Generate glib-2.0.gir and gobject-2.0.gir + in here. + +2008-08-14 Johan Dahlin + + * giscanner/girwriter.py: + * giscanner/glibast.py: + * giscanner/glibtransformer.py: + * giscanner/transformer.py: + * misc/pyflakes.py: + * tests/Makefile.am: + Add pyflakes.py and run it in make check. + Update the source code to fix the errors reported by + pyflakes. + +2008-08-14 Johan Dahlin + + * giscanner/ast.py: + * giscanner/girparser.py: + * giscanner/glibast.py: + * giscanner/glibtransformer.py: + Refactor the parser a bit. + Add parent type to interfaces and update callsites. + +2008-08-14 Johan Dahlin + + * giscanner/glibtransformer.py: + * giscanner/utils.py: + Refactor a bit, avoid isinstance and add a method + for each type we parse. + +2008-08-14 Johan Dahlin + + * giscanner/ast.py: + * giscanner/girparser.py: + * giscanner/glibtransformer.py: + * tests/Makefile.am: + Run pep8.py in make check, fix old errors. + +2008-08-13 Colin Walters + + * giscanner/girparser.py: Parse records. + +2008-08-13 Colin Walters + + * gir/Makefile.am: Install again. + * gir/gobject-2.0.gir: Add some more bits. + +2008-08-13 Colin Walters + + * gir/gobject-2.0.gir: Use correct namespace, add GType. + * giscanner/girparser.py: Handle aliases. + * giscanner/transformer.py: Record aliases. Make resolver + functions public; we now call into these explicitly from + glibtransformer. Handle resolving aliases. + * giscanner/glibtransformer.py: Separate our internal namespace + from included ones. Call up into transformer's resolver functions. + +2008-08-13 Johan Dahlin + + * girepository/girnode.c (g_ir_node_get_full_size_internal): + * girepository/girparser.c (start_class): + * giscanner/glibtransformer.py: + Allow get_type to be None, set a get_type for GInitiallyUnowned too. + +2008-08-13 Johan Dahlin + + * giscanner/cgobject.py: + Register GInitiallyUnowned + * giscanner/girwriter.py: + * giscanner/glibtransformer.py: + Special case GObject/GInitially owned as they are a bit special to use. + +2008-08-13 Colin Walters + + * tests/scanner/Foo-expected.gir, tests/scanner/utility-expected.gir: + Object is in GObject namespace. + +2008-08-13 Colin Walters + + * giscanner/girparser.py: Fix processing of functions + from last commit. + +2008-08-13 Colin Walters + + * giscanner/girparser.py: Parse more than just + + * tools/g-ir-scanner: + Allow multiple libraries + * giscanner/glibtransformer.py: + Rename load_library to add_library, traverse over all libraries + when trying to resolve a function + +2008-08-12 Colin Walters + + * giscanner/transformer.py: Record typedefs as elements. + Also attempt to look up types in external namespaces. + * giscanner/girwriter.py: Write them. + * giscanner/glibtransformer.py: Rework resolver using real instanceof + checks. Resolve interface methods and properties. + * tests/scanner/foo-object.h: Add a method with typedef. + * tests/scanner/Foo-expected.gir: Update. + * girepository/girnode.c: Debug tweaks. + * girepository/girparser.c: Make a first pass through the XML where we + record all the aliases. This lets us resolve them as we go through the + second pass. + * gir/Makefile.am: Don't install gobject-2.0.gir; we want that to come + from gir-repository. + +2008-08-12 Colin Walters + + * giscanner/glibtransformer.py: Resolve typedefs (e.g. AtkAttributeSet -> GSList). + Correctly do subclasseing in 2nd pass resolution. Handle callbacks in structure + fields. + * giscanner/transformer.py: Record typedefs and expose public API for resolving + them. + * tests/scanner/Foo-expected.gir: Fix expected callback types. + +2008-08-12 Colin Walters + + * giscanner/glibtransformer.py: Also transform object properties. + +2008-08-12 Colin Walters + + * giscanner/glibtransformer.py: Also transform callbacks + and structure field types. + * tests/scanner/Fooe-expected.gir: Update to expect correct + names for callbacks and structs. + +2008-08-12 Colin Walters + + * girepository/girparser.c: Handle 'any'. + * tests/scanner/Foo-expected.gir, tests/scanner/foo-object.h: + Add test for void *. + +2008-08-12 Colin Walters + + * giscanner/glibtransformer.py: We need to do type + resolution in a second pass after we've seen all the + enums, records, etc. + +2008-08-12 Colin Walters + + * tests/scanner/Foo-expected.gir, tests/scanner/foo-object.h: + Add enum return value. + * giscanner/glibtransformer.py: Transform function return types + too. + +2008-08-12 Colin Walters + + * tests/scanner/Makefile.am: Dep .gir files on scanner + sources too. Also remove @ so we see scanner invocations. + +2008-08-12 Colin Walters + + * girepository/girparser.c, girepository/gtypelib.c, + girepository/gtypelib.h, girepository/girnode.c: + Remove usage of (GAPI-oriented) TypeTag in favor of + GITypeTag from girepository.h. + +2008-08-10 Colin Walters + + * tests/roundtrips.sh: Use the correct tests. + +2008-08-10 Colin Walters + + * giscanner/cgobject.py: Declare/wrap a few more functions. + Fix parameter types for g_object_new and g_type_fundamental. + +2008-08-10 Colin Walters + + * giscanner/cgobject.py: Add new decorator @gwrap which forces + us to declare types for both return value and parameters. The + ctypes default of 'int' is bad because it hides 32/64 bit + problems. Convert all existing functions to use it. + +2008-08-09 Johan Dahlin + + * giscanner/__init__.py: + * giscanner/ast.py: + * giscanner/cgobject.py: + * giscanner/gidlparser.py: + * giscanner/gidlwriter.py: + * giscanner/girparser.py: + * giscanner/girwriter.py: + * giscanner/glibast.py: + * giscanner/glibtransformer.py: + * giscanner/odict.py: + * giscanner/sourcescanner.py: + * giscanner/transformer.py: + * giscanner/utils.py: + * giscanner/xmlwriter.py: + * tools/g-ir-scanner: + + PEP8ify + +2008-08-09 Johan Dahlin + + * relaxng/api.xml: + * relaxng/c-types.xml: + * relaxng/g-types.xml: + * relaxng/relaxng.rng: + * relaxng/util.xml: + Remove outdated relaxng schemas. + +2008-08-09 Johan Dahlin + + * *.[ch]: + Rename metadata to typelib in variable names, + comments and apis. + +2008-08-09 Johan Dahlin + + * tools/scanner.c: + * tools/scanner.h: + Remove old C scanner, which got rewritten in python. + +2008-08-09 Johan Dahlin + + * girepository/Makefile.am: + * tools/Makefile.am: + * tools/girmodule.c: + * tools/girmodule.h: + * tools/girnode.c: + * tools/girnode.h: + * tools/girparser.c: + * tools/girparser.h: + * tools/girwriter.c: + * tools/girwriter.h: + Move shared *.[ch] files to girepository from tools + +2008-08-09 Johan Dahlin + + * tests/Makefile.am: + * tests/array.test: + * tests/boxed.test: + * tests/constant.test: + * tests/enum.test: + * tests/errors.test: + * tests/function.test: + * tests/gobject.test: + * tests/interface.test: + * tests/object.test: + * tests/struct.test: + * tests/types.test: + * tests/union.test: + * tests/xref1.test: + * tests/xref2.test: + Rename *.test to *.gir + +2008-08-09 Johan Dahlin + + * configure.ac: + * tests/Makefile.am: + * tests/parser/Foo-expected.gir: + * tests/parser/Makefile.am: + * tests/parser/foo-object.h: + * tests/parser/foo.c: + * tests/parser/utility-expected.gir: + * tests/parser/utility.c: + * tests/parser/utility.h: + * tests/scanner/Makefile.am: + Rename tests/parser to test/scanner + +2008-08-08 Colin Walters + + * tests/roundtrips.sh: Use local .gir files again. + +2008-08-08 Colin Walters + + * tests/invoke/Makefile.am: .gir file depends on libtool + library. + +2008-08-08 Colin Walters + + * tools/girnode.c: Pass through parent node so we can + print the node whose child is NULL, if that occurs. + +2008-08-08 Johan Dahlin + + * tests/Makefile.am: + Disable roundtrip tests which are not yet working + * tests/invoke/testfns.gir: + Rewrite as gir. + +2008-08-08 Johan Dahlin + + * giscanner/girwriter.py: + type -> ntype + * giscanner/glibast.py: + * giscanner/glibtransformer.py: + Swap order of members, to keep it consistent with + base enum class + +2008-08-08 Johan Dahlin + + * girepository/gtypelib.c (validate_header): + * girepository/gtypelib.h: + * giscanner/ast.py: + * giscanner/girwriter.py: + * giscanner/sourcescanner.c (gi_source_symbol_ref), + (gi_source_symbol_unref): + * tests/array.test: + * tests/boxed.test: + * tests/constant.test: + * tests/enum.test: + * tests/errors.test: + * tests/function.test: + * tests/gobject.test: + * tests/interface.test: + * tests/invoke/Makefile.am: + * tests/invoke/testfns.xml: + * tests/object.test: + * tests/parser/Makefile.am: + * tests/roundtrips.sh: + * tests/struct.test: + * tests/types.test: + * tests/union.test: + * tests/xref1.test: + * tests/xref2.test: + * tools/Makefile.am: + * tools/compiler.c (main): + * tools/generate.c (write_callable_info), (write_function_info), + (write_repository): + * tools/gidlmodule.c: + * tools/gidlmodule.h: + * tools/gidlnode.c: + * tools/gidlnode.h: + * tools/gidlparser.c: + * tools/gidlparser.h: + * tools/gidlwriter.c: + * tools/gidlwriter.h: + * tools/scanner.c (create_node_from_gtype), + (create_node_from_ctype), (g_igenerator_process_properties), + (g_igenerator_process_signals), (g_igenerator_create_object), + (g_igenerator_create_interface), (g_igenerator_create_boxed), + (g_igenerator_create_enum), (g_igenerator_create_flags), + (g_igenerator_process_function_symbol), + (g_igenerator_process_unregistered_struct_typedef), + (g_igenerator_process_struct_typedef), + (g_igenerator_process_union_typedef), + (g_igenerator_process_enum_typedef), + (g_igenerator_process_function_typedef), + (g_igenerator_process_constant), (g_igenerator_process_symbols), + (g_igenerator_add_module), (g_igenerator_add_include_idl): + Merge in the gir-compiler branch. + Thanks to Philip and Colin for their help. + +2008-07-26 Colin Walters + + * tools/Makefile.am (bin_PROGRAMS): Install g-idl-compiler + and g-idl-generate to go along with how we're changing this + module to be installed. + * gobject-introspection-1.0.pc.in: Set up Cflags and Libs. + +2008-07-24 Colin Walters + + * girepository/girepository.c (g_irepository_register): Add + environment variable G_IREPOSITORY_VERBOSE so we can print + out what we're doing. + * girepository/girepository.c (g_irepository_register_file): + Add GError error message to g_debug call. + +2008-07-08 Jürg Billeter + + * giscanner/glibast.py: + + Fix typo + +2008-06-21 Johan Dahlin + + * giscanner/girparser.py (GIRParser._parse_api): Ignore a few + more tags + +2008-06-20 Johan Dahlin + + * giscanner/ast.py: + * giscanner/girwriter.py: + * giscanner/transformer.py: + * tests/parser/Foo-expected.gir: + * tests/parser/foo-object.h: + * tests/parser/foo.c (foo_object_allow_none): + Add support for gtk-doc annotations for allow-none. + Add test case. + +2008-06-19 Johan Dahlin + + * giscanner/ast.py: + * giscanner/girwriter.py: + * giscanner/glibast.py: + * giscanner/glibtransformer.py: + * giscanner/transformer.py: + * tests/parser/Foo-expected.gir: + Start using abstract type instead of the raw C types. + Register a bunch of glib types we care about. + +2008-06-19 Rob Taylor + + * AUTHORS: + Update authors + +2008-06-08 Philip Van Hoof + + * girepository/girepository.c: + * girepository/gtypelib.c: + * girepository/ginfo.c: + * girepository/ginvoke.c: + * girepository/girepository.h: + * girepository/gtypelib.h: + * girepository/gmetadata.c: + * girepository/Makefile.am: + * girepository/gmetadata.h: + * tools/compiler.c: + * tools/gidlmodule.c: + * tools/gidlnode.c + * tools/generate.c: + * tools/gidlmodule.h: + * tools/gidlparser.c: + + Renamed GMetadata to GTypelib + +2008-06-07 Johan Dahlin + + * giscanner/xmlwriter.py: + Improve line wrapping when > 79 charaters + +2008-06-05 Jürg Billeter + + * giscanner/ast.py: + * giscanner/girwriter.py: + * giscanner/transformer.py: + Use element for field types + * tests/parser/Foo-expected.gir: + Update testcase + +2008-06-04 Johan Dahlin + + * giscanner/glibtransformer.py: + Fix a bug which prevented GdkEvent from being generated + +2008-06-03 Johan Dahlin + + * giscanner/Makefile.am: + * giscanner/ast.py: + * giscanner/girwriter.py: + * giscanner/glibast.py: + * giscanner/glibtransformer.py: + * giscanner/transformer.py: + * giscanner/utils.py: + * tests/parser/Foo-expected.gir: + Improve enum member parsing and introspection + +2008-05-31 Johan Dahlin + + * giscanner/scannerparser.y: + * giscanner/sourcescanner.h: + * giscanner/sourcescanner.py: + Add a new source type enum for member. + Use __repr__ for improved debugging + * giscanner/girparser.py: + Ignore some more + * giscanner/transformer.py: + Improve parsing of struct members. + * tests/parser/foo-object.h: + Add a new testcase + +2008-05-31 Johan Dahlin + + * giscanner/xmlwriter.py: + Improve error reporting when trying to quote None. + * giscanner/girparser.py: + Do not print warnings when including more complete .gir files + * giscanner/girwriter.py: + Do not require a name for parameters, add a todo for singletons + * giscanner/glibtransformer.py: + Refactor the way structs are done, add a couple of hacks to allow + us to get further. + * giscanner/transformer.py: + Add enough hacks so cairo, atk and pango.gir can be parsed properly + * gobject-introspection-1.0.pc.in: + Export girdir, so we can access gobject-2.0.gir from outside + +2008-05-31 Johan Dahlin + + * tools/g-ir-scanner: + * tests/parser/Makefile.am: + Update sys.path before running the parser so we don't have + to setup PYTHONPATH ourselves. + + * Makefile.am: + * configure.ac: + * girepository/Makefile.am: + * giscanner/transformer.py: + * gobject-introspection-1.0.pc.in: + * gobject-introspection.pc.in: + * tools/Makefile.am: + + Rename pkg-config name to gobject-introspection-1.0, + Do not installed anything which is not using the gir format. + Disable compililation the old C scanner, but still keep the source + until all the remaning functionallity has been ported. + +2008-05-31 Johan Dahlin + + * giscanner/giscannermodule.c (symbol_get_ident): Prevent + a crash when symbol->indent is NULL. + + * giscanner/sourcescanner.py (ctype_name): Add ctype_name, + a function to convert a CTYPE symbol to a string + +2008-05-24 Johan Dahlin + + * giscanner/ast.py: + * giscanner/girwriter.py: + * giscanner/giscannermodule.c + (pygi_source_scanner_append_filename), + (pygi_source_scanner_parse_file): + * giscanner/glibtransformer.py: + * giscanner/sourcescanner.py: + Revert back to using temporary files to send in headers. + Allow Functions to be passed in as callbacks, add a couple + of try/excepts missing features. + We can now scan pango + +2008-05-08 Johan Dahlin + + * giscanner/glibtransformer.py: + * giscanner/transformer.py: + Move namespace stripping glibtransformer->transformer + +2008-05-08 Johan Dahlin + + * giscanner/ast.py: + * giscanner/girwriter.py: + * giscanner/glibtransformer.py: + * giscanner/transformer.py: + * tools/g-ir-scanner: + Introduce a namespace ast node + +2008-05-05 Johan Dahlin + + * giscanner/__init__.py: + * giscanner/sourcescanner.py: + * giscanner/transformer.py: + Move sourcescanner symbols to the sourcescanner module, instead + of in the global __init__ namespace. + +2008-05-03 Johan Dahlin + + * giscanner/glibtransformer.py: + * tools/g-ir-scanner: + Handle missing parameters better, allow - and + in .la dlname + filenames. + +2008-05-03 Johan Dahlin + + * giscanner/__init__.py: + * giscanner/ast.py: + * giscanner/girwriter.py: + * giscanner/glibtransformer.py: + * giscanner/transformer.py: + Parse struct fields properly, improve debugging. + +2008-04-29 Johan Dahlin + + * giscanner/ast.py: + * giscanner/girwriter.py: + * giscanner/transformer.py: + * tests/parser/Foo-expected.gir: + * TODO: + Use transfer-ownership everywhere, to mark ownership/calle/caller etc. + +2008-04-29 Johan Dahlin + + * Makefile.am: + * docs/g-ir-scanner.1: + * metadata-annotations-proposal.txt: + * metadata-format.txt: + Add a basic, unfinshed man page for g-ir-scanner, move documents into .txt + +2008-04-29 Johan Dahlin + + * giscanner/girwriter.py: + * giscanner/glibtransformer.py: + * giscanner/transformer.py: + * giscanner/xmlwriter.py: + * tests/parser/Foo-expected.gir: + * tests/parser/foo-object.h: + Write record/structs to gir file too. Add a couple of tests, + fix an off by one error in xmlwriter.py. + +2008-04-28 Johan Dahlin + + * giscanner/xmlwriter.py: Calculate the line length properly, + include the provided extra indentation in the calculation, really. + +2008-04-28 Johan Dahlin + + * giscanner/ast.py: + * giscanner/glibast.py: + * giscanner/glibtransformer.py: + * giscanner/transformer.py: + * tools/g-ir-scanner: + Add a --strip-prefix and sort out confusion between names and symbols + for functions and struct + derivaties. + Refactor bootstrap of g-ir-scanner, so we can set options on + Transformer() before parsing everything. + +2008-04-28 Johan Dahlin + + * giscanner/transformer.py (Transformer._traverse_one): Avoid recursion + when scanning girepository.h + + * giscanner/sourcescanner.py (SourceScanner._preprocess): Define + a __GI_SCANNER__ when we run. + +2008-04-28 Johan Dahlin + + * giscanner/ast.py: + * giscanner/girwriter.py: + * giscanner/glibast.py: + * giscanner/glibtransformer.py: + * tests/parser/Foo-expected.gir: + * tests/parser/utility-expected.gir: + Rename most c:identifier to c:type. Add new ones to + class/interface/enum/boxed. + +2008-04-28 Johan Dahlin + + * giscanner/ast.py: + * giscanner/girwriter.py: + * giscanner/glibtransformer.py: + * tests/parser/Foo-expected.gidl: + * tests/parser/Makefile.am: + Move c:identifier from return-value to subchild type, + as per Jürgs suggestion + +2008-04-28 Johan Dahlin + + * giscanner/girwriter.py: + * tests/parser/Foo-expected.gir: + Write property.type as a child node. + +2008-04-27 Johan Dahlin + + * Makefile.am: + * configure.ac: + * gidl/Makefile.am: + * gidl/gobject-2.0.gidl: + * gir/Makefile.am: + * gir/gobject-2.0.gir: + * tests/parser/Makefile.am: + Replace the GObject gidl with a GObject gir. + +2008-04-27 Johan Dahlin + + * tools/Makefile.am (bin_SCRIPTS): g-ir-scanner is a script, + not a program. + + * giscanner/xmlwriter.py: + * tests/parser/Foo-expected.gir: + Include indentation in line length calculation + +2008-04-27 Johan Dahlin + + * giscanner/girparser.py: + Prettify NS parsing using elementtree. + +2008-04-27 Johan Dahlin + + * configure.ac: + * giscanner/Makefile.am: + * giscanner/girparser.py: + * giscanner/glibtransformer.py: + * tests/parser/Foo-expected.gidl: + * tests/parser/Foo-expected.gir: + * tests/parser/Makefile.am: + * tests/parser/utility-expected.gidl: + * tests/parser/utility-expected.gir: + * tools/g-ir-scanner: + Switch over to GIR as the default format. Add a simple GIDL + parser. + Update tests and fix simplify makefiles by depending + on GNU make extensions. + +2008-04-27 Johan Dahlin + + * giscanner/xmlwriter.py: + Wrap attributes for lines which are wider than 79 characters + + * giscanner/scannerlexer.l: + Allow parenthesis in annotations + + * giscanner/ast.py: + * giscanner/gidlwriter.py: + * giscanner/girwriter.py: + * giscanner/glibtransformer.py: + * giscanner/transformer.py: + Add initial sequence support, including annotation. + Refactor type handling a bit. + +2008-04-27 Johan Dahlin + + * tests/parser/Foo-expected.gidl: + * tests/parser/foo-object.h: + * tests/parser/foo.c (foo_object_class_init), + (foo_object_get_strings), (foo_object_get_objects): + Add two new functions to check sequence return values. + Also fixes a compilation warning. + +2008-04-27 Johan Dahlin + + * giscanner/giscannermodule.c (]): Cast the getter, avoids + a compilation warning. + + * tools/Makefile.am (g_ir_scanner_SOURCES): + g-ir-scanner has no sources. + +2008-04-25 Johan Dahlin + + * giscanner/Makefile.am: + * giscanner/ast.py: + * giscanner/gidlparser.py: + * giscanner/gidlwriter.py: + * giscanner/girwriter.py: + * giscanner/glibast.py: + * giscanner/glibtransformer.py: + * giscanner/transformer.py: + Split out nodes to ast.py and glibast.py + +2008-04-25 Johan Dahlin + + * giscanner/Makefile.am: + * giscanner/gidlparser.py: + * giscanner/gidlwriter.py: + * giscanner/girwriter.py: + * giscanner/glibtransformer.py: + * giscanner/gobjecttreebuilder.py: + * giscanner/transformer.py: + * giscanner/treebuilder.py: + * tools/g-ir-scanner: + Rename treebuilder to transformer and + gobjectreebuilder to glibtransformer. + +2008-04-25 Johan Dahlin + + * giscanner/Makefile.am: + * giscanner/__init__.py: + * giscanner/cgobject.py: + * giscanner/gidlparser.py: + * giscanner/gidlwriter.py: + * giscanner/girwriter.py: + * giscanner/gobjecttreebuilder.py: + * giscanner/odict.py: + * giscanner/sourcescanner.py: + * giscanner/treebuilder.py: + * giscanner/xmlwriter.py: + * tools/Makefile.am: + * tools/g-ir-scanner: + Add LGPLv2 license header and install all python files + +2008-04-25 Johan Dahlin + + * TODO: + * giscanner/gidlwriter.py: + * giscanner/giscannermodule.c (pygi_source_directive_new), + (directive_get_options), (pygi_source_symbol_new), + (symbol_get_base_type), (pygi_source_type_new), + (type_get_base_type), (type_get_child_list), + (pygi_source_scanner_get_symbols), + (pygi_source_scanner_get_directives): + * giscanner/gobjecttreebuilder.py: + * giscanner/sourcescanner.py: + * giscanner/treebuilder.py: + * tests/parser/foo-object.h: + Add support for virtual methods. + Pair struct FooClass with struct Foo. + Clean up the SourceScanner bindings a bit. + Add a testcase for virtual methods. + +2008-04-25 Johan Dahlin + + * giscanner/cgobject.py: + * giscanner/gidlwriter.py: + * giscanner/gobjecttreebuilder.py: + Add support for signals + + * tests/parser/foo.c (foo_object_class_init): + * Foo-expected.gidl: + Add a signal and update the expected output. + +2008-04-24 Johan Dahlin + + * giscanner/gidlwriter.py: + * giscanner/girwriter.py: + * giscanner/giscannermodule.c (directive_get_name), + (directive_get_value), (directive_get_options), + (symbol_get_directives), (symbol_set_directives), + (pygi_source_scanner_parse_file), + (pygi_source_scanner_lex_filename), + (pygi_source_scanner_get_directives), (init_giscanner): + * giscanner/sourcescanner.c (gi_source_scanner_get_directives): + * giscanner/sourcescanner.h: + * giscanner/sourcescanner.py: + * giscanner/treebuilder.py: + * tools/g-ir-scanner: + Add support for source/header annotations. + +2008-04-22 Johan Dahlin + + * giscanner/gidlwriter.py: + * giscanner/girwriter.py: + * giscanner/gobjecttreebuilder.py: + * giscanner/treebuilder.py: + Add support for Callbacks + +2008-04-22 Havoc Pennington + + * girepository/ginvoke.c (g_function_info_invoke): If a symbol is + not in metadata->module, look for it in the global module, in case + some other object or the app itself provides the symbol. + +2008-04-22 Havoc Pennington + + * girepository/gmetadata.c (_g_metadata_init): hack to avoid + dlopening a library that is already in the main app, by checking + whether one of the lib's symbols is already loaded. + +2008-04-22 Johan Dahlin + + * tests/parser/Foo-expected.gidl: + * tests/parser/foo-object.h: + Add a callback test + +2008-04-22 Havoc Pennington + + * girepository/ginfo.c (g_interface_info_find_method): + Use interface_blob_size not object_blob_size to compute offset. + +2008-04-22 Havoc Pennington + + * girepository/gmetadata.c (_g_metadata_init): remove + G_MODULE_BIND_LOCAL flag when loading libraries, since some libs + (Glade and Clutter for example) rely on being loaded globally. + +2008-04-22 Havoc Pennington + + * girepository/ginfo.c (g_registered_type_info_get_g_type): new + function to get the GType given a RegisteredTypeInfo + +2008-04-22 Johan Dahlin + + * COPYING: Add a LGPL license, to prevent automake to + put in a copy of GPL here. Pointed out by Havoc. + + * girepository/ginfo.c (g_info_from_entry), (g_type_info_new), + (g_type_info_is_pointer), (g_type_info_get_tag), + (g_type_info_get_param_type), (g_type_info_get_interface), + (g_type_info_get_array_length), (g_type_info_is_zero_terminated), + (g_type_info_get_n_error_domains), (g_type_info_get_error_domain), + (g_error_domain_info_get_codes), (g_enum_info_get_value), + (g_object_info_get_interface), (g_object_info_get_field), + (g_interface_info_get_prerequisite), + (g_signal_info_get_class_closure), (g_constant_info_get_value): + * girepository/ginvoke.c (get_ffi_type): + * girepository/girepository.h: + * girepository/gmetadata.c (g_metadata_get_dir_entry), + (g_metadata_check_sanity), (validate_header), + (validate_array_type_blob), (validate_iface_type_blob), + (validate_param_type_blob), (validate_error_type_blob), + (validate_type_blob), (validate_constant_blob), + (validate_struct_blob), (validate_enum_blob): + * girepository/gmetadata.h: + * tests/Makefile.am: + * tests/invoke/Makefile.am: + * tests/invoke/invoke.c (main): + * tests/roundtrips.sh: + * tools/Makefile.am: + * tools/compiler.c (format_output), (write_out_metadata), (main): + * tools/generate.c (write_type_name), (write_type_info), + (write_constant_value), (write_enum_info), (load_metadata), (main): + * tools/gidlcompilercontext.c: + * tools/gidlcompilercontext.h: + * tools/gidlcompilerentrynode.c: + * tools/gidlcompilerentrynode.h: + * tools/gidlcompilertypenode.c: + * tools/gidlcompilertypenode.h: + * tools/gidlmodule.c (g_idl_module_build_metadata): + * tools/gidlmodule.h: + * tools/gidlnode.c (init_stats), (dump_stats), + (g_idl_node_get_size), (g_idl_node_get_full_size), + (g_idl_node_cmp), (g_idl_node_can_have_member), + (g_idl_node_add_member), (g_idl_node_param_direction_string), + (parse_int_value), (parse_uint_value), (parse_float_value), + (parse_boolean_value), (find_entry_node), (find_entry), + (serialize_type), (g_idl_node_build_metadata), (write_string): + * tools/gidlnode.h: + * tools/gidlparser.c (parse_type_internal): + * tools/quote-file.sh: + Revert revisions 157,149-148,136-129 and 120. + Move back to using g-idl-generate to generate the metadata and + avoids dependency on a c compiler. + +2008-04-22 Johan Dahlin + + * giscanner/girwriter.py: + * tools/g-ir-scanner: + Add an initial GIR writer and a --format option to g-ir-scanner + +2008-04-21 Johan Dahlin + + * giscanner/cgobject.py: Use ctypes.util.find_library to locate + gobject-2.0 and raise ImportError if not found. + + * giscanner/gidlparser.py: + * giscanner/gidlwriter.py: + * giscanner/gobjecttreebuilder.py: + * tools/g-ir-scanner: + Add a --include argument to include types from other idls. + Add a minimalistic GIDL parser (just objects for now) + Implement resolving of external type references and use it to + resolve parent types, argument types and return types. + +2008-04-21 Johan Dahlin + + * giscanner/gidlwriter.py: + * giscanner/gobjecttreebuilder.py: + * giscanner/treebuilder.py: + Add support for properties. + Refactor Class/Interface support a bit, to share more code and + always initialize their method attribute to an empty list. + +2008-04-21 Johan Dahlin + + * giscanner/cgobject.py: + Add a workaround for a glib bug interface introspection bug + (object_interface_list_properties, object_class_list_properties): + Cast the return value to GParamSpec. + + * tests/parser/Foo-expected.gidl: Update + * tests/parser/foo.c: Add a string property + + * giscanner/gobjecttreebuilder.py: + After stripping namespaces, remove the original + item to avoid duplication (GtkButton struct and Button object) + +2008-04-21 Johan Dahlin + + * giscanner/gobjecttreebuilder.py: + * giscanner/treebuilder.py: + Strip namespaces before objects, so we'll export + GtkButton as Button in the gtk namespace + +2008-04-21 Johan Dahlin + + * giscanner/gidlwriter.py: + * giscanner/gobjecttreebuilder.py: + * giscanner/treebuilder.py: + Add constructors for object/boxed types. + +2008-04-21 Johan Dahlin + + * giscanner/gidlwriter.py: + * giscanner/gobjecttreebuilder.py: + Add support for boxed types + +2008-04-21 Johan Dahlin + + * giscanner/giscannermodule.c: Mark structures as const, + wrap SourceType.const_string. + + * tests/parser/foo-object.h: Add a couple of constants. + + * giscanner/gidlwriter.py: + * giscanner/gobjecttreebuilder.py: + * giscanner/treebuilder.py: + Add basic support for interfaces + + * tools/g-ir-scanner: + Add -o/--output for writing to a file + +2008-04-21 Havoc Pennington + + * TODO: add some C API wishlist items I could think of quickly + +2008-04-21 Johan Dahlin + + * giscanner/gidlwriter.py: + * giscanner/xmlwriter.py: + Add a simple api for writing tags which can be used + with the new 'with statement' in python 2.5 + +2008-04-21 Johan Dahlin + + * giscanner/gobjecttreebuilder.py: + Strip namespace and object prefix from method names. + +2008-04-21 Johan Dahlin + + * tools/g-ir-scanner (main): Add --pkg option to pass in + pkg-config modules to get cflags from. + + * giscanner/gidlwriter.py (GIDLWriter._write_method): + Avoid duplication, reuse function writer for methods. + +2008-04-21 Johan Dahlin + + * giscanner/gidlwriter.py: + * giscanner/gobjecttreebuilder.py: + * giscanner/treebuilder.py: + * tools/g-ir-scanner: + Resolve libtool .la files. + Strip name spaces for methods. + Add function symbols + +2008-04-20 Johan Dahlin + + * giscanner/cgobject.py: + * giscanner/gidlwriter.py: + * giscanner/gobjecttreebuilder.py: + * giscanner/treebuilder.py: + Add support for classes and methods + +2008-04-20 Johan Dahlin + + * giscanner/gidlwriter.py: + * giscanner/gobjecttreebuilder.py: + * giscanner/odict.py: + Avoid conflicts, keep the output ordered similar to + the order of the input. + Add a simple ordered dictionary implemenation + +2008-04-19 Johan Dahlin + + * giscanner/cgobject.py: + * giscanner/gidlwriter.py: + * giscanner/gobjecttreebuilder.py: + * tools/g-ir-scanner: + Start introspecting get-type functions. + Implement support for GLib/GFlags GTypes. + Add a ctype based GObject binding. + +2008-04-18 Johan Dahlin + + * giscanner/gidlwriter.py: + * giscanner/xmlwriter.py: + * tools/g-ir-scanner: + Add a simplistic gidl writer, which can't do too much. + +2008-04-18 Johan Dahlin + + * giscanner/sourcescanner.py: + * giscanner/treebuilder.py: + * tools/g-ir-scanner: + split tree building and source scanning interface to separate files. + +2008-04-18 Johan Dahlin + + * tools/g-ir-scanner (Parameter.__init__): Start constructing + a real node tree. + - Add support for struct/parameter/return, start parsing of ctypes + + * giscanner/giscannermodule.c: wrap GISourceType.child_list and + fix the style + +2008-03-31 Johan Dahlin + + * tools/g-ir-scanner: + Start to build abstract syntax node of scanned sources. + Add support for cpp options. + +2008-03-27 Johan Dahlin + + * giscanner/giscannermodule.c: + * giscanner/scannerlexer.l: + * giscanner/sourcescanner.c: + * tools/g-ir-scanner: + + Add simple pre-processor using subprocess and a PIPE. + Change the parse_file apis to accept a file descriptor. + +2008-03-25 Johan Dahlin + + * giscanner/__init__.py: + * tools/g-ir-scanner: + Fix a typo and add an example python test program. + +2008-03-25 Johan Dahlin + + * giscanner/__init__.py: + * giscanner/giscannermodule.c: + * giscanner/sourcescanner.c: + * giscanner/sourcescanner.h: + Add constants and wrap a few more SymbolType fields + +2008-03-25 Johan Dahlin + + * configure.ac: + * giscanner: + * giscanner/__init__.py: + * giscanner/giscannermodule.c: + * giscanner/Makefile.am: + + Add initial python bindings for the scanner and + depend on python 2.5. + +2008-03-25 Johan Dahlin + + * Makefile.am: + * configure.ac: + * giscanner/Makefile.am: + * giscanner/sourcescanner.c: + * giscanner/sourcescanner.h: + * tools/Makefile.am: + * tools/grealpath.h: + * tools/sourcescanner.c: + * tools/sourcescanner.h: + + Move the scanner to a separate library. + +2008-03-23 Johan Dahlin + + * tools/Makefile.am: + * tools/scanner.c: + * tools/scanner.h: + * tools/scannerlexer.l: + * tools/scannerparser.y: + * tools/sourcescanner.c: + * tools/sourcescanner.h: + Split out the source scanner from the generator. + Rename the symbols used in the scanner to use the gi_ prefix. + This should make it possible to use the raw C parser from + other programs. + +2008-03-23 Johan Dahlin + + * tests/parser/Makefile.am (utility.gidl): + * tests/parser/utility-expected.gidl: + Pass in the gobject.gidl since we're defining a GObject. + +2008-03-12 Johan Dahlin + + * relaxng/relaxng.rng: + Add a releaxng in relaxng we can use to validate the relaxngs + schemas + +2008-03-12 Jürg Billeter + + * tools/scanner.c: (g_igenerator_new): + * tools/scannerparser.y: + Fix compiler warnings. + +2008-03-12 Jürg Billeter + + * tools/scanner.c: + * tools/scanner.h: + * tools/scannerparser.y: + Start fixing memory management in g-idl-scanner. + +2008-03-12 Rob Taylor + + * tools/gidlcompilercontext.c: (write_compiled): + Fix critical warning when no shlib passed to g-idl-compiler. + +2008-03-12 Johan Dahlin + + * tests/parser/utility-expected.gidl: + * tests/parser/utility.h: + Add a get_type-function, so the scanner actually + parses it as an object. + +2008-03-12 Johan Dahlin + + * tools/gidlwriter.c (function_generate): Add missing trailing quote. + Bad Philip! + + * tests/parser/Foo-expected.gidl: + * tests/parser/Makefile.am: + * tests/parser/foo-object.h: + * tests/parser/foo.c: + * tests/parser/utility-expected.gidl: + * tests/parser/utility.c: + * tests/parser/utility.h: + + Add a new gidl test. 'utility.gidl', which is used to be able + to test external type references. Add a reference to UtilityObject* + in the idl file. + +2008-03-11 Johan Dahlin + + * tools/compiler.c: + * tools/generate.c: + Remove most global variables + +2008-03-11 Philip Van Hoof + + * tools/scannerlexer.l: + * tools/scanner.c: + * tests/parser/Foo-expected.gidl: + * tests/parser/foo.c: + * tests/parser/Makefile.am: + * tests/parser/foo-object.h: + + Added a few extra tests. Which resulted in finding a few + bugs. Which resulted in me fixing those bugs + +2008-03-11 Rob Taylor + + * tools/gidlcompilercontext.c: (g_idl_compiler_write_dir_entry), + (g_idl_compiler_write_xref_entry), (g_idl_compiler_add_xref): + Add some comments for strings into generated output for + easier debugging. + +2008-03-11 Rob Taylor + + * tools/gidlcompilercontext.c: (write_compiled): + Write out the shlibs variable before writing out the strings + length. Fixes compiler warning when using '-l' flag with + g-idl-compiler + +2008-03-11 Johan Dahlin + + * tests/parser/Foo-expected.gidl: + * tests/parser/foo-object.h: + * tools/scanner.c: + * tools/scanner.h: + * tools/scannerlexer.l: + Add support for parsing return arguments. Add support for + caller-owns return types. + Patch by Philip Van Hoof. + + * tools/scannerparser.y: + Remove parsing of the @deprecated syntax used in headers. + We will support gtk-doc deprecation in the future instead. + +2008-03-11 Johan Dahlin + + * tools/compiler.c (main): Coding style fixes + +2008-03-10 Johan Dahlin + + * configure.ac: + Add GCOV_LIBS to GILIBS + +2008-03-10 Johan Dahlin + + * tests/parser/Foo-expected.gidl: + * tests/parser/foo.c: + Rename null-ok to direction=out + +2008-03-10 Philip Van Hoof + + reviewed and extensively tested by Johan + + * tests/parser/Foo-expected.gidl: + * tests/parser/foo-object.h: + * tests/parser/foo.c: + * tools/gidlnode.c: + * tools/gidlnode.h: + * tools/gidlwriter.c: + * tools/scanner.c: + * tools/scanner.h: + * tools/scannerlexer.l: + * tools/scannerparser.y: + + Add support for scanning for gtk-doc comments inside + C source files. Add tests + +2008-03-10 Johan Dahlin + + * tests/parser/Makefile.am: + * tests/parser/foo.c: + * tools/scanner.c: + * tools/scanner.h: + * tools/scannerparser.y: + Add an api to lex filenames. + Lex all source .c files passed in on the command line. + Scan sources in a test and a couple of private structures + which should not be included in the generated gidl + +2008-03-10 Johan Dahlin + + * tests/invoke/Makefile.am: Make the generated metadata + depend on the g-idl-compiler + +2008-02-21 Mark Doffman + + * tools/gidlmodule.c + * tools/gidlmodule.h + * tools/gidlnode.c + * tools/gidlnode.h + Remove the old g-idl-compiler code. + + +2008-02-22 Mark Doffman + + * tools/quote-file.sh + * tools/compiler.c + * tools/generate.c + Move to using the 'C' struct compiler code. + +2008-02-21 Mark Doffman + + * girepository/ginfo.c + * tools/generate.c + Change the way that external references with no namespace + are dealt with. External references with no namespace + are placed into the XML as-if they are a local reference. + This is temporary, but helps with roundtrip tests. + +2008-02-21 Mark Doffman + + * girepository/ginfo.c + Add the ability to get the value of a constant of + type TYPE_TAG_SYMBOL. In the case of a symbol the value + is provided as a string. + + This would deal properly with: + typedef char* random; + const random = "A string"; + +2008-02-21 Mark Doffman + + * girepository/ginfo.c + * girepository/girepository.h + * tools/generate.c + Add a function to check if an enum is registered or not. + Previously anything testing this relied on the g-type + string offset having a value of 0. + + * girepository/gmetadata.c + * girepository/gmetadata.h + * tools/generate.c + Remove unneccesary or erroneous checks. There were two + metadata validation checks which made sure that the blob + sizes were the same as some magic numbers compiled into the code. + This is wrong as it breaks any forwards compatibility that may + be possible. + + Checks were also present that made sure that unregistered type + blobs had a value of 0 in the g-type offset field. This is + unneccessary. If a type blob is unregistered then any value + in its g-type field is simply invalid. + +2008-02-21 Mark Doffman + + * girepository/ginfo.c + * girepository/gmetadata.c + * girepository/gmetadata.h + + Change the metadata format to have a standard header + for all the type blobs. Merge the SimpleTypeBlob + and InterfaceTypeBlob into a union. A union of these + two blobs existed previously but was not explicit + in the metadata format. + +2008-02-21 Mark Doffman + + * tools/gidlcompilercontext.c + * tools/gidlcompilercontext.h + * tools/gidlcompilerentrynode.c + * tools/gidlcompilerentrynode.h + * tools/gidlcompilertypenode.c + * tools/gidlcompilertypenode.h + + Add code to compile a tree of GIdlNodes to + a 'C' struct representing the metadata. + This is to aid cross-compiling. Previously + the g-idl-compiler created a binary blob with + data written in the byte order and alignment + of the tool rather than the intended target. + + Cleaned up and improved by Johan and Robert :-) + +2008-02-21 Mark Doffman + + * girepository/ginvoke.c + * girepository/girepository.h + * girepository/gmetadata.c + * girepository/gmetadata.h + * tools/generate.c + * tools/gidlparser.c + Modify TYPE_TAG_INTERFACE to TYPE_TAG_SYMBOL + to avoid confusion with the interface blob. + + * tools/generate.c + * tools/gidlparser.c + Remove magic numbers and replace with type-tag + enumeration symbols. + + * girepository/gmetadata.c + Add validate declaration. + +2008-03-10 Jürg Billeter + + * tools/gidlparser.c: (parse_type_internal): + * tools/scannerlexer.l: + * tools/scannerparser.y: + Support C99 _Bool type in scanner. + +2008-03-10 Jürg Billeter + + * tests/parser/Foo-expected.gidl: + * tests/parser/foo-object.h: + * tests/parser/foo.c: (foo_enum_method): + * tools/scanner.c: (g_igenerator_process_function_symbol): + Don't skip functions that are defined in the namespace of a type + that doesn't support methods, as for example enums. + +2008-03-10 Johan Dahlin + + * gidl.dtd: Remove, we're using relaxng for now + + * tests/parser/Foo-expected.gidl: + * tests/parser/foo-object.h: + * tests/parser/foo.c: + Rename the enum/flags get_type functions to include the whole type. + +2008-03-08 Marc-Andre Lureau + + * tools/gidlwriter.c (enum_generate): added "type-name", + "get-type" and "deprecated" missing arguments. + * tests/parser/Foo-expected.gidl: + * tests/parser/foo-object.h: test enum type, and no type. + +2008-03-06 Johan Dahlin + + * configure.ac: + Consistent checks, add missing 'test' + +2008-03-05 Havoc Pennington + + * configure.ac: Take advantage of a libffi.pc if one exists, as it + does on Fedora 8. Make libffi a hard requirement, since it was in + practice anyway (was not really conditional in the code or + makefile, only in configure). + +2008-02-21 Mark Doffman + + reviewed by: Rob Taylor + reviewed by: Johan Dahlin + + * tests/Makefile.am: + * tests/roundtrips.sh: + Modify the roundtrips test so that they do not use the + --raw option of the gidl compiler but instead compile a + shared library to use with g_module. + + * tests/invoke/Makefile.am: + * tests/invoke/invoke.c: + Modify the invoke tests to build a shared library rather + than use the --raw option. + + * tests/invoke/invoke-namespace-find.sh: Removed: + Noone knows why this was here, so removed. + +2008-02-19 Rob Taylor + + * tools/scanner.c: (g_igenerator_process_function_symbol): + Move g_idl_node_can_have_member test later, as it broke spotting + get_type's for nodes that can't have members. + +2008-02-18 Rob Taylor + + * tools/gidlnode.h: + * tools/gidlnode.c: (g_idl_node_can_have_member): + Add g_idl_node_can_have_member. + + * tools/scanner.c: (g_igenerator_process_function_symbol): + Use g_idl_node_can_have_member to test if we should add a function + as a member of the type node. + +2008-02-18 Rob Taylor + + * gidl/GLib.gidl: Renamed to gidl/gobject-2.0.gidl: + * gidl/Makefile.am: + * tests/parser/Makefile.am: + Rename GLib.gidl to gobject-2.0.gidl and install in /usr/share/gidl. + +2008-02-18 Rob Taylor + + * tools/scanner.c: (main): + Ignore -pthread when passed to g-idl-scanner. + +2008-02-18 Rob Taylor + + * tools/grealpath.h: Added: + * tools/scanner.c: (main): + * tools/scannerlexer.l: + * tools/Makefile.am: + Always use absolute paths with symbolic links resolved when + comparing filenames. + +2008-02-18 Rob Taylor + + * gobject-introspection.pc.in: + Provide variables for g-idl-parser, scanner and compiler in the + pkgconfig file. + +2008-02-13 Rob Taylor + + * gcov.mak: + * girepository/Makefile.am: + * tools/Makefile.am: + Rename GCOV_SOURCES to GCOVSOURCES to top automake complaining. + +2008-02-10 Johan Dahlin + + * tests/parser/Foo-expected.gidl: + * tests/parser/foo-object.h: + * tests/parser/foo.c: (foo_boxed_copy), (foo_boxed_free), + (foo_boxed_get_type), (foo_boxed_new), (foo_boxed_method): + Add boxed test. + +2008-02-10 Johan Dahlin + + * tests/parser/Foo-expected.gidl: + * tests/parser/foo-object.h: + * tests/parser/foo.c: (foo_enum_get_type), (foo_flags_get_type): + Add enum and flags test. + +2008-02-10 Johan Dahlin + + * Makefile.am: + * configure.ac: + * girepository/Makefile.am: + Make 'make distcheck' work again. + +2008-02-10 Johan Dahlin + + * m4/Makefile.am (EXTRA_DIST): its called as-compiler-flag.m4, + not as-compiler.m4. + + * tests/parser/Makefile.am: Only create Foo.gidl when running make + check, eg exclude it from BUILT_SOURCES. + +2008-02-08 Rob Taylor + + * Makefile.am: + * configure.ac: + * gcov.mak: Added: + * girepository/Makefile.am: + * m4/Makefile.am: Added: + * m4/as-compiler-flag.m4: Added: + * m4/gcov.m4: Added: + * tools/Makefile.am: + Add ability to generate a coverage report. + Adds configure option --enable-gcov and make rule 'check-coverage'. + +2008-02-08 Rob Taylor + + * Makefile.am: + * configure.ac: + * gidl/Makefile.am: Added: + * girepository/Makefile.am: Added: + * src/Makefile.am: Renamed to tools/Makefile.am: + * src/compiler.c: Renamed to tools/compiler.c: + * src/g-idl-offsets.pl: Renamed to tools/g-idl-offsets.pl: + * src/generate.c: Renamed to tools/generate.c: + * src/gidlmodule.c: Renamed to tools/gidlmodule.c: + * src/gidlmodule.h: Renamed to tools/gidlmodule.h: + * src/gidlnode.c: Renamed to tools/gidlnode.c: + * src/gidlnode.h: Renamed to tools/gidlnode.h: + * src/gidlparser.c: Renamed to tools/gidlparser.c: + * src/gidlparser.h: Renamed to tools/gidlparser.h: + * src/gidlwriter.c: Renamed to tools/gidlwriter.c: + * src/gidlwriter.h: Renamed to tools/gidlwriter.h: + * src/ginfo.c: Renamed to girepository/ginfo.c: + * src/ginvoke.c: Renamed to girepository/ginvoke.c: + * src/girepository.c: Renamed to girepository/girepository.c: + * src/girepository.h: Renamed to girepository/girepository.h: + * src/gmetadata.c: Renamed to girepository/gmetadata.c: + * src/gmetadata.h: Renamed to girepository/gmetadata.h: + * src/scanner.c: Renamed to tools/scanner.c: + * src/scanner.h: Renamed to tools/scanner.h: + * src/scannerlexer.l: Renamed to tools/scannerlexer.l: + * src/scannerparser.y: Renamed to tools/scannerparser.y: + * tests/invoke/Makefile.am: + Split src/ into girepository/ and tools/ + + * Makefile.am: + * configure.ac: + * girepository/Makefile.am: + * tests/Makefile.am: + * tests/invoke/Makefile.am: + * tests/parser/Makefile.am: + * tests/roundtrips.sh: + * tools/Makefile.am: + Make distcheck work. + +2008-02-04 Rob Taylor + + * tests/invoke/invoke.c: (main): + * tests/invoke/testfns.c: (test6), (test7): + * tests/invoke/testfns.xml: + Add tests for invokation with a GList argument. + Also tests caller-owns return values. + +2008-02-04 Rob Taylor + + * src/ginfo.c: + Add some documentation for GICallableInfo + +2008-02-01 Mark Doffman + + * gidl.dtd: + Correct syntax errors in the DTD file. + * relaxng/api.xml: + * relaxng/c-types.xml: + * relaxng/g-types.xml: + * relaxng/util.xml: + Add a RelaxNG specification for the GObject Introspection XML data. + The Specification has validated all of the test files. + +2008-01-25 Rob Taylor + + * tests/roundtrips.sh: + * tests/struct.test: + Add roundtrip tests for structs. + +2008-01-11 Johan Dahlin + + * src/scanner.c (g_igenerator_process_function_symbol): + Refactor out g_idle_node_add_member. + (create_node_from_gtype, create_node_from_ctype): + Use case instead of if...else + (get_type_from_type_id): + Rename to create_node_from_gtype + (get_type_from_ctype): + Rename to create_node_from_ctype + + Rename ginode -> node, gitype -> type, gifunc -> func. + + * src/gidlnode.c (g_idl_node_add_member, g_idl_node_cmp): + Two new functions, refactor out of scanner.c + + * src/scanner.c: (g_igenerator_process_function_symbol): + * src/scannerlexer.l: + Do not save the content of the deprecated variable, only + if it's set or not. + +2008-01-11 Johan Dahlin + + * tests/parser/foo-object.h: Add a couple of comment parser tests. + +2008-01-11 Jürg Billeter + + * src/scannerlexer.l: + Fix GTK-Doc parsing. + +2008-01-11 Jürg Billeter + + * src/scannerlexer.l: + Fix GTK-Doc parsing. + +2008-01-11 Jürg Billeter + + * src/scanner.c: (lookup_symbol): + Return unresolved name if we find unknown symbol. + +2008-01-11 Jürg Billeter + + * src/scanner.c: (g_igenerator_generate): + Initialize GObject to fix scanning interface properties. + + * tests/parser/Foo-expected.gidl: + * tests/parser/foo-object.h: + * tests/parser/foo.c: (foo_interface_get_type): + Test interfaces with GObject prerequisite. + + * tests/parser/Makefile.am: + Set G_DEBUG=fatal_warnings to abort test on warnings and criticals. + +2007-12-27 Johan Dahlin + + * src/scannerlexer.l: + Parse gtk-doc comments. + + * src/gidlwriter.c: (function_generate): + Reorganize, avoid duplication and add support for + writing deprecated functions. + + * src/scannerparser.y: + * src/scanner.h: + Add new structure CDirective and functions to create/free them. + + * src/scanner.c: (g_igenerator_process_function_symbol), + (g_igenerator_process_unregistered_struct_typedef), + (g_igenerator_process_struct_typedef), + (g_igenerator_process_union_typedef), + (g_igenerator_process_enum_typedef), + (g_igenerator_process_function_typedef), (g_igenerator_add_symbol), + (g_igenerator_start_preprocessor): + Parse @deprecated directive for functions. + Remove some more C99isms. + Send in -C to cpp to avoid stripping comments. + + * tests/parser/foo-object.h: + * tests/parser/Foo-expected.gidl: + Add deprecated directive + +2007-12-27 Johan Dahlin + + * src/scannerlexer.l (intsuffix): Add emacs mode line and + escape ' and " so it looks more like C. + + * src/scanner.c: + Unlink temporary file used. + +2007-12-27 Johan Dahlin + + * src/scanner.c: (g_igenerator_new), (g_igenerator_free), + (g_igenerator_start_preprocessor), (main): + * src/scanner.h: + * src/scannerparser.y: + Plug a couple of simple memory leaks. + +2007-12-27 Johan Dahlin + + * src/scanner.c: (g_igenerator_parse_macros), + (g_igenerator_start_preprocessor), (g_igenerator_set_verbose), + (main): + * src/scanner.h: + * src/scannerparser.y: + * tests/parser/Makefile.am: + + Improve error reporting, return when the preprocessor fails. + Add a verbose parameter, to aid debugging. + Revert to using a temporary file to communicate between the + preprocessor and the parser, because we need to wait for + the exit code from the pre-processor before starting to parse. + +2007-12-16 Johan Dahlin + + * src/Makefile.am: Rename clexer.l to scannerlexer.l and + cparser.y to scannerparser.y + +2007-12-11 Johan Dahlin + + * src/clexer.l: + * src/cparser.y: + * src/scanner.c: (g_igenerator_new): + * src/scanner.h: + Get rid of the global the_generator variable. + +2007-12-10 Johan Dahlin + + * src/scanner.c (main): Add an output option, + add checks for required parameters + + * src/Makefile.am: + set BUILD_SOURCES and CLEANFILES properly + + * src/gidlwriter.c: (g_writer_write_inline), (g_writer_write), + (g_writer_write_indent), (g_writer_write_unindent), + (field_generate), (value_generate), (constant_generate), + (property_generate), (function_generate), (vfunc_generate), + (signal_generate), (interface_generate), (struct_generate), + (union_generate), (boxed_generate), (enum_generate), + (node_generate), (g_writer_write_module), (g_idl_writer_save_file): + * src/gidlwriter.h: + * src/scanner.c: (g_igenerator_generate): + * src/scanner.h: + * src/scannerwriter.c: + + Refactor scannerwriter to only be tied to a GIdlModule and move + it (again!) to gidlwriter.c. Change the writer function to take + a filename. + +2007-12-10 Johan Dahlin + + * src/Makefile.am: + * src/scanner.c: (g_igenerator_generate): + * src/scanner.h: + * src/scannerwriter.c: (g_igenerator_write_inline), + (g_igenerator_write), (g_igenerator_write_indent), + (g_igenerator_write_unindent), (field_generate), (value_generate), + (constant_generate), (property_generate), (function_generate), + (vfunc_generate), (signal_generate), (interface_generate), + (struct_generate), (union_generate), (boxed_generate), + (enum_generate), (node_generate), (module_generate), + (g_scanner_write_file): + + Move the scanner gidl writing to a separate source file. + +2007-12-10 Johan Dahlin + + * src/cparser.y: + * src/scanner.c: + * src/scanner.h: + Move over all CType construction functions. + + * tests/parser/Makefile.am: + Be verbose when printing parsing tests results. + +2007-12-10 Johan Dahlin + + * src/scanner.c (g_igenerator_start_preprocessor): Refactor + preprocessor handling to here. Start cpp insteado of cc -E, + always include -U__GNUC__, since it's specific to the preprocessor + we use. + + * tests/parser/Makefile.am (check-local): Silent diff and skip + -U__GNUC__ which is always defined now + +2007-12-10 Johan Dahlin,,, + + reviewed by: + + * src/scanner.c: (g_igenerator_start_preprocessor), (main): + * tests/parser/Makefile.am: + +2007-12-09 Johan Dahlin + + * src/scanner.c: + Use GOption for command line options. + (g_igenerator_new, main): Simplify constructor and they way + parameters are passed into it. + + * src/cparser.y: + * src/Makefile.am: + * src/clexer.l: + * src/cparser.y: + * src/gen-introspect.c: + * src/gen-introspect.h: + * src/scanner.c: + Rename gen-introspect.[ch] to scanner.[ch] + +2007-12-09 Johan Dahlin + + * TODO: Update + + * src/Makefile.am: Rename gen-introspect to g-idl-scanner, + don't make the repository library and the other utilites link against + gthread-2.0 + + * src/gen-introspect.c: (g_igenerator_create_object), + (g_igenerator_create_interface), (g_igenerator_create_boxed), + (g_igenerator_create_enum), (g_igenerator_create_flags), + (g_igenerator_process_module_symbol), + (g_igenerator_process_module), (g_igenerator_generate), (main): + * src/gen-introspect.h: + Refactor g_igenerator_process_types into smaller pieces. + + * tests/parser/Makefile.am: + Depend on the gen-introspect binary + +2007-12-09 Johan Dahlin + + * src/gen-introspect.c (g_igenerator_process_types): + Break into smaller pieces, one for each generated node type. + +2007-12-08 Johan Dahlin + + * src/gen-introspect.c: (g_igenerator_process_types), + (g_igenerator_add_module): + * tests/parser/Foo-expected.gidl: + * tests/parser/foo-object.h: + * tests/parser/foo.c: (foo_subobject_class_init), + (foo_subobject_init): + + Add a subobject test and make sure to register defined classes + in the lookup symbol hash table. + +2007-12-08 Johan Dahlin + + * gidl/GLib.gidl: + * src/Makefile.am: + * src/gen-introspect.c: (g_igenerator_new), (lookup_symbol), + (g_igenerator_process_types), (g_igenerator_add_module), + (g_igenerator_add_include_idl), (main): + * src/gen-introspect.h: + * tests/parser/Makefile.am: + * tests/parser/Foo-expected.gidl: + + Change the gen-introspect to generate namespaced module names, + such as GLib.Object instead of GObject. + Add a GLib.gidl which introduces GLib.Object and GLib.InitiallyUnowned, + add a --include-idl parameter to gen-introspect, + and update the parser test. + +2007-12-08 Johan Dahlin + + * src/gen-introspect.c: + Move main to the end of the file and attempt to make it valid + ansi c. + + * tests/parser/Makefile.am (BUILT_SOURCES): Remove .repo here, + we're not quite ready to generate metadata yet. + + * tests/parser/: + * configure.ac: + + Add a simple gen-introspect parser test + +2007-12-06 Gustavo J. A. M. Carneiro + + reviewed by: Johan Dahlin + + * configure.ac: + * gobject-introspection.pc.in: + * src/Makefile.am: + * src/compiler.c: (format_output), (write_out_metadata), (main): + * src/gen-introspect.c: (main): + * src/gen-introspect.h: + * src/generate.c: (write_callable_info), (write_repository), + (load_metadata), (main): + * src/gidlmodule.c: (g_idl_module_new), + (g_idl_module_build_metadata): + * src/gidlmodule.h: + * src/gidlparser.c: (start_element_handler): + * src/ginfo.c: (g_info_new), (g_info_from_entry), + (g_base_info_get_name), (g_base_info_get_namespace), + (g_base_info_is_deprecated), (g_base_info_get_annotation), + (g_base_info_get_metadata), (g_function_info_get_symbol), + (g_function_info_get_flags), (g_function_info_get_property), + (g_function_info_get_vfunc), (signature_offset), (g_type_info_new), + (g_callable_info_may_return_null), + (g_callable_info_get_caller_owns), (g_callable_info_get_n_args), + (g_callable_info_get_arg), (g_arg_info_get_direction), + (g_arg_info_is_return_value), (g_arg_info_is_dipper), + (g_arg_info_is_optional), (g_arg_info_may_be_null), + (g_arg_info_get_ownership_transfer), (g_type_info_is_pointer), + (g_type_info_get_tag), (g_type_info_get_param_type), + (g_type_info_get_interface), (g_type_info_get_array_length), + (g_type_info_is_zero_terminated), + (g_type_info_get_n_error_domains), (g_type_info_get_error_domain), + (g_error_domain_info_get_quark), (g_error_domain_info_get_codes), + (g_value_info_get_value), (g_field_info_get_flags), + (g_field_info_get_size), (g_field_info_get_offset), + (g_registered_type_info_get_type_name), + (g_registered_type_info_get_type_init), + (g_struct_info_get_n_fields), (g_struct_info_get_field), + (g_struct_info_get_n_methods), (g_struct_info_get_method), + (find_method), (g_struct_info_find_method), + (g_enum_info_get_n_values), (g_enum_info_get_value), + (g_object_info_get_parent), (g_object_info_get_type_name), + (g_object_info_get_type_init), (g_object_info_get_n_interfaces), + (g_object_info_get_interface), (g_object_info_get_n_fields), + (g_object_info_get_field), (g_object_info_get_n_properties), + (g_object_info_get_property), (g_object_info_get_n_methods), + (g_object_info_get_method), (g_object_info_find_method), + (g_object_info_get_n_signals), (g_object_info_get_signal), + (g_object_info_get_n_vfuncs), (g_object_info_get_vfunc), + (g_object_info_get_n_constants), (g_object_info_get_constant), + (g_interface_info_get_n_prerequisites), + (g_interface_info_get_prerequisite), + (g_interface_info_get_n_properties), + (g_interface_info_get_property), (g_interface_info_get_n_methods), + (g_interface_info_get_method), (g_interface_info_find_method), + (g_interface_info_get_n_signals), (g_interface_info_get_signal), + (g_interface_info_get_n_vfuncs), (g_interface_info_get_vfunc), + (g_interface_info_get_n_constants), + (g_interface_info_get_constant), (g_property_info_get_flags), + (g_signal_info_get_flags), (g_signal_info_get_class_closure), + (g_signal_info_true_stops_emit), (g_vfunc_info_get_flags), + (g_vfunc_info_get_offset), (g_vfunc_info_get_signal), + (g_constant_info_get_value), (g_union_info_get_n_fields), + (g_union_info_get_field), (g_union_info_get_n_methods), + (g_union_info_get_method), (g_union_info_is_discriminated), + (g_union_info_get_discriminator_offset), + (g_union_info_get_discriminator): + * src/ginvoke.c: (g_function_info_invoke): + * src/girepository.c: (g_irepository_register), + (g_irepository_unregister), (g_irepository_get_default), + (count_interfaces), (g_irepository_get_n_infos), (find_interface), + (g_irepository_get_info), (g_irepository_find_by_name), + (g_irepository_get_shared_library), + (g_irepository_build_search_path), (g_irepository_register_file), + (g_irepository_error_quark): + * src/girepository.h: + * src/gmetadata.c: (g_metadata_get_dir_entry), + (g_metadata_check_sanity), (validate_header), + (validate_array_type_blob), (validate_iface_type_blob), + (validate_param_type_blob), (validate_error_type_blob), + (validate_type_blob), (validate_arg_blob), + (validate_signature_blob), (validate_function_blob), + (validate_callback_blob), (validate_constant_blob), + (validate_value_blob), (validate_field_blob), + (validate_property_blob), (validate_signal_blob), + (validate_vfunc_blob), (validate_struct_blob), + (validate_enum_blob), (validate_object_blob), + (validate_interface_blob), (validate_errordomain_blob), + (validate_union_blob), (validate_blob), (validate_directory), + (validate_annotations), (g_metadata_validate), (_g_metadata_init), + (g_metadata_new_from_memory), (g_metadata_new_from_const_memory), + (g_metadata_new_from_mapped_file), (g_metadata_free), + (g_metadata_set_module), (g_metadata_get_namespace): + * src/gmetadata.h: + * tests/Makefile.am: + * tests/invoke/Makefile.am: + * tests/invoke/invoke-namespace-find.sh: + * tests/invoke/invoke.c: (main): + + Add a namespace/shared library mapping. fixes #313268. + +2007-12-03 Johan Dahlin + + * src/gidlparser.c (parse_type_internal): Disable char/gchar and + guchar for now. + +2007-11-30 Jürg Billeter + + * configure.ac: + * src/Makefile.am: + * src/clexer.l: + * src/cparser.y: + * src/gen-introspect.c: (g_idl_node_cmp), (g_igenerator_new), + (g_igenerator_write_inline), (g_igenerator_write), + (g_igenerator_write_indent), (g_igenerator_write_unindent), + (field_generate), (value_generate), (constant_generate), + (property_generate), (function_generate), (vfunc_generate), + (signal_generate), (interface_generate), (struct_generate), + (union_generate), (boxed_generate), (enum_generate), + (node_generate), (module_generate), (get_type_from_type_id), + (str_replace), (g_igenerator_process_properties), + (g_igenerator_process_signals), (g_igenerator_process_types), + (get_type_from_ctype), (g_igenerator_process_function_symbol), + (g_igenerator_process_unregistered_struct_typedef), + (g_igenerator_process_struct_typedef), + (g_igenerator_process_union_typedef), + (g_igenerator_process_enum_typedef), + (g_igenerator_process_function_typedef), + (g_igenerator_process_constant), (g_igenerator_process_symbols), + (g_igenerator_add_symbol), (g_igenerator_is_typedef), + (g_igenerator_generate), (main), (csymbol_new), + (csymbol_get_const_boolean), (ctype_new), (ctype_copy), + (cbasic_type_new), (ctypedef_new), (cstruct_new), (cunion_new), + (cenum_new), (cpointer_new), (carray_new), (cfunction_new), + (eat_hspace), (eat_line), (read_identifier), + (g_igenerator_parse_macros): + * src/gen-introspect.h: + + Import gen-introspect to generate introspection information by + parsing C headers. + +2007-11-30 Jürg Billeter + + * src/gidlnode.c: (g_idl_node_new): support creating callback nodes + +2007-11-30 Jürg Billeter + + * src/gidlparser.c: (end_element_handler): Don't leave requires + state too early. + +2007-11-29 Johan Dahlin + + * src/gidlparser.c (parse_type_internal): Add char, + gchar and guchar to the builtin types. + +2007-11-26 Johan Dahlin + + * src/ginfo.c: (g_object_info_get_type_name), + (g_object_info_get_type_init): + * src/girepository.c: (g_irepository_is_registered): + * src/girepository.h: + + Add g_object_info_get_type_name, g_object_info_get_type_init and + g_irepository_is_registered. + +2006-08-14 Jürg Billeter + + * src/gidlparser.c: (end_element_handler): Don't leave + namespace and implements states too early. + Fixes #351264 + +2007-11-26 Johan Dahlin + + * src/gmetadata.c (validate_struct_blob): + pass blob_type to validate_function_blob instead of + hard-coding BLOB_TYPE_STRUCT. + + Patch by Torsten Schoenfeld, fixes #314190 + +2006-10-03 Torsten Schoenfeld + + * src/compiler.c, src/generate.c, src/gidlnode.c, + src/gidlparser.c, src/ginfo.c, src/girepository.c, + tests/invoke/invoke.c, test/invoke/testfns.c: Hush compiler + warnings about return values, signedness mismatches, unused + variables, and unhandles enum values in switch statements. + + * tests/invoke/Makefile.am: Don't install the invoke test program. + Add -I ../../src to the cflags used for the test functions files. + +2005-08-31 Torsten Schoenfeld + + * src/girepository.h: Export g_invoke_error_quark. + +2005-08-31 Torsten Schoenfeld + + * src/ginvoke.c: Remove the fallback implementation of + g_function_info_invoke since we now formally depend on libffi. + +2005-07-25 Matthias Clasen + + * src/Makefile, tests/Makefile, tests/invoke/Makefile: + Remove these files from cvs, as they are now generated. + + * src/gmetadata.c (validate_iface_type_blob): Don't + complain if blob->pointer is not set, since that + happens for enum and flag types. (#308935, Gustavo + Carneiro) + + * Commit an autoconf-conversion patch by + Gustavo Carneiro (#308708) + +2005-05-24 Matthias Clasen + + * src/compiler.c (main): Use it here to validate + the generated metadata. + + * src/gmetadata.[hc]: Add code to validate a + metadata blob. + + * metadata-format.txt: Updates + +2005-05-22 Matthias Clasen + + * tests/*: Add struct offsets to field and vfunc + elements. + + * src/generate.c (write_vfunc_info): Write offset + information for vfuncs. + + * src/gidlnode.c (g_idl_node_build_metadata): Write + the struct offsets into the metadata. + + * src/gidlparser.c: Parse the offset attributes of + field and vfunc elements. + + * src/gidlnode.h: Add offset members to field and + vfunc nodes. + +2005-05-21 Matthias Clasen + + * TODO: Updates. + + * gidl.dtd: Updates. + + * src/g-idl-offsets.pl: A perl script which reads a .gidl + file, creates, compiles and runs a C file, and folds the + resulting struct offsets back into the .gidl file. + +2005-05-20 Matthias Clasen + + * src/gidlparser.c (start_field): Make fields in objects + work. + + * src/gidlmodule.c: Include string.h + + * TODO: Updates. + : + + * metadata-format.txt: Cleanup basic types. + * src/*: Adapt to the changes. + * tests/*: Adapt to the changes. + * examples/gdk-pixbuf.gidl: Adapt to the changes. + + * src/gidlnode.c (g_idl_node_get_size): Report the correct + size for enum blobs. + (g_idl_node_get_full_size): Report the correct size for + function blobs. + + * src/gidlmodule.c (g_idl_module_build_metadata): Add some + error checking for blob sizes. + +2005-05-19 Matthias Clasen + + * src/gidlnode.c (g_idl_node_build_metadata): Correctly handle + interface types for which is_pointer is FALSE, e.g. enums. + + * src/gidlnode.c (g_idl_node_get_full_size) + * src/gidlparser.c (parse_type_internal): + * src/generate.c (write_type_info): Support unspecialized + lists, hashtables and errors. Also emit a '*' after these. + + * TODO: Updates + +2005-05-17 Matthias Clasen + + * TODO: Updates + + * metadata-format.txt: Cleanups by Maciej Katafiasz. + +2005-05-15 Matthias Clasen + + * src/*.c: Change the directory to be addressed by + 1-based indexes, and use an index of zero to mean + 'no object'. + +2005-05-15 Matthias Clasen + + * tests/roundtrips.sh (SIMPLE_TESTS): Add union.test. + + * tests/union.test: Add a union test. + + * src/generate.c: Handle unions. + + * src/girepository.h: + * src/ginfo.c: Add GIUnionInfo and functions to access it. + + * src/gidlnode.c: Handle GIdlNodeUnion nodes. + + * src/gidlparser.c (start_union): Parse elements. + + * src/gidlnode.h: Add a GIdlNodeUnion. + + * gidl.dtd: Add a element. + + * src/gmetadata.c (g_metadata_check_sanity): Check + union_blob_size. + + * src/gmetadata.h: Add union_blob_size to Header, + add a UnionBlob. + + * metadata-format.txt: Add a UnionBlob. + +2005-05-13 Matthias Clasen + + * tests/*: Update testcases. + + * src/generate.c (write_callable_info): Don't forget to + write transfer and null-ok attributes for return types + and parameters. + + * src/girepository.h: + * src/ginfo.c (g_callable_info_may_return_null): + New function to find out if a function may return NULL. + + * src/compiler.c (format_output): Make the generated + C code compile. + + * README: Point to a recent libffi snapshot. + + * tests/invoke/*: Some invoke tests. + + * src/Makefile: Add ginvoke.c and the necessary + libffi information. + + * src/girepository.h (g_function_info_invoke): Add + a GError argument. + + * src/ginvoke.c (g_function_info_invoke): Initial + implementation of invoke functionality based on libffi. + + * src/gidlnode.c (g_idl_node_build_metadata): Pass the + strings and types hash tables in the right order when + recursing. + (find_entry_node): Free the name parts. + +2005-05-12 Johan Dahlin + + * src/generate.c: Generate consistent end tags. + + * tests/*: Update + +2005-05-12 Matthias Clasen + + * TODO: Updates + + * src/gidlparser.c (start_function): Actually add + methods to objects. (Steven Walter) + + * src/girepository.h: + * src/ginfo.c: Rename Transfer and Direction to + GITransfer and GIDirection. (Torsten Schoenfeld) + + * tests/*: Make tests work with the changes in name + handling. + + * src/gidlnode.c (find_entry_node): Parse qualified + names and generate xref nodes for them if needed. Don't + require all modules to be loaded any more. + + * src/gidlmodule.c (g_idl_module_build_metadata): Choke + on '.' in names. + + * src/ginfo.c (g_object_info_get_parent): Return NULL + if blob->parent is 0. Still need to make sure index + 0 is not used. + + * src/generate.c: Generate qualified names when + referring to non-local types. Emit transfer attribute + for return types. + + * src/compiler.c (format_output): Put the function + attributes where gcc accepts them. + +2005-05-11 Matthias Clasen + + * src/compiler.c (main): Add a --verbose cmdline option + and only log messages if it is specified. + + * src/gidlnode.h: + * src/gidlnode.c (init_stats, dump_stats): Collect some + statistics on string and type sharing. + + * src/gidlmodule.c (g_idl_module_build_metadata): Use + g_message() instead of fprintf(). + + * src/gidlnode.c (g_idl_node_free): Make this more robust. + (g_idl_node_get_size): Implement for structs. + (g_idl_node_get_full_size): Handle parent being NULL. + (serialize_type): Handle lookup failures more gracefully. + +2005-05-10 Matthias Clasen + + * src/gidlnode.c (g_idl_node_get_full_size): Correct the + size calculation for 2-parameter types and for objects. + + * src/compiler.c: Add a cmdline option for debug output + and install a log handler to implement it. + * src/gidlnode.c: Add some debug spew. + + * TODO: Updates + + * src/gidlmodule.c (g_idl_module_build_metadata): Don't + forget to count the module name when calculating the + required size for the metadata. + + * src/gidlnode.c: + * src/gidlparser.c: Fix compiler warnings. + +2005-05-09 Matthias Clasen + + * src/compiler.c (main): Free the option context. + + * gidl.dtd: Clean up handling of names. All elements + have a "name", only the elements corresponding to + actual callable functions (function, method, constructor), + have an additional "symbol" attribute holding the + dlsym()-able function name. + + * src/generate.c: Adapt to generate xml matching the + new dtd. + + * src/gidlparser.c: + * src/gidlnode.c: Adapt to parse the new dtd. + + * tests/*.test: Adjust to the new dtd. + + * metadata-format.txt: + * src/gmetadata.h: Remove the short_name field + from the ValueBlob. + * src/gmetadata.c: Shrink size of ValueBlob to 12. + * src/girepository.h: + * src/ginfo.c (g_value_info_get_short_name): Removed + +2005-05-09 Matthias Clasen + + * gidl.dtd: Allow constructors for boxed types, + patch by Jonathan Blandford. + + +2005-05-09 Matthias Clasen + + * --- Initial import --- diff --git a/Makefile.am b/Makefile.am index f663fca..054ea14 100644 --- a/Makefile.am +++ b/Makefile.am @@ -29,6 +29,9 @@ man_MANS = \ pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = gobject-introspection-1.0.pc +m4dir = $(datadir)/aclocal +m4_DATA = m4/introspection.m4 + EXTRA_DIST = \ CONTRIBUTORS \ $(pkgconfig_DATA) \ @@ -37,13 +40,11 @@ EXTRA_DIST = \ misc/pyflakes.py release-tag: - @TRUNK=`svn info --xml|egrep ^""|cut -d\> -f2|cut -d\< -f1`; \ - ROOT=`echo $$TRUNK|cut -d/ -f-5`; \ - SVNVERSION=`echo $(VERSION)|sed s/\\\./_/g`;\ + @TAG=`echo $(VERSION)|sed s/\\\./_/g`;\ echo "* Tagging $(VERSION)"; \ - svn cp -m "Tag $(VERSION)" \ - $$TRUNK \ - $$ROOT/tags/GOBJECT_INTROSPECTION_$$SVNVERSION + git tag -m "Tag $$VERSION" -a \ + GOBJECT_INTROSPECTION_$$TAG && \ + git push --tags ssh://git.gnome.org/git/gobject-introspection upload-release: $(distdir).tar.gz scp $(distdir).tar.gz gnome.org: diff --git a/configure.ac b/configure.ac index 6f255e1..4182a9d 100644 --- a/configure.ac +++ b/configure.ac @@ -161,6 +161,9 @@ GIREPO_CFLAGS="$GIREPO_CFLAGS $FFI_CFLAGS" GIREPO_CFLAGS="$GIREPO_CFLAGS $GCOV_CFLAGS" +# gtk-doc +GTK_DOC_CHECK([1.12]) + # Checks for header files. AC_HEADER_STDC AC_CHECK_HEADERS([fcntl.h stdlib.h string.h]) @@ -201,5 +204,7 @@ tests/offsets/Makefile tests/scanner/Makefile tests/repository/Makefile tests/everything/Makefile +docs/Makefile +docs/reference/Makefile gobject-introspection-1.0.pc]) AC_OUTPUT diff --git a/docs/Makefile.am b/docs/Makefile.am new file mode 100644 index 0000000..f3ddc22 --- /dev/null +++ b/docs/Makefile.am @@ -0,0 +1 @@ +SUBDIRS = reference diff --git a/docs/reference/Makefile.am b/docs/reference/Makefile.am new file mode 100644 index 0000000..60430aa --- /dev/null +++ b/docs/reference/Makefile.am @@ -0,0 +1,44 @@ +AUTOMAKE_OPTIONS = 1.6 + +# The name of the module. +DOC_MODULE=gi + +# The top-level SGML file. +DOC_MAIN_SGML_FILE=gi-docs.sgml + +# The directory containing the source code. Relative to $(srcdir) +DOC_SOURCE_DIR=../../girepository + +# Extra options to supply to gtkdoc-scan +SCAN_OPTIONS= + +# Extra options to supply to gtkdoc-mkdb +MKDB_OPTIONS=--sgml-mode --output-format=xml --namespace=g + +# Used for dependencies +HFILE_GLOB=$(top_srcdir)/girepository/*.h +CFILE_GLOB=$(top_srcdir)/girepository/*.c + +# Headers to ignore +IGNORE_HFILES= + +INCLUDES=$(GIREPO_CFLAGS) -I$(top_srcdir) +GTKDOC_LIBS = $(GIREPO_LIBS) $(top_builddir)/girepository/libgirepository-1.0.la $(top_builddir)/girepository/libgirepository-parser.la + +# Extra options to supply to gtkdoc-fixref +FIXXREF_OPTIONS= + +# include common portion ... +include $(top_srcdir)/gtk-doc.make + +# Other files to distribute +EXTRA_DIST += version.xml.in + +######################################################################## + +dist-hook-local: $(BUILT_EXTRA_DIST) + files='$(BUILT_EXTRA_DIST)'; \ + for f in $$files; do \ + if test -f $$f; then d=.; else d=$(srcdir); fi; \ + cp $$d/$$f $(distdir) || exit 1; done + diff --git a/docs/reference/gi-decl-list.txt b/docs/reference/gi-decl-list.txt new file mode 100644 index 0000000..952f494 --- /dev/null +++ b/docs/reference/gi-decl-list.txt @@ -0,0 +1,279 @@ +
+girepository +G_TYPE_IREPOSITORY +G_IREPOSITORY +GIRepositoryPrivate +GIBaseInfo +GICallableInfo +GIFunctionInfo +GICallbackInfo +GIRegisteredTypeInfo +GIStructInfo +GIUnionInfo +GIEnumInfo +GIObjectInfo +GIInterfaceInfo +GIConstantInfo +GIValueInfo +GISignalInfo +GIVFuncInfo +GIPropertyInfo +GIFieldInfo +GIArgInfo +GITypeInfo +GIErrorDomainInfo +GIUnresolvedInfo +GTypelib +GIRepository +GIRepository +GIRepositoryLoadFlags +g_irepository_get_default +g_irepository_prepend_search_path +g_irepository_get_search_path +g_irepository_load_typelib +g_irepository_is_registered +g_irepository_find_by_name +g_irepository_require +g_irepository_get_dependencies +g_irepository_get_loaded_namespaces +g_irepository_find_by_gtype +g_irepository_get_n_infos +g_irepository_get_info +g_irepository_get_typelib_path +g_irepository_get_shared_library +g_irepository_get_version +g_irepository_get_option_group +g_irepository_dump +g_typelib_new_from_memory +g_typelib_new_from_const_memory +g_typelib_new_from_mapped_file +g_typelib_free +g_typelib_symbol +g_typelib_get_namespace +GIRepositoryError +G_IREPOSITORY_ERROR +g_irepository_error_quark +gi_cclosure_marshal_generic +GIInfoType +g_base_info_ref +g_base_info_unref +g_base_info_get_type +g_base_info_get_name +g_base_info_get_namespace +g_base_info_is_deprecated +g_base_info_get_annotation +g_base_info_get_container +g_base_info_get_typelib +g_info_new +GIFunctionInfoFlags +g_function_info_get_symbol +g_function_info_get_flags +g_function_info_get_property +g_function_info_get_vfunc +G_INVOKE_ERROR +g_invoke_error_quark +GInvokeError +g_function_info_invoke +GITransfer +g_callable_info_get_return_type +g_callable_info_get_caller_owns +g_callable_info_may_return_null +g_callable_info_get_n_args +g_callable_info_get_arg +GIDirection +GIScopeType +g_arg_info_get_direction +g_arg_info_is_dipper +g_arg_info_is_return_value +g_arg_info_is_optional +g_arg_info_may_be_null +g_arg_info_get_ownership_transfer +g_arg_info_get_scope +g_arg_info_get_closure +g_arg_info_get_destroy +g_arg_info_get_type +GITypeTag +g_type_tag_to_string +g_type_info_is_pointer +g_type_info_get_tag +g_type_info_get_param_type +g_type_info_get_interface +g_type_info_get_array_length +g_type_info_get_array_fixed_size +g_type_info_is_zero_terminated +g_type_info_get_n_error_domains +g_type_info_get_error_domain +g_error_domain_info_get_quark +g_error_domain_info_get_codes +g_value_info_get_value +GIFieldInfoFlags +g_field_info_get_flags +g_field_info_get_size +g_field_info_get_offset +g_field_info_get_type +g_field_info_get_field +g_field_info_set_field +g_union_info_get_n_fields +g_union_info_get_field +g_union_info_get_n_methods +g_union_info_get_method +g_union_info_is_discriminated +g_union_info_get_discriminator_offset +g_union_info_get_discriminator_type +g_union_info_get_discriminator +g_union_info_find_method +g_union_info_get_size +g_union_info_get_alignment +g_struct_info_get_n_fields +g_struct_info_get_field +g_struct_info_get_n_methods +g_struct_info_get_method +g_struct_info_find_method +g_struct_info_get_size +g_struct_info_get_alignment +g_struct_info_is_class_struct +g_registered_type_info_get_type_name +g_registered_type_info_get_type_init +g_registered_type_info_get_g_type +g_enum_info_get_n_values +g_enum_info_get_value +g_enum_info_get_storage_type +g_object_info_get_type_name +g_object_info_get_type_init +g_object_info_get_abstract +g_object_info_get_parent +g_object_info_get_n_interfaces +g_object_info_get_interface +g_object_info_get_n_fields +g_object_info_get_field +g_object_info_get_n_properties +g_object_info_get_property +g_object_info_get_n_methods +g_object_info_get_method +g_object_info_find_method +g_object_info_get_n_signals +g_object_info_get_signal +g_object_info_get_n_vfuncs +g_object_info_get_vfunc +g_object_info_get_n_constants +g_object_info_get_constant +g_object_info_get_class_struct +g_interface_info_get_n_prerequisites +g_interface_info_get_prerequisite +g_interface_info_get_n_properties +g_interface_info_get_property +g_interface_info_get_n_methods +g_interface_info_get_method +g_interface_info_find_method +g_interface_info_get_n_signals +g_interface_info_get_signal +g_interface_info_get_n_vfuncs +g_interface_info_get_vfunc +g_interface_info_get_n_constants +g_interface_info_get_constant +g_property_info_get_flags +g_property_info_get_type +g_signal_info_get_flags +g_signal_info_get_class_closure +g_signal_info_true_stops_emit +GIVFuncInfoFlags +g_vfunc_info_get_flags +g_vfunc_info_get_offset +g_vfunc_info_get_signal +g_constant_info_get_type +g_constant_info_get_value + +G_TYPE_TAG_IS_BASIC +g_irepository_get_type +
+ +
+gtypelib +G_IR_MAGIC +GTypelib +g_typelib_get_dir_entry +g_typelib_check_sanity +g_typelib_get_string +GTypelibError +G_TYPELIB_ERROR +g_typelib_error_quark +g_typelib_validate + +BLOB_IS_REGISTERED_TYPE +
+ +
+ginfo +g_type_info_new +g_info_new_full +
+ +
+girffi +GIFFIClosureCallback +g_ir_ffi_get_ffi_type +g_callable_info_get_ffi_arg_types +g_callable_info_get_ffi_return_type +g_callable_info_prepare_closure +g_callable_info_free_closure +
+ +
+girmodule +GIrModule +g_ir_module_new +g_ir_module_free +g_ir_module_add_include_module +g_ir_module_build_typelib +
+ +
+girnode +GIrNodeFunction +GIrNodeParam +GIrNodeType +GIrNodeSignal +GIrNodeProperty +GIrNodeVFunc +GIrNodeField +GIrNodeValue +GIrNodeEnum +GIrNodeBoxed +GIrNodeStruct +GIrNodeConstant +GIrNodeErrorDomain +GIrNodeXRef +GIrNodeUnion +GIrNodeTypeId +GIrNode +GIrNode +g_ir_node_new +g_ir_node_free +g_ir_node_get_size +g_ir_node_get_full_size +g_ir_node_build_typelib +g_ir_node_cmp +g_ir_node_can_have_member +g_ir_node_add_member +write_string +g_ir_node_param_direction_string +g_ir_node_type_to_string +g_ir_find_node +g_ir_node_compute_offsets +
+ +
+girparser +GIrParser +g_ir_parser_new +g_ir_parser_free +g_ir_parser_set_includes +g_ir_parser_parse_string +g_ir_parser_parse_file +
+ +
+girwriter +g_idl_writer_save_file +
+ diff --git a/docs/reference/gi-decl.txt b/docs/reference/gi-decl.txt new file mode 100644 index 0000000..e35b6a5 --- /dev/null +++ b/docs/reference/gi-decl.txt @@ -0,0 +1,1596 @@ + +g_type_info_new +GITypeInfo * +GIBaseInfo *container,GTypelib *typelib,guint32 offset + + +g_info_new_full +GIBaseInfo * +GIInfoType type,GIRepository *repository,GIBaseInfo *container,GTypelib *typelib,guint32 offset + + +G_TYPE_IREPOSITORY +#define G_TYPE_IREPOSITORY (g_irepository_get_type ()) + + +G_IREPOSITORY +#define G_IREPOSITORY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), G_TYPE_IREPOSITORY, GIRepository)) + + +GIRepository + + +GIRepositoryClass + + +GIRepositoryPrivate + + +GIBaseInfo + + +GICallableInfo + + +GIFunctionInfo + + +GICallbackInfo + + +GIRegisteredTypeInfo + + +GIStructInfo + + +GIUnionInfo + + +GIEnumInfo + + +GIObjectInfo + + +GIInterfaceInfo + + +GIConstantInfo + + +GIValueInfo + + +GISignalInfo + + +GIVFuncInfo + + +GIPropertyInfo + + +GIFieldInfo + + +GIArgInfo + + +GITypeInfo + + +GIErrorDomainInfo + + +GIUnresolvedInfo + + +GTypelib + + +GIRepository +struct _GIRepository +{ + GObject parent; + + /*< private >*/ + GIRepositoryPrivate *priv; +}; + + +GIRepositoryClass +struct _GIRepositoryClass +{ + GObjectClass parent; +}; + + +GIRepositoryLoadFlags +typedef enum +{ + G_IREPOSITORY_LOAD_FLAG_LAZY = 1 << 0 +} GIRepositoryLoadFlags; + + +g_irepository_get_type +GType +void + + +g_irepository_get_default +GIRepository * +void + + +g_irepository_prepend_search_path +void +const char *directory + + +g_irepository_get_search_path +GSList * +void + + +g_irepository_load_typelib +const char * +GIRepository *repository,GTypelib *typelib,GIRepositoryLoadFlags flags,GError **error + + +g_irepository_is_registered +gboolean +GIRepository *repository,const gchar *namespace_,const gchar *version + + +g_irepository_find_by_name +GIBaseInfo * +GIRepository *repository,const gchar *namespace_,const gchar *name + + +g_irepository_require +GTypelib * +GIRepository *repository,const gchar *namespace_,const gchar *version,GIRepositoryLoadFlags flags,GError **error + + +g_irepository_get_dependencies +gchar ** +GIRepository *repository,const gchar *namespace_ + + +g_irepository_get_loaded_namespaces +gchar ** +GIRepository *repository + + +g_irepository_find_by_gtype +GIBaseInfo * +GIRepository *repository,GType gtype + + +g_irepository_get_n_infos +gint +GIRepository *repository,const gchar *namespace_ + + +g_irepository_get_info +GIBaseInfo * +GIRepository *repository,const gchar *namespace_,gint index + + +g_irepository_get_typelib_path +const gchar * +GIRepository *repository,const gchar *namespace_ + + +g_irepository_get_shared_library +const gchar * +GIRepository *repository,const gchar *namespace_ + + +g_irepository_get_version +const gchar * +GIRepository *repository,const gchar *namespace_ + + +g_irepository_get_option_group +GOptionGroup * +void + + +g_irepository_dump +gboolean +const char *arg, GError **error + + +g_typelib_new_from_memory +GTypelib * +guchar *memory,gsize len + + +g_typelib_new_from_const_memory +GTypelib * +const guchar *memory,gsize len + + +g_typelib_new_from_mapped_file +GTypelib * +GMappedFile *mfile + + +g_typelib_free +void +GTypelib *typelib + + +g_typelib_symbol +gboolean +GTypelib *typelib,const gchar *symbol_name,gpointer *symbol + + +g_typelib_get_namespace +const gchar * +GTypelib *typelib + + +GIRepositoryError +typedef enum +{ + G_IREPOSITORY_ERROR_TYPELIB_NOT_FOUND, + G_IREPOSITORY_ERROR_NAMESPACE_MISMATCH, + G_IREPOSITORY_ERROR_NAMESPACE_VERSION_CONFLICT, + G_IREPOSITORY_ERROR_LIBRARY_NOT_FOUND +} GIRepositoryError; + + +G_IREPOSITORY_ERROR +#define G_IREPOSITORY_ERROR (g_irepository_error_quark ()) + + +g_irepository_error_quark +GQuark +void + + +gi_cclosure_marshal_generic +void +GClosure *closure,GValue *return_gvalue,guint n_param_values,const GValue *param_values,gpointer invocation_hint,gpointer marshal_data + + +GIInfoType +typedef enum +{ + GI_INFO_TYPE_INVALID, + GI_INFO_TYPE_FUNCTION, + GI_INFO_TYPE_CALLBACK, + GI_INFO_TYPE_STRUCT, + GI_INFO_TYPE_BOXED, + GI_INFO_TYPE_ENUM, + GI_INFO_TYPE_FLAGS, + GI_INFO_TYPE_OBJECT, + GI_INFO_TYPE_INTERFACE, + GI_INFO_TYPE_CONSTANT, + GI_INFO_TYPE_ERROR_DOMAIN, + GI_INFO_TYPE_UNION, + GI_INFO_TYPE_VALUE, + GI_INFO_TYPE_SIGNAL, + GI_INFO_TYPE_VFUNC, + GI_INFO_TYPE_PROPERTY, + GI_INFO_TYPE_FIELD, + GI_INFO_TYPE_ARG, + GI_INFO_TYPE_TYPE, + GI_INFO_TYPE_UNRESOLVED +} GIInfoType; + + +g_base_info_ref +GIBaseInfo * +GIBaseInfo *info + + +g_base_info_unref +void +GIBaseInfo *info + + +g_base_info_get_type +GIInfoType +GIBaseInfo *info + + +g_base_info_get_name +const gchar * +GIBaseInfo *info + + +g_base_info_get_namespace +const gchar * +GIBaseInfo *info + + +g_base_info_is_deprecated +gboolean +GIBaseInfo *info + + +g_base_info_get_annotation +const gchar * +GIBaseInfo *info,const gchar *name + + +g_base_info_get_container +GIBaseInfo * +GIBaseInfo *info + + +g_base_info_get_typelib +GTypelib * +GIBaseInfo *info + + +g_info_new +GIBaseInfo * +GIInfoType type,GIBaseInfo *container,GTypelib *typelib,guint32 offset + + +GIFunctionInfoFlags +typedef enum +{ + GI_FUNCTION_IS_METHOD = 1 << 0, + GI_FUNCTION_IS_CONSTRUCTOR = 1 << 1, + GI_FUNCTION_IS_GETTER = 1 << 2, + GI_FUNCTION_IS_SETTER = 1 << 3, + GI_FUNCTION_WRAPS_VFUNC = 1 << 4, + GI_FUNCTION_THROWS = 1 << 5 +} GIFunctionInfoFlags; + + +g_function_info_get_symbol +const gchar * +GIFunctionInfo *info + + +g_function_info_get_flags +GIFunctionInfoFlags +GIFunctionInfo *info + + +g_function_info_get_property +GIPropertyInfo * +GIFunctionInfo *info + + +g_function_info_get_vfunc +GIVFuncInfo * +GIFunctionInfo *info + + +G_INVOKE_ERROR +#define G_INVOKE_ERROR (g_invoke_error_quark ()) + + +g_invoke_error_quark +GQuark +void + + +GInvokeError +typedef enum +{ + G_INVOKE_ERROR_FAILED, + G_INVOKE_ERROR_SYMBOL_NOT_FOUND, + G_INVOKE_ERROR_ARGUMENT_MISMATCH +} GInvokeError; + + +g_function_info_invoke +gboolean +GIFunctionInfo *info,const GArgument *in_args,int n_in_args,const GArgument *out_args,int n_out_args,GArgument *return_value,GError **error + + +GITransfer +typedef enum { + GI_TRANSFER_NOTHING, + GI_TRANSFER_CONTAINER, + GI_TRANSFER_EVERYTHING +} GITransfer; + + +g_callable_info_get_return_type +GITypeInfo * +GICallableInfo *info + + +g_callable_info_get_caller_owns +GITransfer +GICallableInfo *info + + +g_callable_info_may_return_null +gboolean +GICallableInfo *info + + +g_callable_info_get_n_args +gint +GICallableInfo *info + + +g_callable_info_get_arg +GIArgInfo * +GICallableInfo *info,gint n + + +GIDirection +typedef enum { + GI_DIRECTION_IN, + GI_DIRECTION_OUT, + GI_DIRECTION_INOUT +} GIDirection; + + +GIScopeType +typedef enum { + GI_SCOPE_TYPE_INVALID, + GI_SCOPE_TYPE_CALL, + GI_SCOPE_TYPE_OBJECT, + GI_SCOPE_TYPE_ASYNC, + GI_SCOPE_TYPE_NOTIFIED +} GIScopeType; + + +g_arg_info_get_direction +GIDirection +GIArgInfo *info + + +g_arg_info_is_dipper +gboolean +GIArgInfo *info + + +g_arg_info_is_return_value +gboolean +GIArgInfo *info + + +g_arg_info_is_optional +gboolean +GIArgInfo *info + + +g_arg_info_may_be_null +gboolean +GIArgInfo *info + + +g_arg_info_get_ownership_transfer +GITransfer +GIArgInfo *info + + +g_arg_info_get_scope +GIScopeType +GIArgInfo *info + + +g_arg_info_get_closure +gint +GIArgInfo *info + + +g_arg_info_get_destroy +gint +GIArgInfo *info + + +g_arg_info_get_type +GITypeInfo * +GIArgInfo *info + + +GITypeTag +typedef enum { + /* Basic types */ + GI_TYPE_TAG_VOID = 0, + GI_TYPE_TAG_BOOLEAN = 1, + GI_TYPE_TAG_INT8 = 2, + GI_TYPE_TAG_UINT8 = 3, + GI_TYPE_TAG_INT16 = 4, + GI_TYPE_TAG_UINT16 = 5, + GI_TYPE_TAG_INT32 = 6, + GI_TYPE_TAG_UINT32 = 7, + GI_TYPE_TAG_INT64 = 8, + GI_TYPE_TAG_UINT64 = 9, + GI_TYPE_TAG_INT = 10, + GI_TYPE_TAG_UINT = 11, + GI_TYPE_TAG_LONG = 12, + GI_TYPE_TAG_ULONG = 13, + GI_TYPE_TAG_SSIZE = 14, + GI_TYPE_TAG_SIZE = 15, + GI_TYPE_TAG_FLOAT = 16, + GI_TYPE_TAG_DOUBLE = 17, + GI_TYPE_TAG_TIME_T = 18, + GI_TYPE_TAG_GTYPE = 19, + GI_TYPE_TAG_UTF8 = 20, + GI_TYPE_TAG_FILENAME = 21, + /* Non-basic types */ + GI_TYPE_TAG_ARRAY = 22, + GI_TYPE_TAG_INTERFACE = 23, + GI_TYPE_TAG_GLIST = 24, + GI_TYPE_TAG_GSLIST = 25, + GI_TYPE_TAG_GHASH = 26, + GI_TYPE_TAG_ERROR = 27 + /* Note - there is only room currently for 32 tags. + * See docs/typelib-format.txt SimpleTypeBlob definition */ +} GITypeTag; + + +G_TYPE_TAG_IS_BASIC +#define G_TYPE_TAG_IS_BASIC(tag) (tag < GI_TYPE_TAG_ARRAY) + + +g_type_tag_to_string +const gchar* +GITypeTag type + + +g_type_info_is_pointer +gboolean +GITypeInfo *info + + +g_type_info_get_tag +GITypeTag +GITypeInfo *info + + +g_type_info_get_param_type +GITypeInfo * +GITypeInfo *info,gint n + + +g_type_info_get_interface +GIBaseInfo * +GITypeInfo *info + + +g_type_info_get_array_length +gint +GITypeInfo *info + + +g_type_info_get_array_fixed_size +gint +GITypeInfo *info + + +g_type_info_is_zero_terminated +gboolean +GITypeInfo *info + + +g_type_info_get_n_error_domains +gint +GITypeInfo *info + + +g_type_info_get_error_domain +GIErrorDomainInfo * +GITypeInfo *info,gint n + + +g_error_domain_info_get_quark +const gchar * +GIErrorDomainInfo *info + + +g_error_domain_info_get_codes +GIInterfaceInfo * +GIErrorDomainInfo *info + + +g_value_info_get_value +glong +GIValueInfo *info + + +GIFieldInfoFlags +typedef enum +{ + GI_FIELD_IS_READABLE = 1 << 0, + GI_FIELD_IS_WRITABLE = 1 << 1 +} GIFieldInfoFlags; + + +g_field_info_get_flags +GIFieldInfoFlags +GIFieldInfo *info + + +g_field_info_get_size +gint +GIFieldInfo *info + + +g_field_info_get_offset +gint +GIFieldInfo *info + + +g_field_info_get_type +GITypeInfo * +GIFieldInfo *info + + +g_field_info_get_field +gboolean +GIFieldInfo *field_info,gpointer mem,GArgument *value + + +g_field_info_set_field +gboolean +GIFieldInfo *field_info,gpointer mem,const GArgument *value + + +g_union_info_get_n_fields +gint +GIUnionInfo *info + + +g_union_info_get_field +GIFieldInfo * +GIUnionInfo *info,gint n + + +g_union_info_get_n_methods +gint +GIUnionInfo *info + + +g_union_info_get_method +GIFunctionInfo * +GIUnionInfo *info,gint n + + +g_union_info_is_discriminated +gboolean +GIUnionInfo *info + + +g_union_info_get_discriminator_offset +gint +GIUnionInfo *info + + +g_union_info_get_discriminator_type +GITypeInfo * +GIUnionInfo *info + + +g_union_info_get_discriminator +GIConstantInfo * +GIUnionInfo *info,gint n + + +g_union_info_find_method +GIFunctionInfo * +GIUnionInfo *info,const gchar *name + + +g_union_info_get_size +gsize +GIUnionInfo *info + + +g_union_info_get_alignment +gsize +GIUnionInfo *info + + +g_struct_info_get_n_fields +gint +GIStructInfo *info + + +g_struct_info_get_field +GIFieldInfo * +GIStructInfo *info,gint n + + +g_struct_info_get_n_methods +gint +GIStructInfo *info + + +g_struct_info_get_method +GIFunctionInfo * +GIStructInfo *info,gint n + + +g_struct_info_find_method +GIFunctionInfo * +GIStructInfo *info,const gchar *name + + +g_struct_info_get_size +gsize +GIStructInfo *info + + +g_struct_info_get_alignment +gsize +GIStructInfo *info + + +g_struct_info_is_class_struct +gboolean +GIStructInfo *info + + +g_registered_type_info_get_type_name +const gchar * +GIRegisteredTypeInfo *info + + +g_registered_type_info_get_type_init +const gchar * +GIRegisteredTypeInfo *info + + +g_registered_type_info_get_g_type +GType +GIRegisteredTypeInfo *info + + +g_enum_info_get_n_values +gint +GIEnumInfo *info + + +g_enum_info_get_value +GIValueInfo * +GIEnumInfo *info,gint n + + +g_enum_info_get_storage_type +GITypeTag +GIEnumInfo *info + + +g_object_info_get_type_name +const gchar * +GIObjectInfo *info + + +g_object_info_get_type_init +const gchar * +GIObjectInfo *info + + +g_object_info_get_abstract +gboolean +GIObjectInfo *info + + +g_object_info_get_parent +GIObjectInfo * +GIObjectInfo *info + + +g_object_info_get_n_interfaces +gint +GIObjectInfo *info + + +g_object_info_get_interface +GIInterfaceInfo * +GIObjectInfo *info,gint n + + +g_object_info_get_n_fields +gint +GIObjectInfo *info + + +g_object_info_get_field +GIFieldInfo * +GIObjectInfo *info,gint n + + +g_object_info_get_n_properties +gint +GIObjectInfo *info + + +g_object_info_get_property +GIPropertyInfo * +GIObjectInfo *info,gint n + + +g_object_info_get_n_methods +gint +GIObjectInfo *info + + +g_object_info_get_method +GIFunctionInfo * +GIObjectInfo *info,gint n + + +g_object_info_find_method +GIFunctionInfo * +GIObjectInfo *info,const gchar *name + + +g_object_info_get_n_signals +gint +GIObjectInfo *info + + +g_object_info_get_signal +GISignalInfo * +GIObjectInfo *info,gint n + + +g_object_info_get_n_vfuncs +gint +GIObjectInfo *info + + +g_object_info_get_vfunc +GIVFuncInfo * +GIObjectInfo *info,gint n + + +g_object_info_get_n_constants +gint +GIObjectInfo *info + + +g_object_info_get_constant +GIConstantInfo * +GIObjectInfo *info,gint n + + +g_object_info_get_class_struct +GIStructInfo * +GIObjectInfo *info + + +g_interface_info_get_n_prerequisites +gint +GIInterfaceInfo *info + + +g_interface_info_get_prerequisite +GIBaseInfo * +GIInterfaceInfo *info,gint n + + +g_interface_info_get_n_properties +gint +GIInterfaceInfo *info + + +g_interface_info_get_property +GIPropertyInfo * +GIInterfaceInfo *info,gint n + + +g_interface_info_get_n_methods +gint +GIInterfaceInfo *info + + +g_interface_info_get_method +GIFunctionInfo * +GIInterfaceInfo *info,gint n + + +g_interface_info_find_method +GIFunctionInfo * +GIInterfaceInfo *info,const gchar *name + + +g_interface_info_get_n_signals +gint +GIInterfaceInfo *info + + +g_interface_info_get_signal +GISignalInfo * +GIInterfaceInfo *info,gint n + + +g_interface_info_get_n_vfuncs +gint +GIInterfaceInfo *info + + +g_interface_info_get_vfunc +GIVFuncInfo * +GIInterfaceInfo *info,gint n + + +g_interface_info_get_n_constants +gint +GIInterfaceInfo *info + + +g_interface_info_get_constant +GIConstantInfo * +GIInterfaceInfo *info,gint n + + +g_property_info_get_flags +GParamFlags +GIPropertyInfo *info + + +g_property_info_get_type +GITypeInfo * +GIPropertyInfo *info + + +g_signal_info_get_flags +GSignalFlags +GISignalInfo *info + + +g_signal_info_get_class_closure +GIVFuncInfo * +GISignalInfo *info + + +g_signal_info_true_stops_emit +gboolean +GISignalInfo *info + + +GIVFuncInfoFlags +typedef enum +{ + GI_VFUNC_MUST_CHAIN_UP = 1 << 0, + GI_VFUNC_MUST_OVERRIDE = 1 << 1, + GI_VFUNC_MUST_NOT_OVERRIDE = 1 << 2 +} GIVFuncInfoFlags; + + +g_vfunc_info_get_flags +GIVFuncInfoFlags +GIVFuncInfo *info + + +g_vfunc_info_get_offset +gint +GIVFuncInfo *info + + +g_vfunc_info_get_signal +GISignalInfo * +GIVFuncInfo *info + + +g_constant_info_get_type +GITypeInfo * +GIConstantInfo *info + + +g_constant_info_get_value +gint +GIConstantInfo *info,GArgument *value + + +GIFFIClosureCallback +void +ffi_cif *, + void *, + void **, + void * + + +g_ir_ffi_get_ffi_type +ffi_type * +GITypeTag tag + + +g_callable_info_get_ffi_arg_types +ffi_type ** +GICallableInfo *callable_info + + +g_callable_info_get_ffi_return_type +ffi_type * +GICallableInfo *callable_info + + +g_callable_info_prepare_closure +ffi_closure * +GICallableInfo *callable_info,ffi_cif *cif,GIFFIClosureCallback callback,gpointer user_data + + +g_callable_info_free_closure +void +GICallableInfo *callable_info,ffi_closure *closure + + +GIrModule + + +GIrModule +struct _GIrModule +{ + gchar *name; + gchar *version; + gchar *shared_library; + GList *dependencies; + GList *entries; + + /* All modules that are included directly or indirectly */ + GList *include_modules; + + /* Aliases defined in the module or in included modules */ + GHashTable *aliases; + + /* Structures with the 'disguised' flag (typedef struct _X *X) + * in the module or in included modules */ + GHashTable *disguised_structures; +}; + + +g_ir_module_new +GIrModule * +const gchar *name,const gchar *nsversion,const gchar *module_filename + + +g_ir_module_free +void +GIrModule *module + + +g_ir_module_add_include_module +void +GIrModule *module,GIrModule *include_module + + +g_ir_module_build_typelib +GTypelib * +GIrModule *module,GList *modules + + +GIrNode + + +GIrNodeFunction + + +GIrNodeParam + + +GIrNodeType + + +GIrNodeInterface + + +GIrNodeSignal + + +GIrNodeProperty + + +GIrNodeVFunc + + +GIrNodeField + + +GIrNodeValue + + +GIrNodeEnum + + +GIrNodeBoxed + + +GIrNodeStruct + + +GIrNodeConstant + + +GIrNodeErrorDomain + + +GIrNodeXRef + + +GIrNodeUnion + + +GIrNodeTypeId +typedef enum +{ + G_IR_NODE_INVALID = 0, + G_IR_NODE_FUNCTION = 1, + G_IR_NODE_CALLBACK = 2, + G_IR_NODE_STRUCT = 3, + G_IR_NODE_BOXED = 4, + G_IR_NODE_ENUM = 5, + G_IR_NODE_FLAGS = 6, + G_IR_NODE_OBJECT = 7, + G_IR_NODE_INTERFACE = 8, + G_IR_NODE_CONSTANT = 9, + G_IR_NODE_ERROR_DOMAIN = 10, + G_IR_NODE_UNION = 11, + G_IR_NODE_PARAM = 12, + G_IR_NODE_TYPE = 13, + G_IR_NODE_PROPERTY = 14, + G_IR_NODE_SIGNAL = 15, + G_IR_NODE_VALUE = 16, + G_IR_NODE_VFUNC = 17, + G_IR_NODE_FIELD = 18, + G_IR_NODE_XREF = 19 +} GIrNodeTypeId; + + +GIrNode +struct _GIrNode +{ + GIrNodeTypeId type; + gchar *name; +}; + + +GIrNodeXRef +struct _GIrNodeXRef +{ + GIrNode node; + + gchar *namespace; +}; + + +GIrNodeFunction +struct _GIrNodeFunction +{ + GIrNode node; + + gboolean deprecated; + gboolean is_varargs; /* Not in typelib yet */ + + gboolean is_method; + gboolean is_setter; + gboolean is_getter; + gboolean is_constructor; + gboolean wraps_vfunc; + gboolean throws; + + gchar *symbol; + + GIrNodeParam *result; + GList *parameters; +}; + + +GIrNodeType +struct _GIrNodeType +{ + GIrNode node; + + gboolean is_pointer; + gboolean is_basic; + gboolean is_array; + gboolean is_glist; + gboolean is_gslist; + gboolean is_ghashtable; + gboolean is_interface; + gboolean is_error; + gint tag; + + gchar *unparsed; + + gboolean zero_terminated; + gboolean has_length; + gint length; + gboolean has_size; + gint size; + + GIrNodeType *parameter_type1; + GIrNodeType *parameter_type2; + + gchar *interface; + gchar **errors; +}; + + +GIrNodeParam +struct _GIrNodeParam +{ + GIrNode node; + + gboolean in; + gboolean out; + gboolean dipper; + gboolean optional; + gboolean retval; + gboolean allow_none; + gboolean transfer; + gboolean shallow_transfer; + GIScopeType scope; + + gint8 closure; + gint8 destroy; + + GIrNodeType *type; +}; + + +GIrNodeProperty +struct _GIrNodeProperty +{ + GIrNode node; + + gboolean deprecated; + + gchar *name; + gboolean readable; + gboolean writable; + gboolean construct; + gboolean construct_only; + + GIrNodeType *type; +}; + + +GIrNodeSignal +struct _GIrNodeSignal +{ + GIrNode node; + + gboolean deprecated; + + gboolean run_first; + gboolean run_last; + gboolean run_cleanup; + gboolean no_recurse; + gboolean detailed; + gboolean action; + gboolean no_hooks; + + gboolean has_class_closure; + gboolean true_stops_emit; + + gint class_closure; + + GList *parameters; + GIrNodeParam *result; +}; + + +GIrNodeVFunc +struct _GIrNodeVFunc +{ + GIrNode node; + + gboolean is_varargs; /* Not in typelib yet */ + gboolean must_chain_up; + gboolean must_be_implemented; + gboolean must_not_be_implemented; + gboolean is_class_closure; + + GList *parameters; + GIrNodeParam *result; + + gint offset; +}; + + +GIrNodeField +struct _GIrNodeField +{ + GIrNode node; + + gboolean readable; + gboolean writable; + gint bits; + gint offset; + + GIrNodeType *type; +}; + + +GIrNodeInterface +struct _GIrNodeInterface +{ + GIrNode node; + + gboolean abstract; + gboolean deprecated; + + gchar *gtype_name; + gchar *gtype_init; + + gchar *parent; + gchar *class_struct; /* Only applies to classes */ + + GList *interfaces; + GList *prerequisites; + + gint alignment; + gint size; + + GList *members; +}; + + +GIrNodeValue +struct _GIrNodeValue +{ + GIrNode node; + + gboolean deprecated; + + guint32 value; +}; + + +GIrNodeConstant +struct _GIrNodeConstant +{ + GIrNode node; + + gboolean deprecated; + + GIrNodeType *type; + + gchar *value; +}; + + +GIrNodeEnum +struct _GIrNodeEnum +{ + GIrNode node; + + gboolean deprecated; + gint storage_type; + + gchar *gtype_name; + gchar *gtype_init; + + GList *values; +}; + + +GIrNodeBoxed +struct _GIrNodeBoxed +{ + GIrNode node; + + gboolean deprecated; + + gchar *gtype_name; + gchar *gtype_init; + + gint alignment; + gint size; + + GList *members; +}; + + +GIrNodeStruct +struct _GIrNodeStruct +{ + GIrNode node; + + gboolean deprecated; + gboolean disguised; + gboolean is_gclass_struct; + + gchar *gtype_name; + gchar *gtype_init; + + gint alignment; + gint size; + + GList *members; +}; + + +GIrNodeUnion +struct _GIrNodeUnion +{ + GIrNode node; + + gboolean deprecated; + + GList *members; + GList *discriminators; + + gchar *gtype_name; + gchar *gtype_init; + + gint alignment; + gint size; + + gint discriminator_offset; + GIrNodeType *discriminator_type; +}; + + +GIrNodeErrorDomain +struct _GIrNodeErrorDomain +{ + GIrNode node; + + gboolean deprecated; + + gchar *name; + gchar *getquark; + gchar *codes; +}; + + +g_ir_node_new +GIrNode * +GIrNodeTypeId type + + +g_ir_node_free +void +GIrNode *node + + +g_ir_node_get_size +guint32 +GIrNode *node + + +g_ir_node_get_full_size +guint32 +GIrNode *node + + +g_ir_node_build_typelib +void +GIrNode *node,GIrModule *module,GList *modules,GHashTable *strings,GHashTable *types,guchar *data,guint32 *offset,guint32 *offset2 + + +g_ir_node_cmp +int +GIrNode *node,GIrNode *other + + +g_ir_node_can_have_member +gboolean +GIrNode *node + + +g_ir_node_add_member +void +GIrNode *node,GIrNodeFunction *member + + +write_string +guint32 +const gchar *str,GHashTable *strings,guchar *data,guint32 *offset + + +g_ir_node_param_direction_string +const gchar * +GIrNodeParam * node + + +g_ir_node_type_to_string +const gchar * +GIrNodeTypeId type + + +g_ir_find_node +gboolean +GIrModule *module,GList *modules,const char *name,GIrNode **node_out,GIrModule **module_out + + +g_ir_node_compute_offsets +void +GIrNode *node,GIrModule *module,GList *modules + + +GIrParser + + +g_ir_parser_new +GIrParser * +void + + +g_ir_parser_free +void +GIrParser *parser + + +g_ir_parser_set_includes +void +GIrParser *parser,const gchar *const *includes + + +g_ir_parser_parse_string +GList * +GIrParser *parser,const gchar *namespace,const gchar *buffer,gssize length,GError **error + + +g_ir_parser_parse_file +GList * +GIrParser *parser,const gchar *filename,GError **error + + +g_idl_writer_save_file +void +GIdlModule *module, const gchar *filename + + +G_IR_MAGIC +#define G_IR_MAGIC "GOBJ\nMETADATA\r\n\032" + + +BLOB_IS_REGISTERED_TYPE +#define BLOB_IS_REGISTERED_TYPE(blob) \ + ((blob)->blob_type == BLOB_TYPE_STRUCT || \ + (blob)->blob_type == BLOB_TYPE_UNION || \ + (blob)->blob_type == BLOB_TYPE_ENUM || \ + (blob)->blob_type == BLOB_TYPE_OBJECT || \ + (blob)->blob_type == BLOB_TYPE_INTERFACE) + + +GTypelib +struct _GTypelib { + guchar *data; + gsize len; + gboolean owns_memory; + GMappedFile *mfile; + GList *modules; +}; + + +g_typelib_get_dir_entry +DirEntry * +GTypelib *typelib,guint16 index + + +g_typelib_check_sanity +void +void + + +g_typelib_get_string +#define g_typelib_get_string(typelib,offset) ((const gchar*)&(typelib->data)[(offset)]) + + +GTypelibError +typedef enum +{ + G_TYPELIB_ERROR_INVALID, + G_TYPELIB_ERROR_INVALID_HEADER, + G_TYPELIB_ERROR_INVALID_DIRECTORY, + G_TYPELIB_ERROR_INVALID_ENTRY, + G_TYPELIB_ERROR_INVALID_BLOB +} GTypelibError; + + +G_TYPELIB_ERROR +#define G_TYPELIB_ERROR (g_typelib_error_quark ()) + + +g_typelib_error_quark +GQuark +void + + +g_typelib_validate +gboolean +GTypelib *typelib,GError **error + diff --git a/docs/reference/gi-docs.sgml b/docs/reference/gi-docs.sgml new file mode 100644 index 0000000..dc28eba --- /dev/null +++ b/docs/reference/gi-docs.sgml @@ -0,0 +1,66 @@ + + + + + + + + + + + + +]> + + + GObject Introspection Reference Manual + + + + GObject-Introspection Overview + +Bla bla bla bla bla + + + + + + GIR markup format + + + + + + typelib + &gi-gtypelib; + + + + GIRepository + &gi-girepository; + &gi-ginfo; + &gi-girmodule; + &gi-girparser; + &gi-girwriter; + &gi-girffi; + + + + diff --git a/docs/reference/gi-gir.sgml b/docs/reference/gi-gir.sgml new file mode 100644 index 0000000..8556b1d --- /dev/null +++ b/docs/reference/gi-gir.sgml @@ -0,0 +1,29 @@ + + + The GIR XML format + + + This chapter describes the GIR XML markup format. + are interested in the procedure which GTK+ follows to draw its + widgets and windows, you should read this chapter; this will be + useful to know if you decide to implement your own widgets. This + chapter will also clarify the reasons behind the ways certain + things are done in GTK+; for example, why you cannot change the + background color of all widgets with the same method. + + +
+ API node + + The root node of all GIR documents is the api node. + + Attributes: + + version + The version of the GIR, currently the only known version is 1.0. + + +
+ +
+ diff --git a/docs/reference/gi-overrides.txt b/docs/reference/gi-overrides.txt new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/docs/reference/gi-overrides.txt diff --git a/docs/reference/gi-sections.txt b/docs/reference/gi-sections.txt new file mode 100644 index 0000000..0371c70 --- /dev/null +++ b/docs/reference/gi-sections.txt @@ -0,0 +1,279 @@ +
+girepository +G_TYPE_IREPOSITORY +G_IREPOSITORY +GIRepositoryPrivate +GIBaseInfo +GICallableInfo +GIFunctionInfo +GICallbackInfo +GIRegisteredTypeInfo +GIStructInfo +GIUnionInfo +GIEnumInfo +GIObjectInfo +GIInterfaceInfo +GIConstantInfo +GIValueInfo +GISignalInfo +GIVFuncInfo +GIPropertyInfo +GIFieldInfo +GIArgInfo +GITypeInfo +GIErrorDomainInfo +GIUnresolvedInfo +GTypelib +GIRepository +GIRepository +GIRepositoryLoadFlags +g_irepository_get_default +g_irepository_prepend_search_path +g_irepository_get_search_path +g_irepository_load_typelib +g_irepository_is_registered +g_irepository_find_by_name +g_irepository_require +g_irepository_get_dependencies +g_irepository_get_loaded_namespaces +g_irepository_find_by_gtype +g_irepository_get_n_infos +g_irepository_get_info +g_irepository_get_typelib_path +g_irepository_get_shared_library +g_irepository_get_version +g_irepository_get_option_group +g_irepository_dump +g_typelib_new_from_memory +g_typelib_new_from_const_memory +g_typelib_new_from_mapped_file +g_typelib_free +g_typelib_symbol +g_typelib_get_namespace +GIRepositoryError +G_IREPOSITORY_ERROR +g_irepository_error_quark +gi_cclosure_marshal_generic +GIInfoType +g_base_info_ref +g_base_info_unref +g_base_info_get_type +g_base_info_get_name +g_base_info_get_namespace +g_base_info_is_deprecated +g_base_info_get_annotation +g_base_info_get_container +g_base_info_get_typelib +g_info_new +GIFunctionInfoFlags +g_function_info_get_symbol +g_function_info_get_flags +g_function_info_get_property +g_function_info_get_vfunc +G_INVOKE_ERROR +g_invoke_error_quark +GInvokeError +g_function_info_invoke +GITransfer +g_callable_info_get_return_type +g_callable_info_get_caller_owns +g_callable_info_may_return_null +g_callable_info_get_n_args +g_callable_info_get_arg +GIDirection +GIScopeType +g_arg_info_get_direction +g_arg_info_is_dipper +g_arg_info_is_return_value +g_arg_info_is_optional +g_arg_info_may_be_null +g_arg_info_get_ownership_transfer +g_arg_info_get_scope +g_arg_info_get_closure +g_arg_info_get_destroy +g_arg_info_get_type +GITypeTag +g_type_tag_to_string +g_type_info_is_pointer +g_type_info_get_tag +g_type_info_get_param_type +g_type_info_get_interface +g_type_info_get_array_length +g_type_info_get_array_fixed_size +g_type_info_is_zero_terminated +g_type_info_get_n_error_domains +g_type_info_get_error_domain +g_error_domain_info_get_quark +g_error_domain_info_get_codes +g_value_info_get_value +GIFieldInfoFlags +g_field_info_get_flags +g_field_info_get_size +g_field_info_get_offset +g_field_info_get_type +g_field_info_get_field +g_field_info_set_field +g_union_info_get_n_fields +g_union_info_get_field +g_union_info_get_n_methods +g_union_info_get_method +g_union_info_is_discriminated +g_union_info_get_discriminator_offset +g_union_info_get_discriminator_type +g_union_info_get_discriminator +g_union_info_find_method +g_union_info_get_size +g_union_info_get_alignment +g_struct_info_get_n_fields +g_struct_info_get_field +g_struct_info_get_n_methods +g_struct_info_get_method +g_struct_info_find_method +g_struct_info_get_size +g_struct_info_get_alignment +g_struct_info_is_class_struct +g_registered_type_info_get_type_name +g_registered_type_info_get_type_init +g_registered_type_info_get_g_type +g_enum_info_get_n_values +g_enum_info_get_value +g_enum_info_get_storage_type +g_object_info_get_type_name +g_object_info_get_type_init +g_object_info_get_abstract +g_object_info_get_parent +g_object_info_get_n_interfaces +g_object_info_get_interface +g_object_info_get_n_fields +g_object_info_get_field +g_object_info_get_n_properties +g_object_info_get_property +g_object_info_get_n_methods +g_object_info_get_method +g_object_info_find_method +g_object_info_get_n_signals +g_object_info_get_signal +g_object_info_get_n_vfuncs +g_object_info_get_vfunc +g_object_info_get_n_constants +g_object_info_get_constant +g_object_info_get_class_struct +g_interface_info_get_n_prerequisites +g_interface_info_get_prerequisite +g_interface_info_get_n_properties +g_interface_info_get_property +g_interface_info_get_n_methods +g_interface_info_get_method +g_interface_info_find_method +g_interface_info_get_n_signals +g_interface_info_get_signal +g_interface_info_get_n_vfuncs +g_interface_info_get_vfunc +g_interface_info_get_n_constants +g_interface_info_get_constant +g_property_info_get_flags +g_property_info_get_type +g_signal_info_get_flags +g_signal_info_get_class_closure +g_signal_info_true_stops_emit +GIVFuncInfoFlags +g_vfunc_info_get_flags +g_vfunc_info_get_offset +g_vfunc_info_get_signal +g_constant_info_get_type +g_constant_info_get_value + +G_TYPE_TAG_IS_BASIC +g_irepository_get_type +
+ +
+gtypelib +G_IR_MAGIC +GTypelib +g_typelib_get_dir_entry +g_typelib_check_sanity +g_typelib_get_string +GTypelibError +G_TYPELIB_ERROR +g_typelib_error_quark +g_typelib_validate + +BLOB_IS_REGISTERED_TYPE +
+ +
+ginfo +g_type_info_new +g_info_new_full +
+ +
+girffi +GIFFIClosureCallback +g_ir_ffi_get_ffi_type +g_callable_info_get_ffi_arg_types +g_callable_info_get_ffi_return_type +g_callable_info_prepare_closure +g_callable_info_free_closure +
+ +
+girmodule +GIrModule +g_ir_module_new +g_ir_module_free +g_ir_module_add_include_module +g_ir_module_build_typelib +
+ +
+girnode +GIrNode +GIrNodeFunction +GIrNodeParam +GIrNodeType +GIrNodeInterface +GIrNodeSignal +GIrNodeProperty +GIrNodeVFunc +GIrNodeField +GIrNodeValue +GIrNodeEnum +GIrNodeBoxed +GIrNodeStruct +GIrNodeConstant +GIrNodeErrorDomain +GIrNodeXRef +GIrNodeUnion +GIrNodeTypeId +g_ir_node_new +g_ir_node_free +g_ir_node_get_size +g_ir_node_get_full_size +g_ir_node_build_typelib +g_ir_node_cmp +g_ir_node_can_have_member +g_ir_node_add_member +write_string +g_ir_node_param_direction_string +g_ir_node_type_to_string +g_ir_find_node +g_ir_node_compute_offsets +
+ +
+girparser +GIrParser +g_ir_parser_new +g_ir_parser_free +g_ir_parser_set_includes +g_ir_parser_parse_string +g_ir_parser_parse_file +
+ +
+girwriter +g_idl_writer_save_file +
+ diff --git a/docs/reference/gi.types b/docs/reference/gi.types new file mode 100644 index 0000000..3b4e9df --- /dev/null +++ b/docs/reference/gi.types @@ -0,0 +1,2 @@ +g_irepository_get_type +g_irepository_get_type diff --git a/docs/reference/tmpl/gi-unused.sgml b/docs/reference/tmpl/gi-unused.sgml new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/docs/reference/tmpl/gi-unused.sgml diff --git a/docs/reference/tmpl/ginfo.sgml b/docs/reference/tmpl/ginfo.sgml new file mode 100644 index 0000000..8b31ad1 --- /dev/null +++ b/docs/reference/tmpl/ginfo.sgml @@ -0,0 +1,43 @@ + +ginfo + + + + + + + + + + + + + + + + + + + + + + +@container: +@typelib: +@offset: +@Returns: + + + + + + + +@type: +@repository: +@container: +@typelib: +@offset: +@Returns: + + diff --git a/docs/reference/tmpl/girepository.sgml b/docs/reference/tmpl/girepository.sgml new file mode 100644 index 0000000..6991a64 --- /dev/null +++ b/docs/reference/tmpl/girepository.sgml @@ -0,0 +1,1683 @@ + +GIRepository + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +@obj: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +@data: +@len: +@owns_memory: +@mfile: +@modules: + + + + + + + + + + + + +@G_IREPOSITORY_LOAD_FLAG_LAZY: + + + + + + +@Returns: + + + + + + + +@directory: + + + + + + + +@Returns: + + + + + + + +@repository: +@typelib: +@flags: +@error: +@Returns: + + + + + + + +@repository: +@namespace_: +@version: +@Returns: + + + + + + + +@repository: +@namespace_: +@name: +@Returns: + + + + + + + +@repository: +@namespace_: +@version: +@flags: +@error: +@Returns: + + + + + + + +@repository: +@namespace_: +@Returns: + + + + + + + +@repository: +@Returns: + + + + + + + +@repository: +@gtype: +@Returns: + + + + + + + +@repository: +@namespace_: +@Returns: + + + + + + + +@repository: +@namespace_: +@index: +@Returns: + + + + + + + +@repository: +@namespace_: +@Returns: + + + + + + + +@repository: +@namespace_: +@Returns: + + + + + + + +@repository: +@namespace_: +@Returns: + + + + + + + +@Returns: + + + + + + + +@arg: +@error: +@Returns: + + + + + + + +@memory: +@len: +@Returns: + + + + + + + +@memory: +@len: +@Returns: + + + + + + + +@mfile: +@Returns: + + + + + + + +@typelib: + + + + + + + +@typelib: +@symbol_name: +@symbol: +@Returns: + + + + + + + +@typelib: +@Returns: + + + + + + + +@G_IREPOSITORY_ERROR_TYPELIB_NOT_FOUND: +@G_IREPOSITORY_ERROR_NAMESPACE_MISMATCH: +@G_IREPOSITORY_ERROR_NAMESPACE_VERSION_CONFLICT: +@G_IREPOSITORY_ERROR_LIBRARY_NOT_FOUND: + + + + + + + + + + + + + +@Returns: + + + + + + + +@closure: +@return_gvalue: +@n_param_values: +@param_values: +@invocation_hint: +@marshal_data: + + + + + + + +@GI_INFO_TYPE_INVALID: +@GI_INFO_TYPE_FUNCTION: +@GI_INFO_TYPE_CALLBACK: +@GI_INFO_TYPE_STRUCT: +@GI_INFO_TYPE_BOXED: +@GI_INFO_TYPE_ENUM: +@GI_INFO_TYPE_FLAGS: +@GI_INFO_TYPE_OBJECT: +@GI_INFO_TYPE_INTERFACE: +@GI_INFO_TYPE_CONSTANT: +@GI_INFO_TYPE_ERROR_DOMAIN: +@GI_INFO_TYPE_UNION: +@GI_INFO_TYPE_VALUE: +@GI_INFO_TYPE_SIGNAL: +@GI_INFO_TYPE_VFUNC: +@GI_INFO_TYPE_PROPERTY: +@GI_INFO_TYPE_FIELD: +@GI_INFO_TYPE_ARG: +@GI_INFO_TYPE_TYPE: +@GI_INFO_TYPE_UNRESOLVED: + + + + + + +@info: +@Returns: + + + + + + + +@info: + + + + + + + +@info: +@Returns: + + + + + + + +@info: +@Returns: + + + + + + + +@info: +@Returns: + + + + + + + +@info: +@Returns: + + + + + + + +@info: +@name: +@Returns: + + + + + + + +@info: +@Returns: + + + + + + + +@info: +@Returns: + + + + + + + +@type: +@container: +@typelib: +@offset: +@Returns: + + + + + + + +@GI_FUNCTION_IS_METHOD: +@GI_FUNCTION_IS_CONSTRUCTOR: +@GI_FUNCTION_IS_GETTER: +@GI_FUNCTION_IS_SETTER: +@GI_FUNCTION_WRAPS_VFUNC: +@GI_FUNCTION_THROWS: + + + + + + +@info: +@Returns: + + + + + + + +@info: +@Returns: + + + + + + + +@info: +@Returns: + + + + + + + +@info: +@Returns: + + + + + + + + + + + + + + +@Returns: + + + + + + + +@G_INVOKE_ERROR_FAILED: +@G_INVOKE_ERROR_SYMBOL_NOT_FOUND: +@G_INVOKE_ERROR_ARGUMENT_MISMATCH: + + + + + + +@info: +@in_args: +@n_in_args: +@out_args: +@n_out_args: +@return_value: +@error: +@Returns: + + + + + + + +@GI_TRANSFER_NOTHING: +@GI_TRANSFER_CONTAINER: +@GI_TRANSFER_EVERYTHING: + + + + + + +@info: +@Returns: + + + + + + + +@info: +@Returns: + + + + + + + +@info: +@Returns: + + + + + + + +@info: +@Returns: + + + + + + + +@info: +@n: +@Returns: + + + + + + + +@GI_DIRECTION_IN: +@GI_DIRECTION_OUT: +@GI_DIRECTION_INOUT: + + + + + + +@GI_SCOPE_TYPE_INVALID: +@GI_SCOPE_TYPE_CALL: +@GI_SCOPE_TYPE_OBJECT: +@GI_SCOPE_TYPE_ASYNC: +@GI_SCOPE_TYPE_NOTIFIED: + + + + + + +@info: +@Returns: + + + + + + + +@info: +@Returns: + + + + + + + +@info: +@Returns: + + + + + + + +@info: +@Returns: + + + + + + + +@info: +@Returns: + + + + + + + +@info: +@Returns: + + + + + + + +@info: +@Returns: + + + + + + + +@info: +@Returns: + + + + + + + +@info: +@Returns: + + + + + + + +@info: +@Returns: + + + + + + + +@GI_TYPE_TAG_VOID: +@GI_TYPE_TAG_BOOLEAN: +@GI_TYPE_TAG_INT8: +@GI_TYPE_TAG_UINT8: +@GI_TYPE_TAG_INT16: +@GI_TYPE_TAG_UINT16: +@GI_TYPE_TAG_INT32: +@GI_TYPE_TAG_UINT32: +@GI_TYPE_TAG_INT64: +@GI_TYPE_TAG_UINT64: +@GI_TYPE_TAG_INT: +@GI_TYPE_TAG_UINT: +@GI_TYPE_TAG_LONG: +@GI_TYPE_TAG_ULONG: +@GI_TYPE_TAG_SSIZE: +@GI_TYPE_TAG_SIZE: +@GI_TYPE_TAG_FLOAT: +@GI_TYPE_TAG_DOUBLE: +@GI_TYPE_TAG_TIME_T: +@GI_TYPE_TAG_GTYPE: +@GI_TYPE_TAG_UTF8: +@GI_TYPE_TAG_FILENAME: +@GI_TYPE_TAG_ARRAY: +@GI_TYPE_TAG_INTERFACE: +@GI_TYPE_TAG_GLIST: +@GI_TYPE_TAG_GSLIST: +@GI_TYPE_TAG_GHASH: +@GI_TYPE_TAG_ERROR: + + + + + + +@type: +@Returns: + + + + + + + +@info: +@Returns: + + + + + + + +@info: +@Returns: + + + + + + + +@info: +@n: +@Returns: + + + + + + + +@info: +@Returns: + + + + + + + +@info: +@Returns: + + + + + + + +@info: +@Returns: + + + + + + + +@info: +@Returns: + + + + + + + +@info: +@Returns: + + + + + + + +@info: +@n: +@Returns: + + + + + + + +@info: +@Returns: + + + + + + + +@info: +@Returns: + + + + + + + +@info: +@Returns: + + + + + + + +@GI_FIELD_IS_READABLE: +@GI_FIELD_IS_WRITABLE: + + + + + + +@info: +@Returns: + + + + + + + +@info: +@Returns: + + + + + + + +@info: +@Returns: + + + + + + + +@info: +@Returns: + + + + + + + +@field_info: +@mem: +@value: +@Returns: + + + + + + + +@field_info: +@mem: +@value: +@Returns: + + + + + + + +@info: +@Returns: + + + + + + + +@info: +@n: +@Returns: + + + + + + + +@info: +@Returns: + + + + + + + +@info: +@n: +@Returns: + + + + + + + +@info: +@Returns: + + + + + + + +@info: +@Returns: + + + + + + + +@info: +@Returns: + + + + + + + +@info: +@n: +@Returns: + + + + + + + +@info: +@name: +@Returns: + + + + + + + +@info: +@Returns: + + + + + + + +@info: +@Returns: + + + + + + + +@info: +@Returns: + + + + + + + +@info: +@n: +@Returns: + + + + + + + +@info: +@Returns: + + + + + + + +@info: +@n: +@Returns: + + + + + + + +@info: +@name: +@Returns: + + + + + + + +@info: +@Returns: + + + + + + + +@info: +@Returns: + + + + + + + +@info: +@Returns: + + + + + + + +@info: +@Returns: + + + + + + + +@info: +@Returns: + + + + + + + +@info: +@Returns: + + + + + + + +@info: +@Returns: + + + + + + + +@info: +@n: +@Returns: + + + + + + + +@info: +@Returns: + + + + + + + +@info: +@Returns: + + + + + + + +@info: +@Returns: + + + + + + + +@info: +@Returns: + + + + + + + +@info: +@Returns: + + + + + + + +@info: +@Returns: + + + + + + + +@info: +@n: +@Returns: + + + + + + + +@info: +@Returns: + + + + + + + +@info: +@n: +@Returns: + + + + + + + +@info: +@Returns: + + + + + + + +@info: +@n: +@Returns: + + + + + + + +@info: +@Returns: + + + + + + + +@info: +@n: +@Returns: + + + + + + + +@info: +@name: +@Returns: + + + + + + + +@info: +@Returns: + + + + + + + +@info: +@n: +@Returns: + + + + + + + +@info: +@Returns: + + + + + + + +@info: +@n: +@Returns: + + + + + + + +@info: +@Returns: + + + + + + + +@info: +@n: +@Returns: + + + + + + + +@info: +@Returns: + + + + + + + +@info: +@Returns: + + + + + + + +@info: +@n: +@Returns: + + + + + + + +@info: +@Returns: + + + + + + + +@info: +@n: +@Returns: + + + + + + + +@info: +@Returns: + + + + + + + +@info: +@n: +@Returns: + + + + + + + +@info: +@name: +@Returns: + + + + + + + +@info: +@Returns: + + + + + + + +@info: +@n: +@Returns: + + + + + + + +@info: +@Returns: + + + + + + + +@info: +@n: +@Returns: + + + + + + + +@info: +@Returns: + + + + + + + +@info: +@n: +@Returns: + + + + + + + +@info: +@Returns: + + + + + + + +@info: +@Returns: + + + + + + + +@info: +@Returns: + + + + + + + +@info: +@Returns: + + + + + + + +@info: +@Returns: + + + + + + + +@GI_VFUNC_MUST_CHAIN_UP: +@GI_VFUNC_MUST_OVERRIDE: +@GI_VFUNC_MUST_NOT_OVERRIDE: + + + + + + +@info: +@Returns: + + + + + + + +@info: +@Returns: + + + + + + + +@info: +@Returns: + + + + + + + +@info: +@Returns: + + + + + + + +@info: +@value: +@Returns: + + diff --git a/docs/reference/tmpl/girffi.sgml b/docs/reference/tmpl/girffi.sgml new file mode 100644 index 0000000..a9ad7c1 --- /dev/null +++ b/docs/reference/tmpl/girffi.sgml @@ -0,0 +1,78 @@ + +girffi + + + + + + + + + + + + + + + + + + + + + + +@Param1: +@Param2: +@Param3: +@Param4: + + + + + + + +@tag: +@Returns: + + + + + + + +@callable_info: +@Returns: + + + + + + + +@callable_info: +@Returns: + + + + + + + +@callable_info: +@cif: +@callback: +@user_data: +@Returns: + + + + + + + +@callable_info: +@closure: + + diff --git a/docs/reference/tmpl/girmodule.sgml b/docs/reference/tmpl/girmodule.sgml new file mode 100644 index 0000000..16e133b --- /dev/null +++ b/docs/reference/tmpl/girmodule.sgml @@ -0,0 +1,71 @@ + +girmodule + + + + + + + + + + + + + + + + + + + + + + +@name: +@version: +@shared_library: +@dependencies: +@entries: +@include_modules: +@aliases: +@disguised_structures: + + + + + + +@name: +@nsversion: +@module_filename: +@Returns: + + + + + + + +@module: + + + + + + + +@module: +@include_module: + + + + + + + +@module: +@modules: +@Returns: + + diff --git a/docs/reference/tmpl/girnode.sgml b/docs/reference/tmpl/girnode.sgml new file mode 100644 index 0000000..4e2f790 --- /dev/null +++ b/docs/reference/tmpl/girnode.sgml @@ -0,0 +1,420 @@ + +girnode + + + + + + + + + + + + + + + + + + + + + + +@type: +@name: + + + + + + +@node: +@deprecated: +@is_varargs: +@is_method: +@is_setter: +@is_getter: +@is_constructor: +@wraps_vfunc: +@throws: +@symbol: +@result: +@parameters: + + + + + + +@node: +@in: +@out: +@dipper: +@optional: +@retval: +@allow_none: +@transfer: +@shallow_transfer: +@scope: +@closure: +@destroy: +@type: + + + + + + +@node: +@is_pointer: +@is_basic: +@is_array: +@is_glist: +@is_gslist: +@is_ghashtable: +@is_interface: +@is_error: +@tag: +@unparsed: +@zero_terminated: +@has_length: +@length: +@has_size: +@size: +@parameter_type1: +@parameter_type2: +@interface: +@errors: + + + + + + +@node: +@abstract: +@deprecated: +@gtype_name: +@gtype_init: +@parent: +@class_struct: +@interfaces: +@prerequisites: +@alignment: +@size: +@members: + + + + + + +@node: +@deprecated: +@run_first: +@run_last: +@run_cleanup: +@no_recurse: +@detailed: +@action: +@no_hooks: +@has_class_closure: +@true_stops_emit: +@class_closure: +@parameters: +@result: + + + + + + +@node: +@deprecated: +@name: +@readable: +@writable: +@construct: +@construct_only: +@type: + + + + + + +@node: +@is_varargs: +@must_chain_up: +@must_be_implemented: +@must_not_be_implemented: +@is_class_closure: +@parameters: +@result: +@offset: + + + + + + +@node: +@readable: +@writable: +@bits: +@offset: +@type: + + + + + + +@node: +@deprecated: +@value: + + + + + + +@node: +@deprecated: +@storage_type: +@gtype_name: +@gtype_init: +@values: + + + + + + +@node: +@deprecated: +@gtype_name: +@gtype_init: +@alignment: +@size: +@members: + + + + + + +@node: +@deprecated: +@disguised: +@is_gclass_struct: +@gtype_name: +@gtype_init: +@alignment: +@size: +@members: + + + + + + +@node: +@deprecated: +@type: +@value: + + + + + + +@node: +@deprecated: +@name: +@getquark: +@codes: + + + + + + +@node: +@namespace: + + + + + + +@node: +@deprecated: +@members: +@discriminators: +@gtype_name: +@gtype_init: +@alignment: +@size: +@discriminator_offset: +@discriminator_type: + + + + + + +@G_IR_NODE_INVALID: +@G_IR_NODE_FUNCTION: +@G_IR_NODE_CALLBACK: +@G_IR_NODE_STRUCT: +@G_IR_NODE_BOXED: +@G_IR_NODE_ENUM: +@G_IR_NODE_FLAGS: +@G_IR_NODE_OBJECT: +@G_IR_NODE_INTERFACE: +@G_IR_NODE_CONSTANT: +@G_IR_NODE_ERROR_DOMAIN: +@G_IR_NODE_UNION: +@G_IR_NODE_PARAM: +@G_IR_NODE_TYPE: +@G_IR_NODE_PROPERTY: +@G_IR_NODE_SIGNAL: +@G_IR_NODE_VALUE: +@G_IR_NODE_VFUNC: +@G_IR_NODE_FIELD: +@G_IR_NODE_XREF: + + + + + + +@type: +@Returns: + + + + + + + +@node: + + + + + + + +@node: +@Returns: + + + + + + + +@node: +@Returns: + + + + + + + +@node: +@module: +@modules: +@strings: +@types: +@data: +@offset: +@offset2: + + + + + + + +@node: +@other: +@Returns: + + + + + + + +@node: +@Returns: + + + + + + + +@node: +@member: + + + + + + + +@str: +@strings: +@data: +@offset: +@Returns: + + + + + + + +@node: +@Returns: + + + + + + + +@type: +@Returns: + + + + + + + +@module: +@modules: +@name: +@node_out: +@module_out: +@Returns: + + + + + + + +@node: +@module: +@modules: + + diff --git a/docs/reference/tmpl/girparser.sgml b/docs/reference/tmpl/girparser.sgml new file mode 100644 index 0000000..bfc6662 --- /dev/null +++ b/docs/reference/tmpl/girparser.sgml @@ -0,0 +1,74 @@ + +girparser + + + + + + + + + + + + + + + + + + + + + + + + + + + + +@Returns: + + + + + + + +@parser: + + + + + + + +@parser: +@includes: + + + + + + + +@parser: +@namespace: +@buffer: +@length: +@error: +@Returns: + + + + + + + +@parser: +@filename: +@error: +@Returns: + + diff --git a/docs/reference/tmpl/girwriter.sgml b/docs/reference/tmpl/girwriter.sgml new file mode 100644 index 0000000..204c8b8 --- /dev/null +++ b/docs/reference/tmpl/girwriter.sgml @@ -0,0 +1,28 @@ + +girwriter + + + + + + + + + + + + + + + + + + + + + + +@module: +@filename: + + diff --git a/docs/reference/tmpl/gtypelib.sgml b/docs/reference/tmpl/gtypelib.sgml new file mode 100644 index 0000000..825880c --- /dev/null +++ b/docs/reference/tmpl/gtypelib.sgml @@ -0,0 +1,99 @@ + +gtypelib + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +@data: +@len: +@owns_memory: +@mfile: +@modules: + + + + + + +@typelib: +@index: +@Returns: + + + + + + + + + + + + + + +@typelib: +@offset: + + + + + + + +@G_TYPELIB_ERROR_INVALID: +@G_TYPELIB_ERROR_INVALID_HEADER: +@G_TYPELIB_ERROR_INVALID_DIRECTORY: +@G_TYPELIB_ERROR_INVALID_ENTRY: +@G_TYPELIB_ERROR_INVALID_BLOB: + + + + + + + + + + + + + +@Returns: + + + + + + + +@typelib: +@error: +@Returns: + + diff --git a/docs/reference/version.xml.in b/docs/reference/version.xml.in new file mode 100644 index 0000000..d1cc3c7 --- /dev/null +++ b/docs/reference/version.xml.in @@ -0,0 +1,2 @@ +@GOBJECT_INTROSPECTION_VERSION@ +@GOBJECT_INTROSPECTION_VERSION@ diff --git a/girepository/ginfo.c b/girepository/ginfo.c index a51c6cb..f4ca131 100644 --- a/girepository/ginfo.c +++ b/girepository/ginfo.c @@ -658,6 +658,7 @@ g_callable_info_get_n_args (GICallableInfo *info) /** * g_callable_info_get_arg: * @info: a #GICallableInfo + * @n: the argument index to fetch * * Get information about a particular argument of this callable. * @@ -1186,6 +1187,7 @@ g_struct_info_get_alignment (GIStructInfo *info) * GObject. This function is mainly useful to hide this kind of structure * from public APIs. * + * Returns: TRUE if it's a class struct, otherwise FALSE */ gboolean g_struct_info_is_class_struct (GIStructInfo *info) @@ -1493,6 +1495,8 @@ g_object_info_get_constant (GIObjectInfo *info, * * Every GObject has two structures; an instance structure and a class * structure. This function returns the metadata for the class structure. + * + * Returns: a GIStrucTInfo for the class struct or NULL if none found. */ GIStructInfo * g_object_info_get_class_struct (GIObjectInfo *info) diff --git a/girepository/girepository.c b/girepository/girepository.c index f35854a..06ea13c 100644 --- a/girepository/girepository.c +++ b/girepository/girepository.c @@ -370,12 +370,12 @@ register_internal (GIRepository *repository, } /** - * g_irepository_get_dependencies + * g_irepository_get_dependencies: * @repository: A #GIRepository, may be %NULL for the default - * @namespace: Namespace of interest + * @namespace_: Namespace of interest * * Return an array of all (transitive) dependencies for namespace - * @namespace, including version. The returned strings are of the + * @namespace_, including version. The returned strings are of the * form namespace-version. * * Note: The namespace must have already been loaded using a function @@ -436,10 +436,10 @@ g_irepository_load_typelib (GIRepository *repository, } /** - * g_irepository_is_registered + * g_irepository_is_registered: * @repository: A #GIRepository, may be %NULL for the default - * @namespace: Namespace of interest - * @version: : Required version, may be %NULL for latest + * @namespace_: Namespace of interest + * @version: (allow-none): Required version, may be %NULL for latest * * Check whether a particular namespace (and optionally, a specific * version thereof) is currently loaded. This function is likely to @@ -460,7 +460,7 @@ g_irepository_is_registered (GIRepository *repository, } /** - * g_irepository_get_default + * g_irepository_get_default: * * Returns the singleton process-global default #GIRepository. It is * not currently supported to have multiple repositories in a @@ -482,12 +482,12 @@ g_irepository_get_default (void) } /** - * g_irepository_get_n_infos + * g_irepository_get_n_infos: * @repository: A #GIRepository, may be %NULL for the default - * @namespace: Namespace to inspect + * @namespace_: Namespace to inspect * * This function returns the number of metadata entries in - * given namespace @namespace. The namespace must have + * given namespace @namespace_. The namespace must have * already been loaded before calling this function. * * Returns: number of metadata entries @@ -591,13 +591,13 @@ find_interface (gpointer key, } /** - * g_irepository_get_info + * g_irepository_get_info: * @repository: A #GIRepository, may be %NULL for the default - * @namespace: Namespace to inspect + * @namespace_: Namespace to inspect * @index: Offset into namespace metadata for entry * * This function returns a particular metadata entry in the - * given namespace @namespace. The namespace must have + * given namespace @namespace_. The namespace must have * already been loaded before calling this function. * * Returns: #GIBaseInfo containing metadata @@ -630,9 +630,9 @@ g_irepository_get_info (GIRepository *repository, } /** - * g_irepository_find_by_gtype + * g_irepository_find_by_gtype: * @repository: A #GIRepository, may be %NULL for the default - * @type: GType to search for + * @gtype: GType to search for * * Searches all loaded namespaces for a particular #GType. Note that * in order to locate the metadata, the namespace corresponding to @@ -645,21 +645,21 @@ g_irepository_get_info (GIRepository *repository, */ GIBaseInfo * g_irepository_find_by_gtype (GIRepository *repository, - GType type) + GType gtype) { IfaceData data; repository = get_repository (repository); data.iface = g_hash_table_lookup (repository->priv->info_by_gtype, - (gpointer)type); + (gpointer)gtype); if (data.iface) return g_base_info_ref (data.iface); data.repo = repository; data.name = NULL; - data.type = g_type_name (type); + data.type = g_type_name (gtype); data.index = -1; data.iface = NULL; @@ -668,7 +668,7 @@ g_irepository_find_by_gtype (GIRepository *repository, if (data.iface) g_hash_table_insert (repository->priv->info_by_gtype, - (gpointer) type, + (gpointer) gtype, g_base_info_ref (data.iface)); @@ -676,9 +676,9 @@ g_irepository_find_by_gtype (GIRepository *repository, } /** - * g_irepository_find_by_name + * g_irepository_find_by_name: * @repository: A #GIRepository, may be %NULL for the default - * @namespace: Namespace which will be searched + * @namespace_: Namespace which will be searched * @name: Entry name to find * * Searches for a particular entry in a namespace. Before calling @@ -726,12 +726,12 @@ collect_namespaces (gpointer key, } /** - * g_irepository_get_namespaces + * g_irepository_get_namespaces: * @repository: A #GIRepository, may be %NULL for the default * * Return the list of currently loaded namespaces. * - * Returns: : List of namespaces + * Returns: (utf8) (transfer full): List of namespaces */ gchar ** g_irepository_get_loaded_namespaces (GIRepository *repository) @@ -755,12 +755,12 @@ g_irepository_get_loaded_namespaces (GIRepository *repository) } /** - * g_irepository_get_version + * g_irepository_get_version: * @repository: A #GIRepository, may be %NULL for the default - * @namespace: Namespace to inspect + * @namespace_: Namespace to inspect * * This function returns the loaded version associated with the given - * namespace @namespace. + * namespace @namespace_. * * Note: The namespace must have already been loaded using a function * such as #g_irepository_require before calling this function. @@ -787,12 +787,12 @@ g_irepository_get_version (GIRepository *repository, } /** - * g_irepository_get_shared_library + * g_irepository_get_shared_library: * @repository: A #GIRepository, may be %NULL for the default - * @namespace: Namespace to inspect + * @namespace_: Namespace to inspect * * This function returns the full path to the shared C library - * associated with the given namespace @namespace. There may be no + * associated with the given namespace @namespace_. There may be no * shared library path associated, in which case this function will * return %NULL. * @@ -824,17 +824,16 @@ g_irepository_get_shared_library (GIRepository *repository, } /** - * g_irepository_get_typelib_path + * g_irepository_get_typelib_path: * @repository: Repository, may be %NULL for the default - * @namespace: GI namespace to use, e.g. "Gtk" - * @version: : Version of namespace to use, e.g. "0.8", may be %NULL + * @namespace_: GI namespace to use, e.g. "Gtk" * - * If namespace @namespace is loaded, return the full path to the + * If namespace @namespace_ is loaded, return the full path to the * .typelib file it was loaded from. If the typelib for - * namespace @namespace was included in a shared library, return - * the special string "". + * namespace @namespace_ was included in a shared library, return + * the special string "$lt;builtin$gt;". * - * Returns: Filesystem path (or ) if successful, %NULL if namespace is not loaded + * Returns: Filesystem path (or $lt;builtin$gt;) if successful, %NULL if namespace is not loaded */ const gchar * @@ -1080,15 +1079,15 @@ find_namespace_latest (const gchar *namespace, } /** - * g_irepository_require - * @repository: : Repository, may be %NULL for the default - * @namespace: GI namespace to use, e.g. "Gtk" - * @version: : Version of namespace, may be %NULL for latest + * g_irepository_require: + * @repository: (allow-none): Repository, may be %NULL for the default + * @namespace_: GI namespace to use, e.g. "Gtk" + * @version: (allow-none): Version of namespace, may be %NULL for latest * @flags: Set of %GIRepositoryLoadFlags, may be %0 * @error: a #GError. * - * Force the namespace @namespace to be loaded if it isn't already. - * If @namespace is not loaded, this function will search for a + * Force the namespace @namespace_ to be loaded if it isn't already. + * If @namespace_ is not loaded, this function will search for a * ".typelib" file using the repository search path. In addition, a * version @version of namespace may be specified. If @version is * not specified, the latest will be used. diff --git a/girepository/girffi.c b/girepository/girffi.c index ffde853..4611a63 100644 --- a/girepository/girffi.c +++ b/girepository/girffi.c @@ -225,7 +225,7 @@ g_callable_info_prepare_closure (GICallableInfo *callable_info, } /** - * g_callable_info_prepare_closure: + * g_callable_info_free_closure: * @callable_info: a callable info from a typelib * @closure: ffi closure * diff --git a/girepository/giroffsets.c b/girepository/giroffsets.c index cc56d0b..d834746 100644 --- a/girepository/giroffsets.c +++ b/girepository/giroffsets.c @@ -462,7 +462,7 @@ check_needs_computation (GIrNode *node, * g_ir_node_compute_offsets: * @node: a #GIrNode * @module: Current module being processed - * @moudles: all currently loaded modules + * @modules: all currently loaded modules * * If a node is a a structure or union, makes sure that the field * offsets have been computed, and also computes the overall size and diff --git a/girepository/girparser.c b/girepository/girparser.c index fe2f762..795658e 100644 --- a/girepository/girparser.c +++ b/girepository/girparser.c @@ -3202,12 +3202,15 @@ post_filter (GIrModule *module) /** * g_ir_parser_parse_string: * @parser: a #GIrParser + * @namespace: the namespace of the string + * @buffer: the data containing the XML + * @length: length of the data * @error: return location for a #GError, or %NULL * * Parse a string that holds a complete GIR XML file, and return a list of a * a #GirModule for each <namespace/> element within the file. * - * @returns: a newly allocated list of #GIrModule. The modules themselves + * Returns: a newly allocated list of #GIrModule. The modules themselves * are owned by the #GIrParser and will be freed along with the parser. */ GList * @@ -3272,12 +3275,13 @@ g_ir_parser_parse_string (GIrParser *parser, /** * g_ir_parser_parse_file: * @parser: a #GIrParser + * @filename: filename to parse * @error: return location for a #GError, or %NULL * * Parse GIR XML file, and return a list of a a #GirModule for each * <namespace/> element within the file. * - * @returns: a newly allocated list of #GIrModule. The modules themselves + * Returns: a newly allocated list of #GIrModule. The modules themselves * are owned by the #GIrParser and will be freed along with the parser. */ GList * diff --git a/girepository/gtypelib.c b/girepository/gtypelib.c index e3b1214..b228a23 100644 --- a/girepository/gtypelib.c +++ b/girepository/gtypelib.c @@ -2124,6 +2124,7 @@ g_typelib_get_namespace (GTypelib *typelib) /** * g_typelib_symbol: + * @typelib: the typelib * @symbol_name: name of symbol to be loaded * @symbol: returns a pointer to the symbol value * diff --git a/giscanner/cachestore.py b/giscanner/cachestore.py index 8c90195..9ecde26 100644 --- a/giscanner/cachestore.py +++ b/giscanner/cachestore.py @@ -69,7 +69,7 @@ class CacheStore(object): return (os.stat(store_filename).st_mtime >= os.stat(filename).st_mtime) - def _remove_filename(filename): + def _remove_filename(self, filename): try: os.unlink(filename) except IOError, e: diff --git a/m4/gtk-doc.m4 b/m4/gtk-doc.m4 new file mode 100644 index 0000000..a22be91 --- /dev/null +++ b/m4/gtk-doc.m4 @@ -0,0 +1,43 @@ +dnl -*- mode: autoconf -*- + +# serial 1 + +dnl Usage: +dnl GTK_DOC_CHECK([minimum-gtk-doc-version]) +AC_DEFUN([GTK_DOC_CHECK], +[ + AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first + AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first + + dnl for overriding the documentation installation directory + AC_ARG_WITH([html-dir], + AS_HELP_STRING([--with-html-dir=PATH], [path to installed docs]),, + [with_html_dir='${datadir}/gtk-doc/html']) + HTML_DIR="$with_html_dir" + AC_SUBST([HTML_DIR]) + + dnl enable/disable documentation building + AC_ARG_ENABLE([gtk-doc], + AS_HELP_STRING([--enable-gtk-doc], + [use gtk-doc to build documentation [[default=no]]]),, + [enable_gtk_doc=no]) + + if test x$enable_gtk_doc = xyes; then + ifelse([$1],[], + [PKG_CHECK_EXISTS([gtk-doc],, + AC_MSG_ERROR([gtk-doc not installed and --enable-gtk-doc requested]))], + [PKG_CHECK_EXISTS([gtk-doc >= $1],, + AC_MSG_ERROR([You need to have gtk-doc >= $1 installed to build $PACKAGE_NAME]))]) + fi + + AC_MSG_CHECKING([whether to build gtk-doc documentation]) + AC_MSG_RESULT($enable_gtk_doc) + + dnl check for tools we added during development + AC_PATH_PROG([GTKDOC_CHECK],[gtkdoc-check]) + AC_PATH_PROGS([GTKDOC_REBASE],[gtkdoc-rebase],[true]) + + AM_CONDITIONAL([ENABLE_GTK_DOC], [test x$enable_gtk_doc = xyes]) + AM_CONDITIONAL([GTK_DOC_USE_LIBTOOL], [test -n "$LIBTOOL"]) + AM_CONDITIONAL([GTK_DOC_USE_REBASE], [test -n "$GTKDOC_REBASE"]) +]) diff --git a/m4/introspection.m4 b/m4/introspection.m4 new file mode 100644 index 0000000..f9ce49c --- /dev/null +++ b/m4/introspection.m4 @@ -0,0 +1,88 @@ +dnl -*- mode: autoconf -*- +dnl Copyright 2009 Johan Dahlin +dnl +dnl This file is free software; the author(s) gives unlimited +dnl permission to copy and/or distribute it, with or without +dnl modifications, as long as this notice is preserved. +dnl + +# serial 1 + +m4_define([_GOBJECT_INTROSPECTION_CHECK_INTERNAL], +[ + AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first + AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first + AC_BEFORE([LT_INIT],[$0])dnl setup libtool first + + dnl enable/disable introspection + m4_if([$2], [require], + [dnl + enable_introspection=yes + ],[dnl + AC_ARG_ENABLE(introspection, + AS_HELP_STRING([--enable-introspection[=@<:@no/auto/yes@:>@]], + [Enable introspection for this build]),, + [enable_introspection=auto]) + ])dnl + + AC_MSG_CHECKING([for gobject-introspection]) + + dnl presence/version checking + AS_CASE([$enable_introspection], + [no], [dnl + found_introspection="no (disabled, use --enable-introspection to enable)" + ],dnl + [yes],[dnl + PKG_CHECK_EXISTS([gobject-introspection-1.0],, + AC_MSG_ERROR([gobject-introspection-1.0 is not installed])) + PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $1], + found_introspection=yes, + AC_MSG_ERROR([You need to have gobject-introspection >= $1 installed to build AC_PACKAGE_NAME])) + ],dnl + [auto],[dnl + PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $1], found_introspection=yes, found_introspection=no) + ],dnl + [dnl + AC_MSG_ERROR([invalid argument passed to --enable-introspection, should be one of @<:@no/auto/yes@:>@]) + ])dnl + + AC_MSG_RESULT([$found_introspection]) + + INTROSPECTION_SCANNER= + INTROSPECTION_COMPILER= + INTROSPECTION_GENERATE= + INTROSPECTION_GIRDIR= + INTROSPECTION_TYPELIBDIR= + if test "x$found_introspection" = "xyes"; then + INTROSPECTION_SCANNER=`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0` + INTROSPECTION_COMPILER=`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0` + INTROSPECTION_GENERATE=`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0` + INTROSPECTION_GIRDIR=`$PKG_CONFIG --variable=girdir gobject-introspection-1.0` + INTROSPECTION_TYPELIBDIR="$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)" + fi + AC_SUBST(INTROSPECTION_SCANNER) + AC_SUBST(INTROSPECTION_COMPILER) + AC_SUBST(INTROSPECTION_GENERATE) + AC_SUBST(INTROSPECTION_GIRDIR) + AC_SUBST(INTROSPECTION_TYPELIBDIR) + + AM_CONDITIONAL(HAVE_INTROSPECTION, test "x$found_introspection" = "xyes") +]) + + +dnl Usage: +dnl GOBJECT_INTROSPECTION_CHECK([minimum-g-i-version]) + +AC_DEFUN([GOBJECT_INTROSPECTION_CHECK], +[ + _GOBJECT_INTROSPECTION_CHECK_INTERNAL([$1]) +]) + +dnl Usage: +dnl GOBJECT_INTROSPECTION_REQUIRE([minimum-g-i-version]) + + +AC_DEFUN([GOBJECT_INTROSPECTION_REQUIRE], +[ + _GOBJECT_INTROSPECTION_CHECK_INTERNAL([$1], [require]) +]) -- cgit v0.9.1