1 2008-04-22 Havoc Pennington <hp@pobox.com>
3 * girepository/ginvoke.c (g_function_info_invoke): If a symbol is
4 not in metadata->module, look for it in the global module, in case
5 some other object or the app itself provides the symbol.
7 2008-04-22 Havoc Pennington <hp@pobox.com>
9 * girepository/gmetadata.c (_g_metadata_init): hack to avoid
10 dlopening a library that is already in the main app, by checking
11 whether one of the lib's symbols is already loaded.
13 2008-04-22 Johan Dahlin <jdahlin@async.com.br>
15 * tests/parser/Foo-expected.gidl:
16 * tests/parser/foo-object.h:
19 2008-04-22 Havoc Pennington <hp@pobox.com>
21 * girepository/ginfo.c (g_interface_info_find_method):
22 Use interface_blob_size not object_blob_size to compute offset.
24 2008-04-22 Havoc Pennington <hp@pobox.com>
26 * girepository/gmetadata.c (_g_metadata_init): remove
27 G_MODULE_BIND_LOCAL flag when loading libraries, since some libs
28 (Glade and Clutter for example) rely on being loaded globally.
30 2008-04-22 Havoc Pennington <hp@pobox.com>
32 * girepository/ginfo.c (g_registered_type_info_get_g_type): new
33 function to get the GType given a RegisteredTypeInfo
35 2008-04-22 Johan Dahlin <johan@gnome.org>
37 * COPYING: Add a LGPL license, to prevent automake to
38 put in a copy of GPL here. Pointed out by Havoc.
40 * girepository/ginfo.c (g_info_from_entry), (g_type_info_new),
41 (g_type_info_is_pointer), (g_type_info_get_tag),
42 (g_type_info_get_param_type), (g_type_info_get_interface),
43 (g_type_info_get_array_length), (g_type_info_is_zero_terminated),
44 (g_type_info_get_n_error_domains), (g_type_info_get_error_domain),
45 (g_error_domain_info_get_codes), (g_enum_info_get_value),
46 (g_object_info_get_interface), (g_object_info_get_field),
47 (g_interface_info_get_prerequisite),
48 (g_signal_info_get_class_closure), (g_constant_info_get_value):
49 * girepository/ginvoke.c (get_ffi_type):
50 * girepository/girepository.h:
51 * girepository/gmetadata.c (g_metadata_get_dir_entry),
52 (g_metadata_check_sanity), (validate_header),
53 (validate_array_type_blob), (validate_iface_type_blob),
54 (validate_param_type_blob), (validate_error_type_blob),
55 (validate_type_blob), (validate_constant_blob),
56 (validate_struct_blob), (validate_enum_blob):
57 * girepository/gmetadata.h:
59 * tests/invoke/Makefile.am:
60 * tests/invoke/invoke.c (main):
61 * tests/roundtrips.sh:
63 * tools/compiler.c (format_output), (write_out_metadata), (main):
64 * tools/generate.c (write_type_name), (write_type_info),
65 (write_constant_value), (write_enum_info), (load_metadata), (main):
66 * tools/gidlcompilercontext.c:
67 * tools/gidlcompilercontext.h:
68 * tools/gidlcompilerentrynode.c:
69 * tools/gidlcompilerentrynode.h:
70 * tools/gidlcompilertypenode.c:
71 * tools/gidlcompilertypenode.h:
72 * tools/gidlmodule.c (g_idl_module_build_metadata):
74 * tools/gidlnode.c (init_stats), (dump_stats),
75 (g_idl_node_get_size), (g_idl_node_get_full_size),
76 (g_idl_node_cmp), (g_idl_node_can_have_member),
77 (g_idl_node_add_member), (g_idl_node_param_direction_string),
78 (parse_int_value), (parse_uint_value), (parse_float_value),
79 (parse_boolean_value), (find_entry_node), (find_entry),
80 (serialize_type), (g_idl_node_build_metadata), (write_string):
82 * tools/gidlparser.c (parse_type_internal):
83 * tools/quote-file.sh:
84 Revert revisions 157,149-148,136-129 and 120.
85 Move back to using g-idl-generate to generate the metadata and
86 avoids dependency on a c compiler.
88 2008-04-22 Johan Dahlin <jdahlin@async.com.br>
90 * giscanner/girwriter.py:
92 Add an initial GIR writer and a --format option to g-ir-scanner
94 2008-04-21 Johan Dahlin <johan@gnome.org>
96 * giscanner/cgobject.py: Use ctypes.util.find_library to locate
97 gobject-2.0 and raise ImportError if not found.
99 * giscanner/gidlparser.py:
100 * giscanner/gidlwriter.py:
101 * giscanner/gobjecttreebuilder.py:
102 * tools/g-ir-scanner:
103 Add a --include argument to include types from other idls.
104 Add a minimalistic GIDL parser (just objects for now)
105 Implement resolving of external type references and use it to
106 resolve parent types, argument types and return types.
108 2008-04-21 Johan Dahlin <johan@gnome.org>
110 * giscanner/gidlwriter.py:
111 * giscanner/gobjecttreebuilder.py:
112 * giscanner/treebuilder.py:
113 Add support for properties.
114 Refactor Class/Interface support a bit, to share more code and
115 always initialize their method attribute to an empty list.
117 2008-04-21 Johan Dahlin <johan@gnome.org>
119 * giscanner/cgobject.py:
120 Add a workaround for a glib bug interface introspection bug
121 (object_interface_list_properties, object_class_list_properties):
122 Cast the return value to GParamSpec.
124 * tests/parser/Foo-expected.gidl: Update
125 * tests/parser/foo.c: Add a string property
127 * giscanner/gobjecttreebuilder.py:
128 After stripping namespaces, remove the original
129 item to avoid duplication (GtkButton struct and Button object)
131 2008-04-21 Johan Dahlin <johan@gnome.org>
133 * giscanner/gobjecttreebuilder.py:
134 * giscanner/treebuilder.py:
135 Strip namespaces before objects, so we'll export
136 GtkButton as Button in the gtk namespace
138 2008-04-21 Johan Dahlin <johan@gnome.org>
140 * giscanner/gidlwriter.py:
141 * giscanner/gobjecttreebuilder.py:
142 * giscanner/treebuilder.py:
143 Add constructors for object/boxed types.
145 2008-04-21 Johan Dahlin <johan@gnome.org>
147 * giscanner/gidlwriter.py:
148 * giscanner/gobjecttreebuilder.py:
149 Add support for boxed types
151 2008-04-21 Johan Dahlin <johan@gnome.org>
153 * giscanner/giscannermodule.c: Mark structures as const,
154 wrap SourceType.const_string.
156 * tests/parser/foo-object.h: Add a couple of constants.
158 * giscanner/gidlwriter.py:
159 * giscanner/gobjecttreebuilder.py:
160 * giscanner/treebuilder.py:
161 Add basic support for interfaces
163 * tools/g-ir-scanner:
164 Add -o/--output for writing to a file
166 2008-04-21 Havoc Pennington <hp@redhat.com>
168 * TODO: add some C API wishlist items I could think of quickly
170 2008-04-21 Johan Dahlin <jdahlin@async.com.br>
172 * giscanner/gidlwriter.py:
173 * giscanner/xmlwriter.py:
174 Add a simple api for writing tags which can be used
175 with the new 'with statement' in python 2.5
177 2008-04-21 Johan Dahlin <johan@gnome.org>
179 * giscanner/gobjecttreebuilder.py:
180 Strip namespace and object prefix from method names.
182 2008-04-21 Johan Dahlin <johan@gnome.org>
184 * tools/g-ir-scanner (main): Add --pkg option to pass in
185 pkg-config modules to get cflags from.
187 * giscanner/gidlwriter.py (GIDLWriter._write_method):
188 Avoid duplication, reuse function writer for methods.
190 2008-04-21 Johan Dahlin <jdahlin@async.com.br>
192 * giscanner/gidlwriter.py:
193 * giscanner/gobjecttreebuilder.py:
194 * giscanner/treebuilder.py:
195 * tools/g-ir-scanner:
196 Resolve libtool .la files.
197 Strip name spaces for methods.
200 2008-04-20 Johan Dahlin <jdahlin@async.com.br>
202 * giscanner/cgobject.py:
203 * giscanner/gidlwriter.py:
204 * giscanner/gobjecttreebuilder.py:
205 * giscanner/treebuilder.py:
206 Add support for classes and methods
208 2008-04-20 Johan Dahlin <johan@gnome.org>
210 * giscanner/gidlwriter.py:
211 * giscanner/gobjecttreebuilder.py:
212 * giscanner/odict.py:
213 Avoid conflicts, keep the output ordered similar to
214 the order of the input.
215 Add a simple ordered dictionary implemenation
217 2008-04-19 Johan Dahlin <johan@gnome.org>
219 * giscanner/cgobject.py:
220 * giscanner/gidlwriter.py:
221 * giscanner/gobjecttreebuilder.py:
222 * tools/g-ir-scanner:
223 Start introspecting get-type functions.
224 Implement support for GLib/GFlags GTypes.
225 Add a ctype based GObject binding.
227 2008-04-18 Johan Dahlin <jdahlin@async.com.br>
229 * giscanner/gidlwriter.py:
230 * giscanner/xmlwriter.py:
231 * tools/g-ir-scanner:
232 Add a simplistic gidl writer, which can't do too much.
234 2008-04-18 Johan Dahlin <johan@gnome.org>
236 * giscanner/sourcescanner.py:
237 * giscanner/treebuilder.py:
238 * tools/g-ir-scanner:
239 split tree building and source scanning interface to separate files.
241 2008-04-18 Johan Dahlin <johan@gnome.org>
243 * tools/g-ir-scanner (Parameter.__init__): Start constructing
245 - Add support for struct/parameter/return, start parsing of ctypes
247 * giscanner/giscannermodule.c: wrap GISourceType.child_list and
250 2008-03-31 Johan Dahlin <johan@gnome.org>
252 * tools/g-ir-scanner:
253 Start to build abstract syntax node of scanned sources.
254 Add support for cpp options.
256 2008-03-27 Johan Dahlin <johan@gnome.org>
258 * giscanner/giscannermodule.c:
259 * giscanner/scannerlexer.l:
260 * giscanner/sourcescanner.c:
261 * tools/g-ir-scanner:
263 Add simple pre-processor using subprocess and a PIPE.
264 Change the parse_file apis to accept a file descriptor.
266 2008-03-25 Johan Dahlin <johan@gnome.org>
268 * giscanner/__init__.py:
269 * tools/g-ir-scanner:
270 Fix a typo and add an example python test program.
272 2008-03-25 Johan Dahlin <johan@gnome.org>
274 * giscanner/__init__.py:
275 * giscanner/giscannermodule.c:
276 * giscanner/sourcescanner.c:
277 * giscanner/sourcescanner.h:
278 Add constants and wrap a few more SymbolType fields
280 2008-03-25 Johan Dahlin <johan@gnome.org>
284 * giscanner/__init__.py:
285 * giscanner/giscannermodule.c:
286 * giscanner/Makefile.am:
288 Add initial python bindings for the scanner and
289 depend on python 2.5.
291 2008-03-25 Johan Dahlin <johan@gnome.org>
295 * giscanner/Makefile.am:
296 * giscanner/sourcescanner.c:
297 * giscanner/sourcescanner.h:
300 * tools/sourcescanner.c:
301 * tools/sourcescanner.h:
303 Move the scanner to a separate library.
305 2008-03-23 Johan Dahlin <johan@gnome.org>
310 * tools/scannerlexer.l:
311 * tools/scannerparser.y:
312 * tools/sourcescanner.c:
313 * tools/sourcescanner.h:
314 Split out the source scanner from the generator.
315 Rename the symbols used in the scanner to use the gi_ prefix.
316 This should make it possible to use the raw C parser from
319 2008-03-23 Johan Dahlin <johan@gnome.org>
321 * tests/parser/Makefile.am (utility.gidl):
322 * tests/parser/utility-expected.gidl:
323 Pass in the gobject.gidl since we're defining a GObject.
325 2008-03-12 Johan Dahlin <johan@gnome.org>
327 * relaxng/relaxng.rng:
328 Add a releaxng in relaxng we can use to validate the relaxngs
331 2008-03-12 Jürg Billeter <j@bitron.ch>
333 * tools/scanner.c: (g_igenerator_new):
334 * tools/scannerparser.y:
335 Fix compiler warnings.
337 2008-03-12 Jürg Billeter <j@bitron.ch>
341 * tools/scannerparser.y:
342 Start fixing memory management in g-idl-scanner.
344 2008-03-12 Rob Taylor <rob.taylor@codethink.co.uk>
346 * tools/gidlcompilercontext.c: (write_compiled):
347 Fix critical warning when no shlib passed to g-idl-compiler.
349 2008-03-12 Johan Dahlin <johan@gnome.org>
351 * tests/parser/utility-expected.gidl:
352 * tests/parser/utility.h:
353 Add a get_type-function, so the scanner actually
354 parses it as an object.
356 2008-03-12 Johan Dahlin <johan@gnome.org>
358 * tools/gidlwriter.c (function_generate): Add missing trailing quote.
361 * tests/parser/Foo-expected.gidl:
362 * tests/parser/Makefile.am:
363 * tests/parser/foo-object.h:
364 * tests/parser/foo.c:
365 * tests/parser/utility-expected.gidl:
366 * tests/parser/utility.c:
367 * tests/parser/utility.h:
369 Add a new gidl test. 'utility.gidl', which is used to be able
370 to test external type references. Add a reference to UtilityObject*
373 2008-03-11 Johan Dahlin <johan@gnome.org>
377 Remove most global variables
379 2008-03-11 Philip Van Hoof <me@pvanhoof.be>
381 * tools/scannerlexer.l:
383 * tests/parser/Foo-expected.gidl:
384 * tests/parser/foo.c:
385 * tests/parser/Makefile.am:
386 * tests/parser/foo-object.h:
388 Added a few extra tests. Which resulted in finding a few
389 bugs. Which resulted in me fixing those bugs
391 2008-03-11 Rob Taylor <rob.taylor@codethink.co.uk>
393 * tools/gidlcompilercontext.c: (g_idl_compiler_write_dir_entry),
394 (g_idl_compiler_write_xref_entry), (g_idl_compiler_add_xref):
395 Add some comments for strings into generated output for
398 2008-03-11 Rob Taylor <rob.taylor@codethink.co.uk>
400 * tools/gidlcompilercontext.c: (write_compiled):
401 Write out the shlibs variable before writing out the strings
402 length. Fixes compiler warning when using '-l' flag with
405 2008-03-11 Johan Dahlin <johan@gnome.org>
407 * tests/parser/Foo-expected.gidl:
408 * tests/parser/foo-object.h:
411 * tools/scannerlexer.l:
412 Add support for parsing return arguments. Add support for
413 caller-owns return types.
414 Patch by Philip Van Hoof.
416 * tools/scannerparser.y:
417 Remove parsing of the @deprecated syntax used in headers.
418 We will support gtk-doc deprecation in the future instead.
420 2008-03-11 Johan Dahlin <johan@gnome.org>
422 * tools/compiler.c (main): Coding style fixes
424 2008-03-10 Johan Dahlin <johan@gnome.org>
427 Add GCOV_LIBS to GILIBS
429 2008-03-10 Johan Dahlin <johan@gnome.org>
431 * tests/parser/Foo-expected.gidl:
432 * tests/parser/foo.c:
433 Rename null-ok to direction=out
435 2008-03-10 Philip Van Hoof <me@pvanhoof.be>
437 reviewed and extensively tested by Johan
439 * tests/parser/Foo-expected.gidl:
440 * tests/parser/foo-object.h:
441 * tests/parser/foo.c:
444 * tools/gidlwriter.c:
447 * tools/scannerlexer.l:
448 * tools/scannerparser.y:
450 Add support for scanning for gtk-doc comments inside
451 C source files. Add tests
453 2008-03-10 Johan Dahlin <johan@gnome.org>
455 * tests/parser/Makefile.am:
456 * tests/parser/foo.c:
459 * tools/scannerparser.y:
460 Add an api to lex filenames.
461 Lex all source .c files passed in on the command line.
462 Scan sources in a test and a couple of private structures
463 which should not be included in the generated gidl
465 2008-03-10 Johan Dahlin <johan@gnome.org>
467 * tests/invoke/Makefile.am: Make the generated metadata
468 depend on the g-idl-compiler
470 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
476 Remove the old g-idl-compiler code.
479 2008-02-22 Mark Doffman <mark.doffman@codethink.co.uk>
481 * tools/quote-file.sh
484 Move to using the 'C' struct compiler code.
486 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
488 * girepository/ginfo.c
490 Change the way that external references with no namespace
491 are dealt with. External references with no namespace
492 are placed into the XML as-if they are a local reference.
493 This is temporary, but helps with roundtrip tests.
495 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
497 * girepository/ginfo.c
498 Add the ability to get the value of a constant of
499 type TYPE_TAG_SYMBOL. In the case of a symbol the value
500 is provided as a string.
502 This would deal properly with:
503 typedef char* random;
504 const random = "A string";
506 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
508 * girepository/ginfo.c
509 * girepository/girepository.h
511 Add a function to check if an enum is registered or not.
512 Previously anything testing this relied on the g-type
513 string offset having a value of 0.
515 * girepository/gmetadata.c
516 * girepository/gmetadata.h
518 Remove unneccesary or erroneous checks. There were two
519 metadata validation checks which made sure that the blob
520 sizes were the same as some magic numbers compiled into the code.
521 This is wrong as it breaks any forwards compatibility that may
524 Checks were also present that made sure that unregistered type
525 blobs had a value of 0 in the g-type offset field. This is
526 unneccessary. If a type blob is unregistered then any value
527 in its g-type field is simply invalid.
529 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
531 * girepository/ginfo.c
532 * girepository/gmetadata.c
533 * girepository/gmetadata.h
535 Change the metadata format to have a standard header
536 for all the type blobs. Merge the SimpleTypeBlob
537 and InterfaceTypeBlob into a union. A union of these
538 two blobs existed previously but was not explicit
539 in the metadata format.
541 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
543 * tools/gidlcompilercontext.c
544 * tools/gidlcompilercontext.h
545 * tools/gidlcompilerentrynode.c
546 * tools/gidlcompilerentrynode.h
547 * tools/gidlcompilertypenode.c
548 * tools/gidlcompilertypenode.h
550 Add code to compile a tree of GIdlNodes to
551 a 'C' struct representing the metadata.
552 This is to aid cross-compiling. Previously
553 the g-idl-compiler created a binary blob with
554 data written in the byte order and alignment
555 of the tool rather than the intended target.
557 Cleaned up and improved by Johan and Robert :-)
559 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
561 * girepository/ginvoke.c
562 * girepository/girepository.h
563 * girepository/gmetadata.c
564 * girepository/gmetadata.h
567 Modify TYPE_TAG_INTERFACE to TYPE_TAG_SYMBOL
568 to avoid confusion with the interface blob.
572 Remove magic numbers and replace with type-tag
575 * girepository/gmetadata.c
576 Add validate declaration.
578 2008-03-10 Jürg Billeter <j@bitron.ch>
580 * tools/gidlparser.c: (parse_type_internal):
581 * tools/scannerlexer.l:
582 * tools/scannerparser.y:
583 Support C99 _Bool type in scanner.
585 2008-03-10 Jürg Billeter <j@bitron.ch>
587 * tests/parser/Foo-expected.gidl:
588 * tests/parser/foo-object.h:
589 * tests/parser/foo.c: (foo_enum_method):
590 * tools/scanner.c: (g_igenerator_process_function_symbol):
591 Don't skip functions that are defined in the namespace of a type
592 that doesn't support methods, as for example enums.
594 2008-03-10 Johan Dahlin <johan@gnome.org>
596 * gidl.dtd: Remove, we're using relaxng for now
598 * tests/parser/Foo-expected.gidl:
599 * tests/parser/foo-object.h:
600 * tests/parser/foo.c:
601 Rename the enum/flags get_type functions to include the whole type.
603 2008-03-08 Marc-Andre Lureau <marcandre.lureau@gmail.com>
605 * tools/gidlwriter.c (enum_generate): added "type-name",
606 "get-type" and "deprecated" missing arguments.
607 * tests/parser/Foo-expected.gidl:
608 * tests/parser/foo-object.h: test enum type, and no type.
610 2008-03-06 Johan Dahlin <jdahlin@async.com.br>
613 Consistent checks, add missing 'test'
615 2008-03-05 Havoc Pennington <hp@redhat.com>
617 * configure.ac: Take advantage of a libffi.pc if one exists, as it
618 does on Fedora 8. Make libffi a hard requirement, since it was in
619 practice anyway (was not really conditional in the code or
620 makefile, only in configure).
622 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
624 reviewed by: Rob Taylor <rob.taylor@codethink.co.uk>
625 reviewed by: Johan Dahlin <johan@gnome.org>
628 * tests/roundtrips.sh:
629 Modify the roundtrips test so that they do not use the
630 --raw option of the gidl compiler but instead compile a
631 shared library to use with g_module.
633 * tests/invoke/Makefile.am:
634 * tests/invoke/invoke.c:
635 Modify the invoke tests to build a shared library rather
636 than use the --raw option.
638 * tests/invoke/invoke-namespace-find.sh: Removed:
639 Noone knows why this was here, so removed.
641 2008-02-19 Rob Taylor <rob.taylor@codethink.co.uk>
643 * tools/scanner.c: (g_igenerator_process_function_symbol):
644 Move g_idl_node_can_have_member test later, as it broke spotting
645 get_type's for nodes that can't have members.
647 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
650 * tools/gidlnode.c: (g_idl_node_can_have_member):
651 Add g_idl_node_can_have_member.
653 * tools/scanner.c: (g_igenerator_process_function_symbol):
654 Use g_idl_node_can_have_member to test if we should add a function
655 as a member of the type node.
657 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
659 * gidl/GLib.gidl: Renamed to gidl/gobject-2.0.gidl:
661 * tests/parser/Makefile.am:
662 Rename GLib.gidl to gobject-2.0.gidl and install in /usr/share/gidl.
664 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
666 * tools/scanner.c: (main):
667 Ignore -pthread when passed to g-idl-scanner.
669 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
671 * tools/grealpath.h: Added:
672 * tools/scanner.c: (main):
673 * tools/scannerlexer.l:
675 Always use absolute paths with symbolic links resolved when
678 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
680 * gobject-introspection.pc.in:
681 Provide variables for g-idl-parser, scanner and compiler in the
684 2008-02-13 Rob Taylor <rob.taylor@codethink.co.uk>
687 * girepository/Makefile.am:
689 Rename GCOV_SOURCES to GCOVSOURCES to top automake complaining.
691 2008-02-10 Johan Dahlin <johan@gnome.org>
693 * tests/parser/Foo-expected.gidl:
694 * tests/parser/foo-object.h:
695 * tests/parser/foo.c: (foo_boxed_copy), (foo_boxed_free),
696 (foo_boxed_get_type), (foo_boxed_new), (foo_boxed_method):
699 2008-02-10 Johan Dahlin <johan@gnome.org>
701 * tests/parser/Foo-expected.gidl:
702 * tests/parser/foo-object.h:
703 * tests/parser/foo.c: (foo_enum_get_type), (foo_flags_get_type):
704 Add enum and flags test.
706 2008-02-10 Johan Dahlin <johan@gnome.org>
710 * girepository/Makefile.am:
711 Make 'make distcheck' work again.
713 2008-02-10 Johan Dahlin <johan@gnome.org>
715 * m4/Makefile.am (EXTRA_DIST): its called as-compiler-flag.m4,
718 * tests/parser/Makefile.am: Only create Foo.gidl when running make
719 check, eg exclude it from BUILT_SOURCES.
721 2008-02-08 Rob Taylor <rob.taylor@codethink.co.uk>
726 * girepository/Makefile.am:
727 * m4/Makefile.am: Added:
728 * m4/as-compiler-flag.m4: Added:
731 Add ability to generate a coverage report.
732 Adds configure option --enable-gcov and make rule 'check-coverage'.
734 2008-02-08 Rob Taylor <rob.taylor@codethink.co.uk>
738 * gidl/Makefile.am: Added:
739 * girepository/Makefile.am: Added:
740 * src/Makefile.am: Renamed to tools/Makefile.am:
741 * src/compiler.c: Renamed to tools/compiler.c:
742 * src/g-idl-offsets.pl: Renamed to tools/g-idl-offsets.pl:
743 * src/generate.c: Renamed to tools/generate.c:
744 * src/gidlmodule.c: Renamed to tools/gidlmodule.c:
745 * src/gidlmodule.h: Renamed to tools/gidlmodule.h:
746 * src/gidlnode.c: Renamed to tools/gidlnode.c:
747 * src/gidlnode.h: Renamed to tools/gidlnode.h:
748 * src/gidlparser.c: Renamed to tools/gidlparser.c:
749 * src/gidlparser.h: Renamed to tools/gidlparser.h:
750 * src/gidlwriter.c: Renamed to tools/gidlwriter.c:
751 * src/gidlwriter.h: Renamed to tools/gidlwriter.h:
752 * src/ginfo.c: Renamed to girepository/ginfo.c:
753 * src/ginvoke.c: Renamed to girepository/ginvoke.c:
754 * src/girepository.c: Renamed to girepository/girepository.c:
755 * src/girepository.h: Renamed to girepository/girepository.h:
756 * src/gmetadata.c: Renamed to girepository/gmetadata.c:
757 * src/gmetadata.h: Renamed to girepository/gmetadata.h:
758 * src/scanner.c: Renamed to tools/scanner.c:
759 * src/scanner.h: Renamed to tools/scanner.h:
760 * src/scannerlexer.l: Renamed to tools/scannerlexer.l:
761 * src/scannerparser.y: Renamed to tools/scannerparser.y:
762 * tests/invoke/Makefile.am:
763 Split src/ into girepository/ and tools/
767 * girepository/Makefile.am:
769 * tests/invoke/Makefile.am:
770 * tests/parser/Makefile.am:
771 * tests/roundtrips.sh:
775 2008-02-04 Rob Taylor <rob.taylor@codethink.co.uk>
777 * tests/invoke/invoke.c: (main):
778 * tests/invoke/testfns.c: (test6), (test7):
779 * tests/invoke/testfns.xml:
780 Add tests for invokation with a GList argument.
781 Also tests caller-owns return values.
783 2008-02-04 Rob Taylor <robtaylor@floopily.org>
786 Add some documentation for GICallableInfo
788 2008-02-01 Mark Doffman <mark.doffman@codethink.co.uk>
791 Correct syntax errors in the DTD file.
793 * relaxng/c-types.xml:
794 * relaxng/g-types.xml:
796 Add a RelaxNG specification for the GObject Introspection XML data.
797 The Specification has validated all of the test files.
799 2008-01-25 Rob Taylor <robtaylor@floopily.org>
801 * tests/roundtrips.sh:
803 Add roundtrip tests for structs.
805 2008-01-11 Johan Dahlin <johan@gnome.org>
807 * src/scanner.c (g_igenerator_process_function_symbol):
808 Refactor out g_idle_node_add_member.
809 (create_node_from_gtype, create_node_from_ctype):
810 Use case instead of if...else
811 (get_type_from_type_id):
812 Rename to create_node_from_gtype
813 (get_type_from_ctype):
814 Rename to create_node_from_ctype
816 Rename ginode -> node, gitype -> type, gifunc -> func.
818 * src/gidlnode.c (g_idl_node_add_member, g_idl_node_cmp):
819 Two new functions, refactor out of scanner.c
821 * src/scanner.c: (g_igenerator_process_function_symbol):
822 * src/scannerlexer.l:
823 Do not save the content of the deprecated variable, only
826 2008-01-11 Johan Dahlin <johan@gnome.org>
828 * tests/parser/foo-object.h: Add a couple of comment parser tests.
830 2008-01-11 Jürg Billeter <j@bitron.ch>
832 * src/scannerlexer.l:
835 2008-01-11 Jürg Billeter <j@bitron.ch>
837 * src/scannerlexer.l:
840 2008-01-11 Jürg Billeter <j@bitron.ch>
842 * src/scanner.c: (lookup_symbol):
843 Return unresolved name if we find unknown symbol.
845 2008-01-11 Jürg Billeter <j@bitron.ch>
847 * src/scanner.c: (g_igenerator_generate):
848 Initialize GObject to fix scanning interface properties.
850 * tests/parser/Foo-expected.gidl:
851 * tests/parser/foo-object.h:
852 * tests/parser/foo.c: (foo_interface_get_type):
853 Test interfaces with GObject prerequisite.
855 * tests/parser/Makefile.am:
856 Set G_DEBUG=fatal_warnings to abort test on warnings and criticals.
858 2007-12-27 Johan Dahlin <johan@gnome.org>
860 * src/scannerlexer.l:
861 Parse gtk-doc comments.
863 * src/gidlwriter.c: (function_generate):
864 Reorganize, avoid duplication and add support for
865 writing deprecated functions.
867 * src/scannerparser.y:
869 Add new structure CDirective and functions to create/free them.
871 * src/scanner.c: (g_igenerator_process_function_symbol),
872 (g_igenerator_process_unregistered_struct_typedef),
873 (g_igenerator_process_struct_typedef),
874 (g_igenerator_process_union_typedef),
875 (g_igenerator_process_enum_typedef),
876 (g_igenerator_process_function_typedef), (g_igenerator_add_symbol),
877 (g_igenerator_start_preprocessor):
878 Parse @deprecated directive for functions.
879 Remove some more C99isms.
880 Send in -C to cpp to avoid stripping comments.
882 * tests/parser/foo-object.h:
883 * tests/parser/Foo-expected.gidl:
884 Add deprecated directive
886 2007-12-27 Johan Dahlin <johan@gnome.org>
888 * src/scannerlexer.l (intsuffix): Add emacs mode line and
889 escape ' and " so it looks more like C.
892 Unlink temporary file used.
894 2007-12-27 Johan Dahlin <johan@gnome.org>
896 * src/scanner.c: (g_igenerator_new), (g_igenerator_free),
897 (g_igenerator_start_preprocessor), (main):
899 * src/scannerparser.y:
900 Plug a couple of simple memory leaks.
902 2007-12-27 Johan Dahlin <johan@gnome.org>
904 * src/scanner.c: (g_igenerator_parse_macros),
905 (g_igenerator_start_preprocessor), (g_igenerator_set_verbose),
908 * src/scannerparser.y:
909 * tests/parser/Makefile.am:
911 Improve error reporting, return when the preprocessor fails.
912 Add a verbose parameter, to aid debugging.
913 Revert to using a temporary file to communicate between the
914 preprocessor and the parser, because we need to wait for
915 the exit code from the pre-processor before starting to parse.
917 2007-12-16 Johan Dahlin <jdahlin@async.com.br>
919 * src/Makefile.am: Rename clexer.l to scannerlexer.l and
920 cparser.y to scannerparser.y
922 2007-12-11 Johan Dahlin <johan@gnome.org>
926 * src/scanner.c: (g_igenerator_new):
928 Get rid of the global the_generator variable.
930 2007-12-10 Johan Dahlin <johan@gnome.org>
932 * src/scanner.c (main): Add an output option,
933 add checks for required parameters
936 set BUILD_SOURCES and CLEANFILES properly
938 * src/gidlwriter.c: (g_writer_write_inline), (g_writer_write),
939 (g_writer_write_indent), (g_writer_write_unindent),
940 (field_generate), (value_generate), (constant_generate),
941 (property_generate), (function_generate), (vfunc_generate),
942 (signal_generate), (interface_generate), (struct_generate),
943 (union_generate), (boxed_generate), (enum_generate),
944 (node_generate), (g_writer_write_module), (g_idl_writer_save_file):
946 * src/scanner.c: (g_igenerator_generate):
948 * src/scannerwriter.c:
950 Refactor scannerwriter to only be tied to a GIdlModule and move
951 it (again!) to gidlwriter.c. Change the writer function to take
954 2007-12-10 Johan Dahlin <johan@gnome.org>
957 * src/scanner.c: (g_igenerator_generate):
959 * src/scannerwriter.c: (g_igenerator_write_inline),
960 (g_igenerator_write), (g_igenerator_write_indent),
961 (g_igenerator_write_unindent), (field_generate), (value_generate),
962 (constant_generate), (property_generate), (function_generate),
963 (vfunc_generate), (signal_generate), (interface_generate),
964 (struct_generate), (union_generate), (boxed_generate),
965 (enum_generate), (node_generate), (module_generate),
966 (g_scanner_write_file):
968 Move the scanner gidl writing to a separate source file.
970 2007-12-10 Johan Dahlin <johan@gnome.org>
975 Move over all CType construction functions.
977 * tests/parser/Makefile.am:
978 Be verbose when printing parsing tests results.
980 2007-12-10 Johan Dahlin <johan@gnome.org>
982 * src/scanner.c (g_igenerator_start_preprocessor): Refactor
983 preprocessor handling to here. Start cpp insteado of cc -E,
984 always include -U__GNUC__, since it's specific to the preprocessor
987 * tests/parser/Makefile.am (check-local): Silent diff and skip
988 -U__GNUC__ which is always defined now
990 2007-12-10 Johan Dahlin,,, <jdahlin@plasttroll>
992 reviewed by: <delete if not using a buddy>
994 * src/scanner.c: (g_igenerator_start_preprocessor), (main):
995 * tests/parser/Makefile.am:
997 2007-12-09 Johan Dahlin <johan@gnome.org>
1000 Use GOption for command line options.
1001 (g_igenerator_new, main): Simplify constructor and they way
1002 parameters are passed into it.
1008 * src/gen-introspect.c:
1009 * src/gen-introspect.h:
1011 Rename gen-introspect.[ch] to scanner.[ch]
1013 2007-12-09 Johan Dahlin <johan@gnome.org>
1017 * src/Makefile.am: Rename gen-introspect to g-idl-scanner,
1018 don't make the repository library and the other utilites link against
1021 * src/gen-introspect.c: (g_igenerator_create_object),
1022 (g_igenerator_create_interface), (g_igenerator_create_boxed),
1023 (g_igenerator_create_enum), (g_igenerator_create_flags),
1024 (g_igenerator_process_module_symbol),
1025 (g_igenerator_process_module), (g_igenerator_generate), (main):
1026 * src/gen-introspect.h:
1027 Refactor g_igenerator_process_types into smaller pieces.
1029 * tests/parser/Makefile.am:
1030 Depend on the gen-introspect binary
1032 2007-12-09 Johan Dahlin <johan@gnome.org>
1034 * src/gen-introspect.c (g_igenerator_process_types):
1035 Break into smaller pieces, one for each generated node type.
1037 2007-12-08 Johan Dahlin <johan@gnome.org>
1039 * src/gen-introspect.c: (g_igenerator_process_types),
1040 (g_igenerator_add_module):
1041 * tests/parser/Foo-expected.gidl:
1042 * tests/parser/foo-object.h:
1043 * tests/parser/foo.c: (foo_subobject_class_init),
1044 (foo_subobject_init):
1046 Add a subobject test and make sure to register defined classes
1047 in the lookup symbol hash table.
1049 2007-12-08 Johan Dahlin <johan@gnome.org>
1053 * src/gen-introspect.c: (g_igenerator_new), (lookup_symbol),
1054 (g_igenerator_process_types), (g_igenerator_add_module),
1055 (g_igenerator_add_include_idl), (main):
1056 * src/gen-introspect.h:
1057 * tests/parser/Makefile.am:
1058 * tests/parser/Foo-expected.gidl:
1060 Change the gen-introspect to generate namespaced module names,
1061 such as GLib.Object instead of GObject.
1062 Add a GLib.gidl which introduces GLib.Object and GLib.InitiallyUnowned,
1063 add a --include-idl parameter to gen-introspect,
1064 and update the parser test.
1066 2007-12-08 Johan Dahlin <johan@gnome.org>
1068 * src/gen-introspect.c:
1069 Move main to the end of the file and attempt to make it valid
1072 * tests/parser/Makefile.am (BUILT_SOURCES): Remove .repo here,
1073 we're not quite ready to generate metadata yet.
1078 Add a simple gen-introspect parser test
1080 2007-12-06 Gustavo J. A. M. Carneiro <gjc@gnome.org>
1082 reviewed by: Johan Dahlin <johan@gnome.org>
1085 * gobject-introspection.pc.in:
1087 * src/compiler.c: (format_output), (write_out_metadata), (main):
1088 * src/gen-introspect.c: (main):
1089 * src/gen-introspect.h:
1090 * src/generate.c: (write_callable_info), (write_repository),
1091 (load_metadata), (main):
1092 * src/gidlmodule.c: (g_idl_module_new),
1093 (g_idl_module_build_metadata):
1095 * src/gidlparser.c: (start_element_handler):
1096 * src/ginfo.c: (g_info_new), (g_info_from_entry),
1097 (g_base_info_get_name), (g_base_info_get_namespace),
1098 (g_base_info_is_deprecated), (g_base_info_get_annotation),
1099 (g_base_info_get_metadata), (g_function_info_get_symbol),
1100 (g_function_info_get_flags), (g_function_info_get_property),
1101 (g_function_info_get_vfunc), (signature_offset), (g_type_info_new),
1102 (g_callable_info_may_return_null),
1103 (g_callable_info_get_caller_owns), (g_callable_info_get_n_args),
1104 (g_callable_info_get_arg), (g_arg_info_get_direction),
1105 (g_arg_info_is_return_value), (g_arg_info_is_dipper),
1106 (g_arg_info_is_optional), (g_arg_info_may_be_null),
1107 (g_arg_info_get_ownership_transfer), (g_type_info_is_pointer),
1108 (g_type_info_get_tag), (g_type_info_get_param_type),
1109 (g_type_info_get_interface), (g_type_info_get_array_length),
1110 (g_type_info_is_zero_terminated),
1111 (g_type_info_get_n_error_domains), (g_type_info_get_error_domain),
1112 (g_error_domain_info_get_quark), (g_error_domain_info_get_codes),
1113 (g_value_info_get_value), (g_field_info_get_flags),
1114 (g_field_info_get_size), (g_field_info_get_offset),
1115 (g_registered_type_info_get_type_name),
1116 (g_registered_type_info_get_type_init),
1117 (g_struct_info_get_n_fields), (g_struct_info_get_field),
1118 (g_struct_info_get_n_methods), (g_struct_info_get_method),
1119 (find_method), (g_struct_info_find_method),
1120 (g_enum_info_get_n_values), (g_enum_info_get_value),
1121 (g_object_info_get_parent), (g_object_info_get_type_name),
1122 (g_object_info_get_type_init), (g_object_info_get_n_interfaces),
1123 (g_object_info_get_interface), (g_object_info_get_n_fields),
1124 (g_object_info_get_field), (g_object_info_get_n_properties),
1125 (g_object_info_get_property), (g_object_info_get_n_methods),
1126 (g_object_info_get_method), (g_object_info_find_method),
1127 (g_object_info_get_n_signals), (g_object_info_get_signal),
1128 (g_object_info_get_n_vfuncs), (g_object_info_get_vfunc),
1129 (g_object_info_get_n_constants), (g_object_info_get_constant),
1130 (g_interface_info_get_n_prerequisites),
1131 (g_interface_info_get_prerequisite),
1132 (g_interface_info_get_n_properties),
1133 (g_interface_info_get_property), (g_interface_info_get_n_methods),
1134 (g_interface_info_get_method), (g_interface_info_find_method),
1135 (g_interface_info_get_n_signals), (g_interface_info_get_signal),
1136 (g_interface_info_get_n_vfuncs), (g_interface_info_get_vfunc),
1137 (g_interface_info_get_n_constants),
1138 (g_interface_info_get_constant), (g_property_info_get_flags),
1139 (g_signal_info_get_flags), (g_signal_info_get_class_closure),
1140 (g_signal_info_true_stops_emit), (g_vfunc_info_get_flags),
1141 (g_vfunc_info_get_offset), (g_vfunc_info_get_signal),
1142 (g_constant_info_get_value), (g_union_info_get_n_fields),
1143 (g_union_info_get_field), (g_union_info_get_n_methods),
1144 (g_union_info_get_method), (g_union_info_is_discriminated),
1145 (g_union_info_get_discriminator_offset),
1146 (g_union_info_get_discriminator):
1147 * src/ginvoke.c: (g_function_info_invoke):
1148 * src/girepository.c: (g_irepository_register),
1149 (g_irepository_unregister), (g_irepository_get_default),
1150 (count_interfaces), (g_irepository_get_n_infos), (find_interface),
1151 (g_irepository_get_info), (g_irepository_find_by_name),
1152 (g_irepository_get_shared_library),
1153 (g_irepository_build_search_path), (g_irepository_register_file),
1154 (g_irepository_error_quark):
1155 * src/girepository.h:
1156 * src/gmetadata.c: (g_metadata_get_dir_entry),
1157 (g_metadata_check_sanity), (validate_header),
1158 (validate_array_type_blob), (validate_iface_type_blob),
1159 (validate_param_type_blob), (validate_error_type_blob),
1160 (validate_type_blob), (validate_arg_blob),
1161 (validate_signature_blob), (validate_function_blob),
1162 (validate_callback_blob), (validate_constant_blob),
1163 (validate_value_blob), (validate_field_blob),
1164 (validate_property_blob), (validate_signal_blob),
1165 (validate_vfunc_blob), (validate_struct_blob),
1166 (validate_enum_blob), (validate_object_blob),
1167 (validate_interface_blob), (validate_errordomain_blob),
1168 (validate_union_blob), (validate_blob), (validate_directory),
1169 (validate_annotations), (g_metadata_validate), (_g_metadata_init),
1170 (g_metadata_new_from_memory), (g_metadata_new_from_const_memory),
1171 (g_metadata_new_from_mapped_file), (g_metadata_free),
1172 (g_metadata_set_module), (g_metadata_get_namespace):
1174 * tests/Makefile.am:
1175 * tests/invoke/Makefile.am:
1176 * tests/invoke/invoke-namespace-find.sh:
1177 * tests/invoke/invoke.c: (main):
1179 Add a namespace/shared library mapping. fixes #313268.
1181 2007-12-03 Johan Dahlin <johan@gnome.org>
1183 * src/gidlparser.c (parse_type_internal): Disable char/gchar and
1186 2007-11-30 Jürg Billeter <j@bitron.ch>
1192 * src/gen-introspect.c: (g_idl_node_cmp), (g_igenerator_new),
1193 (g_igenerator_write_inline), (g_igenerator_write),
1194 (g_igenerator_write_indent), (g_igenerator_write_unindent),
1195 (field_generate), (value_generate), (constant_generate),
1196 (property_generate), (function_generate), (vfunc_generate),
1197 (signal_generate), (interface_generate), (struct_generate),
1198 (union_generate), (boxed_generate), (enum_generate),
1199 (node_generate), (module_generate), (get_type_from_type_id),
1200 (str_replace), (g_igenerator_process_properties),
1201 (g_igenerator_process_signals), (g_igenerator_process_types),
1202 (get_type_from_ctype), (g_igenerator_process_function_symbol),
1203 (g_igenerator_process_unregistered_struct_typedef),
1204 (g_igenerator_process_struct_typedef),
1205 (g_igenerator_process_union_typedef),
1206 (g_igenerator_process_enum_typedef),
1207 (g_igenerator_process_function_typedef),
1208 (g_igenerator_process_constant), (g_igenerator_process_symbols),
1209 (g_igenerator_add_symbol), (g_igenerator_is_typedef),
1210 (g_igenerator_generate), (main), (csymbol_new),
1211 (csymbol_get_const_boolean), (ctype_new), (ctype_copy),
1212 (cbasic_type_new), (ctypedef_new), (cstruct_new), (cunion_new),
1213 (cenum_new), (cpointer_new), (carray_new), (cfunction_new),
1214 (eat_hspace), (eat_line), (read_identifier),
1215 (g_igenerator_parse_macros):
1216 * src/gen-introspect.h:
1218 Import gen-introspect to generate introspection information by
1221 2007-11-30 Jürg Billeter <j@bitron.ch>
1223 * src/gidlnode.c: (g_idl_node_new): support creating callback nodes
1225 2007-11-30 Jürg Billeter <j@bitron.ch>
1227 * src/gidlparser.c: (end_element_handler): Don't leave requires
1230 2007-11-29 Johan Dahlin <johan@gnome.org>
1232 * src/gidlparser.c (parse_type_internal): Add char,
1233 gchar and guchar to the builtin types.
1235 2007-11-26 Johan Dahlin <johan@gnome.org>
1237 * src/ginfo.c: (g_object_info_get_type_name),
1238 (g_object_info_get_type_init):
1239 * src/girepository.c: (g_irepository_is_registered):
1240 * src/girepository.h:
1242 Add g_object_info_get_type_name, g_object_info_get_type_init and
1243 g_irepository_is_registered.
1245 2006-08-14 Jürg Billeter <j@bitron.ch>
1247 * src/gidlparser.c: (end_element_handler): Don't leave
1248 namespace and implements states too early.
1251 2007-11-26 Johan Dahlin <johan@gnome.org>
1253 * src/gmetadata.c (validate_struct_blob):
1254 pass blob_type to validate_function_blob instead of
1255 hard-coding BLOB_TYPE_STRUCT.
1257 Patch by Torsten Schoenfeld, fixes #314190
1259 2006-10-03 Torsten Schoenfeld <tsch@cvs.gnome.org>
1261 * src/compiler.c, src/generate.c, src/gidlnode.c,
1262 src/gidlparser.c, src/ginfo.c, src/girepository.c,
1263 tests/invoke/invoke.c, test/invoke/testfns.c: Hush compiler
1264 warnings about return values, signedness mismatches, unused
1265 variables, and unhandles enum values in switch statements.
1267 * tests/invoke/Makefile.am: Don't install the invoke test program.
1268 Add -I ../../src to the cflags used for the test functions files.
1270 2005-08-31 Torsten Schoenfeld <tsch@cvs.gnome.org>
1272 * src/girepository.h: Export g_invoke_error_quark.
1274 2005-08-31 Torsten Schoenfeld <tsch@cvs.gnome.org>
1276 * src/ginvoke.c: Remove the fallback implementation of
1277 g_function_info_invoke since we now formally depend on libffi.
1279 2005-07-25 Matthias Clasen <mclasen@redhat.com>
1281 * src/Makefile, tests/Makefile, tests/invoke/Makefile:
1282 Remove these files from cvs, as they are now generated.
1284 * src/gmetadata.c (validate_iface_type_blob): Don't
1285 complain if blob->pointer is not set, since that
1286 happens for enum and flag types. (#308935, Gustavo
1289 * Commit an autoconf-conversion patch by
1290 Gustavo Carneiro (#308708)
1292 2005-05-24 Matthias Clasen <mclasen@redhat.com>
1294 * src/compiler.c (main): Use it here to validate
1295 the generated metadata.
1297 * src/gmetadata.[hc]: Add code to validate a
1300 * metadata-format.txt: Updates
1302 2005-05-22 Matthias Clasen <mclasen@redhat.com>
1304 * tests/*: Add struct offsets to field and vfunc
1307 * src/generate.c (write_vfunc_info): Write offset
1308 information for vfuncs.
1310 * src/gidlnode.c (g_idl_node_build_metadata): Write
1311 the struct offsets into the metadata.
1313 * src/gidlparser.c: Parse the offset attributes of
1314 field and vfunc elements.
1316 * src/gidlnode.h: Add offset members to field and
1319 2005-05-21 Matthias Clasen <mclasen@redhat.com>
1323 * gidl.dtd: Updates.
1325 * src/g-idl-offsets.pl: A perl script which reads a .gidl
1326 file, creates, compiles and runs a C file, and folds the
1327 resulting struct offsets back into the .gidl file.
1329 2005-05-20 Matthias Clasen <mclasen@redhat.com>
1331 * src/gidlparser.c (start_field): Make fields in objects
1334 * src/gidlmodule.c: Include string.h
1339 * metadata-format.txt: Cleanup basic types.
1340 * src/*: Adapt to the changes.
1341 * tests/*: Adapt to the changes.
1342 * examples/gdk-pixbuf.gidl: Adapt to the changes.
1344 * src/gidlnode.c (g_idl_node_get_size): Report the correct
1345 size for enum blobs.
1346 (g_idl_node_get_full_size): Report the correct size for
1349 * src/gidlmodule.c (g_idl_module_build_metadata): Add some
1350 error checking for blob sizes.
1352 2005-05-19 Matthias Clasen <mclasen@redhat.com>
1354 * src/gidlnode.c (g_idl_node_build_metadata): Correctly handle
1355 interface types for which is_pointer is FALSE, e.g. enums.
1357 * src/gidlnode.c (g_idl_node_get_full_size)
1358 * src/gidlparser.c (parse_type_internal):
1359 * src/generate.c (write_type_info): Support unspecialized
1360 lists, hashtables and errors. Also emit a '*' after these.
1364 2005-05-17 Matthias Clasen <mclasen@redhat.com>
1368 * metadata-format.txt: Cleanups by Maciej Katafiasz.
1370 2005-05-15 Matthias Clasen <mclasen@redhat.com>
1372 * src/*.c: Change the directory to be addressed by
1373 1-based indexes, and use an index of zero to mean
1376 2005-05-15 Matthias Clasen <mclasen@redhat.com>
1378 * tests/roundtrips.sh (SIMPLE_TESTS): Add union.test.
1380 * tests/union.test: Add a union test.
1382 * src/generate.c: Handle unions.
1384 * src/girepository.h:
1385 * src/ginfo.c: Add GIUnionInfo and functions to access it.
1387 * src/gidlnode.c: Handle GIdlNodeUnion nodes.
1389 * src/gidlparser.c (start_union): Parse <union> elements.
1391 * src/gidlnode.h: Add a GIdlNodeUnion.
1393 * gidl.dtd: Add a <union> element.
1395 * src/gmetadata.c (g_metadata_check_sanity): Check
1398 * src/gmetadata.h: Add union_blob_size to Header,
1401 * metadata-format.txt: Add a UnionBlob.
1403 2005-05-13 Matthias Clasen <mclasen@redhat.com>
1405 * tests/*: Update testcases.
1407 * src/generate.c (write_callable_info): Don't forget to
1408 write transfer and null-ok attributes for return types
1411 * src/girepository.h:
1412 * src/ginfo.c (g_callable_info_may_return_null):
1413 New function to find out if a function may return NULL.
1415 * src/compiler.c (format_output): Make the generated
1418 * README: Point to a recent libffi snapshot.
1420 * tests/invoke/*: Some invoke tests.
1422 * src/Makefile: Add ginvoke.c and the necessary
1425 * src/girepository.h (g_function_info_invoke): Add
1428 * src/ginvoke.c (g_function_info_invoke): Initial
1429 implementation of invoke functionality based on libffi.
1431 * src/gidlnode.c (g_idl_node_build_metadata): Pass the
1432 strings and types hash tables in the right order when
1434 (find_entry_node): Free the name parts.
1436 2005-05-12 Johan Dahlin <johan@gnome.org>
1438 * src/generate.c: Generate consistent end tags.
1442 2005-05-12 Matthias Clasen <mclasen@redhat.com>
1446 * src/gidlparser.c (start_function): Actually add
1447 methods to objects. (Steven Walter)
1449 * src/girepository.h:
1450 * src/ginfo.c: Rename Transfer and Direction to
1451 GITransfer and GIDirection. (Torsten Schoenfeld)
1453 * tests/*: Make tests work with the changes in name
1456 * src/gidlnode.c (find_entry_node): Parse qualified
1457 names and generate xref nodes for them if needed. Don't
1458 require all modules to be loaded any more.
1460 * src/gidlmodule.c (g_idl_module_build_metadata): Choke
1463 * src/ginfo.c (g_object_info_get_parent): Return NULL
1464 if blob->parent is 0. Still need to make sure index
1467 * src/generate.c: Generate qualified names when
1468 referring to non-local types. Emit transfer attribute
1471 * src/compiler.c (format_output): Put the function
1472 attributes where gcc accepts them.
1474 2005-05-11 Matthias Clasen <mclasen@redhat.com>
1476 * src/compiler.c (main): Add a --verbose cmdline option
1477 and only log messages if it is specified.
1480 * src/gidlnode.c (init_stats, dump_stats): Collect some
1481 statistics on string and type sharing.
1483 * src/gidlmodule.c (g_idl_module_build_metadata): Use
1484 g_message() instead of fprintf().
1486 * src/gidlnode.c (g_idl_node_free): Make this more robust.
1487 (g_idl_node_get_size): Implement for structs.
1488 (g_idl_node_get_full_size): Handle parent being NULL.
1489 (serialize_type): Handle lookup failures more gracefully.
1491 2005-05-10 Matthias Clasen <mclasen@redhat.com>
1493 * src/gidlnode.c (g_idl_node_get_full_size): Correct the
1494 size calculation for 2-parameter types and for objects.
1496 * src/compiler.c: Add a cmdline option for debug output
1497 and install a log handler to implement it.
1498 * src/gidlnode.c: Add some debug spew.
1502 * src/gidlmodule.c (g_idl_module_build_metadata): Don't
1503 forget to count the module name when calculating the
1504 required size for the metadata.
1507 * src/gidlparser.c: Fix compiler warnings.
1509 2005-05-09 Matthias Clasen <mclasen@redhat.com>
1511 * src/compiler.c (main): Free the option context.
1513 * gidl.dtd: Clean up handling of names. All elements
1514 have a "name", only the elements corresponding to
1515 actual callable functions (function, method, constructor),
1516 have an additional "symbol" attribute holding the
1517 dlsym()-able function name.
1519 * src/generate.c: Adapt to generate xml matching the
1523 * src/gidlnode.c: Adapt to parse the new dtd.
1525 * tests/*.test: Adjust to the new dtd.
1527 * metadata-format.txt:
1528 * src/gmetadata.h: Remove the short_name field
1530 * src/gmetadata.c: Shrink size of ValueBlob to 12.
1531 * src/girepository.h:
1532 * src/ginfo.c (g_value_info_get_short_name): Removed
1534 2005-05-09 Matthias Clasen <mclasen@redhat.com>
1536 * gidl.dtd: Allow constructors for boxed types,
1537 patch by Jonathan Blandford.
1540 2005-05-09 Matthias Clasen <mclasen@redhat.com>
1542 * --- Initial import ---