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