1 2008-08-14 Johan Dahlin <johan@gnome.org>
4 * giscanner/girparser.py:
5 * giscanner/glibast.py:
6 * giscanner/glibtransformer.py:
7 Refactor the parser a bit.
8 Add parent type to interfaces and update callsites.
10 2008-08-14 Johan Dahlin <johan@gnome.org>
12 * giscanner/glibtransformer.py:
14 Refactor a bit, avoid isinstance and add a method
15 for each type we parse.
17 2008-08-14 Johan Dahlin <johan@gnome.org>
20 * giscanner/girparser.py:
21 * giscanner/glibtransformer.py:
23 Run pep8.py in make check, fix old errors.
25 2008-08-13 Colin Walters <walters@verbum.org>
27 * giscanner/girparser.py: Parse records.
29 2008-08-13 Colin Walters <walters@verbum.org>
31 * gir/Makefile.am: Install again.
32 * gir/gobject-2.0.gir: Add some more bits.
34 2008-08-13 Colin Walters <walters@verbum.org>
36 * gir/gobject-2.0.gir: Use correct namespace, add GType.
37 * giscanner/girparser.py: Handle aliases.
38 * giscanner/transformer.py: Record aliases. Make resolver
39 functions public; we now call into these explicitly from
40 glibtransformer. Handle resolving aliases.
41 * giscanner/glibtransformer.py: Separate our internal namespace
42 from included ones. Call up into transformer's resolver functions.
44 2008-08-13 Johan Dahlin <johan@gnome.org>
46 * girepository/girnode.c (g_ir_node_get_full_size_internal):
47 * girepository/girparser.c (start_class):
48 * giscanner/glibtransformer.py:
49 Allow get_type to be None, set a get_type for GInitiallyUnowned too.
51 2008-08-13 Johan Dahlin <johan@gnome.org>
53 * giscanner/cgobject.py:
54 Register GInitiallyUnowned
55 * giscanner/girwriter.py:
56 * giscanner/glibtransformer.py:
57 Special case GObject/GInitially owned as they are a bit special to use.
59 2008-08-13 Colin Walters <walters@verbum.org>
61 * tests/scanner/Foo-expected.gir, tests/scanner/utility-expected.gir:
62 Object is in GObject namespace.
64 2008-08-13 Colin Walters <walters@verbum.org>
66 * giscanner/girparser.py: Fix processing of functions
69 2008-08-13 Colin Walters <walters@verbum.org>
71 * giscanner/girparser.py: Parse more than just <class.
72 * giscanner/glibtransformer.py: Put aliases in a separate
73 data structure since their name is not canonicall.
74 * giscanner/transformer.py: Handle resolving type names
77 2008-08-13 Johan Dahlin <johan@gnome.org>
80 Allow multiple libraries
81 * giscanner/glibtransformer.py:
82 Rename load_library to add_library, traverse over all libraries
83 when trying to resolve a function
85 2008-08-12 Colin Walters <walters@verbum.org>
87 * giscanner/transformer.py: Record typedefs as <alias> elements.
88 Also attempt to look up types in external namespaces.
89 * giscanner/girwriter.py: Write them.
90 * giscanner/glibtransformer.py: Rework resolver using real instanceof
91 checks. Resolve interface methods and properties.
92 * tests/scanner/foo-object.h: Add a method with typedef.
93 * tests/scanner/Foo-expected.gir: Update.
94 * girepository/girnode.c: Debug tweaks.
95 * girepository/girparser.c: Make a first pass through the XML where we
96 record all the aliases. This lets us resolve them as we go through the
98 * gir/Makefile.am: Don't install gobject-2.0.gir; we want that to come
101 2008-08-12 Colin Walters <walters@verbum.org>
103 * giscanner/glibtransformer.py: Resolve typedefs (e.g. AtkAttributeSet -> GSList).
104 Correctly do subclasseing in 2nd pass resolution. Handle callbacks in structure
106 * giscanner/transformer.py: Record typedefs and expose public API for resolving
108 * tests/scanner/Foo-expected.gir: Fix expected callback types.
110 2008-08-12 Colin Walters <walters@verbum.org>
112 * giscanner/glibtransformer.py: Also transform object properties.
114 2008-08-12 Colin Walters <walters@verbum.org>
116 * giscanner/glibtransformer.py: Also transform callbacks
117 and structure field types.
118 * tests/scanner/Fooe-expected.gir: Update to expect correct
119 names for callbacks and structs.
121 2008-08-12 Colin Walters <walters@verbum.org>
123 * girepository/girparser.c: Handle 'any'.
124 * tests/scanner/Foo-expected.gir, tests/scanner/foo-object.h:
127 2008-08-12 Colin Walters <walters@verbum.org>
129 * giscanner/glibtransformer.py: We need to do type
130 resolution in a second pass after we've seen all the
133 2008-08-12 Colin Walters <walters@verbum.org>
135 * tests/scanner/Foo-expected.gir, tests/scanner/foo-object.h:
136 Add enum return value.
137 * giscanner/glibtransformer.py: Transform function return types
140 2008-08-12 Colin Walters <walters@verbum.org>
142 * tests/scanner/Makefile.am: Dep .gir files on scanner
143 sources too. Also remove @ so we see scanner invocations.
145 2008-08-12 Colin Walters <walters@verbum.org>
147 * girepository/girparser.c, girepository/gtypelib.c,
148 girepository/gtypelib.h, girepository/girnode.c:
149 Remove usage of (GAPI-oriented) TypeTag in favor of
150 GITypeTag from girepository.h.
152 2008-08-10 Colin Walters <walters@verbum.org>
154 * tests/roundtrips.sh: Use the correct tests.
156 2008-08-10 Colin Walters <walters@verbum.org>
158 * giscanner/cgobject.py: Declare/wrap a few more functions.
159 Fix parameter types for g_object_new and g_type_fundamental.
161 2008-08-10 Colin Walters <walters@verbum.org>
163 * giscanner/cgobject.py: Add new decorator @gwrap which forces
164 us to declare types for both return value and parameters. The
165 ctypes default of 'int' is bad because it hides 32/64 bit
166 problems. Convert all existing functions to use it.
168 2008-08-09 Johan Dahlin <johan@gnome.org>
170 * giscanner/__init__.py:
172 * giscanner/cgobject.py:
173 * giscanner/gidlparser.py:
174 * giscanner/gidlwriter.py:
175 * giscanner/girparser.py:
176 * giscanner/girwriter.py:
177 * giscanner/glibast.py:
178 * giscanner/glibtransformer.py:
179 * giscanner/odict.py:
180 * giscanner/sourcescanner.py:
181 * giscanner/transformer.py:
182 * giscanner/utils.py:
183 * giscanner/xmlwriter.py:
184 * tools/g-ir-scanner:
188 2008-08-09 Johan Dahlin <johan@gnome.org>
191 * relaxng/c-types.xml:
192 * relaxng/g-types.xml:
193 * relaxng/relaxng.rng:
195 Remove outdated relaxng schemas.
197 2008-08-09 Johan Dahlin <johan@gnome.org>
200 Rename metadata to typelib in variable names,
203 2008-08-09 Johan Dahlin <johan@gnome.org>
207 Remove old C scanner, which got rewritten in python.
209 2008-08-09 Johan Dahlin <johan@gnome.org>
211 * girepository/Makefile.am:
221 Move shared *.[ch] files to girepository from tools
223 2008-08-09 Johan Dahlin <johan@gnome.org>
228 * tests/constant.test:
231 * tests/function.test:
232 * tests/gobject.test:
233 * tests/interface.test:
240 Rename *.test to *.gir
242 2008-08-09 Johan Dahlin <johan@gnome.org>
246 * tests/parser/Foo-expected.gir:
247 * tests/parser/Makefile.am:
248 * tests/parser/foo-object.h:
249 * tests/parser/foo.c:
250 * tests/parser/utility-expected.gir:
251 * tests/parser/utility.c:
252 * tests/parser/utility.h:
253 * tests/scanner/Makefile.am:
254 Rename tests/parser to test/scanner
256 2008-08-08 Colin Walters <walters@verbum.org>
258 * tests/roundtrips.sh: Use local .gir files again.
260 2008-08-08 Colin Walters <walters@verbum.org>
262 * tests/invoke/Makefile.am: .gir file depends on libtool
265 2008-08-08 Colin Walters <walters@verbum.org>
267 * tools/girnode.c: Pass through parent node so we can
268 print the node whose child is NULL, if that occurs.
270 2008-08-08 Johan Dahlin <johan@gnome.org>
273 Disable roundtrip tests which are not yet working
274 * tests/invoke/testfns.gir:
277 2008-08-08 Johan Dahlin <johan@gnome.org>
279 * giscanner/girwriter.py:
281 * giscanner/glibast.py:
282 * giscanner/glibtransformer.py:
283 Swap order of members, to keep it consistent with
286 2008-08-08 Johan Dahlin <johan@gnome.org>
288 * girepository/gtypelib.c (validate_header):
289 * girepository/gtypelib.h:
291 * giscanner/girwriter.py:
292 * giscanner/sourcescanner.c (gi_source_symbol_ref),
293 (gi_source_symbol_unref):
296 * tests/constant.test:
299 * tests/function.test:
300 * tests/gobject.test:
301 * tests/interface.test:
302 * tests/invoke/Makefile.am:
303 * tests/invoke/testfns.xml:
305 * tests/parser/Makefile.am:
306 * tests/roundtrips.sh:
313 * tools/compiler.c (main):
314 * tools/generate.c (write_callable_info), (write_function_info),
316 * tools/gidlmodule.c:
317 * tools/gidlmodule.h:
320 * tools/gidlparser.c:
321 * tools/gidlparser.h:
322 * tools/gidlwriter.c:
323 * tools/gidlwriter.h:
324 * tools/scanner.c (create_node_from_gtype),
325 (create_node_from_ctype), (g_igenerator_process_properties),
326 (g_igenerator_process_signals), (g_igenerator_create_object),
327 (g_igenerator_create_interface), (g_igenerator_create_boxed),
328 (g_igenerator_create_enum), (g_igenerator_create_flags),
329 (g_igenerator_process_function_symbol),
330 (g_igenerator_process_unregistered_struct_typedef),
331 (g_igenerator_process_struct_typedef),
332 (g_igenerator_process_union_typedef),
333 (g_igenerator_process_enum_typedef),
334 (g_igenerator_process_function_typedef),
335 (g_igenerator_process_constant), (g_igenerator_process_symbols),
336 (g_igenerator_add_module), (g_igenerator_add_include_idl):
337 Merge in the gir-compiler branch.
338 Thanks to Philip and Colin for their help.
340 2008-07-26 Colin Walters <walters@verbum.org>
342 * tools/Makefile.am (bin_PROGRAMS): Install g-idl-compiler
343 and g-idl-generate to go along with how we're changing this
344 module to be installed.
345 * gobject-introspection-1.0.pc.in: Set up Cflags and Libs.
347 2008-07-24 Colin Walters <walters@verbum.org>
349 * girepository/girepository.c (g_irepository_register): Add
350 environment variable G_IREPOSITORY_VERBOSE so we can print
351 out what we're doing.
352 * girepository/girepository.c (g_irepository_register_file):
353 Add GError error message to g_debug call.
355 2008-07-08 Jürg Billeter <j@bitron.ch>
357 * giscanner/glibast.py:
361 2008-06-21 Johan Dahlin <jdahlin@async.com.br>
363 * giscanner/girparser.py (GIRParser._parse_api): Ignore a few
366 2008-06-20 Johan Dahlin <jdahlin@async.com.br>
369 * giscanner/girwriter.py:
370 * giscanner/transformer.py:
371 * tests/parser/Foo-expected.gir:
372 * tests/parser/foo-object.h:
373 * tests/parser/foo.c (foo_object_allow_none):
374 Add support for gtk-doc annotations for allow-none.
377 2008-06-19 Johan Dahlin <jdahlin@async.com.br>
380 * giscanner/girwriter.py:
381 * giscanner/glibast.py:
382 * giscanner/glibtransformer.py:
383 * giscanner/transformer.py:
384 * tests/parser/Foo-expected.gir:
385 Start using abstract type instead of the raw C types.
386 Register a bunch of glib types we care about.
388 2008-06-19 Rob Taylor <rob.taylor@codethink.co.uk>
393 2008-06-08 Philip Van Hoof <pvanhoof@gnome.org>
395 * girepository/girepository.c:
396 * girepository/gtypelib.c:
397 * girepository/ginfo.c:
398 * girepository/ginvoke.c:
399 * girepository/girepository.h:
400 * girepository/gtypelib.h:
401 * girepository/gmetadata.c:
402 * girepository/Makefile.am:
403 * girepository/gmetadata.h:
405 * tools/gidlmodule.c:
408 * tools/gidlmodule.h:
409 * tools/gidlparser.c:
411 Renamed GMetadata to GTypelib
413 2008-06-07 Johan Dahlin <jdahlin@async.com.br>
415 * giscanner/xmlwriter.py:
416 Improve line wrapping when > 79 charaters
418 2008-06-05 Jürg Billeter <j@bitron.ch>
421 * giscanner/girwriter.py:
422 * giscanner/transformer.py:
423 Use <type> element for field types
424 * tests/parser/Foo-expected.gir:
427 2008-06-04 Johan Dahlin <jdahlin@async.com.br>
429 * giscanner/glibtransformer.py:
430 Fix a bug which prevented GdkEvent from being generated
432 2008-06-03 Johan Dahlin <jdahlin@async.com.br>
434 * giscanner/Makefile.am:
436 * giscanner/girwriter.py:
437 * giscanner/glibast.py:
438 * giscanner/glibtransformer.py:
439 * giscanner/transformer.py:
440 * giscanner/utils.py:
441 * tests/parser/Foo-expected.gir:
442 Improve enum member parsing and introspection
444 2008-05-31 Johan Dahlin <jdahlin@async.com.br>
446 * giscanner/scannerparser.y:
447 * giscanner/sourcescanner.h:
448 * giscanner/sourcescanner.py:
449 Add a new source type enum for member.
450 Use __repr__ for improved debugging
451 * giscanner/girparser.py:
453 * giscanner/transformer.py:
454 Improve parsing of struct members.
455 * tests/parser/foo-object.h:
458 2008-05-31 Johan Dahlin <jdahlin@async.com.br>
460 * giscanner/xmlwriter.py:
461 Improve error reporting when trying to quote None.
462 * giscanner/girparser.py:
463 Do not print warnings when including more complete .gir files
464 * giscanner/girwriter.py:
465 Do not require a name for parameters, add a todo for singletons
466 * giscanner/glibtransformer.py:
467 Refactor the way structs are done, add a couple of hacks to allow
469 * giscanner/transformer.py:
470 Add enough hacks so cairo, atk and pango.gir can be parsed properly
471 * gobject-introspection-1.0.pc.in:
472 Export girdir, so we can access gobject-2.0.gir from outside
474 2008-05-31 Johan Dahlin <jdahlin@async.com.br>
476 * tools/g-ir-scanner:
477 * tests/parser/Makefile.am:
478 Update sys.path before running the parser so we don't have
479 to setup PYTHONPATH ourselves.
483 * girepository/Makefile.am:
484 * giscanner/transformer.py:
485 * gobject-introspection-1.0.pc.in:
486 * gobject-introspection.pc.in:
489 Rename pkg-config name to gobject-introspection-1.0,
490 Do not installed anything which is not using the gir format.
491 Disable compililation the old C scanner, but still keep the source
492 until all the remaning functionallity has been ported.
494 2008-05-31 Johan Dahlin <jdahlin@async.com.br>
496 * giscanner/giscannermodule.c (symbol_get_ident): Prevent
497 a crash when symbol->indent is NULL.
499 * giscanner/sourcescanner.py (ctype_name): Add ctype_name,
500 a function to convert a CTYPE symbol to a string
502 2008-05-24 Johan Dahlin <jdahlin@async.com.br>
505 * giscanner/girwriter.py:
506 * giscanner/giscannermodule.c
507 (pygi_source_scanner_append_filename),
508 (pygi_source_scanner_parse_file):
509 * giscanner/glibtransformer.py:
510 * giscanner/sourcescanner.py:
511 Revert back to using temporary files to send in headers.
512 Allow Functions to be passed in as callbacks, add a couple
513 of try/excepts missing features.
514 We can now scan pango
516 2008-05-08 Johan Dahlin <johan@gnome.org>
518 * giscanner/glibtransformer.py:
519 * giscanner/transformer.py:
520 Move namespace stripping glibtransformer->transformer
522 2008-05-08 Johan Dahlin <johan@gnome.org>
525 * giscanner/girwriter.py:
526 * giscanner/glibtransformer.py:
527 * giscanner/transformer.py:
528 * tools/g-ir-scanner:
529 Introduce a namespace ast node
531 2008-05-05 Johan Dahlin <johan@gnome.org>
533 * giscanner/__init__.py:
534 * giscanner/sourcescanner.py:
535 * giscanner/transformer.py:
536 Move sourcescanner symbols to the sourcescanner module, instead
537 of in the global __init__ namespace.
539 2008-05-03 Johan Dahlin <johan@gnome.org>
541 * giscanner/glibtransformer.py:
542 * tools/g-ir-scanner:
543 Handle missing parameters better, allow - and + in .la dlname
546 2008-05-03 Johan Dahlin <johan@gnome.org>
548 * giscanner/__init__.py:
550 * giscanner/girwriter.py:
551 * giscanner/glibtransformer.py:
552 * giscanner/transformer.py:
553 Parse struct fields properly, improve debugging.
555 2008-04-29 Johan Dahlin <johan@gnome.org>
558 * giscanner/girwriter.py:
559 * giscanner/transformer.py:
560 * tests/parser/Foo-expected.gir:
562 Use transfer-ownership everywhere, to mark ownership/calle/caller etc.
564 2008-04-29 Johan Dahlin <jdahlin@async.com.br>
567 * docs/g-ir-scanner.1:
568 * metadata-annotations-proposal.txt:
569 * metadata-format.txt:
570 Add a basic, unfinshed man page for g-ir-scanner, move documents into .txt
572 2008-04-29 Johan Dahlin <jdahlin@async.com.br>
574 * giscanner/girwriter.py:
575 * giscanner/glibtransformer.py:
576 * giscanner/transformer.py:
577 * giscanner/xmlwriter.py:
578 * tests/parser/Foo-expected.gir:
579 * tests/parser/foo-object.h:
580 Write record/structs to gir file too. Add a couple of tests,
581 fix an off by one error in xmlwriter.py.
583 2008-04-28 Johan Dahlin <johan@gnome.org>
585 * giscanner/xmlwriter.py: Calculate the line length properly,
586 include the provided extra indentation in the calculation, really.
588 2008-04-28 Johan Dahlin <jdahlin@async.com.br>
591 * giscanner/glibast.py:
592 * giscanner/glibtransformer.py:
593 * giscanner/transformer.py:
594 * tools/g-ir-scanner:
595 Add a --strip-prefix and sort out confusion between names and symbols
596 for functions and struct + derivaties.
597 Refactor bootstrap of g-ir-scanner, so we can set options on
598 Transformer() before parsing everything.
600 2008-04-28 Johan Dahlin <johan@gnome.org>
602 * giscanner/transformer.py (Transformer._traverse_one): Avoid recursion
603 when scanning girepository.h
605 * giscanner/sourcescanner.py (SourceScanner._preprocess): Define
606 a __GI_SCANNER__ when we run.
608 2008-04-28 Johan Dahlin <jdahlin@async.com.br>
611 * giscanner/girwriter.py:
612 * giscanner/glibast.py:
613 * giscanner/glibtransformer.py:
614 * tests/parser/Foo-expected.gir:
615 * tests/parser/utility-expected.gir:
616 Rename most c:identifier to c:type. Add new ones to
617 class/interface/enum/boxed.
619 2008-04-28 Johan Dahlin <jdahlin@async.com.br>
622 * giscanner/girwriter.py:
623 * giscanner/glibtransformer.py:
624 * tests/parser/Foo-expected.gidl:
625 * tests/parser/Makefile.am:
626 Move c:identifier from return-value to subchild type,
627 as per Jürgs suggestion
629 2008-04-28 Johan Dahlin <johan@gnome.org>
631 * giscanner/girwriter.py:
632 * tests/parser/Foo-expected.gir:
633 Write property.type as a child node.
635 2008-04-27 Johan Dahlin <johan@gnome.org>
640 * gidl/gobject-2.0.gidl:
642 * gir/gobject-2.0.gir:
643 * tests/parser/Makefile.am:
644 Replace the GObject gidl with a GObject gir.
646 2008-04-27 Johan Dahlin <johan@gnome.org>
648 * tools/Makefile.am (bin_SCRIPTS): g-ir-scanner is a script,
651 * giscanner/xmlwriter.py:
652 * tests/parser/Foo-expected.gir:
653 Include indentation in line length calculation
655 2008-04-27 Johan Dahlin <johan@gnome.org>
657 * giscanner/girparser.py:
658 Prettify NS parsing using elementtree.
660 2008-04-27 Johan Dahlin <johan@gnome.org>
663 * giscanner/Makefile.am:
664 * giscanner/girparser.py:
665 * giscanner/glibtransformer.py:
666 * tests/parser/Foo-expected.gidl:
667 * tests/parser/Foo-expected.gir:
668 * tests/parser/Makefile.am:
669 * tests/parser/utility-expected.gidl:
670 * tests/parser/utility-expected.gir:
671 * tools/g-ir-scanner:
672 Switch over to GIR as the default format. Add a simple GIDL
674 Update tests and fix simplify makefiles by depending
675 on GNU make extensions.
677 2008-04-27 Johan Dahlin <johan@gnome.org>
679 * giscanner/xmlwriter.py:
680 Wrap attributes for lines which are wider than 79 characters
682 * giscanner/scannerlexer.l:
683 Allow parenthesis in annotations
686 * giscanner/gidlwriter.py:
687 * giscanner/girwriter.py:
688 * giscanner/glibtransformer.py:
689 * giscanner/transformer.py:
690 Add initial sequence support, including annotation.
691 Refactor type handling a bit.
693 2008-04-27 Johan Dahlin <johan@gnome.org>
695 * tests/parser/Foo-expected.gidl:
696 * tests/parser/foo-object.h:
697 * tests/parser/foo.c (foo_object_class_init),
698 (foo_object_get_strings), (foo_object_get_objects):
699 Add two new functions to check sequence return values.
700 Also fixes a compilation warning.
702 2008-04-27 Johan Dahlin <johan@gnome.org>
704 * giscanner/giscannermodule.c (]): Cast the getter, avoids
705 a compilation warning.
707 * tools/Makefile.am (g_ir_scanner_SOURCES):
708 g-ir-scanner has no sources.
710 2008-04-25 Johan Dahlin <johan@gnome.org>
712 * giscanner/Makefile.am:
714 * giscanner/gidlparser.py:
715 * giscanner/gidlwriter.py:
716 * giscanner/girwriter.py:
717 * giscanner/glibast.py:
718 * giscanner/glibtransformer.py:
719 * giscanner/transformer.py:
720 Split out nodes to ast.py and glibast.py
722 2008-04-25 Johan Dahlin <jdahlin@async.com.br>
724 * giscanner/Makefile.am:
725 * giscanner/gidlparser.py:
726 * giscanner/gidlwriter.py:
727 * giscanner/girwriter.py:
728 * giscanner/glibtransformer.py:
729 * giscanner/gobjecttreebuilder.py:
730 * giscanner/transformer.py:
731 * giscanner/treebuilder.py:
732 * tools/g-ir-scanner:
733 Rename treebuilder to transformer and
734 gobjectreebuilder to glibtransformer.
736 2008-04-25 Johan Dahlin <jdahlin@async.com.br>
738 * giscanner/Makefile.am:
739 * giscanner/__init__.py:
740 * giscanner/cgobject.py:
741 * giscanner/gidlparser.py:
742 * giscanner/gidlwriter.py:
743 * giscanner/girwriter.py:
744 * giscanner/gobjecttreebuilder.py:
745 * giscanner/odict.py:
746 * giscanner/sourcescanner.py:
747 * giscanner/treebuilder.py:
748 * giscanner/xmlwriter.py:
750 * tools/g-ir-scanner:
751 Add LGPLv2 license header and install all python files
753 2008-04-25 Johan Dahlin <jdahlin@async.com.br>
756 * giscanner/gidlwriter.py:
757 * giscanner/giscannermodule.c (pygi_source_directive_new),
758 (directive_get_options), (pygi_source_symbol_new),
759 (symbol_get_base_type), (pygi_source_type_new),
760 (type_get_base_type), (type_get_child_list),
761 (pygi_source_scanner_get_symbols),
762 (pygi_source_scanner_get_directives):
763 * giscanner/gobjecttreebuilder.py:
764 * giscanner/sourcescanner.py:
765 * giscanner/treebuilder.py:
766 * tests/parser/foo-object.h:
767 Add support for virtual methods.
768 Pair struct FooClass with struct Foo.
769 Clean up the SourceScanner bindings a bit.
770 Add a testcase for virtual methods.
772 2008-04-25 Johan Dahlin <jdahlin@async.com.br>
774 * giscanner/cgobject.py:
775 * giscanner/gidlwriter.py:
776 * giscanner/gobjecttreebuilder.py:
777 Add support for signals
779 * tests/parser/foo.c (foo_object_class_init):
781 Add a signal and update the expected output.
783 2008-04-24 Johan Dahlin <jdahlin@async.com.br>
785 * giscanner/gidlwriter.py:
786 * giscanner/girwriter.py:
787 * giscanner/giscannermodule.c (directive_get_name),
788 (directive_get_value), (directive_get_options),
789 (symbol_get_directives), (symbol_set_directives),
790 (pygi_source_scanner_parse_file),
791 (pygi_source_scanner_lex_filename),
792 (pygi_source_scanner_get_directives), (init_giscanner):
793 * giscanner/sourcescanner.c (gi_source_scanner_get_directives):
794 * giscanner/sourcescanner.h:
795 * giscanner/sourcescanner.py:
796 * giscanner/treebuilder.py:
797 * tools/g-ir-scanner:
798 Add support for source/header annotations.
800 2008-04-22 Johan Dahlin <jdahlin@async.com.br>
802 * giscanner/gidlwriter.py:
803 * giscanner/girwriter.py:
804 * giscanner/gobjecttreebuilder.py:
805 * giscanner/treebuilder.py:
806 Add support for Callbacks
808 2008-04-22 Havoc Pennington <hp@pobox.com>
810 * girepository/ginvoke.c (g_function_info_invoke): If a symbol is
811 not in metadata->module, look for it in the global module, in case
812 some other object or the app itself provides the symbol.
814 2008-04-22 Havoc Pennington <hp@pobox.com>
816 * girepository/gmetadata.c (_g_metadata_init): hack to avoid
817 dlopening a library that is already in the main app, by checking
818 whether one of the lib's symbols is already loaded.
820 2008-04-22 Johan Dahlin <jdahlin@async.com.br>
822 * tests/parser/Foo-expected.gidl:
823 * tests/parser/foo-object.h:
826 2008-04-22 Havoc Pennington <hp@pobox.com>
828 * girepository/ginfo.c (g_interface_info_find_method):
829 Use interface_blob_size not object_blob_size to compute offset.
831 2008-04-22 Havoc Pennington <hp@pobox.com>
833 * girepository/gmetadata.c (_g_metadata_init): remove
834 G_MODULE_BIND_LOCAL flag when loading libraries, since some libs
835 (Glade and Clutter for example) rely on being loaded globally.
837 2008-04-22 Havoc Pennington <hp@pobox.com>
839 * girepository/ginfo.c (g_registered_type_info_get_g_type): new
840 function to get the GType given a RegisteredTypeInfo
842 2008-04-22 Johan Dahlin <johan@gnome.org>
844 * COPYING: Add a LGPL license, to prevent automake to
845 put in a copy of GPL here. Pointed out by Havoc.
847 * girepository/ginfo.c (g_info_from_entry), (g_type_info_new),
848 (g_type_info_is_pointer), (g_type_info_get_tag),
849 (g_type_info_get_param_type), (g_type_info_get_interface),
850 (g_type_info_get_array_length), (g_type_info_is_zero_terminated),
851 (g_type_info_get_n_error_domains), (g_type_info_get_error_domain),
852 (g_error_domain_info_get_codes), (g_enum_info_get_value),
853 (g_object_info_get_interface), (g_object_info_get_field),
854 (g_interface_info_get_prerequisite),
855 (g_signal_info_get_class_closure), (g_constant_info_get_value):
856 * girepository/ginvoke.c (get_ffi_type):
857 * girepository/girepository.h:
858 * girepository/gmetadata.c (g_metadata_get_dir_entry),
859 (g_metadata_check_sanity), (validate_header),
860 (validate_array_type_blob), (validate_iface_type_blob),
861 (validate_param_type_blob), (validate_error_type_blob),
862 (validate_type_blob), (validate_constant_blob),
863 (validate_struct_blob), (validate_enum_blob):
864 * girepository/gmetadata.h:
866 * tests/invoke/Makefile.am:
867 * tests/invoke/invoke.c (main):
868 * tests/roundtrips.sh:
870 * tools/compiler.c (format_output), (write_out_metadata), (main):
871 * tools/generate.c (write_type_name), (write_type_info),
872 (write_constant_value), (write_enum_info), (load_metadata), (main):
873 * tools/gidlcompilercontext.c:
874 * tools/gidlcompilercontext.h:
875 * tools/gidlcompilerentrynode.c:
876 * tools/gidlcompilerentrynode.h:
877 * tools/gidlcompilertypenode.c:
878 * tools/gidlcompilertypenode.h:
879 * tools/gidlmodule.c (g_idl_module_build_metadata):
880 * tools/gidlmodule.h:
881 * tools/gidlnode.c (init_stats), (dump_stats),
882 (g_idl_node_get_size), (g_idl_node_get_full_size),
883 (g_idl_node_cmp), (g_idl_node_can_have_member),
884 (g_idl_node_add_member), (g_idl_node_param_direction_string),
885 (parse_int_value), (parse_uint_value), (parse_float_value),
886 (parse_boolean_value), (find_entry_node), (find_entry),
887 (serialize_type), (g_idl_node_build_metadata), (write_string):
889 * tools/gidlparser.c (parse_type_internal):
890 * tools/quote-file.sh:
891 Revert revisions 157,149-148,136-129 and 120.
892 Move back to using g-idl-generate to generate the metadata and
893 avoids dependency on a c compiler.
895 2008-04-22 Johan Dahlin <jdahlin@async.com.br>
897 * giscanner/girwriter.py:
898 * tools/g-ir-scanner:
899 Add an initial GIR writer and a --format option to g-ir-scanner
901 2008-04-21 Johan Dahlin <johan@gnome.org>
903 * giscanner/cgobject.py: Use ctypes.util.find_library to locate
904 gobject-2.0 and raise ImportError if not found.
906 * giscanner/gidlparser.py:
907 * giscanner/gidlwriter.py:
908 * giscanner/gobjecttreebuilder.py:
909 * tools/g-ir-scanner:
910 Add a --include argument to include types from other idls.
911 Add a minimalistic GIDL parser (just objects for now)
912 Implement resolving of external type references and use it to
913 resolve parent types, argument types and return types.
915 2008-04-21 Johan Dahlin <johan@gnome.org>
917 * giscanner/gidlwriter.py:
918 * giscanner/gobjecttreebuilder.py:
919 * giscanner/treebuilder.py:
920 Add support for properties.
921 Refactor Class/Interface support a bit, to share more code and
922 always initialize their method attribute to an empty list.
924 2008-04-21 Johan Dahlin <johan@gnome.org>
926 * giscanner/cgobject.py:
927 Add a workaround for a glib bug interface introspection bug
928 (object_interface_list_properties, object_class_list_properties):
929 Cast the return value to GParamSpec.
931 * tests/parser/Foo-expected.gidl: Update
932 * tests/parser/foo.c: Add a string property
934 * giscanner/gobjecttreebuilder.py:
935 After stripping namespaces, remove the original
936 item to avoid duplication (GtkButton struct and Button object)
938 2008-04-21 Johan Dahlin <johan@gnome.org>
940 * giscanner/gobjecttreebuilder.py:
941 * giscanner/treebuilder.py:
942 Strip namespaces before objects, so we'll export
943 GtkButton as Button in the gtk namespace
945 2008-04-21 Johan Dahlin <johan@gnome.org>
947 * giscanner/gidlwriter.py:
948 * giscanner/gobjecttreebuilder.py:
949 * giscanner/treebuilder.py:
950 Add constructors for object/boxed types.
952 2008-04-21 Johan Dahlin <johan@gnome.org>
954 * giscanner/gidlwriter.py:
955 * giscanner/gobjecttreebuilder.py:
956 Add support for boxed types
958 2008-04-21 Johan Dahlin <johan@gnome.org>
960 * giscanner/giscannermodule.c: Mark structures as const,
961 wrap SourceType.const_string.
963 * tests/parser/foo-object.h: Add a couple of constants.
965 * giscanner/gidlwriter.py:
966 * giscanner/gobjecttreebuilder.py:
967 * giscanner/treebuilder.py:
968 Add basic support for interfaces
970 * tools/g-ir-scanner:
971 Add -o/--output for writing to a file
973 2008-04-21 Havoc Pennington <hp@redhat.com>
975 * TODO: add some C API wishlist items I could think of quickly
977 2008-04-21 Johan Dahlin <jdahlin@async.com.br>
979 * giscanner/gidlwriter.py:
980 * giscanner/xmlwriter.py:
981 Add a simple api for writing tags which can be used
982 with the new 'with statement' in python 2.5
984 2008-04-21 Johan Dahlin <johan@gnome.org>
986 * giscanner/gobjecttreebuilder.py:
987 Strip namespace and object prefix from method names.
989 2008-04-21 Johan Dahlin <johan@gnome.org>
991 * tools/g-ir-scanner (main): Add --pkg option to pass in
992 pkg-config modules to get cflags from.
994 * giscanner/gidlwriter.py (GIDLWriter._write_method):
995 Avoid duplication, reuse function writer for methods.
997 2008-04-21 Johan Dahlin <jdahlin@async.com.br>
999 * giscanner/gidlwriter.py:
1000 * giscanner/gobjecttreebuilder.py:
1001 * giscanner/treebuilder.py:
1002 * tools/g-ir-scanner:
1003 Resolve libtool .la files.
1004 Strip name spaces for methods.
1005 Add function symbols
1007 2008-04-20 Johan Dahlin <jdahlin@async.com.br>
1009 * giscanner/cgobject.py:
1010 * giscanner/gidlwriter.py:
1011 * giscanner/gobjecttreebuilder.py:
1012 * giscanner/treebuilder.py:
1013 Add support for classes and methods
1015 2008-04-20 Johan Dahlin <johan@gnome.org>
1017 * giscanner/gidlwriter.py:
1018 * giscanner/gobjecttreebuilder.py:
1019 * giscanner/odict.py:
1020 Avoid conflicts, keep the output ordered similar to
1021 the order of the input.
1022 Add a simple ordered dictionary implemenation
1024 2008-04-19 Johan Dahlin <johan@gnome.org>
1026 * giscanner/cgobject.py:
1027 * giscanner/gidlwriter.py:
1028 * giscanner/gobjecttreebuilder.py:
1029 * tools/g-ir-scanner:
1030 Start introspecting get-type functions.
1031 Implement support for GLib/GFlags GTypes.
1032 Add a ctype based GObject binding.
1034 2008-04-18 Johan Dahlin <jdahlin@async.com.br>
1036 * giscanner/gidlwriter.py:
1037 * giscanner/xmlwriter.py:
1038 * tools/g-ir-scanner:
1039 Add a simplistic gidl writer, which can't do too much.
1041 2008-04-18 Johan Dahlin <johan@gnome.org>
1043 * giscanner/sourcescanner.py:
1044 * giscanner/treebuilder.py:
1045 * tools/g-ir-scanner:
1046 split tree building and source scanning interface to separate files.
1048 2008-04-18 Johan Dahlin <johan@gnome.org>
1050 * tools/g-ir-scanner (Parameter.__init__): Start constructing
1052 - Add support for struct/parameter/return, start parsing of ctypes
1054 * giscanner/giscannermodule.c: wrap GISourceType.child_list and
1057 2008-03-31 Johan Dahlin <johan@gnome.org>
1059 * tools/g-ir-scanner:
1060 Start to build abstract syntax node of scanned sources.
1061 Add support for cpp options.
1063 2008-03-27 Johan Dahlin <johan@gnome.org>
1065 * giscanner/giscannermodule.c:
1066 * giscanner/scannerlexer.l:
1067 * giscanner/sourcescanner.c:
1068 * tools/g-ir-scanner:
1070 Add simple pre-processor using subprocess and a PIPE.
1071 Change the parse_file apis to accept a file descriptor.
1073 2008-03-25 Johan Dahlin <johan@gnome.org>
1075 * giscanner/__init__.py:
1076 * tools/g-ir-scanner:
1077 Fix a typo and add an example python test program.
1079 2008-03-25 Johan Dahlin <johan@gnome.org>
1081 * giscanner/__init__.py:
1082 * giscanner/giscannermodule.c:
1083 * giscanner/sourcescanner.c:
1084 * giscanner/sourcescanner.h:
1085 Add constants and wrap a few more SymbolType fields
1087 2008-03-25 Johan Dahlin <johan@gnome.org>
1091 * giscanner/__init__.py:
1092 * giscanner/giscannermodule.c:
1093 * giscanner/Makefile.am:
1095 Add initial python bindings for the scanner and
1096 depend on python 2.5.
1098 2008-03-25 Johan Dahlin <johan@gnome.org>
1102 * giscanner/Makefile.am:
1103 * giscanner/sourcescanner.c:
1104 * giscanner/sourcescanner.h:
1105 * tools/Makefile.am:
1106 * tools/grealpath.h:
1107 * tools/sourcescanner.c:
1108 * tools/sourcescanner.h:
1110 Move the scanner to a separate library.
1112 2008-03-23 Johan Dahlin <johan@gnome.org>
1114 * tools/Makefile.am:
1117 * tools/scannerlexer.l:
1118 * tools/scannerparser.y:
1119 * tools/sourcescanner.c:
1120 * tools/sourcescanner.h:
1121 Split out the source scanner from the generator.
1122 Rename the symbols used in the scanner to use the gi_ prefix.
1123 This should make it possible to use the raw C parser from
1126 2008-03-23 Johan Dahlin <johan@gnome.org>
1128 * tests/parser/Makefile.am (utility.gidl):
1129 * tests/parser/utility-expected.gidl:
1130 Pass in the gobject.gidl since we're defining a GObject.
1132 2008-03-12 Johan Dahlin <johan@gnome.org>
1134 * relaxng/relaxng.rng:
1135 Add a releaxng in relaxng we can use to validate the relaxngs
1138 2008-03-12 Jürg Billeter <j@bitron.ch>
1140 * tools/scanner.c: (g_igenerator_new):
1141 * tools/scannerparser.y:
1142 Fix compiler warnings.
1144 2008-03-12 Jürg Billeter <j@bitron.ch>
1148 * tools/scannerparser.y:
1149 Start fixing memory management in g-idl-scanner.
1151 2008-03-12 Rob Taylor <rob.taylor@codethink.co.uk>
1153 * tools/gidlcompilercontext.c: (write_compiled):
1154 Fix critical warning when no shlib passed to g-idl-compiler.
1156 2008-03-12 Johan Dahlin <johan@gnome.org>
1158 * tests/parser/utility-expected.gidl:
1159 * tests/parser/utility.h:
1160 Add a get_type-function, so the scanner actually
1161 parses it as an object.
1163 2008-03-12 Johan Dahlin <johan@gnome.org>
1165 * tools/gidlwriter.c (function_generate): Add missing trailing quote.
1168 * tests/parser/Foo-expected.gidl:
1169 * tests/parser/Makefile.am:
1170 * tests/parser/foo-object.h:
1171 * tests/parser/foo.c:
1172 * tests/parser/utility-expected.gidl:
1173 * tests/parser/utility.c:
1174 * tests/parser/utility.h:
1176 Add a new gidl test. 'utility.gidl', which is used to be able
1177 to test external type references. Add a reference to UtilityObject*
1180 2008-03-11 Johan Dahlin <johan@gnome.org>
1184 Remove most global variables
1186 2008-03-11 Philip Van Hoof <me@pvanhoof.be>
1188 * tools/scannerlexer.l:
1190 * tests/parser/Foo-expected.gidl:
1191 * tests/parser/foo.c:
1192 * tests/parser/Makefile.am:
1193 * tests/parser/foo-object.h:
1195 Added a few extra tests. Which resulted in finding a few
1196 bugs. Which resulted in me fixing those bugs
1198 2008-03-11 Rob Taylor <rob.taylor@codethink.co.uk>
1200 * tools/gidlcompilercontext.c: (g_idl_compiler_write_dir_entry),
1201 (g_idl_compiler_write_xref_entry), (g_idl_compiler_add_xref):
1202 Add some comments for strings into generated output for
1205 2008-03-11 Rob Taylor <rob.taylor@codethink.co.uk>
1207 * tools/gidlcompilercontext.c: (write_compiled):
1208 Write out the shlibs variable before writing out the strings
1209 length. Fixes compiler warning when using '-l' flag with
1212 2008-03-11 Johan Dahlin <johan@gnome.org>
1214 * tests/parser/Foo-expected.gidl:
1215 * tests/parser/foo-object.h:
1218 * tools/scannerlexer.l:
1219 Add support for parsing return arguments. Add support for
1220 caller-owns return types.
1221 Patch by Philip Van Hoof.
1223 * tools/scannerparser.y:
1224 Remove parsing of the @deprecated syntax used in headers.
1225 We will support gtk-doc deprecation in the future instead.
1227 2008-03-11 Johan Dahlin <johan@gnome.org>
1229 * tools/compiler.c (main): Coding style fixes
1231 2008-03-10 Johan Dahlin <johan@gnome.org>
1234 Add GCOV_LIBS to GILIBS
1236 2008-03-10 Johan Dahlin <johan@gnome.org>
1238 * tests/parser/Foo-expected.gidl:
1239 * tests/parser/foo.c:
1240 Rename null-ok to direction=out
1242 2008-03-10 Philip Van Hoof <me@pvanhoof.be>
1244 reviewed and extensively tested by Johan
1246 * tests/parser/Foo-expected.gidl:
1247 * tests/parser/foo-object.h:
1248 * tests/parser/foo.c:
1251 * tools/gidlwriter.c:
1254 * tools/scannerlexer.l:
1255 * tools/scannerparser.y:
1257 Add support for scanning for gtk-doc comments inside
1258 C source files. Add tests
1260 2008-03-10 Johan Dahlin <johan@gnome.org>
1262 * tests/parser/Makefile.am:
1263 * tests/parser/foo.c:
1266 * tools/scannerparser.y:
1267 Add an api to lex filenames.
1268 Lex all source .c files passed in on the command line.
1269 Scan sources in a test and a couple of private structures
1270 which should not be included in the generated gidl
1272 2008-03-10 Johan Dahlin <johan@gnome.org>
1274 * tests/invoke/Makefile.am: Make the generated metadata
1275 depend on the g-idl-compiler
1277 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1279 * tools/gidlmodule.c
1280 * tools/gidlmodule.h
1283 Remove the old g-idl-compiler code.
1286 2008-02-22 Mark Doffman <mark.doffman@codethink.co.uk>
1288 * tools/quote-file.sh
1291 Move to using the 'C' struct compiler code.
1293 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1295 * girepository/ginfo.c
1297 Change the way that external references with no namespace
1298 are dealt with. External references with no namespace
1299 are placed into the XML as-if they are a local reference.
1300 This is temporary, but helps with roundtrip tests.
1302 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1304 * girepository/ginfo.c
1305 Add the ability to get the value of a constant of
1306 type TYPE_TAG_SYMBOL. In the case of a symbol the value
1307 is provided as a string.
1309 This would deal properly with:
1310 typedef char* random;
1311 const random = "A string";
1313 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1315 * girepository/ginfo.c
1316 * girepository/girepository.h
1318 Add a function to check if an enum is registered or not.
1319 Previously anything testing this relied on the g-type
1320 string offset having a value of 0.
1322 * girepository/gmetadata.c
1323 * girepository/gmetadata.h
1325 Remove unneccesary or erroneous checks. There were two
1326 metadata validation checks which made sure that the blob
1327 sizes were the same as some magic numbers compiled into the code.
1328 This is wrong as it breaks any forwards compatibility that may
1331 Checks were also present that made sure that unregistered type
1332 blobs had a value of 0 in the g-type offset field. This is
1333 unneccessary. If a type blob is unregistered then any value
1334 in its g-type field is simply invalid.
1336 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1338 * girepository/ginfo.c
1339 * girepository/gmetadata.c
1340 * girepository/gmetadata.h
1342 Change the metadata format to have a standard header
1343 for all the type blobs. Merge the SimpleTypeBlob
1344 and InterfaceTypeBlob into a union. A union of these
1345 two blobs existed previously but was not explicit
1346 in the metadata format.
1348 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1350 * tools/gidlcompilercontext.c
1351 * tools/gidlcompilercontext.h
1352 * tools/gidlcompilerentrynode.c
1353 * tools/gidlcompilerentrynode.h
1354 * tools/gidlcompilertypenode.c
1355 * tools/gidlcompilertypenode.h
1357 Add code to compile a tree of GIdlNodes to
1358 a 'C' struct representing the metadata.
1359 This is to aid cross-compiling. Previously
1360 the g-idl-compiler created a binary blob with
1361 data written in the byte order and alignment
1362 of the tool rather than the intended target.
1364 Cleaned up and improved by Johan and Robert :-)
1366 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1368 * girepository/ginvoke.c
1369 * girepository/girepository.h
1370 * girepository/gmetadata.c
1371 * girepository/gmetadata.h
1373 * tools/gidlparser.c
1374 Modify TYPE_TAG_INTERFACE to TYPE_TAG_SYMBOL
1375 to avoid confusion with the interface blob.
1378 * tools/gidlparser.c
1379 Remove magic numbers and replace with type-tag
1380 enumeration symbols.
1382 * girepository/gmetadata.c
1383 Add validate declaration.
1385 2008-03-10 Jürg Billeter <j@bitron.ch>
1387 * tools/gidlparser.c: (parse_type_internal):
1388 * tools/scannerlexer.l:
1389 * tools/scannerparser.y:
1390 Support C99 _Bool type in scanner.
1392 2008-03-10 Jürg Billeter <j@bitron.ch>
1394 * tests/parser/Foo-expected.gidl:
1395 * tests/parser/foo-object.h:
1396 * tests/parser/foo.c: (foo_enum_method):
1397 * tools/scanner.c: (g_igenerator_process_function_symbol):
1398 Don't skip functions that are defined in the namespace of a type
1399 that doesn't support methods, as for example enums.
1401 2008-03-10 Johan Dahlin <johan@gnome.org>
1403 * gidl.dtd: Remove, we're using relaxng for now
1405 * tests/parser/Foo-expected.gidl:
1406 * tests/parser/foo-object.h:
1407 * tests/parser/foo.c:
1408 Rename the enum/flags get_type functions to include the whole type.
1410 2008-03-08 Marc-Andre Lureau <marcandre.lureau@gmail.com>
1412 * tools/gidlwriter.c (enum_generate): added "type-name",
1413 "get-type" and "deprecated" missing arguments.
1414 * tests/parser/Foo-expected.gidl:
1415 * tests/parser/foo-object.h: test enum type, and no type.
1417 2008-03-06 Johan Dahlin <jdahlin@async.com.br>
1420 Consistent checks, add missing 'test'
1422 2008-03-05 Havoc Pennington <hp@redhat.com>
1424 * configure.ac: Take advantage of a libffi.pc if one exists, as it
1425 does on Fedora 8. Make libffi a hard requirement, since it was in
1426 practice anyway (was not really conditional in the code or
1427 makefile, only in configure).
1429 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1431 reviewed by: Rob Taylor <rob.taylor@codethink.co.uk>
1432 reviewed by: Johan Dahlin <johan@gnome.org>
1434 * tests/Makefile.am:
1435 * tests/roundtrips.sh:
1436 Modify the roundtrips test so that they do not use the
1437 --raw option of the gidl compiler but instead compile a
1438 shared library to use with g_module.
1440 * tests/invoke/Makefile.am:
1441 * tests/invoke/invoke.c:
1442 Modify the invoke tests to build a shared library rather
1443 than use the --raw option.
1445 * tests/invoke/invoke-namespace-find.sh: Removed:
1446 Noone knows why this was here, so removed.
1448 2008-02-19 Rob Taylor <rob.taylor@codethink.co.uk>
1450 * tools/scanner.c: (g_igenerator_process_function_symbol):
1451 Move g_idl_node_can_have_member test later, as it broke spotting
1452 get_type's for nodes that can't have members.
1454 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
1457 * tools/gidlnode.c: (g_idl_node_can_have_member):
1458 Add g_idl_node_can_have_member.
1460 * tools/scanner.c: (g_igenerator_process_function_symbol):
1461 Use g_idl_node_can_have_member to test if we should add a function
1462 as a member of the type node.
1464 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
1466 * gidl/GLib.gidl: Renamed to gidl/gobject-2.0.gidl:
1468 * tests/parser/Makefile.am:
1469 Rename GLib.gidl to gobject-2.0.gidl and install in /usr/share/gidl.
1471 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
1473 * tools/scanner.c: (main):
1474 Ignore -pthread when passed to g-idl-scanner.
1476 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
1478 * tools/grealpath.h: Added:
1479 * tools/scanner.c: (main):
1480 * tools/scannerlexer.l:
1481 * tools/Makefile.am:
1482 Always use absolute paths with symbolic links resolved when
1483 comparing filenames.
1485 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
1487 * gobject-introspection.pc.in:
1488 Provide variables for g-idl-parser, scanner and compiler in the
1491 2008-02-13 Rob Taylor <rob.taylor@codethink.co.uk>
1494 * girepository/Makefile.am:
1495 * tools/Makefile.am:
1496 Rename GCOV_SOURCES to GCOVSOURCES to top automake complaining.
1498 2008-02-10 Johan Dahlin <johan@gnome.org>
1500 * tests/parser/Foo-expected.gidl:
1501 * tests/parser/foo-object.h:
1502 * tests/parser/foo.c: (foo_boxed_copy), (foo_boxed_free),
1503 (foo_boxed_get_type), (foo_boxed_new), (foo_boxed_method):
1506 2008-02-10 Johan Dahlin <johan@gnome.org>
1508 * tests/parser/Foo-expected.gidl:
1509 * tests/parser/foo-object.h:
1510 * tests/parser/foo.c: (foo_enum_get_type), (foo_flags_get_type):
1511 Add enum and flags test.
1513 2008-02-10 Johan Dahlin <johan@gnome.org>
1517 * girepository/Makefile.am:
1518 Make 'make distcheck' work again.
1520 2008-02-10 Johan Dahlin <johan@gnome.org>
1522 * m4/Makefile.am (EXTRA_DIST): its called as-compiler-flag.m4,
1525 * tests/parser/Makefile.am: Only create Foo.gidl when running make
1526 check, eg exclude it from BUILT_SOURCES.
1528 2008-02-08 Rob Taylor <rob.taylor@codethink.co.uk>
1533 * girepository/Makefile.am:
1534 * m4/Makefile.am: Added:
1535 * m4/as-compiler-flag.m4: Added:
1536 * m4/gcov.m4: Added:
1537 * tools/Makefile.am:
1538 Add ability to generate a coverage report.
1539 Adds configure option --enable-gcov and make rule 'check-coverage'.
1541 2008-02-08 Rob Taylor <rob.taylor@codethink.co.uk>
1545 * gidl/Makefile.am: Added:
1546 * girepository/Makefile.am: Added:
1547 * src/Makefile.am: Renamed to tools/Makefile.am:
1548 * src/compiler.c: Renamed to tools/compiler.c:
1549 * src/g-idl-offsets.pl: Renamed to tools/g-idl-offsets.pl:
1550 * src/generate.c: Renamed to tools/generate.c:
1551 * src/gidlmodule.c: Renamed to tools/gidlmodule.c:
1552 * src/gidlmodule.h: Renamed to tools/gidlmodule.h:
1553 * src/gidlnode.c: Renamed to tools/gidlnode.c:
1554 * src/gidlnode.h: Renamed to tools/gidlnode.h:
1555 * src/gidlparser.c: Renamed to tools/gidlparser.c:
1556 * src/gidlparser.h: Renamed to tools/gidlparser.h:
1557 * src/gidlwriter.c: Renamed to tools/gidlwriter.c:
1558 * src/gidlwriter.h: Renamed to tools/gidlwriter.h:
1559 * src/ginfo.c: Renamed to girepository/ginfo.c:
1560 * src/ginvoke.c: Renamed to girepository/ginvoke.c:
1561 * src/girepository.c: Renamed to girepository/girepository.c:
1562 * src/girepository.h: Renamed to girepository/girepository.h:
1563 * src/gmetadata.c: Renamed to girepository/gmetadata.c:
1564 * src/gmetadata.h: Renamed to girepository/gmetadata.h:
1565 * src/scanner.c: Renamed to tools/scanner.c:
1566 * src/scanner.h: Renamed to tools/scanner.h:
1567 * src/scannerlexer.l: Renamed to tools/scannerlexer.l:
1568 * src/scannerparser.y: Renamed to tools/scannerparser.y:
1569 * tests/invoke/Makefile.am:
1570 Split src/ into girepository/ and tools/
1574 * girepository/Makefile.am:
1575 * tests/Makefile.am:
1576 * tests/invoke/Makefile.am:
1577 * tests/parser/Makefile.am:
1578 * tests/roundtrips.sh:
1579 * tools/Makefile.am:
1580 Make distcheck work.
1582 2008-02-04 Rob Taylor <rob.taylor@codethink.co.uk>
1584 * tests/invoke/invoke.c: (main):
1585 * tests/invoke/testfns.c: (test6), (test7):
1586 * tests/invoke/testfns.xml:
1587 Add tests for invokation with a GList argument.
1588 Also tests caller-owns return values.
1590 2008-02-04 Rob Taylor <robtaylor@floopily.org>
1593 Add some documentation for GICallableInfo
1595 2008-02-01 Mark Doffman <mark.doffman@codethink.co.uk>
1598 Correct syntax errors in the DTD file.
1600 * relaxng/c-types.xml:
1601 * relaxng/g-types.xml:
1603 Add a RelaxNG specification for the GObject Introspection XML data.
1604 The Specification has validated all of the test files.
1606 2008-01-25 Rob Taylor <robtaylor@floopily.org>
1608 * tests/roundtrips.sh:
1609 * tests/struct.test:
1610 Add roundtrip tests for structs.
1612 2008-01-11 Johan Dahlin <johan@gnome.org>
1614 * src/scanner.c (g_igenerator_process_function_symbol):
1615 Refactor out g_idle_node_add_member.
1616 (create_node_from_gtype, create_node_from_ctype):
1617 Use case instead of if...else
1618 (get_type_from_type_id):
1619 Rename to create_node_from_gtype
1620 (get_type_from_ctype):
1621 Rename to create_node_from_ctype
1623 Rename ginode -> node, gitype -> type, gifunc -> func.
1625 * src/gidlnode.c (g_idl_node_add_member, g_idl_node_cmp):
1626 Two new functions, refactor out of scanner.c
1628 * src/scanner.c: (g_igenerator_process_function_symbol):
1629 * src/scannerlexer.l:
1630 Do not save the content of the deprecated variable, only
1633 2008-01-11 Johan Dahlin <johan@gnome.org>
1635 * tests/parser/foo-object.h: Add a couple of comment parser tests.
1637 2008-01-11 Jürg Billeter <j@bitron.ch>
1639 * src/scannerlexer.l:
1640 Fix GTK-Doc parsing.
1642 2008-01-11 Jürg Billeter <j@bitron.ch>
1644 * src/scannerlexer.l:
1645 Fix GTK-Doc parsing.
1647 2008-01-11 Jürg Billeter <j@bitron.ch>
1649 * src/scanner.c: (lookup_symbol):
1650 Return unresolved name if we find unknown symbol.
1652 2008-01-11 Jürg Billeter <j@bitron.ch>
1654 * src/scanner.c: (g_igenerator_generate):
1655 Initialize GObject to fix scanning interface properties.
1657 * tests/parser/Foo-expected.gidl:
1658 * tests/parser/foo-object.h:
1659 * tests/parser/foo.c: (foo_interface_get_type):
1660 Test interfaces with GObject prerequisite.
1662 * tests/parser/Makefile.am:
1663 Set G_DEBUG=fatal_warnings to abort test on warnings and criticals.
1665 2007-12-27 Johan Dahlin <johan@gnome.org>
1667 * src/scannerlexer.l:
1668 Parse gtk-doc comments.
1670 * src/gidlwriter.c: (function_generate):
1671 Reorganize, avoid duplication and add support for
1672 writing deprecated functions.
1674 * src/scannerparser.y:
1676 Add new structure CDirective and functions to create/free them.
1678 * src/scanner.c: (g_igenerator_process_function_symbol),
1679 (g_igenerator_process_unregistered_struct_typedef),
1680 (g_igenerator_process_struct_typedef),
1681 (g_igenerator_process_union_typedef),
1682 (g_igenerator_process_enum_typedef),
1683 (g_igenerator_process_function_typedef), (g_igenerator_add_symbol),
1684 (g_igenerator_start_preprocessor):
1685 Parse @deprecated directive for functions.
1686 Remove some more C99isms.
1687 Send in -C to cpp to avoid stripping comments.
1689 * tests/parser/foo-object.h:
1690 * tests/parser/Foo-expected.gidl:
1691 Add deprecated directive
1693 2007-12-27 Johan Dahlin <johan@gnome.org>
1695 * src/scannerlexer.l (intsuffix): Add emacs mode line and
1696 escape ' and " so it looks more like C.
1699 Unlink temporary file used.
1701 2007-12-27 Johan Dahlin <johan@gnome.org>
1703 * src/scanner.c: (g_igenerator_new), (g_igenerator_free),
1704 (g_igenerator_start_preprocessor), (main):
1706 * src/scannerparser.y:
1707 Plug a couple of simple memory leaks.
1709 2007-12-27 Johan Dahlin <johan@gnome.org>
1711 * src/scanner.c: (g_igenerator_parse_macros),
1712 (g_igenerator_start_preprocessor), (g_igenerator_set_verbose),
1715 * src/scannerparser.y:
1716 * tests/parser/Makefile.am:
1718 Improve error reporting, return when the preprocessor fails.
1719 Add a verbose parameter, to aid debugging.
1720 Revert to using a temporary file to communicate between the
1721 preprocessor and the parser, because we need to wait for
1722 the exit code from the pre-processor before starting to parse.
1724 2007-12-16 Johan Dahlin <jdahlin@async.com.br>
1726 * src/Makefile.am: Rename clexer.l to scannerlexer.l and
1727 cparser.y to scannerparser.y
1729 2007-12-11 Johan Dahlin <johan@gnome.org>
1733 * src/scanner.c: (g_igenerator_new):
1735 Get rid of the global the_generator variable.
1737 2007-12-10 Johan Dahlin <johan@gnome.org>
1739 * src/scanner.c (main): Add an output option,
1740 add checks for required parameters
1743 set BUILD_SOURCES and CLEANFILES properly
1745 * src/gidlwriter.c: (g_writer_write_inline), (g_writer_write),
1746 (g_writer_write_indent), (g_writer_write_unindent),
1747 (field_generate), (value_generate), (constant_generate),
1748 (property_generate), (function_generate), (vfunc_generate),
1749 (signal_generate), (interface_generate), (struct_generate),
1750 (union_generate), (boxed_generate), (enum_generate),
1751 (node_generate), (g_writer_write_module), (g_idl_writer_save_file):
1753 * src/scanner.c: (g_igenerator_generate):
1755 * src/scannerwriter.c:
1757 Refactor scannerwriter to only be tied to a GIdlModule and move
1758 it (again!) to gidlwriter.c. Change the writer function to take
1761 2007-12-10 Johan Dahlin <johan@gnome.org>
1764 * src/scanner.c: (g_igenerator_generate):
1766 * src/scannerwriter.c: (g_igenerator_write_inline),
1767 (g_igenerator_write), (g_igenerator_write_indent),
1768 (g_igenerator_write_unindent), (field_generate), (value_generate),
1769 (constant_generate), (property_generate), (function_generate),
1770 (vfunc_generate), (signal_generate), (interface_generate),
1771 (struct_generate), (union_generate), (boxed_generate),
1772 (enum_generate), (node_generate), (module_generate),
1773 (g_scanner_write_file):
1775 Move the scanner gidl writing to a separate source file.
1777 2007-12-10 Johan Dahlin <johan@gnome.org>
1782 Move over all CType construction functions.
1784 * tests/parser/Makefile.am:
1785 Be verbose when printing parsing tests results.
1787 2007-12-10 Johan Dahlin <johan@gnome.org>
1789 * src/scanner.c (g_igenerator_start_preprocessor): Refactor
1790 preprocessor handling to here. Start cpp insteado of cc -E,
1791 always include -U__GNUC__, since it's specific to the preprocessor
1794 * tests/parser/Makefile.am (check-local): Silent diff and skip
1795 -U__GNUC__ which is always defined now
1797 2007-12-10 Johan Dahlin,,, <jdahlin@plasttroll>
1799 reviewed by: <delete if not using a buddy>
1801 * src/scanner.c: (g_igenerator_start_preprocessor), (main):
1802 * tests/parser/Makefile.am:
1804 2007-12-09 Johan Dahlin <johan@gnome.org>
1807 Use GOption for command line options.
1808 (g_igenerator_new, main): Simplify constructor and they way
1809 parameters are passed into it.
1815 * src/gen-introspect.c:
1816 * src/gen-introspect.h:
1818 Rename gen-introspect.[ch] to scanner.[ch]
1820 2007-12-09 Johan Dahlin <johan@gnome.org>
1824 * src/Makefile.am: Rename gen-introspect to g-idl-scanner,
1825 don't make the repository library and the other utilites link against
1828 * src/gen-introspect.c: (g_igenerator_create_object),
1829 (g_igenerator_create_interface), (g_igenerator_create_boxed),
1830 (g_igenerator_create_enum), (g_igenerator_create_flags),
1831 (g_igenerator_process_module_symbol),
1832 (g_igenerator_process_module), (g_igenerator_generate), (main):
1833 * src/gen-introspect.h:
1834 Refactor g_igenerator_process_types into smaller pieces.
1836 * tests/parser/Makefile.am:
1837 Depend on the gen-introspect binary
1839 2007-12-09 Johan Dahlin <johan@gnome.org>
1841 * src/gen-introspect.c (g_igenerator_process_types):
1842 Break into smaller pieces, one for each generated node type.
1844 2007-12-08 Johan Dahlin <johan@gnome.org>
1846 * src/gen-introspect.c: (g_igenerator_process_types),
1847 (g_igenerator_add_module):
1848 * tests/parser/Foo-expected.gidl:
1849 * tests/parser/foo-object.h:
1850 * tests/parser/foo.c: (foo_subobject_class_init),
1851 (foo_subobject_init):
1853 Add a subobject test and make sure to register defined classes
1854 in the lookup symbol hash table.
1856 2007-12-08 Johan Dahlin <johan@gnome.org>
1860 * src/gen-introspect.c: (g_igenerator_new), (lookup_symbol),
1861 (g_igenerator_process_types), (g_igenerator_add_module),
1862 (g_igenerator_add_include_idl), (main):
1863 * src/gen-introspect.h:
1864 * tests/parser/Makefile.am:
1865 * tests/parser/Foo-expected.gidl:
1867 Change the gen-introspect to generate namespaced module names,
1868 such as GLib.Object instead of GObject.
1869 Add a GLib.gidl which introduces GLib.Object and GLib.InitiallyUnowned,
1870 add a --include-idl parameter to gen-introspect,
1871 and update the parser test.
1873 2007-12-08 Johan Dahlin <johan@gnome.org>
1875 * src/gen-introspect.c:
1876 Move main to the end of the file and attempt to make it valid
1879 * tests/parser/Makefile.am (BUILT_SOURCES): Remove .repo here,
1880 we're not quite ready to generate metadata yet.
1885 Add a simple gen-introspect parser test
1887 2007-12-06 Gustavo J. A. M. Carneiro <gjc@gnome.org>
1889 reviewed by: Johan Dahlin <johan@gnome.org>
1892 * gobject-introspection.pc.in:
1894 * src/compiler.c: (format_output), (write_out_metadata), (main):
1895 * src/gen-introspect.c: (main):
1896 * src/gen-introspect.h:
1897 * src/generate.c: (write_callable_info), (write_repository),
1898 (load_metadata), (main):
1899 * src/gidlmodule.c: (g_idl_module_new),
1900 (g_idl_module_build_metadata):
1902 * src/gidlparser.c: (start_element_handler):
1903 * src/ginfo.c: (g_info_new), (g_info_from_entry),
1904 (g_base_info_get_name), (g_base_info_get_namespace),
1905 (g_base_info_is_deprecated), (g_base_info_get_annotation),
1906 (g_base_info_get_metadata), (g_function_info_get_symbol),
1907 (g_function_info_get_flags), (g_function_info_get_property),
1908 (g_function_info_get_vfunc), (signature_offset), (g_type_info_new),
1909 (g_callable_info_may_return_null),
1910 (g_callable_info_get_caller_owns), (g_callable_info_get_n_args),
1911 (g_callable_info_get_arg), (g_arg_info_get_direction),
1912 (g_arg_info_is_return_value), (g_arg_info_is_dipper),
1913 (g_arg_info_is_optional), (g_arg_info_may_be_null),
1914 (g_arg_info_get_ownership_transfer), (g_type_info_is_pointer),
1915 (g_type_info_get_tag), (g_type_info_get_param_type),
1916 (g_type_info_get_interface), (g_type_info_get_array_length),
1917 (g_type_info_is_zero_terminated),
1918 (g_type_info_get_n_error_domains), (g_type_info_get_error_domain),
1919 (g_error_domain_info_get_quark), (g_error_domain_info_get_codes),
1920 (g_value_info_get_value), (g_field_info_get_flags),
1921 (g_field_info_get_size), (g_field_info_get_offset),
1922 (g_registered_type_info_get_type_name),
1923 (g_registered_type_info_get_type_init),
1924 (g_struct_info_get_n_fields), (g_struct_info_get_field),
1925 (g_struct_info_get_n_methods), (g_struct_info_get_method),
1926 (find_method), (g_struct_info_find_method),
1927 (g_enum_info_get_n_values), (g_enum_info_get_value),
1928 (g_object_info_get_parent), (g_object_info_get_type_name),
1929 (g_object_info_get_type_init), (g_object_info_get_n_interfaces),
1930 (g_object_info_get_interface), (g_object_info_get_n_fields),
1931 (g_object_info_get_field), (g_object_info_get_n_properties),
1932 (g_object_info_get_property), (g_object_info_get_n_methods),
1933 (g_object_info_get_method), (g_object_info_find_method),
1934 (g_object_info_get_n_signals), (g_object_info_get_signal),
1935 (g_object_info_get_n_vfuncs), (g_object_info_get_vfunc),
1936 (g_object_info_get_n_constants), (g_object_info_get_constant),
1937 (g_interface_info_get_n_prerequisites),
1938 (g_interface_info_get_prerequisite),
1939 (g_interface_info_get_n_properties),
1940 (g_interface_info_get_property), (g_interface_info_get_n_methods),
1941 (g_interface_info_get_method), (g_interface_info_find_method),
1942 (g_interface_info_get_n_signals), (g_interface_info_get_signal),
1943 (g_interface_info_get_n_vfuncs), (g_interface_info_get_vfunc),
1944 (g_interface_info_get_n_constants),
1945 (g_interface_info_get_constant), (g_property_info_get_flags),
1946 (g_signal_info_get_flags), (g_signal_info_get_class_closure),
1947 (g_signal_info_true_stops_emit), (g_vfunc_info_get_flags),
1948 (g_vfunc_info_get_offset), (g_vfunc_info_get_signal),
1949 (g_constant_info_get_value), (g_union_info_get_n_fields),
1950 (g_union_info_get_field), (g_union_info_get_n_methods),
1951 (g_union_info_get_method), (g_union_info_is_discriminated),
1952 (g_union_info_get_discriminator_offset),
1953 (g_union_info_get_discriminator):
1954 * src/ginvoke.c: (g_function_info_invoke):
1955 * src/girepository.c: (g_irepository_register),
1956 (g_irepository_unregister), (g_irepository_get_default),
1957 (count_interfaces), (g_irepository_get_n_infos), (find_interface),
1958 (g_irepository_get_info), (g_irepository_find_by_name),
1959 (g_irepository_get_shared_library),
1960 (g_irepository_build_search_path), (g_irepository_register_file),
1961 (g_irepository_error_quark):
1962 * src/girepository.h:
1963 * src/gmetadata.c: (g_metadata_get_dir_entry),
1964 (g_metadata_check_sanity), (validate_header),
1965 (validate_array_type_blob), (validate_iface_type_blob),
1966 (validate_param_type_blob), (validate_error_type_blob),
1967 (validate_type_blob), (validate_arg_blob),
1968 (validate_signature_blob), (validate_function_blob),
1969 (validate_callback_blob), (validate_constant_blob),
1970 (validate_value_blob), (validate_field_blob),
1971 (validate_property_blob), (validate_signal_blob),
1972 (validate_vfunc_blob), (validate_struct_blob),
1973 (validate_enum_blob), (validate_object_blob),
1974 (validate_interface_blob), (validate_errordomain_blob),
1975 (validate_union_blob), (validate_blob), (validate_directory),
1976 (validate_annotations), (g_metadata_validate), (_g_metadata_init),
1977 (g_metadata_new_from_memory), (g_metadata_new_from_const_memory),
1978 (g_metadata_new_from_mapped_file), (g_metadata_free),
1979 (g_metadata_set_module), (g_metadata_get_namespace):
1981 * tests/Makefile.am:
1982 * tests/invoke/Makefile.am:
1983 * tests/invoke/invoke-namespace-find.sh:
1984 * tests/invoke/invoke.c: (main):
1986 Add a namespace/shared library mapping. fixes #313268.
1988 2007-12-03 Johan Dahlin <johan@gnome.org>
1990 * src/gidlparser.c (parse_type_internal): Disable char/gchar and
1993 2007-11-30 Jürg Billeter <j@bitron.ch>
1999 * src/gen-introspect.c: (g_idl_node_cmp), (g_igenerator_new),
2000 (g_igenerator_write_inline), (g_igenerator_write),
2001 (g_igenerator_write_indent), (g_igenerator_write_unindent),
2002 (field_generate), (value_generate), (constant_generate),
2003 (property_generate), (function_generate), (vfunc_generate),
2004 (signal_generate), (interface_generate), (struct_generate),
2005 (union_generate), (boxed_generate), (enum_generate),
2006 (node_generate), (module_generate), (get_type_from_type_id),
2007 (str_replace), (g_igenerator_process_properties),
2008 (g_igenerator_process_signals), (g_igenerator_process_types),
2009 (get_type_from_ctype), (g_igenerator_process_function_symbol),
2010 (g_igenerator_process_unregistered_struct_typedef),
2011 (g_igenerator_process_struct_typedef),
2012 (g_igenerator_process_union_typedef),
2013 (g_igenerator_process_enum_typedef),
2014 (g_igenerator_process_function_typedef),
2015 (g_igenerator_process_constant), (g_igenerator_process_symbols),
2016 (g_igenerator_add_symbol), (g_igenerator_is_typedef),
2017 (g_igenerator_generate), (main), (csymbol_new),
2018 (csymbol_get_const_boolean), (ctype_new), (ctype_copy),
2019 (cbasic_type_new), (ctypedef_new), (cstruct_new), (cunion_new),
2020 (cenum_new), (cpointer_new), (carray_new), (cfunction_new),
2021 (eat_hspace), (eat_line), (read_identifier),
2022 (g_igenerator_parse_macros):
2023 * src/gen-introspect.h:
2025 Import gen-introspect to generate introspection information by
2028 2007-11-30 Jürg Billeter <j@bitron.ch>
2030 * src/gidlnode.c: (g_idl_node_new): support creating callback nodes
2032 2007-11-30 Jürg Billeter <j@bitron.ch>
2034 * src/gidlparser.c: (end_element_handler): Don't leave requires
2037 2007-11-29 Johan Dahlin <johan@gnome.org>
2039 * src/gidlparser.c (parse_type_internal): Add char,
2040 gchar and guchar to the builtin types.
2042 2007-11-26 Johan Dahlin <johan@gnome.org>
2044 * src/ginfo.c: (g_object_info_get_type_name),
2045 (g_object_info_get_type_init):
2046 * src/girepository.c: (g_irepository_is_registered):
2047 * src/girepository.h:
2049 Add g_object_info_get_type_name, g_object_info_get_type_init and
2050 g_irepository_is_registered.
2052 2006-08-14 Jürg Billeter <j@bitron.ch>
2054 * src/gidlparser.c: (end_element_handler): Don't leave
2055 namespace and implements states too early.
2058 2007-11-26 Johan Dahlin <johan@gnome.org>
2060 * src/gmetadata.c (validate_struct_blob):
2061 pass blob_type to validate_function_blob instead of
2062 hard-coding BLOB_TYPE_STRUCT.
2064 Patch by Torsten Schoenfeld, fixes #314190
2066 2006-10-03 Torsten Schoenfeld <tsch@cvs.gnome.org>
2068 * src/compiler.c, src/generate.c, src/gidlnode.c,
2069 src/gidlparser.c, src/ginfo.c, src/girepository.c,
2070 tests/invoke/invoke.c, test/invoke/testfns.c: Hush compiler
2071 warnings about return values, signedness mismatches, unused
2072 variables, and unhandles enum values in switch statements.
2074 * tests/invoke/Makefile.am: Don't install the invoke test program.
2075 Add -I ../../src to the cflags used for the test functions files.
2077 2005-08-31 Torsten Schoenfeld <tsch@cvs.gnome.org>
2079 * src/girepository.h: Export g_invoke_error_quark.
2081 2005-08-31 Torsten Schoenfeld <tsch@cvs.gnome.org>
2083 * src/ginvoke.c: Remove the fallback implementation of
2084 g_function_info_invoke since we now formally depend on libffi.
2086 2005-07-25 Matthias Clasen <mclasen@redhat.com>
2088 * src/Makefile, tests/Makefile, tests/invoke/Makefile:
2089 Remove these files from cvs, as they are now generated.
2091 * src/gmetadata.c (validate_iface_type_blob): Don't
2092 complain if blob->pointer is not set, since that
2093 happens for enum and flag types. (#308935, Gustavo
2096 * Commit an autoconf-conversion patch by
2097 Gustavo Carneiro (#308708)
2099 2005-05-24 Matthias Clasen <mclasen@redhat.com>
2101 * src/compiler.c (main): Use it here to validate
2102 the generated metadata.
2104 * src/gmetadata.[hc]: Add code to validate a
2107 * metadata-format.txt: Updates
2109 2005-05-22 Matthias Clasen <mclasen@redhat.com>
2111 * tests/*: Add struct offsets to field and vfunc
2114 * src/generate.c (write_vfunc_info): Write offset
2115 information for vfuncs.
2117 * src/gidlnode.c (g_idl_node_build_metadata): Write
2118 the struct offsets into the metadata.
2120 * src/gidlparser.c: Parse the offset attributes of
2121 field and vfunc elements.
2123 * src/gidlnode.h: Add offset members to field and
2126 2005-05-21 Matthias Clasen <mclasen@redhat.com>
2130 * gidl.dtd: Updates.
2132 * src/g-idl-offsets.pl: A perl script which reads a .gidl
2133 file, creates, compiles and runs a C file, and folds the
2134 resulting struct offsets back into the .gidl file.
2136 2005-05-20 Matthias Clasen <mclasen@redhat.com>
2138 * src/gidlparser.c (start_field): Make fields in objects
2141 * src/gidlmodule.c: Include string.h
2146 * metadata-format.txt: Cleanup basic types.
2147 * src/*: Adapt to the changes.
2148 * tests/*: Adapt to the changes.
2149 * examples/gdk-pixbuf.gidl: Adapt to the changes.
2151 * src/gidlnode.c (g_idl_node_get_size): Report the correct
2152 size for enum blobs.
2153 (g_idl_node_get_full_size): Report the correct size for
2156 * src/gidlmodule.c (g_idl_module_build_metadata): Add some
2157 error checking for blob sizes.
2159 2005-05-19 Matthias Clasen <mclasen@redhat.com>
2161 * src/gidlnode.c (g_idl_node_build_metadata): Correctly handle
2162 interface types for which is_pointer is FALSE, e.g. enums.
2164 * src/gidlnode.c (g_idl_node_get_full_size)
2165 * src/gidlparser.c (parse_type_internal):
2166 * src/generate.c (write_type_info): Support unspecialized
2167 lists, hashtables and errors. Also emit a '*' after these.
2171 2005-05-17 Matthias Clasen <mclasen@redhat.com>
2175 * metadata-format.txt: Cleanups by Maciej Katafiasz.
2177 2005-05-15 Matthias Clasen <mclasen@redhat.com>
2179 * src/*.c: Change the directory to be addressed by
2180 1-based indexes, and use an index of zero to mean
2183 2005-05-15 Matthias Clasen <mclasen@redhat.com>
2185 * tests/roundtrips.sh (SIMPLE_TESTS): Add union.test.
2187 * tests/union.test: Add a union test.
2189 * src/generate.c: Handle unions.
2191 * src/girepository.h:
2192 * src/ginfo.c: Add GIUnionInfo and functions to access it.
2194 * src/gidlnode.c: Handle GIdlNodeUnion nodes.
2196 * src/gidlparser.c (start_union): Parse <union> elements.
2198 * src/gidlnode.h: Add a GIdlNodeUnion.
2200 * gidl.dtd: Add a <union> element.
2202 * src/gmetadata.c (g_metadata_check_sanity): Check
2205 * src/gmetadata.h: Add union_blob_size to Header,
2208 * metadata-format.txt: Add a UnionBlob.
2210 2005-05-13 Matthias Clasen <mclasen@redhat.com>
2212 * tests/*: Update testcases.
2214 * src/generate.c (write_callable_info): Don't forget to
2215 write transfer and null-ok attributes for return types
2218 * src/girepository.h:
2219 * src/ginfo.c (g_callable_info_may_return_null):
2220 New function to find out if a function may return NULL.
2222 * src/compiler.c (format_output): Make the generated
2225 * README: Point to a recent libffi snapshot.
2227 * tests/invoke/*: Some invoke tests.
2229 * src/Makefile: Add ginvoke.c and the necessary
2232 * src/girepository.h (g_function_info_invoke): Add
2235 * src/ginvoke.c (g_function_info_invoke): Initial
2236 implementation of invoke functionality based on libffi.
2238 * src/gidlnode.c (g_idl_node_build_metadata): Pass the
2239 strings and types hash tables in the right order when
2241 (find_entry_node): Free the name parts.
2243 2005-05-12 Johan Dahlin <johan@gnome.org>
2245 * src/generate.c: Generate consistent end tags.
2249 2005-05-12 Matthias Clasen <mclasen@redhat.com>
2253 * src/gidlparser.c (start_function): Actually add
2254 methods to objects. (Steven Walter)
2256 * src/girepository.h:
2257 * src/ginfo.c: Rename Transfer and Direction to
2258 GITransfer and GIDirection. (Torsten Schoenfeld)
2260 * tests/*: Make tests work with the changes in name
2263 * src/gidlnode.c (find_entry_node): Parse qualified
2264 names and generate xref nodes for them if needed. Don't
2265 require all modules to be loaded any more.
2267 * src/gidlmodule.c (g_idl_module_build_metadata): Choke
2270 * src/ginfo.c (g_object_info_get_parent): Return NULL
2271 if blob->parent is 0. Still need to make sure index
2274 * src/generate.c: Generate qualified names when
2275 referring to non-local types. Emit transfer attribute
2278 * src/compiler.c (format_output): Put the function
2279 attributes where gcc accepts them.
2281 2005-05-11 Matthias Clasen <mclasen@redhat.com>
2283 * src/compiler.c (main): Add a --verbose cmdline option
2284 and only log messages if it is specified.
2287 * src/gidlnode.c (init_stats, dump_stats): Collect some
2288 statistics on string and type sharing.
2290 * src/gidlmodule.c (g_idl_module_build_metadata): Use
2291 g_message() instead of fprintf().
2293 * src/gidlnode.c (g_idl_node_free): Make this more robust.
2294 (g_idl_node_get_size): Implement for structs.
2295 (g_idl_node_get_full_size): Handle parent being NULL.
2296 (serialize_type): Handle lookup failures more gracefully.
2298 2005-05-10 Matthias Clasen <mclasen@redhat.com>
2300 * src/gidlnode.c (g_idl_node_get_full_size): Correct the
2301 size calculation for 2-parameter types and for objects.
2303 * src/compiler.c: Add a cmdline option for debug output
2304 and install a log handler to implement it.
2305 * src/gidlnode.c: Add some debug spew.
2309 * src/gidlmodule.c (g_idl_module_build_metadata): Don't
2310 forget to count the module name when calculating the
2311 required size for the metadata.
2314 * src/gidlparser.c: Fix compiler warnings.
2316 2005-05-09 Matthias Clasen <mclasen@redhat.com>
2318 * src/compiler.c (main): Free the option context.
2320 * gidl.dtd: Clean up handling of names. All elements
2321 have a "name", only the elements corresponding to
2322 actual callable functions (function, method, constructor),
2323 have an additional "symbol" attribute holding the
2324 dlsym()-able function name.
2326 * src/generate.c: Adapt to generate xml matching the
2330 * src/gidlnode.c: Adapt to parse the new dtd.
2332 * tests/*.test: Adjust to the new dtd.
2334 * metadata-format.txt:
2335 * src/gmetadata.h: Remove the short_name field
2337 * src/gmetadata.c: Shrink size of ValueBlob to 12.
2338 * src/girepository.h:
2339 * src/ginfo.c (g_value_info_get_short_name): Removed
2341 2005-05-09 Matthias Clasen <mclasen@redhat.com>
2343 * gidl.dtd: Allow constructors for boxed types,
2344 patch by Jonathan Blandford.
2347 2005-05-09 Matthias Clasen <mclasen@redhat.com>
2349 * --- Initial import ---