1 2008-08-18 Johan Dahlin <johan@gnome.org>
3 * docs/global-module-registry.txt: Update
5 * tests/array.gir: Update with new type proposal
7 * girepository/girepository.c (g_type_tag_to_string):
8 * girepository/girepository.h:
9 * girepository/girnode.c (g_ir_node_get_full_size_internal),
11 * girepository/girnode.h:
12 Make enum serializing functions public. Clean up some whitespace.
14 2008-08-17 Johan Dahlin <johan@gnome.org>
16 * docs/global-module-registry.txt:
17 Add a document for an on disk module registry format
19 2008-08-17 Johan Dahlin <johan@gnome.org>
22 * gir/gio-2.0-good.gir:
25 2008-08-17 Johan Dahlin <johan@gnome.org>
28 * gir/glib-2.0-good.gir:
29 * gir/gobject-2.0-good.gir:
30 * giscanner/cgobject.py:
31 * giscanner/glibtransformer.py:
32 Regenerate GObject & GType.
33 Avoid warnings when generating gobject-2.0.gir.
34 Introspect a little more, and skip *_get_type functions.
36 2008-08-17 Colin Walters <walters@verbum.org>
38 * gir/glib-2.0.gir, gir/gobject-2.0.gir:
39 Rename to -good, always generate during build.
40 * gir/Makefile.am: Ensure .gir files dep on
42 * Makefile.am: Switch build order to ensure
43 the scanner is ready before we do gir/.
44 * tools/g-ir-scanner: Look for .git too.
46 2008-08-17 Johan Dahlin <johan@gnome.org>
48 * girepository/gtypelib.c (validate_enum_blob):
49 * giscanner/glibtransformer.py:
50 * giscanner/transformer.py:
51 Remove resolve_possible_typedefs, it was unused.
52 Allow multiple enum values of the sample value in an enum,
53 since it's actually pretty common.
54 Register enums so they can be resolved too.
56 2008-08-16 Johan Dahlin <johan@gnome.org>
58 * giscanner/girparser.py:
59 Parse enumeration/bitfield.
61 2008-08-16 Johan Dahlin <johan@gnome.org>
63 * giscanner/girparser.py:
66 2008-08-16 Johan Dahlin <johan@gnome.org>
68 * giscanner/glibtransformer.py:
69 Resolve type names for alias targets
70 * giscanner/transformer.py:
71 Skip FILE* parameters fow now
73 2008-08-16 Johan Dahlin <johan@gnome.org>
76 * gir/gobject-2.0.gir:
79 * tests/scanner/Makefile.am:
82 2008-08-15 Colin Walters <walters@verbum.org>
84 * giscanner/glibtransformer.py: Explicitly construct
85 new list, since we're deleting as we iterate.
86 Don't delete all structures which end in Class; just
87 ones which have a paired GObject.
88 Fix printing of type warning.
89 * giscanner/transformer.py: Make strip_namespace_object
90 be the identity function if it doesn't match the
93 2008-08-15 Colin Walters <walters@verbum.org>
95 * giscanner/cgobject.py: Define yet more argument
96 prototypes; fix prototype for g_type_fundamental.
98 2008-08-14 Johan Dahlin <johan@gnome.org>
101 * tests/constant.gir:
104 * tools/generate.c (write_struct_info):
105 Fix generator for constant/gobject/struct
107 2008-08-14 Johan Dahlin <johan@gnome.org>
111 * tools/generate.c (write_enum_info):
112 Fix generation of enum/bitfields
114 2008-08-14 Johan Dahlin <johan@gnome.org>
116 * girepository/girparser.c (start_field), (start_constant),
117 (start_type), (end_element_handler):
118 Clear up constant parsing
123 * tools/generate.c (write_callable_info), (write_function_info),
124 (write_callback_info), (write_constant_info), (write_signal_info),
125 (write_vfunc_info), (write_property_info), (write_object_info),
126 (write_interface_info):
127 Constants/Signals are handled now.
129 2008-08-14 Johan Dahlin <johan@gnome.org>
131 * girepository/girparser.c (start_type):
132 Don't require c:type.
136 Update, remove parts we don't support yet
137 * tests/roundtrips.sh:
139 * tools/generate.c (write_type_info), (write_field_info),
140 (write_callable_info), (write_struct_info):
141 Make it emit proper gir.
143 2008-08-14 Johan Dahlin <johan@gnome.org>
145 * giscanner/transformer.py:
146 New internal function for adding a new node.
148 2008-08-14 Johan Dahlin <johan@gnome.org>
151 Define an internal _H_ variable so we skip parsing both
152 i18n headers, only one is needed.
154 Add the glib-2.0.gir too.
155 * giscanner/glibast.py:
156 Add gconstpointer as an alias for ANY
157 * giscanner/transformer.py:
158 Do not lower case enumeration names per se.
159 Skip functions which has parameters called 'va_list'
161 2008-08-14 Colin Walters <walters@verbum.org>
163 * giscanner/transformer.py: Comment data structures.
164 Also squash pointers in resolve_type_name to correspond
165 with what we do for params.
166 * giscanner/glibtransformer.py: Print warnings in more
167 situations. Rework checks for method/constructor to
168 look up in our GType database instead of just checking
169 for *. Avoid generating <record> for GObject which
170 duplicate the <class>.
171 * gir/Makefile.am: Generate glib-2.0.gir and gobject-2.0.gir
174 2008-08-14 Johan Dahlin <johan@gnome.org>
176 * giscanner/girwriter.py:
177 * giscanner/glibast.py:
178 * giscanner/glibtransformer.py:
179 * giscanner/transformer.py:
182 Add pyflakes.py and run it in make check.
183 Update the source code to fix the errors reported by
186 2008-08-14 Johan Dahlin <johan@gnome.org>
189 * giscanner/girparser.py:
190 * giscanner/glibast.py:
191 * giscanner/glibtransformer.py:
192 Refactor the parser a bit.
193 Add parent type to interfaces and update callsites.
195 2008-08-14 Johan Dahlin <johan@gnome.org>
197 * giscanner/glibtransformer.py:
198 * giscanner/utils.py:
199 Refactor a bit, avoid isinstance and add a method
200 for each type we parse.
202 2008-08-14 Johan Dahlin <johan@gnome.org>
205 * giscanner/girparser.py:
206 * giscanner/glibtransformer.py:
208 Run pep8.py in make check, fix old errors.
210 2008-08-13 Colin Walters <walters@verbum.org>
212 * giscanner/girparser.py: Parse records.
214 2008-08-13 Colin Walters <walters@verbum.org>
216 * gir/Makefile.am: Install again.
217 * gir/gobject-2.0.gir: Add some more bits.
219 2008-08-13 Colin Walters <walters@verbum.org>
221 * gir/gobject-2.0.gir: Use correct namespace, add GType.
222 * giscanner/girparser.py: Handle aliases.
223 * giscanner/transformer.py: Record aliases. Make resolver
224 functions public; we now call into these explicitly from
225 glibtransformer. Handle resolving aliases.
226 * giscanner/glibtransformer.py: Separate our internal namespace
227 from included ones. Call up into transformer's resolver functions.
229 2008-08-13 Johan Dahlin <johan@gnome.org>
231 * girepository/girnode.c (g_ir_node_get_full_size_internal):
232 * girepository/girparser.c (start_class):
233 * giscanner/glibtransformer.py:
234 Allow get_type to be None, set a get_type for GInitiallyUnowned too.
236 2008-08-13 Johan Dahlin <johan@gnome.org>
238 * giscanner/cgobject.py:
239 Register GInitiallyUnowned
240 * giscanner/girwriter.py:
241 * giscanner/glibtransformer.py:
242 Special case GObject/GInitially owned as they are a bit special to use.
244 2008-08-13 Colin Walters <walters@verbum.org>
246 * tests/scanner/Foo-expected.gir, tests/scanner/utility-expected.gir:
247 Object is in GObject namespace.
249 2008-08-13 Colin Walters <walters@verbum.org>
251 * giscanner/girparser.py: Fix processing of functions
254 2008-08-13 Colin Walters <walters@verbum.org>
256 * giscanner/girparser.py: Parse more than just <class.
257 * giscanner/glibtransformer.py: Put aliases in a separate
258 data structure since their name is not canonicall.
259 * giscanner/transformer.py: Handle resolving type names
262 2008-08-13 Johan Dahlin <johan@gnome.org>
264 * tools/g-ir-scanner:
265 Allow multiple libraries
266 * giscanner/glibtransformer.py:
267 Rename load_library to add_library, traverse over all libraries
268 when trying to resolve a function
270 2008-08-12 Colin Walters <walters@verbum.org>
272 * giscanner/transformer.py: Record typedefs as <alias> elements.
273 Also attempt to look up types in external namespaces.
274 * giscanner/girwriter.py: Write them.
275 * giscanner/glibtransformer.py: Rework resolver using real instanceof
276 checks. Resolve interface methods and properties.
277 * tests/scanner/foo-object.h: Add a method with typedef.
278 * tests/scanner/Foo-expected.gir: Update.
279 * girepository/girnode.c: Debug tweaks.
280 * girepository/girparser.c: Make a first pass through the XML where we
281 record all the aliases. This lets us resolve them as we go through the
283 * gir/Makefile.am: Don't install gobject-2.0.gir; we want that to come
286 2008-08-12 Colin Walters <walters@verbum.org>
288 * giscanner/glibtransformer.py: Resolve typedefs (e.g. AtkAttributeSet -> GSList).
289 Correctly do subclasseing in 2nd pass resolution. Handle callbacks in structure
291 * giscanner/transformer.py: Record typedefs and expose public API for resolving
293 * tests/scanner/Foo-expected.gir: Fix expected callback types.
295 2008-08-12 Colin Walters <walters@verbum.org>
297 * giscanner/glibtransformer.py: Also transform object properties.
299 2008-08-12 Colin Walters <walters@verbum.org>
301 * giscanner/glibtransformer.py: Also transform callbacks
302 and structure field types.
303 * tests/scanner/Fooe-expected.gir: Update to expect correct
304 names for callbacks and structs.
306 2008-08-12 Colin Walters <walters@verbum.org>
308 * girepository/girparser.c: Handle 'any'.
309 * tests/scanner/Foo-expected.gir, tests/scanner/foo-object.h:
312 2008-08-12 Colin Walters <walters@verbum.org>
314 * giscanner/glibtransformer.py: We need to do type
315 resolution in a second pass after we've seen all the
318 2008-08-12 Colin Walters <walters@verbum.org>
320 * tests/scanner/Foo-expected.gir, tests/scanner/foo-object.h:
321 Add enum return value.
322 * giscanner/glibtransformer.py: Transform function return types
325 2008-08-12 Colin Walters <walters@verbum.org>
327 * tests/scanner/Makefile.am: Dep .gir files on scanner
328 sources too. Also remove @ so we see scanner invocations.
330 2008-08-12 Colin Walters <walters@verbum.org>
332 * girepository/girparser.c, girepository/gtypelib.c,
333 girepository/gtypelib.h, girepository/girnode.c:
334 Remove usage of (GAPI-oriented) TypeTag in favor of
335 GITypeTag from girepository.h.
337 2008-08-10 Colin Walters <walters@verbum.org>
339 * tests/roundtrips.sh: Use the correct tests.
341 2008-08-10 Colin Walters <walters@verbum.org>
343 * giscanner/cgobject.py: Declare/wrap a few more functions.
344 Fix parameter types for g_object_new and g_type_fundamental.
346 2008-08-10 Colin Walters <walters@verbum.org>
348 * giscanner/cgobject.py: Add new decorator @gwrap which forces
349 us to declare types for both return value and parameters. The
350 ctypes default of 'int' is bad because it hides 32/64 bit
351 problems. Convert all existing functions to use it.
353 2008-08-09 Johan Dahlin <johan@gnome.org>
355 * giscanner/__init__.py:
357 * giscanner/cgobject.py:
358 * giscanner/gidlparser.py:
359 * giscanner/gidlwriter.py:
360 * giscanner/girparser.py:
361 * giscanner/girwriter.py:
362 * giscanner/glibast.py:
363 * giscanner/glibtransformer.py:
364 * giscanner/odict.py:
365 * giscanner/sourcescanner.py:
366 * giscanner/transformer.py:
367 * giscanner/utils.py:
368 * giscanner/xmlwriter.py:
369 * tools/g-ir-scanner:
373 2008-08-09 Johan Dahlin <johan@gnome.org>
376 * relaxng/c-types.xml:
377 * relaxng/g-types.xml:
378 * relaxng/relaxng.rng:
380 Remove outdated relaxng schemas.
382 2008-08-09 Johan Dahlin <johan@gnome.org>
385 Rename metadata to typelib in variable names,
388 2008-08-09 Johan Dahlin <johan@gnome.org>
392 Remove old C scanner, which got rewritten in python.
394 2008-08-09 Johan Dahlin <johan@gnome.org>
396 * girepository/Makefile.am:
406 Move shared *.[ch] files to girepository from tools
408 2008-08-09 Johan Dahlin <johan@gnome.org>
413 * tests/constant.test:
416 * tests/function.test:
417 * tests/gobject.test:
418 * tests/interface.test:
425 Rename *.test to *.gir
427 2008-08-09 Johan Dahlin <johan@gnome.org>
431 * tests/parser/Foo-expected.gir:
432 * tests/parser/Makefile.am:
433 * tests/parser/foo-object.h:
434 * tests/parser/foo.c:
435 * tests/parser/utility-expected.gir:
436 * tests/parser/utility.c:
437 * tests/parser/utility.h:
438 * tests/scanner/Makefile.am:
439 Rename tests/parser to test/scanner
441 2008-08-08 Colin Walters <walters@verbum.org>
443 * tests/roundtrips.sh: Use local .gir files again.
445 2008-08-08 Colin Walters <walters@verbum.org>
447 * tests/invoke/Makefile.am: .gir file depends on libtool
450 2008-08-08 Colin Walters <walters@verbum.org>
452 * tools/girnode.c: Pass through parent node so we can
453 print the node whose child is NULL, if that occurs.
455 2008-08-08 Johan Dahlin <johan@gnome.org>
458 Disable roundtrip tests which are not yet working
459 * tests/invoke/testfns.gir:
462 2008-08-08 Johan Dahlin <johan@gnome.org>
464 * giscanner/girwriter.py:
466 * giscanner/glibast.py:
467 * giscanner/glibtransformer.py:
468 Swap order of members, to keep it consistent with
471 2008-08-08 Johan Dahlin <johan@gnome.org>
473 * girepository/gtypelib.c (validate_header):
474 * girepository/gtypelib.h:
476 * giscanner/girwriter.py:
477 * giscanner/sourcescanner.c (gi_source_symbol_ref),
478 (gi_source_symbol_unref):
481 * tests/constant.test:
484 * tests/function.test:
485 * tests/gobject.test:
486 * tests/interface.test:
487 * tests/invoke/Makefile.am:
488 * tests/invoke/testfns.xml:
490 * tests/parser/Makefile.am:
491 * tests/roundtrips.sh:
498 * tools/compiler.c (main):
499 * tools/generate.c (write_callable_info), (write_function_info),
501 * tools/gidlmodule.c:
502 * tools/gidlmodule.h:
505 * tools/gidlparser.c:
506 * tools/gidlparser.h:
507 * tools/gidlwriter.c:
508 * tools/gidlwriter.h:
509 * tools/scanner.c (create_node_from_gtype),
510 (create_node_from_ctype), (g_igenerator_process_properties),
511 (g_igenerator_process_signals), (g_igenerator_create_object),
512 (g_igenerator_create_interface), (g_igenerator_create_boxed),
513 (g_igenerator_create_enum), (g_igenerator_create_flags),
514 (g_igenerator_process_function_symbol),
515 (g_igenerator_process_unregistered_struct_typedef),
516 (g_igenerator_process_struct_typedef),
517 (g_igenerator_process_union_typedef),
518 (g_igenerator_process_enum_typedef),
519 (g_igenerator_process_function_typedef),
520 (g_igenerator_process_constant), (g_igenerator_process_symbols),
521 (g_igenerator_add_module), (g_igenerator_add_include_idl):
522 Merge in the gir-compiler branch.
523 Thanks to Philip and Colin for their help.
525 2008-07-26 Colin Walters <walters@verbum.org>
527 * tools/Makefile.am (bin_PROGRAMS): Install g-idl-compiler
528 and g-idl-generate to go along with how we're changing this
529 module to be installed.
530 * gobject-introspection-1.0.pc.in: Set up Cflags and Libs.
532 2008-07-24 Colin Walters <walters@verbum.org>
534 * girepository/girepository.c (g_irepository_register): Add
535 environment variable G_IREPOSITORY_VERBOSE so we can print
536 out what we're doing.
537 * girepository/girepository.c (g_irepository_register_file):
538 Add GError error message to g_debug call.
540 2008-07-08 Jürg Billeter <j@bitron.ch>
542 * giscanner/glibast.py:
546 2008-06-21 Johan Dahlin <jdahlin@async.com.br>
548 * giscanner/girparser.py (GIRParser._parse_api): Ignore a few
551 2008-06-20 Johan Dahlin <jdahlin@async.com.br>
554 * giscanner/girwriter.py:
555 * giscanner/transformer.py:
556 * tests/parser/Foo-expected.gir:
557 * tests/parser/foo-object.h:
558 * tests/parser/foo.c (foo_object_allow_none):
559 Add support for gtk-doc annotations for allow-none.
562 2008-06-19 Johan Dahlin <jdahlin@async.com.br>
565 * giscanner/girwriter.py:
566 * giscanner/glibast.py:
567 * giscanner/glibtransformer.py:
568 * giscanner/transformer.py:
569 * tests/parser/Foo-expected.gir:
570 Start using abstract type instead of the raw C types.
571 Register a bunch of glib types we care about.
573 2008-06-19 Rob Taylor <rob.taylor@codethink.co.uk>
578 2008-06-08 Philip Van Hoof <pvanhoof@gnome.org>
580 * girepository/girepository.c:
581 * girepository/gtypelib.c:
582 * girepository/ginfo.c:
583 * girepository/ginvoke.c:
584 * girepository/girepository.h:
585 * girepository/gtypelib.h:
586 * girepository/gmetadata.c:
587 * girepository/Makefile.am:
588 * girepository/gmetadata.h:
590 * tools/gidlmodule.c:
593 * tools/gidlmodule.h:
594 * tools/gidlparser.c:
596 Renamed GMetadata to GTypelib
598 2008-06-07 Johan Dahlin <jdahlin@async.com.br>
600 * giscanner/xmlwriter.py:
601 Improve line wrapping when > 79 charaters
603 2008-06-05 Jürg Billeter <j@bitron.ch>
606 * giscanner/girwriter.py:
607 * giscanner/transformer.py:
608 Use <type> element for field types
609 * tests/parser/Foo-expected.gir:
612 2008-06-04 Johan Dahlin <jdahlin@async.com.br>
614 * giscanner/glibtransformer.py:
615 Fix a bug which prevented GdkEvent from being generated
617 2008-06-03 Johan Dahlin <jdahlin@async.com.br>
619 * giscanner/Makefile.am:
621 * giscanner/girwriter.py:
622 * giscanner/glibast.py:
623 * giscanner/glibtransformer.py:
624 * giscanner/transformer.py:
625 * giscanner/utils.py:
626 * tests/parser/Foo-expected.gir:
627 Improve enum member parsing and introspection
629 2008-05-31 Johan Dahlin <jdahlin@async.com.br>
631 * giscanner/scannerparser.y:
632 * giscanner/sourcescanner.h:
633 * giscanner/sourcescanner.py:
634 Add a new source type enum for member.
635 Use __repr__ for improved debugging
636 * giscanner/girparser.py:
638 * giscanner/transformer.py:
639 Improve parsing of struct members.
640 * tests/parser/foo-object.h:
643 2008-05-31 Johan Dahlin <jdahlin@async.com.br>
645 * giscanner/xmlwriter.py:
646 Improve error reporting when trying to quote None.
647 * giscanner/girparser.py:
648 Do not print warnings when including more complete .gir files
649 * giscanner/girwriter.py:
650 Do not require a name for parameters, add a todo for singletons
651 * giscanner/glibtransformer.py:
652 Refactor the way structs are done, add a couple of hacks to allow
654 * giscanner/transformer.py:
655 Add enough hacks so cairo, atk and pango.gir can be parsed properly
656 * gobject-introspection-1.0.pc.in:
657 Export girdir, so we can access gobject-2.0.gir from outside
659 2008-05-31 Johan Dahlin <jdahlin@async.com.br>
661 * tools/g-ir-scanner:
662 * tests/parser/Makefile.am:
663 Update sys.path before running the parser so we don't have
664 to setup PYTHONPATH ourselves.
668 * girepository/Makefile.am:
669 * giscanner/transformer.py:
670 * gobject-introspection-1.0.pc.in:
671 * gobject-introspection.pc.in:
674 Rename pkg-config name to gobject-introspection-1.0,
675 Do not installed anything which is not using the gir format.
676 Disable compililation the old C scanner, but still keep the source
677 until all the remaning functionallity has been ported.
679 2008-05-31 Johan Dahlin <jdahlin@async.com.br>
681 * giscanner/giscannermodule.c (symbol_get_ident): Prevent
682 a crash when symbol->indent is NULL.
684 * giscanner/sourcescanner.py (ctype_name): Add ctype_name,
685 a function to convert a CTYPE symbol to a string
687 2008-05-24 Johan Dahlin <jdahlin@async.com.br>
690 * giscanner/girwriter.py:
691 * giscanner/giscannermodule.c
692 (pygi_source_scanner_append_filename),
693 (pygi_source_scanner_parse_file):
694 * giscanner/glibtransformer.py:
695 * giscanner/sourcescanner.py:
696 Revert back to using temporary files to send in headers.
697 Allow Functions to be passed in as callbacks, add a couple
698 of try/excepts missing features.
699 We can now scan pango
701 2008-05-08 Johan Dahlin <johan@gnome.org>
703 * giscanner/glibtransformer.py:
704 * giscanner/transformer.py:
705 Move namespace stripping glibtransformer->transformer
707 2008-05-08 Johan Dahlin <johan@gnome.org>
710 * giscanner/girwriter.py:
711 * giscanner/glibtransformer.py:
712 * giscanner/transformer.py:
713 * tools/g-ir-scanner:
714 Introduce a namespace ast node
716 2008-05-05 Johan Dahlin <johan@gnome.org>
718 * giscanner/__init__.py:
719 * giscanner/sourcescanner.py:
720 * giscanner/transformer.py:
721 Move sourcescanner symbols to the sourcescanner module, instead
722 of in the global __init__ namespace.
724 2008-05-03 Johan Dahlin <johan@gnome.org>
726 * giscanner/glibtransformer.py:
727 * tools/g-ir-scanner:
728 Handle missing parameters better, allow - and + in .la dlname
731 2008-05-03 Johan Dahlin <johan@gnome.org>
733 * giscanner/__init__.py:
735 * giscanner/girwriter.py:
736 * giscanner/glibtransformer.py:
737 * giscanner/transformer.py:
738 Parse struct fields properly, improve debugging.
740 2008-04-29 Johan Dahlin <johan@gnome.org>
743 * giscanner/girwriter.py:
744 * giscanner/transformer.py:
745 * tests/parser/Foo-expected.gir:
747 Use transfer-ownership everywhere, to mark ownership/calle/caller etc.
749 2008-04-29 Johan Dahlin <jdahlin@async.com.br>
752 * docs/g-ir-scanner.1:
753 * metadata-annotations-proposal.txt:
754 * metadata-format.txt:
755 Add a basic, unfinshed man page for g-ir-scanner, move documents into .txt
757 2008-04-29 Johan Dahlin <jdahlin@async.com.br>
759 * giscanner/girwriter.py:
760 * giscanner/glibtransformer.py:
761 * giscanner/transformer.py:
762 * giscanner/xmlwriter.py:
763 * tests/parser/Foo-expected.gir:
764 * tests/parser/foo-object.h:
765 Write record/structs to gir file too. Add a couple of tests,
766 fix an off by one error in xmlwriter.py.
768 2008-04-28 Johan Dahlin <johan@gnome.org>
770 * giscanner/xmlwriter.py: Calculate the line length properly,
771 include the provided extra indentation in the calculation, really.
773 2008-04-28 Johan Dahlin <jdahlin@async.com.br>
776 * giscanner/glibast.py:
777 * giscanner/glibtransformer.py:
778 * giscanner/transformer.py:
779 * tools/g-ir-scanner:
780 Add a --strip-prefix and sort out confusion between names and symbols
781 for functions and struct + derivaties.
782 Refactor bootstrap of g-ir-scanner, so we can set options on
783 Transformer() before parsing everything.
785 2008-04-28 Johan Dahlin <johan@gnome.org>
787 * giscanner/transformer.py (Transformer._traverse_one): Avoid recursion
788 when scanning girepository.h
790 * giscanner/sourcescanner.py (SourceScanner._preprocess): Define
791 a __GI_SCANNER__ when we run.
793 2008-04-28 Johan Dahlin <jdahlin@async.com.br>
796 * giscanner/girwriter.py:
797 * giscanner/glibast.py:
798 * giscanner/glibtransformer.py:
799 * tests/parser/Foo-expected.gir:
800 * tests/parser/utility-expected.gir:
801 Rename most c:identifier to c:type. Add new ones to
802 class/interface/enum/boxed.
804 2008-04-28 Johan Dahlin <jdahlin@async.com.br>
807 * giscanner/girwriter.py:
808 * giscanner/glibtransformer.py:
809 * tests/parser/Foo-expected.gidl:
810 * tests/parser/Makefile.am:
811 Move c:identifier from return-value to subchild type,
812 as per Jürgs suggestion
814 2008-04-28 Johan Dahlin <johan@gnome.org>
816 * giscanner/girwriter.py:
817 * tests/parser/Foo-expected.gir:
818 Write property.type as a child node.
820 2008-04-27 Johan Dahlin <johan@gnome.org>
825 * gidl/gobject-2.0.gidl:
827 * gir/gobject-2.0.gir:
828 * tests/parser/Makefile.am:
829 Replace the GObject gidl with a GObject gir.
831 2008-04-27 Johan Dahlin <johan@gnome.org>
833 * tools/Makefile.am (bin_SCRIPTS): g-ir-scanner is a script,
836 * giscanner/xmlwriter.py:
837 * tests/parser/Foo-expected.gir:
838 Include indentation in line length calculation
840 2008-04-27 Johan Dahlin <johan@gnome.org>
842 * giscanner/girparser.py:
843 Prettify NS parsing using elementtree.
845 2008-04-27 Johan Dahlin <johan@gnome.org>
848 * giscanner/Makefile.am:
849 * giscanner/girparser.py:
850 * giscanner/glibtransformer.py:
851 * tests/parser/Foo-expected.gidl:
852 * tests/parser/Foo-expected.gir:
853 * tests/parser/Makefile.am:
854 * tests/parser/utility-expected.gidl:
855 * tests/parser/utility-expected.gir:
856 * tools/g-ir-scanner:
857 Switch over to GIR as the default format. Add a simple GIDL
859 Update tests and fix simplify makefiles by depending
860 on GNU make extensions.
862 2008-04-27 Johan Dahlin <johan@gnome.org>
864 * giscanner/xmlwriter.py:
865 Wrap attributes for lines which are wider than 79 characters
867 * giscanner/scannerlexer.l:
868 Allow parenthesis in annotations
871 * giscanner/gidlwriter.py:
872 * giscanner/girwriter.py:
873 * giscanner/glibtransformer.py:
874 * giscanner/transformer.py:
875 Add initial sequence support, including annotation.
876 Refactor type handling a bit.
878 2008-04-27 Johan Dahlin <johan@gnome.org>
880 * tests/parser/Foo-expected.gidl:
881 * tests/parser/foo-object.h:
882 * tests/parser/foo.c (foo_object_class_init),
883 (foo_object_get_strings), (foo_object_get_objects):
884 Add two new functions to check sequence return values.
885 Also fixes a compilation warning.
887 2008-04-27 Johan Dahlin <johan@gnome.org>
889 * giscanner/giscannermodule.c (]): Cast the getter, avoids
890 a compilation warning.
892 * tools/Makefile.am (g_ir_scanner_SOURCES):
893 g-ir-scanner has no sources.
895 2008-04-25 Johan Dahlin <johan@gnome.org>
897 * giscanner/Makefile.am:
899 * giscanner/gidlparser.py:
900 * giscanner/gidlwriter.py:
901 * giscanner/girwriter.py:
902 * giscanner/glibast.py:
903 * giscanner/glibtransformer.py:
904 * giscanner/transformer.py:
905 Split out nodes to ast.py and glibast.py
907 2008-04-25 Johan Dahlin <jdahlin@async.com.br>
909 * giscanner/Makefile.am:
910 * giscanner/gidlparser.py:
911 * giscanner/gidlwriter.py:
912 * giscanner/girwriter.py:
913 * giscanner/glibtransformer.py:
914 * giscanner/gobjecttreebuilder.py:
915 * giscanner/transformer.py:
916 * giscanner/treebuilder.py:
917 * tools/g-ir-scanner:
918 Rename treebuilder to transformer and
919 gobjectreebuilder to glibtransformer.
921 2008-04-25 Johan Dahlin <jdahlin@async.com.br>
923 * giscanner/Makefile.am:
924 * giscanner/__init__.py:
925 * giscanner/cgobject.py:
926 * giscanner/gidlparser.py:
927 * giscanner/gidlwriter.py:
928 * giscanner/girwriter.py:
929 * giscanner/gobjecttreebuilder.py:
930 * giscanner/odict.py:
931 * giscanner/sourcescanner.py:
932 * giscanner/treebuilder.py:
933 * giscanner/xmlwriter.py:
935 * tools/g-ir-scanner:
936 Add LGPLv2 license header and install all python files
938 2008-04-25 Johan Dahlin <jdahlin@async.com.br>
941 * giscanner/gidlwriter.py:
942 * giscanner/giscannermodule.c (pygi_source_directive_new),
943 (directive_get_options), (pygi_source_symbol_new),
944 (symbol_get_base_type), (pygi_source_type_new),
945 (type_get_base_type), (type_get_child_list),
946 (pygi_source_scanner_get_symbols),
947 (pygi_source_scanner_get_directives):
948 * giscanner/gobjecttreebuilder.py:
949 * giscanner/sourcescanner.py:
950 * giscanner/treebuilder.py:
951 * tests/parser/foo-object.h:
952 Add support for virtual methods.
953 Pair struct FooClass with struct Foo.
954 Clean up the SourceScanner bindings a bit.
955 Add a testcase for virtual methods.
957 2008-04-25 Johan Dahlin <jdahlin@async.com.br>
959 * giscanner/cgobject.py:
960 * giscanner/gidlwriter.py:
961 * giscanner/gobjecttreebuilder.py:
962 Add support for signals
964 * tests/parser/foo.c (foo_object_class_init):
966 Add a signal and update the expected output.
968 2008-04-24 Johan Dahlin <jdahlin@async.com.br>
970 * giscanner/gidlwriter.py:
971 * giscanner/girwriter.py:
972 * giscanner/giscannermodule.c (directive_get_name),
973 (directive_get_value), (directive_get_options),
974 (symbol_get_directives), (symbol_set_directives),
975 (pygi_source_scanner_parse_file),
976 (pygi_source_scanner_lex_filename),
977 (pygi_source_scanner_get_directives), (init_giscanner):
978 * giscanner/sourcescanner.c (gi_source_scanner_get_directives):
979 * giscanner/sourcescanner.h:
980 * giscanner/sourcescanner.py:
981 * giscanner/treebuilder.py:
982 * tools/g-ir-scanner:
983 Add support for source/header annotations.
985 2008-04-22 Johan Dahlin <jdahlin@async.com.br>
987 * giscanner/gidlwriter.py:
988 * giscanner/girwriter.py:
989 * giscanner/gobjecttreebuilder.py:
990 * giscanner/treebuilder.py:
991 Add support for Callbacks
993 2008-04-22 Havoc Pennington <hp@pobox.com>
995 * girepository/ginvoke.c (g_function_info_invoke): If a symbol is
996 not in metadata->module, look for it in the global module, in case
997 some other object or the app itself provides the symbol.
999 2008-04-22 Havoc Pennington <hp@pobox.com>
1001 * girepository/gmetadata.c (_g_metadata_init): hack to avoid
1002 dlopening a library that is already in the main app, by checking
1003 whether one of the lib's symbols is already loaded.
1005 2008-04-22 Johan Dahlin <jdahlin@async.com.br>
1007 * tests/parser/Foo-expected.gidl:
1008 * tests/parser/foo-object.h:
1011 2008-04-22 Havoc Pennington <hp@pobox.com>
1013 * girepository/ginfo.c (g_interface_info_find_method):
1014 Use interface_blob_size not object_blob_size to compute offset.
1016 2008-04-22 Havoc Pennington <hp@pobox.com>
1018 * girepository/gmetadata.c (_g_metadata_init): remove
1019 G_MODULE_BIND_LOCAL flag when loading libraries, since some libs
1020 (Glade and Clutter for example) rely on being loaded globally.
1022 2008-04-22 Havoc Pennington <hp@pobox.com>
1024 * girepository/ginfo.c (g_registered_type_info_get_g_type): new
1025 function to get the GType given a RegisteredTypeInfo
1027 2008-04-22 Johan Dahlin <johan@gnome.org>
1029 * COPYING: Add a LGPL license, to prevent automake to
1030 put in a copy of GPL here. Pointed out by Havoc.
1032 * girepository/ginfo.c (g_info_from_entry), (g_type_info_new),
1033 (g_type_info_is_pointer), (g_type_info_get_tag),
1034 (g_type_info_get_param_type), (g_type_info_get_interface),
1035 (g_type_info_get_array_length), (g_type_info_is_zero_terminated),
1036 (g_type_info_get_n_error_domains), (g_type_info_get_error_domain),
1037 (g_error_domain_info_get_codes), (g_enum_info_get_value),
1038 (g_object_info_get_interface), (g_object_info_get_field),
1039 (g_interface_info_get_prerequisite),
1040 (g_signal_info_get_class_closure), (g_constant_info_get_value):
1041 * girepository/ginvoke.c (get_ffi_type):
1042 * girepository/girepository.h:
1043 * girepository/gmetadata.c (g_metadata_get_dir_entry),
1044 (g_metadata_check_sanity), (validate_header),
1045 (validate_array_type_blob), (validate_iface_type_blob),
1046 (validate_param_type_blob), (validate_error_type_blob),
1047 (validate_type_blob), (validate_constant_blob),
1048 (validate_struct_blob), (validate_enum_blob):
1049 * girepository/gmetadata.h:
1050 * tests/Makefile.am:
1051 * tests/invoke/Makefile.am:
1052 * tests/invoke/invoke.c (main):
1053 * tests/roundtrips.sh:
1054 * tools/Makefile.am:
1055 * tools/compiler.c (format_output), (write_out_metadata), (main):
1056 * tools/generate.c (write_type_name), (write_type_info),
1057 (write_constant_value), (write_enum_info), (load_metadata), (main):
1058 * tools/gidlcompilercontext.c:
1059 * tools/gidlcompilercontext.h:
1060 * tools/gidlcompilerentrynode.c:
1061 * tools/gidlcompilerentrynode.h:
1062 * tools/gidlcompilertypenode.c:
1063 * tools/gidlcompilertypenode.h:
1064 * tools/gidlmodule.c (g_idl_module_build_metadata):
1065 * tools/gidlmodule.h:
1066 * tools/gidlnode.c (init_stats), (dump_stats),
1067 (g_idl_node_get_size), (g_idl_node_get_full_size),
1068 (g_idl_node_cmp), (g_idl_node_can_have_member),
1069 (g_idl_node_add_member), (g_idl_node_param_direction_string),
1070 (parse_int_value), (parse_uint_value), (parse_float_value),
1071 (parse_boolean_value), (find_entry_node), (find_entry),
1072 (serialize_type), (g_idl_node_build_metadata), (write_string):
1074 * tools/gidlparser.c (parse_type_internal):
1075 * tools/quote-file.sh:
1076 Revert revisions 157,149-148,136-129 and 120.
1077 Move back to using g-idl-generate to generate the metadata and
1078 avoids dependency on a c compiler.
1080 2008-04-22 Johan Dahlin <jdahlin@async.com.br>
1082 * giscanner/girwriter.py:
1083 * tools/g-ir-scanner:
1084 Add an initial GIR writer and a --format option to g-ir-scanner
1086 2008-04-21 Johan Dahlin <johan@gnome.org>
1088 * giscanner/cgobject.py: Use ctypes.util.find_library to locate
1089 gobject-2.0 and raise ImportError if not found.
1091 * giscanner/gidlparser.py:
1092 * giscanner/gidlwriter.py:
1093 * giscanner/gobjecttreebuilder.py:
1094 * tools/g-ir-scanner:
1095 Add a --include argument to include types from other idls.
1096 Add a minimalistic GIDL parser (just objects for now)
1097 Implement resolving of external type references and use it to
1098 resolve parent types, argument types and return types.
1100 2008-04-21 Johan Dahlin <johan@gnome.org>
1102 * giscanner/gidlwriter.py:
1103 * giscanner/gobjecttreebuilder.py:
1104 * giscanner/treebuilder.py:
1105 Add support for properties.
1106 Refactor Class/Interface support a bit, to share more code and
1107 always initialize their method attribute to an empty list.
1109 2008-04-21 Johan Dahlin <johan@gnome.org>
1111 * giscanner/cgobject.py:
1112 Add a workaround for a glib bug interface introspection bug
1113 (object_interface_list_properties, object_class_list_properties):
1114 Cast the return value to GParamSpec.
1116 * tests/parser/Foo-expected.gidl: Update
1117 * tests/parser/foo.c: Add a string property
1119 * giscanner/gobjecttreebuilder.py:
1120 After stripping namespaces, remove the original
1121 item to avoid duplication (GtkButton struct and Button object)
1123 2008-04-21 Johan Dahlin <johan@gnome.org>
1125 * giscanner/gobjecttreebuilder.py:
1126 * giscanner/treebuilder.py:
1127 Strip namespaces before objects, so we'll export
1128 GtkButton as Button in the gtk namespace
1130 2008-04-21 Johan Dahlin <johan@gnome.org>
1132 * giscanner/gidlwriter.py:
1133 * giscanner/gobjecttreebuilder.py:
1134 * giscanner/treebuilder.py:
1135 Add constructors for object/boxed types.
1137 2008-04-21 Johan Dahlin <johan@gnome.org>
1139 * giscanner/gidlwriter.py:
1140 * giscanner/gobjecttreebuilder.py:
1141 Add support for boxed types
1143 2008-04-21 Johan Dahlin <johan@gnome.org>
1145 * giscanner/giscannermodule.c: Mark structures as const,
1146 wrap SourceType.const_string.
1148 * tests/parser/foo-object.h: Add a couple of constants.
1150 * giscanner/gidlwriter.py:
1151 * giscanner/gobjecttreebuilder.py:
1152 * giscanner/treebuilder.py:
1153 Add basic support for interfaces
1155 * tools/g-ir-scanner:
1156 Add -o/--output for writing to a file
1158 2008-04-21 Havoc Pennington <hp@redhat.com>
1160 * TODO: add some C API wishlist items I could think of quickly
1162 2008-04-21 Johan Dahlin <jdahlin@async.com.br>
1164 * giscanner/gidlwriter.py:
1165 * giscanner/xmlwriter.py:
1166 Add a simple api for writing tags which can be used
1167 with the new 'with statement' in python 2.5
1169 2008-04-21 Johan Dahlin <johan@gnome.org>
1171 * giscanner/gobjecttreebuilder.py:
1172 Strip namespace and object prefix from method names.
1174 2008-04-21 Johan Dahlin <johan@gnome.org>
1176 * tools/g-ir-scanner (main): Add --pkg option to pass in
1177 pkg-config modules to get cflags from.
1179 * giscanner/gidlwriter.py (GIDLWriter._write_method):
1180 Avoid duplication, reuse function writer for methods.
1182 2008-04-21 Johan Dahlin <jdahlin@async.com.br>
1184 * giscanner/gidlwriter.py:
1185 * giscanner/gobjecttreebuilder.py:
1186 * giscanner/treebuilder.py:
1187 * tools/g-ir-scanner:
1188 Resolve libtool .la files.
1189 Strip name spaces for methods.
1190 Add function symbols
1192 2008-04-20 Johan Dahlin <jdahlin@async.com.br>
1194 * giscanner/cgobject.py:
1195 * giscanner/gidlwriter.py:
1196 * giscanner/gobjecttreebuilder.py:
1197 * giscanner/treebuilder.py:
1198 Add support for classes and methods
1200 2008-04-20 Johan Dahlin <johan@gnome.org>
1202 * giscanner/gidlwriter.py:
1203 * giscanner/gobjecttreebuilder.py:
1204 * giscanner/odict.py:
1205 Avoid conflicts, keep the output ordered similar to
1206 the order of the input.
1207 Add a simple ordered dictionary implemenation
1209 2008-04-19 Johan Dahlin <johan@gnome.org>
1211 * giscanner/cgobject.py:
1212 * giscanner/gidlwriter.py:
1213 * giscanner/gobjecttreebuilder.py:
1214 * tools/g-ir-scanner:
1215 Start introspecting get-type functions.
1216 Implement support for GLib/GFlags GTypes.
1217 Add a ctype based GObject binding.
1219 2008-04-18 Johan Dahlin <jdahlin@async.com.br>
1221 * giscanner/gidlwriter.py:
1222 * giscanner/xmlwriter.py:
1223 * tools/g-ir-scanner:
1224 Add a simplistic gidl writer, which can't do too much.
1226 2008-04-18 Johan Dahlin <johan@gnome.org>
1228 * giscanner/sourcescanner.py:
1229 * giscanner/treebuilder.py:
1230 * tools/g-ir-scanner:
1231 split tree building and source scanning interface to separate files.
1233 2008-04-18 Johan Dahlin <johan@gnome.org>
1235 * tools/g-ir-scanner (Parameter.__init__): Start constructing
1237 - Add support for struct/parameter/return, start parsing of ctypes
1239 * giscanner/giscannermodule.c: wrap GISourceType.child_list and
1242 2008-03-31 Johan Dahlin <johan@gnome.org>
1244 * tools/g-ir-scanner:
1245 Start to build abstract syntax node of scanned sources.
1246 Add support for cpp options.
1248 2008-03-27 Johan Dahlin <johan@gnome.org>
1250 * giscanner/giscannermodule.c:
1251 * giscanner/scannerlexer.l:
1252 * giscanner/sourcescanner.c:
1253 * tools/g-ir-scanner:
1255 Add simple pre-processor using subprocess and a PIPE.
1256 Change the parse_file apis to accept a file descriptor.
1258 2008-03-25 Johan Dahlin <johan@gnome.org>
1260 * giscanner/__init__.py:
1261 * tools/g-ir-scanner:
1262 Fix a typo and add an example python test program.
1264 2008-03-25 Johan Dahlin <johan@gnome.org>
1266 * giscanner/__init__.py:
1267 * giscanner/giscannermodule.c:
1268 * giscanner/sourcescanner.c:
1269 * giscanner/sourcescanner.h:
1270 Add constants and wrap a few more SymbolType fields
1272 2008-03-25 Johan Dahlin <johan@gnome.org>
1276 * giscanner/__init__.py:
1277 * giscanner/giscannermodule.c:
1278 * giscanner/Makefile.am:
1280 Add initial python bindings for the scanner and
1281 depend on python 2.5.
1283 2008-03-25 Johan Dahlin <johan@gnome.org>
1287 * giscanner/Makefile.am:
1288 * giscanner/sourcescanner.c:
1289 * giscanner/sourcescanner.h:
1290 * tools/Makefile.am:
1291 * tools/grealpath.h:
1292 * tools/sourcescanner.c:
1293 * tools/sourcescanner.h:
1295 Move the scanner to a separate library.
1297 2008-03-23 Johan Dahlin <johan@gnome.org>
1299 * tools/Makefile.am:
1302 * tools/scannerlexer.l:
1303 * tools/scannerparser.y:
1304 * tools/sourcescanner.c:
1305 * tools/sourcescanner.h:
1306 Split out the source scanner from the generator.
1307 Rename the symbols used in the scanner to use the gi_ prefix.
1308 This should make it possible to use the raw C parser from
1311 2008-03-23 Johan Dahlin <johan@gnome.org>
1313 * tests/parser/Makefile.am (utility.gidl):
1314 * tests/parser/utility-expected.gidl:
1315 Pass in the gobject.gidl since we're defining a GObject.
1317 2008-03-12 Johan Dahlin <johan@gnome.org>
1319 * relaxng/relaxng.rng:
1320 Add a releaxng in relaxng we can use to validate the relaxngs
1323 2008-03-12 Jürg Billeter <j@bitron.ch>
1325 * tools/scanner.c: (g_igenerator_new):
1326 * tools/scannerparser.y:
1327 Fix compiler warnings.
1329 2008-03-12 Jürg Billeter <j@bitron.ch>
1333 * tools/scannerparser.y:
1334 Start fixing memory management in g-idl-scanner.
1336 2008-03-12 Rob Taylor <rob.taylor@codethink.co.uk>
1338 * tools/gidlcompilercontext.c: (write_compiled):
1339 Fix critical warning when no shlib passed to g-idl-compiler.
1341 2008-03-12 Johan Dahlin <johan@gnome.org>
1343 * tests/parser/utility-expected.gidl:
1344 * tests/parser/utility.h:
1345 Add a get_type-function, so the scanner actually
1346 parses it as an object.
1348 2008-03-12 Johan Dahlin <johan@gnome.org>
1350 * tools/gidlwriter.c (function_generate): Add missing trailing quote.
1353 * tests/parser/Foo-expected.gidl:
1354 * tests/parser/Makefile.am:
1355 * tests/parser/foo-object.h:
1356 * tests/parser/foo.c:
1357 * tests/parser/utility-expected.gidl:
1358 * tests/parser/utility.c:
1359 * tests/parser/utility.h:
1361 Add a new gidl test. 'utility.gidl', which is used to be able
1362 to test external type references. Add a reference to UtilityObject*
1365 2008-03-11 Johan Dahlin <johan@gnome.org>
1369 Remove most global variables
1371 2008-03-11 Philip Van Hoof <me@pvanhoof.be>
1373 * tools/scannerlexer.l:
1375 * tests/parser/Foo-expected.gidl:
1376 * tests/parser/foo.c:
1377 * tests/parser/Makefile.am:
1378 * tests/parser/foo-object.h:
1380 Added a few extra tests. Which resulted in finding a few
1381 bugs. Which resulted in me fixing those bugs
1383 2008-03-11 Rob Taylor <rob.taylor@codethink.co.uk>
1385 * tools/gidlcompilercontext.c: (g_idl_compiler_write_dir_entry),
1386 (g_idl_compiler_write_xref_entry), (g_idl_compiler_add_xref):
1387 Add some comments for strings into generated output for
1390 2008-03-11 Rob Taylor <rob.taylor@codethink.co.uk>
1392 * tools/gidlcompilercontext.c: (write_compiled):
1393 Write out the shlibs variable before writing out the strings
1394 length. Fixes compiler warning when using '-l' flag with
1397 2008-03-11 Johan Dahlin <johan@gnome.org>
1399 * tests/parser/Foo-expected.gidl:
1400 * tests/parser/foo-object.h:
1403 * tools/scannerlexer.l:
1404 Add support for parsing return arguments. Add support for
1405 caller-owns return types.
1406 Patch by Philip Van Hoof.
1408 * tools/scannerparser.y:
1409 Remove parsing of the @deprecated syntax used in headers.
1410 We will support gtk-doc deprecation in the future instead.
1412 2008-03-11 Johan Dahlin <johan@gnome.org>
1414 * tools/compiler.c (main): Coding style fixes
1416 2008-03-10 Johan Dahlin <johan@gnome.org>
1419 Add GCOV_LIBS to GILIBS
1421 2008-03-10 Johan Dahlin <johan@gnome.org>
1423 * tests/parser/Foo-expected.gidl:
1424 * tests/parser/foo.c:
1425 Rename null-ok to direction=out
1427 2008-03-10 Philip Van Hoof <me@pvanhoof.be>
1429 reviewed and extensively tested by Johan
1431 * tests/parser/Foo-expected.gidl:
1432 * tests/parser/foo-object.h:
1433 * tests/parser/foo.c:
1436 * tools/gidlwriter.c:
1439 * tools/scannerlexer.l:
1440 * tools/scannerparser.y:
1442 Add support for scanning for gtk-doc comments inside
1443 C source files. Add tests
1445 2008-03-10 Johan Dahlin <johan@gnome.org>
1447 * tests/parser/Makefile.am:
1448 * tests/parser/foo.c:
1451 * tools/scannerparser.y:
1452 Add an api to lex filenames.
1453 Lex all source .c files passed in on the command line.
1454 Scan sources in a test and a couple of private structures
1455 which should not be included in the generated gidl
1457 2008-03-10 Johan Dahlin <johan@gnome.org>
1459 * tests/invoke/Makefile.am: Make the generated metadata
1460 depend on the g-idl-compiler
1462 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1464 * tools/gidlmodule.c
1465 * tools/gidlmodule.h
1468 Remove the old g-idl-compiler code.
1471 2008-02-22 Mark Doffman <mark.doffman@codethink.co.uk>
1473 * tools/quote-file.sh
1476 Move to using the 'C' struct compiler code.
1478 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1480 * girepository/ginfo.c
1482 Change the way that external references with no namespace
1483 are dealt with. External references with no namespace
1484 are placed into the XML as-if they are a local reference.
1485 This is temporary, but helps with roundtrip tests.
1487 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1489 * girepository/ginfo.c
1490 Add the ability to get the value of a constant of
1491 type TYPE_TAG_SYMBOL. In the case of a symbol the value
1492 is provided as a string.
1494 This would deal properly with:
1495 typedef char* random;
1496 const random = "A string";
1498 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1500 * girepository/ginfo.c
1501 * girepository/girepository.h
1503 Add a function to check if an enum is registered or not.
1504 Previously anything testing this relied on the g-type
1505 string offset having a value of 0.
1507 * girepository/gmetadata.c
1508 * girepository/gmetadata.h
1510 Remove unneccesary or erroneous checks. There were two
1511 metadata validation checks which made sure that the blob
1512 sizes were the same as some magic numbers compiled into the code.
1513 This is wrong as it breaks any forwards compatibility that may
1516 Checks were also present that made sure that unregistered type
1517 blobs had a value of 0 in the g-type offset field. This is
1518 unneccessary. If a type blob is unregistered then any value
1519 in its g-type field is simply invalid.
1521 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1523 * girepository/ginfo.c
1524 * girepository/gmetadata.c
1525 * girepository/gmetadata.h
1527 Change the metadata format to have a standard header
1528 for all the type blobs. Merge the SimpleTypeBlob
1529 and InterfaceTypeBlob into a union. A union of these
1530 two blobs existed previously but was not explicit
1531 in the metadata format.
1533 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1535 * tools/gidlcompilercontext.c
1536 * tools/gidlcompilercontext.h
1537 * tools/gidlcompilerentrynode.c
1538 * tools/gidlcompilerentrynode.h
1539 * tools/gidlcompilertypenode.c
1540 * tools/gidlcompilertypenode.h
1542 Add code to compile a tree of GIdlNodes to
1543 a 'C' struct representing the metadata.
1544 This is to aid cross-compiling. Previously
1545 the g-idl-compiler created a binary blob with
1546 data written in the byte order and alignment
1547 of the tool rather than the intended target.
1549 Cleaned up and improved by Johan and Robert :-)
1551 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1553 * girepository/ginvoke.c
1554 * girepository/girepository.h
1555 * girepository/gmetadata.c
1556 * girepository/gmetadata.h
1558 * tools/gidlparser.c
1559 Modify TYPE_TAG_INTERFACE to TYPE_TAG_SYMBOL
1560 to avoid confusion with the interface blob.
1563 * tools/gidlparser.c
1564 Remove magic numbers and replace with type-tag
1565 enumeration symbols.
1567 * girepository/gmetadata.c
1568 Add validate declaration.
1570 2008-03-10 Jürg Billeter <j@bitron.ch>
1572 * tools/gidlparser.c: (parse_type_internal):
1573 * tools/scannerlexer.l:
1574 * tools/scannerparser.y:
1575 Support C99 _Bool type in scanner.
1577 2008-03-10 Jürg Billeter <j@bitron.ch>
1579 * tests/parser/Foo-expected.gidl:
1580 * tests/parser/foo-object.h:
1581 * tests/parser/foo.c: (foo_enum_method):
1582 * tools/scanner.c: (g_igenerator_process_function_symbol):
1583 Don't skip functions that are defined in the namespace of a type
1584 that doesn't support methods, as for example enums.
1586 2008-03-10 Johan Dahlin <johan@gnome.org>
1588 * gidl.dtd: Remove, we're using relaxng for now
1590 * tests/parser/Foo-expected.gidl:
1591 * tests/parser/foo-object.h:
1592 * tests/parser/foo.c:
1593 Rename the enum/flags get_type functions to include the whole type.
1595 2008-03-08 Marc-Andre Lureau <marcandre.lureau@gmail.com>
1597 * tools/gidlwriter.c (enum_generate): added "type-name",
1598 "get-type" and "deprecated" missing arguments.
1599 * tests/parser/Foo-expected.gidl:
1600 * tests/parser/foo-object.h: test enum type, and no type.
1602 2008-03-06 Johan Dahlin <jdahlin@async.com.br>
1605 Consistent checks, add missing 'test'
1607 2008-03-05 Havoc Pennington <hp@redhat.com>
1609 * configure.ac: Take advantage of a libffi.pc if one exists, as it
1610 does on Fedora 8. Make libffi a hard requirement, since it was in
1611 practice anyway (was not really conditional in the code or
1612 makefile, only in configure).
1614 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1616 reviewed by: Rob Taylor <rob.taylor@codethink.co.uk>
1617 reviewed by: Johan Dahlin <johan@gnome.org>
1619 * tests/Makefile.am:
1620 * tests/roundtrips.sh:
1621 Modify the roundtrips test so that they do not use the
1622 --raw option of the gidl compiler but instead compile a
1623 shared library to use with g_module.
1625 * tests/invoke/Makefile.am:
1626 * tests/invoke/invoke.c:
1627 Modify the invoke tests to build a shared library rather
1628 than use the --raw option.
1630 * tests/invoke/invoke-namespace-find.sh: Removed:
1631 Noone knows why this was here, so removed.
1633 2008-02-19 Rob Taylor <rob.taylor@codethink.co.uk>
1635 * tools/scanner.c: (g_igenerator_process_function_symbol):
1636 Move g_idl_node_can_have_member test later, as it broke spotting
1637 get_type's for nodes that can't have members.
1639 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
1642 * tools/gidlnode.c: (g_idl_node_can_have_member):
1643 Add g_idl_node_can_have_member.
1645 * tools/scanner.c: (g_igenerator_process_function_symbol):
1646 Use g_idl_node_can_have_member to test if we should add a function
1647 as a member of the type node.
1649 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
1651 * gidl/GLib.gidl: Renamed to gidl/gobject-2.0.gidl:
1653 * tests/parser/Makefile.am:
1654 Rename GLib.gidl to gobject-2.0.gidl and install in /usr/share/gidl.
1656 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
1658 * tools/scanner.c: (main):
1659 Ignore -pthread when passed to g-idl-scanner.
1661 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
1663 * tools/grealpath.h: Added:
1664 * tools/scanner.c: (main):
1665 * tools/scannerlexer.l:
1666 * tools/Makefile.am:
1667 Always use absolute paths with symbolic links resolved when
1668 comparing filenames.
1670 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
1672 * gobject-introspection.pc.in:
1673 Provide variables for g-idl-parser, scanner and compiler in the
1676 2008-02-13 Rob Taylor <rob.taylor@codethink.co.uk>
1679 * girepository/Makefile.am:
1680 * tools/Makefile.am:
1681 Rename GCOV_SOURCES to GCOVSOURCES to top automake complaining.
1683 2008-02-10 Johan Dahlin <johan@gnome.org>
1685 * tests/parser/Foo-expected.gidl:
1686 * tests/parser/foo-object.h:
1687 * tests/parser/foo.c: (foo_boxed_copy), (foo_boxed_free),
1688 (foo_boxed_get_type), (foo_boxed_new), (foo_boxed_method):
1691 2008-02-10 Johan Dahlin <johan@gnome.org>
1693 * tests/parser/Foo-expected.gidl:
1694 * tests/parser/foo-object.h:
1695 * tests/parser/foo.c: (foo_enum_get_type), (foo_flags_get_type):
1696 Add enum and flags test.
1698 2008-02-10 Johan Dahlin <johan@gnome.org>
1702 * girepository/Makefile.am:
1703 Make 'make distcheck' work again.
1705 2008-02-10 Johan Dahlin <johan@gnome.org>
1707 * m4/Makefile.am (EXTRA_DIST): its called as-compiler-flag.m4,
1710 * tests/parser/Makefile.am: Only create Foo.gidl when running make
1711 check, eg exclude it from BUILT_SOURCES.
1713 2008-02-08 Rob Taylor <rob.taylor@codethink.co.uk>
1718 * girepository/Makefile.am:
1719 * m4/Makefile.am: Added:
1720 * m4/as-compiler-flag.m4: Added:
1721 * m4/gcov.m4: Added:
1722 * tools/Makefile.am:
1723 Add ability to generate a coverage report.
1724 Adds configure option --enable-gcov and make rule 'check-coverage'.
1726 2008-02-08 Rob Taylor <rob.taylor@codethink.co.uk>
1730 * gidl/Makefile.am: Added:
1731 * girepository/Makefile.am: Added:
1732 * src/Makefile.am: Renamed to tools/Makefile.am:
1733 * src/compiler.c: Renamed to tools/compiler.c:
1734 * src/g-idl-offsets.pl: Renamed to tools/g-idl-offsets.pl:
1735 * src/generate.c: Renamed to tools/generate.c:
1736 * src/gidlmodule.c: Renamed to tools/gidlmodule.c:
1737 * src/gidlmodule.h: Renamed to tools/gidlmodule.h:
1738 * src/gidlnode.c: Renamed to tools/gidlnode.c:
1739 * src/gidlnode.h: Renamed to tools/gidlnode.h:
1740 * src/gidlparser.c: Renamed to tools/gidlparser.c:
1741 * src/gidlparser.h: Renamed to tools/gidlparser.h:
1742 * src/gidlwriter.c: Renamed to tools/gidlwriter.c:
1743 * src/gidlwriter.h: Renamed to tools/gidlwriter.h:
1744 * src/ginfo.c: Renamed to girepository/ginfo.c:
1745 * src/ginvoke.c: Renamed to girepository/ginvoke.c:
1746 * src/girepository.c: Renamed to girepository/girepository.c:
1747 * src/girepository.h: Renamed to girepository/girepository.h:
1748 * src/gmetadata.c: Renamed to girepository/gmetadata.c:
1749 * src/gmetadata.h: Renamed to girepository/gmetadata.h:
1750 * src/scanner.c: Renamed to tools/scanner.c:
1751 * src/scanner.h: Renamed to tools/scanner.h:
1752 * src/scannerlexer.l: Renamed to tools/scannerlexer.l:
1753 * src/scannerparser.y: Renamed to tools/scannerparser.y:
1754 * tests/invoke/Makefile.am:
1755 Split src/ into girepository/ and tools/
1759 * girepository/Makefile.am:
1760 * tests/Makefile.am:
1761 * tests/invoke/Makefile.am:
1762 * tests/parser/Makefile.am:
1763 * tests/roundtrips.sh:
1764 * tools/Makefile.am:
1765 Make distcheck work.
1767 2008-02-04 Rob Taylor <rob.taylor@codethink.co.uk>
1769 * tests/invoke/invoke.c: (main):
1770 * tests/invoke/testfns.c: (test6), (test7):
1771 * tests/invoke/testfns.xml:
1772 Add tests for invokation with a GList argument.
1773 Also tests caller-owns return values.
1775 2008-02-04 Rob Taylor <robtaylor@floopily.org>
1778 Add some documentation for GICallableInfo
1780 2008-02-01 Mark Doffman <mark.doffman@codethink.co.uk>
1783 Correct syntax errors in the DTD file.
1785 * relaxng/c-types.xml:
1786 * relaxng/g-types.xml:
1788 Add a RelaxNG specification for the GObject Introspection XML data.
1789 The Specification has validated all of the test files.
1791 2008-01-25 Rob Taylor <robtaylor@floopily.org>
1793 * tests/roundtrips.sh:
1794 * tests/struct.test:
1795 Add roundtrip tests for structs.
1797 2008-01-11 Johan Dahlin <johan@gnome.org>
1799 * src/scanner.c (g_igenerator_process_function_symbol):
1800 Refactor out g_idle_node_add_member.
1801 (create_node_from_gtype, create_node_from_ctype):
1802 Use case instead of if...else
1803 (get_type_from_type_id):
1804 Rename to create_node_from_gtype
1805 (get_type_from_ctype):
1806 Rename to create_node_from_ctype
1808 Rename ginode -> node, gitype -> type, gifunc -> func.
1810 * src/gidlnode.c (g_idl_node_add_member, g_idl_node_cmp):
1811 Two new functions, refactor out of scanner.c
1813 * src/scanner.c: (g_igenerator_process_function_symbol):
1814 * src/scannerlexer.l:
1815 Do not save the content of the deprecated variable, only
1818 2008-01-11 Johan Dahlin <johan@gnome.org>
1820 * tests/parser/foo-object.h: Add a couple of comment parser tests.
1822 2008-01-11 Jürg Billeter <j@bitron.ch>
1824 * src/scannerlexer.l:
1825 Fix GTK-Doc parsing.
1827 2008-01-11 Jürg Billeter <j@bitron.ch>
1829 * src/scannerlexer.l:
1830 Fix GTK-Doc parsing.
1832 2008-01-11 Jürg Billeter <j@bitron.ch>
1834 * src/scanner.c: (lookup_symbol):
1835 Return unresolved name if we find unknown symbol.
1837 2008-01-11 Jürg Billeter <j@bitron.ch>
1839 * src/scanner.c: (g_igenerator_generate):
1840 Initialize GObject to fix scanning interface properties.
1842 * tests/parser/Foo-expected.gidl:
1843 * tests/parser/foo-object.h:
1844 * tests/parser/foo.c: (foo_interface_get_type):
1845 Test interfaces with GObject prerequisite.
1847 * tests/parser/Makefile.am:
1848 Set G_DEBUG=fatal_warnings to abort test on warnings and criticals.
1850 2007-12-27 Johan Dahlin <johan@gnome.org>
1852 * src/scannerlexer.l:
1853 Parse gtk-doc comments.
1855 * src/gidlwriter.c: (function_generate):
1856 Reorganize, avoid duplication and add support for
1857 writing deprecated functions.
1859 * src/scannerparser.y:
1861 Add new structure CDirective and functions to create/free them.
1863 * src/scanner.c: (g_igenerator_process_function_symbol),
1864 (g_igenerator_process_unregistered_struct_typedef),
1865 (g_igenerator_process_struct_typedef),
1866 (g_igenerator_process_union_typedef),
1867 (g_igenerator_process_enum_typedef),
1868 (g_igenerator_process_function_typedef), (g_igenerator_add_symbol),
1869 (g_igenerator_start_preprocessor):
1870 Parse @deprecated directive for functions.
1871 Remove some more C99isms.
1872 Send in -C to cpp to avoid stripping comments.
1874 * tests/parser/foo-object.h:
1875 * tests/parser/Foo-expected.gidl:
1876 Add deprecated directive
1878 2007-12-27 Johan Dahlin <johan@gnome.org>
1880 * src/scannerlexer.l (intsuffix): Add emacs mode line and
1881 escape ' and " so it looks more like C.
1884 Unlink temporary file used.
1886 2007-12-27 Johan Dahlin <johan@gnome.org>
1888 * src/scanner.c: (g_igenerator_new), (g_igenerator_free),
1889 (g_igenerator_start_preprocessor), (main):
1891 * src/scannerparser.y:
1892 Plug a couple of simple memory leaks.
1894 2007-12-27 Johan Dahlin <johan@gnome.org>
1896 * src/scanner.c: (g_igenerator_parse_macros),
1897 (g_igenerator_start_preprocessor), (g_igenerator_set_verbose),
1900 * src/scannerparser.y:
1901 * tests/parser/Makefile.am:
1903 Improve error reporting, return when the preprocessor fails.
1904 Add a verbose parameter, to aid debugging.
1905 Revert to using a temporary file to communicate between the
1906 preprocessor and the parser, because we need to wait for
1907 the exit code from the pre-processor before starting to parse.
1909 2007-12-16 Johan Dahlin <jdahlin@async.com.br>
1911 * src/Makefile.am: Rename clexer.l to scannerlexer.l and
1912 cparser.y to scannerparser.y
1914 2007-12-11 Johan Dahlin <johan@gnome.org>
1918 * src/scanner.c: (g_igenerator_new):
1920 Get rid of the global the_generator variable.
1922 2007-12-10 Johan Dahlin <johan@gnome.org>
1924 * src/scanner.c (main): Add an output option,
1925 add checks for required parameters
1928 set BUILD_SOURCES and CLEANFILES properly
1930 * src/gidlwriter.c: (g_writer_write_inline), (g_writer_write),
1931 (g_writer_write_indent), (g_writer_write_unindent),
1932 (field_generate), (value_generate), (constant_generate),
1933 (property_generate), (function_generate), (vfunc_generate),
1934 (signal_generate), (interface_generate), (struct_generate),
1935 (union_generate), (boxed_generate), (enum_generate),
1936 (node_generate), (g_writer_write_module), (g_idl_writer_save_file):
1938 * src/scanner.c: (g_igenerator_generate):
1940 * src/scannerwriter.c:
1942 Refactor scannerwriter to only be tied to a GIdlModule and move
1943 it (again!) to gidlwriter.c. Change the writer function to take
1946 2007-12-10 Johan Dahlin <johan@gnome.org>
1949 * src/scanner.c: (g_igenerator_generate):
1951 * src/scannerwriter.c: (g_igenerator_write_inline),
1952 (g_igenerator_write), (g_igenerator_write_indent),
1953 (g_igenerator_write_unindent), (field_generate), (value_generate),
1954 (constant_generate), (property_generate), (function_generate),
1955 (vfunc_generate), (signal_generate), (interface_generate),
1956 (struct_generate), (union_generate), (boxed_generate),
1957 (enum_generate), (node_generate), (module_generate),
1958 (g_scanner_write_file):
1960 Move the scanner gidl writing to a separate source file.
1962 2007-12-10 Johan Dahlin <johan@gnome.org>
1967 Move over all CType construction functions.
1969 * tests/parser/Makefile.am:
1970 Be verbose when printing parsing tests results.
1972 2007-12-10 Johan Dahlin <johan@gnome.org>
1974 * src/scanner.c (g_igenerator_start_preprocessor): Refactor
1975 preprocessor handling to here. Start cpp insteado of cc -E,
1976 always include -U__GNUC__, since it's specific to the preprocessor
1979 * tests/parser/Makefile.am (check-local): Silent diff and skip
1980 -U__GNUC__ which is always defined now
1982 2007-12-10 Johan Dahlin,,, <jdahlin@plasttroll>
1984 reviewed by: <delete if not using a buddy>
1986 * src/scanner.c: (g_igenerator_start_preprocessor), (main):
1987 * tests/parser/Makefile.am:
1989 2007-12-09 Johan Dahlin <johan@gnome.org>
1992 Use GOption for command line options.
1993 (g_igenerator_new, main): Simplify constructor and they way
1994 parameters are passed into it.
2000 * src/gen-introspect.c:
2001 * src/gen-introspect.h:
2003 Rename gen-introspect.[ch] to scanner.[ch]
2005 2007-12-09 Johan Dahlin <johan@gnome.org>
2009 * src/Makefile.am: Rename gen-introspect to g-idl-scanner,
2010 don't make the repository library and the other utilites link against
2013 * src/gen-introspect.c: (g_igenerator_create_object),
2014 (g_igenerator_create_interface), (g_igenerator_create_boxed),
2015 (g_igenerator_create_enum), (g_igenerator_create_flags),
2016 (g_igenerator_process_module_symbol),
2017 (g_igenerator_process_module), (g_igenerator_generate), (main):
2018 * src/gen-introspect.h:
2019 Refactor g_igenerator_process_types into smaller pieces.
2021 * tests/parser/Makefile.am:
2022 Depend on the gen-introspect binary
2024 2007-12-09 Johan Dahlin <johan@gnome.org>
2026 * src/gen-introspect.c (g_igenerator_process_types):
2027 Break into smaller pieces, one for each generated node type.
2029 2007-12-08 Johan Dahlin <johan@gnome.org>
2031 * src/gen-introspect.c: (g_igenerator_process_types),
2032 (g_igenerator_add_module):
2033 * tests/parser/Foo-expected.gidl:
2034 * tests/parser/foo-object.h:
2035 * tests/parser/foo.c: (foo_subobject_class_init),
2036 (foo_subobject_init):
2038 Add a subobject test and make sure to register defined classes
2039 in the lookup symbol hash table.
2041 2007-12-08 Johan Dahlin <johan@gnome.org>
2045 * src/gen-introspect.c: (g_igenerator_new), (lookup_symbol),
2046 (g_igenerator_process_types), (g_igenerator_add_module),
2047 (g_igenerator_add_include_idl), (main):
2048 * src/gen-introspect.h:
2049 * tests/parser/Makefile.am:
2050 * tests/parser/Foo-expected.gidl:
2052 Change the gen-introspect to generate namespaced module names,
2053 such as GLib.Object instead of GObject.
2054 Add a GLib.gidl which introduces GLib.Object and GLib.InitiallyUnowned,
2055 add a --include-idl parameter to gen-introspect,
2056 and update the parser test.
2058 2007-12-08 Johan Dahlin <johan@gnome.org>
2060 * src/gen-introspect.c:
2061 Move main to the end of the file and attempt to make it valid
2064 * tests/parser/Makefile.am (BUILT_SOURCES): Remove .repo here,
2065 we're not quite ready to generate metadata yet.
2070 Add a simple gen-introspect parser test
2072 2007-12-06 Gustavo J. A. M. Carneiro <gjc@gnome.org>
2074 reviewed by: Johan Dahlin <johan@gnome.org>
2077 * gobject-introspection.pc.in:
2079 * src/compiler.c: (format_output), (write_out_metadata), (main):
2080 * src/gen-introspect.c: (main):
2081 * src/gen-introspect.h:
2082 * src/generate.c: (write_callable_info), (write_repository),
2083 (load_metadata), (main):
2084 * src/gidlmodule.c: (g_idl_module_new),
2085 (g_idl_module_build_metadata):
2087 * src/gidlparser.c: (start_element_handler):
2088 * src/ginfo.c: (g_info_new), (g_info_from_entry),
2089 (g_base_info_get_name), (g_base_info_get_namespace),
2090 (g_base_info_is_deprecated), (g_base_info_get_annotation),
2091 (g_base_info_get_metadata), (g_function_info_get_symbol),
2092 (g_function_info_get_flags), (g_function_info_get_property),
2093 (g_function_info_get_vfunc), (signature_offset), (g_type_info_new),
2094 (g_callable_info_may_return_null),
2095 (g_callable_info_get_caller_owns), (g_callable_info_get_n_args),
2096 (g_callable_info_get_arg), (g_arg_info_get_direction),
2097 (g_arg_info_is_return_value), (g_arg_info_is_dipper),
2098 (g_arg_info_is_optional), (g_arg_info_may_be_null),
2099 (g_arg_info_get_ownership_transfer), (g_type_info_is_pointer),
2100 (g_type_info_get_tag), (g_type_info_get_param_type),
2101 (g_type_info_get_interface), (g_type_info_get_array_length),
2102 (g_type_info_is_zero_terminated),
2103 (g_type_info_get_n_error_domains), (g_type_info_get_error_domain),
2104 (g_error_domain_info_get_quark), (g_error_domain_info_get_codes),
2105 (g_value_info_get_value), (g_field_info_get_flags),
2106 (g_field_info_get_size), (g_field_info_get_offset),
2107 (g_registered_type_info_get_type_name),
2108 (g_registered_type_info_get_type_init),
2109 (g_struct_info_get_n_fields), (g_struct_info_get_field),
2110 (g_struct_info_get_n_methods), (g_struct_info_get_method),
2111 (find_method), (g_struct_info_find_method),
2112 (g_enum_info_get_n_values), (g_enum_info_get_value),
2113 (g_object_info_get_parent), (g_object_info_get_type_name),
2114 (g_object_info_get_type_init), (g_object_info_get_n_interfaces),
2115 (g_object_info_get_interface), (g_object_info_get_n_fields),
2116 (g_object_info_get_field), (g_object_info_get_n_properties),
2117 (g_object_info_get_property), (g_object_info_get_n_methods),
2118 (g_object_info_get_method), (g_object_info_find_method),
2119 (g_object_info_get_n_signals), (g_object_info_get_signal),
2120 (g_object_info_get_n_vfuncs), (g_object_info_get_vfunc),
2121 (g_object_info_get_n_constants), (g_object_info_get_constant),
2122 (g_interface_info_get_n_prerequisites),
2123 (g_interface_info_get_prerequisite),
2124 (g_interface_info_get_n_properties),
2125 (g_interface_info_get_property), (g_interface_info_get_n_methods),
2126 (g_interface_info_get_method), (g_interface_info_find_method),
2127 (g_interface_info_get_n_signals), (g_interface_info_get_signal),
2128 (g_interface_info_get_n_vfuncs), (g_interface_info_get_vfunc),
2129 (g_interface_info_get_n_constants),
2130 (g_interface_info_get_constant), (g_property_info_get_flags),
2131 (g_signal_info_get_flags), (g_signal_info_get_class_closure),
2132 (g_signal_info_true_stops_emit), (g_vfunc_info_get_flags),
2133 (g_vfunc_info_get_offset), (g_vfunc_info_get_signal),
2134 (g_constant_info_get_value), (g_union_info_get_n_fields),
2135 (g_union_info_get_field), (g_union_info_get_n_methods),
2136 (g_union_info_get_method), (g_union_info_is_discriminated),
2137 (g_union_info_get_discriminator_offset),
2138 (g_union_info_get_discriminator):
2139 * src/ginvoke.c: (g_function_info_invoke):
2140 * src/girepository.c: (g_irepository_register),
2141 (g_irepository_unregister), (g_irepository_get_default),
2142 (count_interfaces), (g_irepository_get_n_infos), (find_interface),
2143 (g_irepository_get_info), (g_irepository_find_by_name),
2144 (g_irepository_get_shared_library),
2145 (g_irepository_build_search_path), (g_irepository_register_file),
2146 (g_irepository_error_quark):
2147 * src/girepository.h:
2148 * src/gmetadata.c: (g_metadata_get_dir_entry),
2149 (g_metadata_check_sanity), (validate_header),
2150 (validate_array_type_blob), (validate_iface_type_blob),
2151 (validate_param_type_blob), (validate_error_type_blob),
2152 (validate_type_blob), (validate_arg_blob),
2153 (validate_signature_blob), (validate_function_blob),
2154 (validate_callback_blob), (validate_constant_blob),
2155 (validate_value_blob), (validate_field_blob),
2156 (validate_property_blob), (validate_signal_blob),
2157 (validate_vfunc_blob), (validate_struct_blob),
2158 (validate_enum_blob), (validate_object_blob),
2159 (validate_interface_blob), (validate_errordomain_blob),
2160 (validate_union_blob), (validate_blob), (validate_directory),
2161 (validate_annotations), (g_metadata_validate), (_g_metadata_init),
2162 (g_metadata_new_from_memory), (g_metadata_new_from_const_memory),
2163 (g_metadata_new_from_mapped_file), (g_metadata_free),
2164 (g_metadata_set_module), (g_metadata_get_namespace):
2166 * tests/Makefile.am:
2167 * tests/invoke/Makefile.am:
2168 * tests/invoke/invoke-namespace-find.sh:
2169 * tests/invoke/invoke.c: (main):
2171 Add a namespace/shared library mapping. fixes #313268.
2173 2007-12-03 Johan Dahlin <johan@gnome.org>
2175 * src/gidlparser.c (parse_type_internal): Disable char/gchar and
2178 2007-11-30 Jürg Billeter <j@bitron.ch>
2184 * src/gen-introspect.c: (g_idl_node_cmp), (g_igenerator_new),
2185 (g_igenerator_write_inline), (g_igenerator_write),
2186 (g_igenerator_write_indent), (g_igenerator_write_unindent),
2187 (field_generate), (value_generate), (constant_generate),
2188 (property_generate), (function_generate), (vfunc_generate),
2189 (signal_generate), (interface_generate), (struct_generate),
2190 (union_generate), (boxed_generate), (enum_generate),
2191 (node_generate), (module_generate), (get_type_from_type_id),
2192 (str_replace), (g_igenerator_process_properties),
2193 (g_igenerator_process_signals), (g_igenerator_process_types),
2194 (get_type_from_ctype), (g_igenerator_process_function_symbol),
2195 (g_igenerator_process_unregistered_struct_typedef),
2196 (g_igenerator_process_struct_typedef),
2197 (g_igenerator_process_union_typedef),
2198 (g_igenerator_process_enum_typedef),
2199 (g_igenerator_process_function_typedef),
2200 (g_igenerator_process_constant), (g_igenerator_process_symbols),
2201 (g_igenerator_add_symbol), (g_igenerator_is_typedef),
2202 (g_igenerator_generate), (main), (csymbol_new),
2203 (csymbol_get_const_boolean), (ctype_new), (ctype_copy),
2204 (cbasic_type_new), (ctypedef_new), (cstruct_new), (cunion_new),
2205 (cenum_new), (cpointer_new), (carray_new), (cfunction_new),
2206 (eat_hspace), (eat_line), (read_identifier),
2207 (g_igenerator_parse_macros):
2208 * src/gen-introspect.h:
2210 Import gen-introspect to generate introspection information by
2213 2007-11-30 Jürg Billeter <j@bitron.ch>
2215 * src/gidlnode.c: (g_idl_node_new): support creating callback nodes
2217 2007-11-30 Jürg Billeter <j@bitron.ch>
2219 * src/gidlparser.c: (end_element_handler): Don't leave requires
2222 2007-11-29 Johan Dahlin <johan@gnome.org>
2224 * src/gidlparser.c (parse_type_internal): Add char,
2225 gchar and guchar to the builtin types.
2227 2007-11-26 Johan Dahlin <johan@gnome.org>
2229 * src/ginfo.c: (g_object_info_get_type_name),
2230 (g_object_info_get_type_init):
2231 * src/girepository.c: (g_irepository_is_registered):
2232 * src/girepository.h:
2234 Add g_object_info_get_type_name, g_object_info_get_type_init and
2235 g_irepository_is_registered.
2237 2006-08-14 Jürg Billeter <j@bitron.ch>
2239 * src/gidlparser.c: (end_element_handler): Don't leave
2240 namespace and implements states too early.
2243 2007-11-26 Johan Dahlin <johan@gnome.org>
2245 * src/gmetadata.c (validate_struct_blob):
2246 pass blob_type to validate_function_blob instead of
2247 hard-coding BLOB_TYPE_STRUCT.
2249 Patch by Torsten Schoenfeld, fixes #314190
2251 2006-10-03 Torsten Schoenfeld <tsch@cvs.gnome.org>
2253 * src/compiler.c, src/generate.c, src/gidlnode.c,
2254 src/gidlparser.c, src/ginfo.c, src/girepository.c,
2255 tests/invoke/invoke.c, test/invoke/testfns.c: Hush compiler
2256 warnings about return values, signedness mismatches, unused
2257 variables, and unhandles enum values in switch statements.
2259 * tests/invoke/Makefile.am: Don't install the invoke test program.
2260 Add -I ../../src to the cflags used for the test functions files.
2262 2005-08-31 Torsten Schoenfeld <tsch@cvs.gnome.org>
2264 * src/girepository.h: Export g_invoke_error_quark.
2266 2005-08-31 Torsten Schoenfeld <tsch@cvs.gnome.org>
2268 * src/ginvoke.c: Remove the fallback implementation of
2269 g_function_info_invoke since we now formally depend on libffi.
2271 2005-07-25 Matthias Clasen <mclasen@redhat.com>
2273 * src/Makefile, tests/Makefile, tests/invoke/Makefile:
2274 Remove these files from cvs, as they are now generated.
2276 * src/gmetadata.c (validate_iface_type_blob): Don't
2277 complain if blob->pointer is not set, since that
2278 happens for enum and flag types. (#308935, Gustavo
2281 * Commit an autoconf-conversion patch by
2282 Gustavo Carneiro (#308708)
2284 2005-05-24 Matthias Clasen <mclasen@redhat.com>
2286 * src/compiler.c (main): Use it here to validate
2287 the generated metadata.
2289 * src/gmetadata.[hc]: Add code to validate a
2292 * metadata-format.txt: Updates
2294 2005-05-22 Matthias Clasen <mclasen@redhat.com>
2296 * tests/*: Add struct offsets to field and vfunc
2299 * src/generate.c (write_vfunc_info): Write offset
2300 information for vfuncs.
2302 * src/gidlnode.c (g_idl_node_build_metadata): Write
2303 the struct offsets into the metadata.
2305 * src/gidlparser.c: Parse the offset attributes of
2306 field and vfunc elements.
2308 * src/gidlnode.h: Add offset members to field and
2311 2005-05-21 Matthias Clasen <mclasen@redhat.com>
2315 * gidl.dtd: Updates.
2317 * src/g-idl-offsets.pl: A perl script which reads a .gidl
2318 file, creates, compiles and runs a C file, and folds the
2319 resulting struct offsets back into the .gidl file.
2321 2005-05-20 Matthias Clasen <mclasen@redhat.com>
2323 * src/gidlparser.c (start_field): Make fields in objects
2326 * src/gidlmodule.c: Include string.h
2331 * metadata-format.txt: Cleanup basic types.
2332 * src/*: Adapt to the changes.
2333 * tests/*: Adapt to the changes.
2334 * examples/gdk-pixbuf.gidl: Adapt to the changes.
2336 * src/gidlnode.c (g_idl_node_get_size): Report the correct
2337 size for enum blobs.
2338 (g_idl_node_get_full_size): Report the correct size for
2341 * src/gidlmodule.c (g_idl_module_build_metadata): Add some
2342 error checking for blob sizes.
2344 2005-05-19 Matthias Clasen <mclasen@redhat.com>
2346 * src/gidlnode.c (g_idl_node_build_metadata): Correctly handle
2347 interface types for which is_pointer is FALSE, e.g. enums.
2349 * src/gidlnode.c (g_idl_node_get_full_size)
2350 * src/gidlparser.c (parse_type_internal):
2351 * src/generate.c (write_type_info): Support unspecialized
2352 lists, hashtables and errors. Also emit a '*' after these.
2356 2005-05-17 Matthias Clasen <mclasen@redhat.com>
2360 * metadata-format.txt: Cleanups by Maciej Katafiasz.
2362 2005-05-15 Matthias Clasen <mclasen@redhat.com>
2364 * src/*.c: Change the directory to be addressed by
2365 1-based indexes, and use an index of zero to mean
2368 2005-05-15 Matthias Clasen <mclasen@redhat.com>
2370 * tests/roundtrips.sh (SIMPLE_TESTS): Add union.test.
2372 * tests/union.test: Add a union test.
2374 * src/generate.c: Handle unions.
2376 * src/girepository.h:
2377 * src/ginfo.c: Add GIUnionInfo and functions to access it.
2379 * src/gidlnode.c: Handle GIdlNodeUnion nodes.
2381 * src/gidlparser.c (start_union): Parse <union> elements.
2383 * src/gidlnode.h: Add a GIdlNodeUnion.
2385 * gidl.dtd: Add a <union> element.
2387 * src/gmetadata.c (g_metadata_check_sanity): Check
2390 * src/gmetadata.h: Add union_blob_size to Header,
2393 * metadata-format.txt: Add a UnionBlob.
2395 2005-05-13 Matthias Clasen <mclasen@redhat.com>
2397 * tests/*: Update testcases.
2399 * src/generate.c (write_callable_info): Don't forget to
2400 write transfer and null-ok attributes for return types
2403 * src/girepository.h:
2404 * src/ginfo.c (g_callable_info_may_return_null):
2405 New function to find out if a function may return NULL.
2407 * src/compiler.c (format_output): Make the generated
2410 * README: Point to a recent libffi snapshot.
2412 * tests/invoke/*: Some invoke tests.
2414 * src/Makefile: Add ginvoke.c and the necessary
2417 * src/girepository.h (g_function_info_invoke): Add
2420 * src/ginvoke.c (g_function_info_invoke): Initial
2421 implementation of invoke functionality based on libffi.
2423 * src/gidlnode.c (g_idl_node_build_metadata): Pass the
2424 strings and types hash tables in the right order when
2426 (find_entry_node): Free the name parts.
2428 2005-05-12 Johan Dahlin <johan@gnome.org>
2430 * src/generate.c: Generate consistent end tags.
2434 2005-05-12 Matthias Clasen <mclasen@redhat.com>
2438 * src/gidlparser.c (start_function): Actually add
2439 methods to objects. (Steven Walter)
2441 * src/girepository.h:
2442 * src/ginfo.c: Rename Transfer and Direction to
2443 GITransfer and GIDirection. (Torsten Schoenfeld)
2445 * tests/*: Make tests work with the changes in name
2448 * src/gidlnode.c (find_entry_node): Parse qualified
2449 names and generate xref nodes for them if needed. Don't
2450 require all modules to be loaded any more.
2452 * src/gidlmodule.c (g_idl_module_build_metadata): Choke
2455 * src/ginfo.c (g_object_info_get_parent): Return NULL
2456 if blob->parent is 0. Still need to make sure index
2459 * src/generate.c: Generate qualified names when
2460 referring to non-local types. Emit transfer attribute
2463 * src/compiler.c (format_output): Put the function
2464 attributes where gcc accepts them.
2466 2005-05-11 Matthias Clasen <mclasen@redhat.com>
2468 * src/compiler.c (main): Add a --verbose cmdline option
2469 and only log messages if it is specified.
2472 * src/gidlnode.c (init_stats, dump_stats): Collect some
2473 statistics on string and type sharing.
2475 * src/gidlmodule.c (g_idl_module_build_metadata): Use
2476 g_message() instead of fprintf().
2478 * src/gidlnode.c (g_idl_node_free): Make this more robust.
2479 (g_idl_node_get_size): Implement for structs.
2480 (g_idl_node_get_full_size): Handle parent being NULL.
2481 (serialize_type): Handle lookup failures more gracefully.
2483 2005-05-10 Matthias Clasen <mclasen@redhat.com>
2485 * src/gidlnode.c (g_idl_node_get_full_size): Correct the
2486 size calculation for 2-parameter types and for objects.
2488 * src/compiler.c: Add a cmdline option for debug output
2489 and install a log handler to implement it.
2490 * src/gidlnode.c: Add some debug spew.
2494 * src/gidlmodule.c (g_idl_module_build_metadata): Don't
2495 forget to count the module name when calculating the
2496 required size for the metadata.
2499 * src/gidlparser.c: Fix compiler warnings.
2501 2005-05-09 Matthias Clasen <mclasen@redhat.com>
2503 * src/compiler.c (main): Free the option context.
2505 * gidl.dtd: Clean up handling of names. All elements
2506 have a "name", only the elements corresponding to
2507 actual callable functions (function, method, constructor),
2508 have an additional "symbol" attribute holding the
2509 dlsym()-able function name.
2511 * src/generate.c: Adapt to generate xml matching the
2515 * src/gidlnode.c: Adapt to parse the new dtd.
2517 * tests/*.test: Adjust to the new dtd.
2519 * metadata-format.txt:
2520 * src/gmetadata.h: Remove the short_name field
2522 * src/gmetadata.c: Shrink size of ValueBlob to 12.
2523 * src/girepository.h:
2524 * src/ginfo.c (g_value_info_get_short_name): Removed
2526 2005-05-09 Matthias Clasen <mclasen@redhat.com>
2528 * gidl.dtd: Allow constructors for boxed types,
2529 patch by Jonathan Blandford.
2532 2005-05-09 Matthias Clasen <mclasen@redhat.com>
2534 * --- Initial import ---