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 ---