1 2008-08-14 Johan Dahlin <johan@gnome.org>
3 * giscanner/girwriter.py:
4 * giscanner/glibast.py:
5 * giscanner/glibtransformer.py:
6 * giscanner/transformer.py:
9 Add pyflakes.py and run it in make check.
10 Update the source code to fix the errors reported by
13 2008-08-14 Johan Dahlin <johan@gnome.org>
16 * giscanner/girparser.py:
17 * giscanner/glibast.py:
18 * giscanner/glibtransformer.py:
19 Refactor the parser a bit.
20 Add parent type to interfaces and update callsites.
22 2008-08-14 Johan Dahlin <johan@gnome.org>
24 * giscanner/glibtransformer.py:
26 Refactor a bit, avoid isinstance and add a method
27 for each type we parse.
29 2008-08-14 Johan Dahlin <johan@gnome.org>
32 * giscanner/girparser.py:
33 * giscanner/glibtransformer.py:
35 Run pep8.py in make check, fix old errors.
37 2008-08-13 Colin Walters <walters@verbum.org>
39 * giscanner/girparser.py: Parse records.
41 2008-08-13 Colin Walters <walters@verbum.org>
43 * gir/Makefile.am: Install again.
44 * gir/gobject-2.0.gir: Add some more bits.
46 2008-08-13 Colin Walters <walters@verbum.org>
48 * gir/gobject-2.0.gir: Use correct namespace, add GType.
49 * giscanner/girparser.py: Handle aliases.
50 * giscanner/transformer.py: Record aliases. Make resolver
51 functions public; we now call into these explicitly from
52 glibtransformer. Handle resolving aliases.
53 * giscanner/glibtransformer.py: Separate our internal namespace
54 from included ones. Call up into transformer's resolver functions.
56 2008-08-13 Johan Dahlin <johan@gnome.org>
58 * girepository/girnode.c (g_ir_node_get_full_size_internal):
59 * girepository/girparser.c (start_class):
60 * giscanner/glibtransformer.py:
61 Allow get_type to be None, set a get_type for GInitiallyUnowned too.
63 2008-08-13 Johan Dahlin <johan@gnome.org>
65 * giscanner/cgobject.py:
66 Register GInitiallyUnowned
67 * giscanner/girwriter.py:
68 * giscanner/glibtransformer.py:
69 Special case GObject/GInitially owned as they are a bit special to use.
71 2008-08-13 Colin Walters <walters@verbum.org>
73 * tests/scanner/Foo-expected.gir, tests/scanner/utility-expected.gir:
74 Object is in GObject namespace.
76 2008-08-13 Colin Walters <walters@verbum.org>
78 * giscanner/girparser.py: Fix processing of functions
81 2008-08-13 Colin Walters <walters@verbum.org>
83 * giscanner/girparser.py: Parse more than just <class.
84 * giscanner/glibtransformer.py: Put aliases in a separate
85 data structure since their name is not canonicall.
86 * giscanner/transformer.py: Handle resolving type names
89 2008-08-13 Johan Dahlin <johan@gnome.org>
92 Allow multiple libraries
93 * giscanner/glibtransformer.py:
94 Rename load_library to add_library, traverse over all libraries
95 when trying to resolve a function
97 2008-08-12 Colin Walters <walters@verbum.org>
99 * giscanner/transformer.py: Record typedefs as <alias> elements.
100 Also attempt to look up types in external namespaces.
101 * giscanner/girwriter.py: Write them.
102 * giscanner/glibtransformer.py: Rework resolver using real instanceof
103 checks. Resolve interface methods and properties.
104 * tests/scanner/foo-object.h: Add a method with typedef.
105 * tests/scanner/Foo-expected.gir: Update.
106 * girepository/girnode.c: Debug tweaks.
107 * girepository/girparser.c: Make a first pass through the XML where we
108 record all the aliases. This lets us resolve them as we go through the
110 * gir/Makefile.am: Don't install gobject-2.0.gir; we want that to come
113 2008-08-12 Colin Walters <walters@verbum.org>
115 * giscanner/glibtransformer.py: Resolve typedefs (e.g. AtkAttributeSet -> GSList).
116 Correctly do subclasseing in 2nd pass resolution. Handle callbacks in structure
118 * giscanner/transformer.py: Record typedefs and expose public API for resolving
120 * tests/scanner/Foo-expected.gir: Fix expected callback types.
122 2008-08-12 Colin Walters <walters@verbum.org>
124 * giscanner/glibtransformer.py: Also transform object properties.
126 2008-08-12 Colin Walters <walters@verbum.org>
128 * giscanner/glibtransformer.py: Also transform callbacks
129 and structure field types.
130 * tests/scanner/Fooe-expected.gir: Update to expect correct
131 names for callbacks and structs.
133 2008-08-12 Colin Walters <walters@verbum.org>
135 * girepository/girparser.c: Handle 'any'.
136 * tests/scanner/Foo-expected.gir, tests/scanner/foo-object.h:
139 2008-08-12 Colin Walters <walters@verbum.org>
141 * giscanner/glibtransformer.py: We need to do type
142 resolution in a second pass after we've seen all the
145 2008-08-12 Colin Walters <walters@verbum.org>
147 * tests/scanner/Foo-expected.gir, tests/scanner/foo-object.h:
148 Add enum return value.
149 * giscanner/glibtransformer.py: Transform function return types
152 2008-08-12 Colin Walters <walters@verbum.org>
154 * tests/scanner/Makefile.am: Dep .gir files on scanner
155 sources too. Also remove @ so we see scanner invocations.
157 2008-08-12 Colin Walters <walters@verbum.org>
159 * girepository/girparser.c, girepository/gtypelib.c,
160 girepository/gtypelib.h, girepository/girnode.c:
161 Remove usage of (GAPI-oriented) TypeTag in favor of
162 GITypeTag from girepository.h.
164 2008-08-10 Colin Walters <walters@verbum.org>
166 * tests/roundtrips.sh: Use the correct tests.
168 2008-08-10 Colin Walters <walters@verbum.org>
170 * giscanner/cgobject.py: Declare/wrap a few more functions.
171 Fix parameter types for g_object_new and g_type_fundamental.
173 2008-08-10 Colin Walters <walters@verbum.org>
175 * giscanner/cgobject.py: Add new decorator @gwrap which forces
176 us to declare types for both return value and parameters. The
177 ctypes default of 'int' is bad because it hides 32/64 bit
178 problems. Convert all existing functions to use it.
180 2008-08-09 Johan Dahlin <johan@gnome.org>
182 * giscanner/__init__.py:
184 * giscanner/cgobject.py:
185 * giscanner/gidlparser.py:
186 * giscanner/gidlwriter.py:
187 * giscanner/girparser.py:
188 * giscanner/girwriter.py:
189 * giscanner/glibast.py:
190 * giscanner/glibtransformer.py:
191 * giscanner/odict.py:
192 * giscanner/sourcescanner.py:
193 * giscanner/transformer.py:
194 * giscanner/utils.py:
195 * giscanner/xmlwriter.py:
196 * tools/g-ir-scanner:
200 2008-08-09 Johan Dahlin <johan@gnome.org>
203 * relaxng/c-types.xml:
204 * relaxng/g-types.xml:
205 * relaxng/relaxng.rng:
207 Remove outdated relaxng schemas.
209 2008-08-09 Johan Dahlin <johan@gnome.org>
212 Rename metadata to typelib in variable names,
215 2008-08-09 Johan Dahlin <johan@gnome.org>
219 Remove old C scanner, which got rewritten in python.
221 2008-08-09 Johan Dahlin <johan@gnome.org>
223 * girepository/Makefile.am:
233 Move shared *.[ch] files to girepository from tools
235 2008-08-09 Johan Dahlin <johan@gnome.org>
240 * tests/constant.test:
243 * tests/function.test:
244 * tests/gobject.test:
245 * tests/interface.test:
252 Rename *.test to *.gir
254 2008-08-09 Johan Dahlin <johan@gnome.org>
258 * tests/parser/Foo-expected.gir:
259 * tests/parser/Makefile.am:
260 * tests/parser/foo-object.h:
261 * tests/parser/foo.c:
262 * tests/parser/utility-expected.gir:
263 * tests/parser/utility.c:
264 * tests/parser/utility.h:
265 * tests/scanner/Makefile.am:
266 Rename tests/parser to test/scanner
268 2008-08-08 Colin Walters <walters@verbum.org>
270 * tests/roundtrips.sh: Use local .gir files again.
272 2008-08-08 Colin Walters <walters@verbum.org>
274 * tests/invoke/Makefile.am: .gir file depends on libtool
277 2008-08-08 Colin Walters <walters@verbum.org>
279 * tools/girnode.c: Pass through parent node so we can
280 print the node whose child is NULL, if that occurs.
282 2008-08-08 Johan Dahlin <johan@gnome.org>
285 Disable roundtrip tests which are not yet working
286 * tests/invoke/testfns.gir:
289 2008-08-08 Johan Dahlin <johan@gnome.org>
291 * giscanner/girwriter.py:
293 * giscanner/glibast.py:
294 * giscanner/glibtransformer.py:
295 Swap order of members, to keep it consistent with
298 2008-08-08 Johan Dahlin <johan@gnome.org>
300 * girepository/gtypelib.c (validate_header):
301 * girepository/gtypelib.h:
303 * giscanner/girwriter.py:
304 * giscanner/sourcescanner.c (gi_source_symbol_ref),
305 (gi_source_symbol_unref):
308 * tests/constant.test:
311 * tests/function.test:
312 * tests/gobject.test:
313 * tests/interface.test:
314 * tests/invoke/Makefile.am:
315 * tests/invoke/testfns.xml:
317 * tests/parser/Makefile.am:
318 * tests/roundtrips.sh:
325 * tools/compiler.c (main):
326 * tools/generate.c (write_callable_info), (write_function_info),
328 * tools/gidlmodule.c:
329 * tools/gidlmodule.h:
332 * tools/gidlparser.c:
333 * tools/gidlparser.h:
334 * tools/gidlwriter.c:
335 * tools/gidlwriter.h:
336 * tools/scanner.c (create_node_from_gtype),
337 (create_node_from_ctype), (g_igenerator_process_properties),
338 (g_igenerator_process_signals), (g_igenerator_create_object),
339 (g_igenerator_create_interface), (g_igenerator_create_boxed),
340 (g_igenerator_create_enum), (g_igenerator_create_flags),
341 (g_igenerator_process_function_symbol),
342 (g_igenerator_process_unregistered_struct_typedef),
343 (g_igenerator_process_struct_typedef),
344 (g_igenerator_process_union_typedef),
345 (g_igenerator_process_enum_typedef),
346 (g_igenerator_process_function_typedef),
347 (g_igenerator_process_constant), (g_igenerator_process_symbols),
348 (g_igenerator_add_module), (g_igenerator_add_include_idl):
349 Merge in the gir-compiler branch.
350 Thanks to Philip and Colin for their help.
352 2008-07-26 Colin Walters <walters@verbum.org>
354 * tools/Makefile.am (bin_PROGRAMS): Install g-idl-compiler
355 and g-idl-generate to go along with how we're changing this
356 module to be installed.
357 * gobject-introspection-1.0.pc.in: Set up Cflags and Libs.
359 2008-07-24 Colin Walters <walters@verbum.org>
361 * girepository/girepository.c (g_irepository_register): Add
362 environment variable G_IREPOSITORY_VERBOSE so we can print
363 out what we're doing.
364 * girepository/girepository.c (g_irepository_register_file):
365 Add GError error message to g_debug call.
367 2008-07-08 Jürg Billeter <j@bitron.ch>
369 * giscanner/glibast.py:
373 2008-06-21 Johan Dahlin <jdahlin@async.com.br>
375 * giscanner/girparser.py (GIRParser._parse_api): Ignore a few
378 2008-06-20 Johan Dahlin <jdahlin@async.com.br>
381 * giscanner/girwriter.py:
382 * giscanner/transformer.py:
383 * tests/parser/Foo-expected.gir:
384 * tests/parser/foo-object.h:
385 * tests/parser/foo.c (foo_object_allow_none):
386 Add support for gtk-doc annotations for allow-none.
389 2008-06-19 Johan Dahlin <jdahlin@async.com.br>
392 * giscanner/girwriter.py:
393 * giscanner/glibast.py:
394 * giscanner/glibtransformer.py:
395 * giscanner/transformer.py:
396 * tests/parser/Foo-expected.gir:
397 Start using abstract type instead of the raw C types.
398 Register a bunch of glib types we care about.
400 2008-06-19 Rob Taylor <rob.taylor@codethink.co.uk>
405 2008-06-08 Philip Van Hoof <pvanhoof@gnome.org>
407 * girepository/girepository.c:
408 * girepository/gtypelib.c:
409 * girepository/ginfo.c:
410 * girepository/ginvoke.c:
411 * girepository/girepository.h:
412 * girepository/gtypelib.h:
413 * girepository/gmetadata.c:
414 * girepository/Makefile.am:
415 * girepository/gmetadata.h:
417 * tools/gidlmodule.c:
420 * tools/gidlmodule.h:
421 * tools/gidlparser.c:
423 Renamed GMetadata to GTypelib
425 2008-06-07 Johan Dahlin <jdahlin@async.com.br>
427 * giscanner/xmlwriter.py:
428 Improve line wrapping when > 79 charaters
430 2008-06-05 Jürg Billeter <j@bitron.ch>
433 * giscanner/girwriter.py:
434 * giscanner/transformer.py:
435 Use <type> element for field types
436 * tests/parser/Foo-expected.gir:
439 2008-06-04 Johan Dahlin <jdahlin@async.com.br>
441 * giscanner/glibtransformer.py:
442 Fix a bug which prevented GdkEvent from being generated
444 2008-06-03 Johan Dahlin <jdahlin@async.com.br>
446 * giscanner/Makefile.am:
448 * giscanner/girwriter.py:
449 * giscanner/glibast.py:
450 * giscanner/glibtransformer.py:
451 * giscanner/transformer.py:
452 * giscanner/utils.py:
453 * tests/parser/Foo-expected.gir:
454 Improve enum member parsing and introspection
456 2008-05-31 Johan Dahlin <jdahlin@async.com.br>
458 * giscanner/scannerparser.y:
459 * giscanner/sourcescanner.h:
460 * giscanner/sourcescanner.py:
461 Add a new source type enum for member.
462 Use __repr__ for improved debugging
463 * giscanner/girparser.py:
465 * giscanner/transformer.py:
466 Improve parsing of struct members.
467 * tests/parser/foo-object.h:
470 2008-05-31 Johan Dahlin <jdahlin@async.com.br>
472 * giscanner/xmlwriter.py:
473 Improve error reporting when trying to quote None.
474 * giscanner/girparser.py:
475 Do not print warnings when including more complete .gir files
476 * giscanner/girwriter.py:
477 Do not require a name for parameters, add a todo for singletons
478 * giscanner/glibtransformer.py:
479 Refactor the way structs are done, add a couple of hacks to allow
481 * giscanner/transformer.py:
482 Add enough hacks so cairo, atk and pango.gir can be parsed properly
483 * gobject-introspection-1.0.pc.in:
484 Export girdir, so we can access gobject-2.0.gir from outside
486 2008-05-31 Johan Dahlin <jdahlin@async.com.br>
488 * tools/g-ir-scanner:
489 * tests/parser/Makefile.am:
490 Update sys.path before running the parser so we don't have
491 to setup PYTHONPATH ourselves.
495 * girepository/Makefile.am:
496 * giscanner/transformer.py:
497 * gobject-introspection-1.0.pc.in:
498 * gobject-introspection.pc.in:
501 Rename pkg-config name to gobject-introspection-1.0,
502 Do not installed anything which is not using the gir format.
503 Disable compililation the old C scanner, but still keep the source
504 until all the remaning functionallity has been ported.
506 2008-05-31 Johan Dahlin <jdahlin@async.com.br>
508 * giscanner/giscannermodule.c (symbol_get_ident): Prevent
509 a crash when symbol->indent is NULL.
511 * giscanner/sourcescanner.py (ctype_name): Add ctype_name,
512 a function to convert a CTYPE symbol to a string
514 2008-05-24 Johan Dahlin <jdahlin@async.com.br>
517 * giscanner/girwriter.py:
518 * giscanner/giscannermodule.c
519 (pygi_source_scanner_append_filename),
520 (pygi_source_scanner_parse_file):
521 * giscanner/glibtransformer.py:
522 * giscanner/sourcescanner.py:
523 Revert back to using temporary files to send in headers.
524 Allow Functions to be passed in as callbacks, add a couple
525 of try/excepts missing features.
526 We can now scan pango
528 2008-05-08 Johan Dahlin <johan@gnome.org>
530 * giscanner/glibtransformer.py:
531 * giscanner/transformer.py:
532 Move namespace stripping glibtransformer->transformer
534 2008-05-08 Johan Dahlin <johan@gnome.org>
537 * giscanner/girwriter.py:
538 * giscanner/glibtransformer.py:
539 * giscanner/transformer.py:
540 * tools/g-ir-scanner:
541 Introduce a namespace ast node
543 2008-05-05 Johan Dahlin <johan@gnome.org>
545 * giscanner/__init__.py:
546 * giscanner/sourcescanner.py:
547 * giscanner/transformer.py:
548 Move sourcescanner symbols to the sourcescanner module, instead
549 of in the global __init__ namespace.
551 2008-05-03 Johan Dahlin <johan@gnome.org>
553 * giscanner/glibtransformer.py:
554 * tools/g-ir-scanner:
555 Handle missing parameters better, allow - and + in .la dlname
558 2008-05-03 Johan Dahlin <johan@gnome.org>
560 * giscanner/__init__.py:
562 * giscanner/girwriter.py:
563 * giscanner/glibtransformer.py:
564 * giscanner/transformer.py:
565 Parse struct fields properly, improve debugging.
567 2008-04-29 Johan Dahlin <johan@gnome.org>
570 * giscanner/girwriter.py:
571 * giscanner/transformer.py:
572 * tests/parser/Foo-expected.gir:
574 Use transfer-ownership everywhere, to mark ownership/calle/caller etc.
576 2008-04-29 Johan Dahlin <jdahlin@async.com.br>
579 * docs/g-ir-scanner.1:
580 * metadata-annotations-proposal.txt:
581 * metadata-format.txt:
582 Add a basic, unfinshed man page for g-ir-scanner, move documents into .txt
584 2008-04-29 Johan Dahlin <jdahlin@async.com.br>
586 * giscanner/girwriter.py:
587 * giscanner/glibtransformer.py:
588 * giscanner/transformer.py:
589 * giscanner/xmlwriter.py:
590 * tests/parser/Foo-expected.gir:
591 * tests/parser/foo-object.h:
592 Write record/structs to gir file too. Add a couple of tests,
593 fix an off by one error in xmlwriter.py.
595 2008-04-28 Johan Dahlin <johan@gnome.org>
597 * giscanner/xmlwriter.py: Calculate the line length properly,
598 include the provided extra indentation in the calculation, really.
600 2008-04-28 Johan Dahlin <jdahlin@async.com.br>
603 * giscanner/glibast.py:
604 * giscanner/glibtransformer.py:
605 * giscanner/transformer.py:
606 * tools/g-ir-scanner:
607 Add a --strip-prefix and sort out confusion between names and symbols
608 for functions and struct + derivaties.
609 Refactor bootstrap of g-ir-scanner, so we can set options on
610 Transformer() before parsing everything.
612 2008-04-28 Johan Dahlin <johan@gnome.org>
614 * giscanner/transformer.py (Transformer._traverse_one): Avoid recursion
615 when scanning girepository.h
617 * giscanner/sourcescanner.py (SourceScanner._preprocess): Define
618 a __GI_SCANNER__ when we run.
620 2008-04-28 Johan Dahlin <jdahlin@async.com.br>
623 * giscanner/girwriter.py:
624 * giscanner/glibast.py:
625 * giscanner/glibtransformer.py:
626 * tests/parser/Foo-expected.gir:
627 * tests/parser/utility-expected.gir:
628 Rename most c:identifier to c:type. Add new ones to
629 class/interface/enum/boxed.
631 2008-04-28 Johan Dahlin <jdahlin@async.com.br>
634 * giscanner/girwriter.py:
635 * giscanner/glibtransformer.py:
636 * tests/parser/Foo-expected.gidl:
637 * tests/parser/Makefile.am:
638 Move c:identifier from return-value to subchild type,
639 as per Jürgs suggestion
641 2008-04-28 Johan Dahlin <johan@gnome.org>
643 * giscanner/girwriter.py:
644 * tests/parser/Foo-expected.gir:
645 Write property.type as a child node.
647 2008-04-27 Johan Dahlin <johan@gnome.org>
652 * gidl/gobject-2.0.gidl:
654 * gir/gobject-2.0.gir:
655 * tests/parser/Makefile.am:
656 Replace the GObject gidl with a GObject gir.
658 2008-04-27 Johan Dahlin <johan@gnome.org>
660 * tools/Makefile.am (bin_SCRIPTS): g-ir-scanner is a script,
663 * giscanner/xmlwriter.py:
664 * tests/parser/Foo-expected.gir:
665 Include indentation in line length calculation
667 2008-04-27 Johan Dahlin <johan@gnome.org>
669 * giscanner/girparser.py:
670 Prettify NS parsing using elementtree.
672 2008-04-27 Johan Dahlin <johan@gnome.org>
675 * giscanner/Makefile.am:
676 * giscanner/girparser.py:
677 * giscanner/glibtransformer.py:
678 * tests/parser/Foo-expected.gidl:
679 * tests/parser/Foo-expected.gir:
680 * tests/parser/Makefile.am:
681 * tests/parser/utility-expected.gidl:
682 * tests/parser/utility-expected.gir:
683 * tools/g-ir-scanner:
684 Switch over to GIR as the default format. Add a simple GIDL
686 Update tests and fix simplify makefiles by depending
687 on GNU make extensions.
689 2008-04-27 Johan Dahlin <johan@gnome.org>
691 * giscanner/xmlwriter.py:
692 Wrap attributes for lines which are wider than 79 characters
694 * giscanner/scannerlexer.l:
695 Allow parenthesis in annotations
698 * giscanner/gidlwriter.py:
699 * giscanner/girwriter.py:
700 * giscanner/glibtransformer.py:
701 * giscanner/transformer.py:
702 Add initial sequence support, including annotation.
703 Refactor type handling a bit.
705 2008-04-27 Johan Dahlin <johan@gnome.org>
707 * tests/parser/Foo-expected.gidl:
708 * tests/parser/foo-object.h:
709 * tests/parser/foo.c (foo_object_class_init),
710 (foo_object_get_strings), (foo_object_get_objects):
711 Add two new functions to check sequence return values.
712 Also fixes a compilation warning.
714 2008-04-27 Johan Dahlin <johan@gnome.org>
716 * giscanner/giscannermodule.c (]): Cast the getter, avoids
717 a compilation warning.
719 * tools/Makefile.am (g_ir_scanner_SOURCES):
720 g-ir-scanner has no sources.
722 2008-04-25 Johan Dahlin <johan@gnome.org>
724 * giscanner/Makefile.am:
726 * giscanner/gidlparser.py:
727 * giscanner/gidlwriter.py:
728 * giscanner/girwriter.py:
729 * giscanner/glibast.py:
730 * giscanner/glibtransformer.py:
731 * giscanner/transformer.py:
732 Split out nodes to ast.py and glibast.py
734 2008-04-25 Johan Dahlin <jdahlin@async.com.br>
736 * giscanner/Makefile.am:
737 * giscanner/gidlparser.py:
738 * giscanner/gidlwriter.py:
739 * giscanner/girwriter.py:
740 * giscanner/glibtransformer.py:
741 * giscanner/gobjecttreebuilder.py:
742 * giscanner/transformer.py:
743 * giscanner/treebuilder.py:
744 * tools/g-ir-scanner:
745 Rename treebuilder to transformer and
746 gobjectreebuilder to glibtransformer.
748 2008-04-25 Johan Dahlin <jdahlin@async.com.br>
750 * giscanner/Makefile.am:
751 * giscanner/__init__.py:
752 * giscanner/cgobject.py:
753 * giscanner/gidlparser.py:
754 * giscanner/gidlwriter.py:
755 * giscanner/girwriter.py:
756 * giscanner/gobjecttreebuilder.py:
757 * giscanner/odict.py:
758 * giscanner/sourcescanner.py:
759 * giscanner/treebuilder.py:
760 * giscanner/xmlwriter.py:
762 * tools/g-ir-scanner:
763 Add LGPLv2 license header and install all python files
765 2008-04-25 Johan Dahlin <jdahlin@async.com.br>
768 * giscanner/gidlwriter.py:
769 * giscanner/giscannermodule.c (pygi_source_directive_new),
770 (directive_get_options), (pygi_source_symbol_new),
771 (symbol_get_base_type), (pygi_source_type_new),
772 (type_get_base_type), (type_get_child_list),
773 (pygi_source_scanner_get_symbols),
774 (pygi_source_scanner_get_directives):
775 * giscanner/gobjecttreebuilder.py:
776 * giscanner/sourcescanner.py:
777 * giscanner/treebuilder.py:
778 * tests/parser/foo-object.h:
779 Add support for virtual methods.
780 Pair struct FooClass with struct Foo.
781 Clean up the SourceScanner bindings a bit.
782 Add a testcase for virtual methods.
784 2008-04-25 Johan Dahlin <jdahlin@async.com.br>
786 * giscanner/cgobject.py:
787 * giscanner/gidlwriter.py:
788 * giscanner/gobjecttreebuilder.py:
789 Add support for signals
791 * tests/parser/foo.c (foo_object_class_init):
793 Add a signal and update the expected output.
795 2008-04-24 Johan Dahlin <jdahlin@async.com.br>
797 * giscanner/gidlwriter.py:
798 * giscanner/girwriter.py:
799 * giscanner/giscannermodule.c (directive_get_name),
800 (directive_get_value), (directive_get_options),
801 (symbol_get_directives), (symbol_set_directives),
802 (pygi_source_scanner_parse_file),
803 (pygi_source_scanner_lex_filename),
804 (pygi_source_scanner_get_directives), (init_giscanner):
805 * giscanner/sourcescanner.c (gi_source_scanner_get_directives):
806 * giscanner/sourcescanner.h:
807 * giscanner/sourcescanner.py:
808 * giscanner/treebuilder.py:
809 * tools/g-ir-scanner:
810 Add support for source/header annotations.
812 2008-04-22 Johan Dahlin <jdahlin@async.com.br>
814 * giscanner/gidlwriter.py:
815 * giscanner/girwriter.py:
816 * giscanner/gobjecttreebuilder.py:
817 * giscanner/treebuilder.py:
818 Add support for Callbacks
820 2008-04-22 Havoc Pennington <hp@pobox.com>
822 * girepository/ginvoke.c (g_function_info_invoke): If a symbol is
823 not in metadata->module, look for it in the global module, in case
824 some other object or the app itself provides the symbol.
826 2008-04-22 Havoc Pennington <hp@pobox.com>
828 * girepository/gmetadata.c (_g_metadata_init): hack to avoid
829 dlopening a library that is already in the main app, by checking
830 whether one of the lib's symbols is already loaded.
832 2008-04-22 Johan Dahlin <jdahlin@async.com.br>
834 * tests/parser/Foo-expected.gidl:
835 * tests/parser/foo-object.h:
838 2008-04-22 Havoc Pennington <hp@pobox.com>
840 * girepository/ginfo.c (g_interface_info_find_method):
841 Use interface_blob_size not object_blob_size to compute offset.
843 2008-04-22 Havoc Pennington <hp@pobox.com>
845 * girepository/gmetadata.c (_g_metadata_init): remove
846 G_MODULE_BIND_LOCAL flag when loading libraries, since some libs
847 (Glade and Clutter for example) rely on being loaded globally.
849 2008-04-22 Havoc Pennington <hp@pobox.com>
851 * girepository/ginfo.c (g_registered_type_info_get_g_type): new
852 function to get the GType given a RegisteredTypeInfo
854 2008-04-22 Johan Dahlin <johan@gnome.org>
856 * COPYING: Add a LGPL license, to prevent automake to
857 put in a copy of GPL here. Pointed out by Havoc.
859 * girepository/ginfo.c (g_info_from_entry), (g_type_info_new),
860 (g_type_info_is_pointer), (g_type_info_get_tag),
861 (g_type_info_get_param_type), (g_type_info_get_interface),
862 (g_type_info_get_array_length), (g_type_info_is_zero_terminated),
863 (g_type_info_get_n_error_domains), (g_type_info_get_error_domain),
864 (g_error_domain_info_get_codes), (g_enum_info_get_value),
865 (g_object_info_get_interface), (g_object_info_get_field),
866 (g_interface_info_get_prerequisite),
867 (g_signal_info_get_class_closure), (g_constant_info_get_value):
868 * girepository/ginvoke.c (get_ffi_type):
869 * girepository/girepository.h:
870 * girepository/gmetadata.c (g_metadata_get_dir_entry),
871 (g_metadata_check_sanity), (validate_header),
872 (validate_array_type_blob), (validate_iface_type_blob),
873 (validate_param_type_blob), (validate_error_type_blob),
874 (validate_type_blob), (validate_constant_blob),
875 (validate_struct_blob), (validate_enum_blob):
876 * girepository/gmetadata.h:
878 * tests/invoke/Makefile.am:
879 * tests/invoke/invoke.c (main):
880 * tests/roundtrips.sh:
882 * tools/compiler.c (format_output), (write_out_metadata), (main):
883 * tools/generate.c (write_type_name), (write_type_info),
884 (write_constant_value), (write_enum_info), (load_metadata), (main):
885 * tools/gidlcompilercontext.c:
886 * tools/gidlcompilercontext.h:
887 * tools/gidlcompilerentrynode.c:
888 * tools/gidlcompilerentrynode.h:
889 * tools/gidlcompilertypenode.c:
890 * tools/gidlcompilertypenode.h:
891 * tools/gidlmodule.c (g_idl_module_build_metadata):
892 * tools/gidlmodule.h:
893 * tools/gidlnode.c (init_stats), (dump_stats),
894 (g_idl_node_get_size), (g_idl_node_get_full_size),
895 (g_idl_node_cmp), (g_idl_node_can_have_member),
896 (g_idl_node_add_member), (g_idl_node_param_direction_string),
897 (parse_int_value), (parse_uint_value), (parse_float_value),
898 (parse_boolean_value), (find_entry_node), (find_entry),
899 (serialize_type), (g_idl_node_build_metadata), (write_string):
901 * tools/gidlparser.c (parse_type_internal):
902 * tools/quote-file.sh:
903 Revert revisions 157,149-148,136-129 and 120.
904 Move back to using g-idl-generate to generate the metadata and
905 avoids dependency on a c compiler.
907 2008-04-22 Johan Dahlin <jdahlin@async.com.br>
909 * giscanner/girwriter.py:
910 * tools/g-ir-scanner:
911 Add an initial GIR writer and a --format option to g-ir-scanner
913 2008-04-21 Johan Dahlin <johan@gnome.org>
915 * giscanner/cgobject.py: Use ctypes.util.find_library to locate
916 gobject-2.0 and raise ImportError if not found.
918 * giscanner/gidlparser.py:
919 * giscanner/gidlwriter.py:
920 * giscanner/gobjecttreebuilder.py:
921 * tools/g-ir-scanner:
922 Add a --include argument to include types from other idls.
923 Add a minimalistic GIDL parser (just objects for now)
924 Implement resolving of external type references and use it to
925 resolve parent types, argument types and return types.
927 2008-04-21 Johan Dahlin <johan@gnome.org>
929 * giscanner/gidlwriter.py:
930 * giscanner/gobjecttreebuilder.py:
931 * giscanner/treebuilder.py:
932 Add support for properties.
933 Refactor Class/Interface support a bit, to share more code and
934 always initialize their method attribute to an empty list.
936 2008-04-21 Johan Dahlin <johan@gnome.org>
938 * giscanner/cgobject.py:
939 Add a workaround for a glib bug interface introspection bug
940 (object_interface_list_properties, object_class_list_properties):
941 Cast the return value to GParamSpec.
943 * tests/parser/Foo-expected.gidl: Update
944 * tests/parser/foo.c: Add a string property
946 * giscanner/gobjecttreebuilder.py:
947 After stripping namespaces, remove the original
948 item to avoid duplication (GtkButton struct and Button object)
950 2008-04-21 Johan Dahlin <johan@gnome.org>
952 * giscanner/gobjecttreebuilder.py:
953 * giscanner/treebuilder.py:
954 Strip namespaces before objects, so we'll export
955 GtkButton as Button in the gtk namespace
957 2008-04-21 Johan Dahlin <johan@gnome.org>
959 * giscanner/gidlwriter.py:
960 * giscanner/gobjecttreebuilder.py:
961 * giscanner/treebuilder.py:
962 Add constructors for object/boxed types.
964 2008-04-21 Johan Dahlin <johan@gnome.org>
966 * giscanner/gidlwriter.py:
967 * giscanner/gobjecttreebuilder.py:
968 Add support for boxed types
970 2008-04-21 Johan Dahlin <johan@gnome.org>
972 * giscanner/giscannermodule.c: Mark structures as const,
973 wrap SourceType.const_string.
975 * tests/parser/foo-object.h: Add a couple of constants.
977 * giscanner/gidlwriter.py:
978 * giscanner/gobjecttreebuilder.py:
979 * giscanner/treebuilder.py:
980 Add basic support for interfaces
982 * tools/g-ir-scanner:
983 Add -o/--output for writing to a file
985 2008-04-21 Havoc Pennington <hp@redhat.com>
987 * TODO: add some C API wishlist items I could think of quickly
989 2008-04-21 Johan Dahlin <jdahlin@async.com.br>
991 * giscanner/gidlwriter.py:
992 * giscanner/xmlwriter.py:
993 Add a simple api for writing tags which can be used
994 with the new 'with statement' in python 2.5
996 2008-04-21 Johan Dahlin <johan@gnome.org>
998 * giscanner/gobjecttreebuilder.py:
999 Strip namespace and object prefix from method names.
1001 2008-04-21 Johan Dahlin <johan@gnome.org>
1003 * tools/g-ir-scanner (main): Add --pkg option to pass in
1004 pkg-config modules to get cflags from.
1006 * giscanner/gidlwriter.py (GIDLWriter._write_method):
1007 Avoid duplication, reuse function writer for methods.
1009 2008-04-21 Johan Dahlin <jdahlin@async.com.br>
1011 * giscanner/gidlwriter.py:
1012 * giscanner/gobjecttreebuilder.py:
1013 * giscanner/treebuilder.py:
1014 * tools/g-ir-scanner:
1015 Resolve libtool .la files.
1016 Strip name spaces for methods.
1017 Add function symbols
1019 2008-04-20 Johan Dahlin <jdahlin@async.com.br>
1021 * giscanner/cgobject.py:
1022 * giscanner/gidlwriter.py:
1023 * giscanner/gobjecttreebuilder.py:
1024 * giscanner/treebuilder.py:
1025 Add support for classes and methods
1027 2008-04-20 Johan Dahlin <johan@gnome.org>
1029 * giscanner/gidlwriter.py:
1030 * giscanner/gobjecttreebuilder.py:
1031 * giscanner/odict.py:
1032 Avoid conflicts, keep the output ordered similar to
1033 the order of the input.
1034 Add a simple ordered dictionary implemenation
1036 2008-04-19 Johan Dahlin <johan@gnome.org>
1038 * giscanner/cgobject.py:
1039 * giscanner/gidlwriter.py:
1040 * giscanner/gobjecttreebuilder.py:
1041 * tools/g-ir-scanner:
1042 Start introspecting get-type functions.
1043 Implement support for GLib/GFlags GTypes.
1044 Add a ctype based GObject binding.
1046 2008-04-18 Johan Dahlin <jdahlin@async.com.br>
1048 * giscanner/gidlwriter.py:
1049 * giscanner/xmlwriter.py:
1050 * tools/g-ir-scanner:
1051 Add a simplistic gidl writer, which can't do too much.
1053 2008-04-18 Johan Dahlin <johan@gnome.org>
1055 * giscanner/sourcescanner.py:
1056 * giscanner/treebuilder.py:
1057 * tools/g-ir-scanner:
1058 split tree building and source scanning interface to separate files.
1060 2008-04-18 Johan Dahlin <johan@gnome.org>
1062 * tools/g-ir-scanner (Parameter.__init__): Start constructing
1064 - Add support for struct/parameter/return, start parsing of ctypes
1066 * giscanner/giscannermodule.c: wrap GISourceType.child_list and
1069 2008-03-31 Johan Dahlin <johan@gnome.org>
1071 * tools/g-ir-scanner:
1072 Start to build abstract syntax node of scanned sources.
1073 Add support for cpp options.
1075 2008-03-27 Johan Dahlin <johan@gnome.org>
1077 * giscanner/giscannermodule.c:
1078 * giscanner/scannerlexer.l:
1079 * giscanner/sourcescanner.c:
1080 * tools/g-ir-scanner:
1082 Add simple pre-processor using subprocess and a PIPE.
1083 Change the parse_file apis to accept a file descriptor.
1085 2008-03-25 Johan Dahlin <johan@gnome.org>
1087 * giscanner/__init__.py:
1088 * tools/g-ir-scanner:
1089 Fix a typo and add an example python test program.
1091 2008-03-25 Johan Dahlin <johan@gnome.org>
1093 * giscanner/__init__.py:
1094 * giscanner/giscannermodule.c:
1095 * giscanner/sourcescanner.c:
1096 * giscanner/sourcescanner.h:
1097 Add constants and wrap a few more SymbolType fields
1099 2008-03-25 Johan Dahlin <johan@gnome.org>
1103 * giscanner/__init__.py:
1104 * giscanner/giscannermodule.c:
1105 * giscanner/Makefile.am:
1107 Add initial python bindings for the scanner and
1108 depend on python 2.5.
1110 2008-03-25 Johan Dahlin <johan@gnome.org>
1114 * giscanner/Makefile.am:
1115 * giscanner/sourcescanner.c:
1116 * giscanner/sourcescanner.h:
1117 * tools/Makefile.am:
1118 * tools/grealpath.h:
1119 * tools/sourcescanner.c:
1120 * tools/sourcescanner.h:
1122 Move the scanner to a separate library.
1124 2008-03-23 Johan Dahlin <johan@gnome.org>
1126 * tools/Makefile.am:
1129 * tools/scannerlexer.l:
1130 * tools/scannerparser.y:
1131 * tools/sourcescanner.c:
1132 * tools/sourcescanner.h:
1133 Split out the source scanner from the generator.
1134 Rename the symbols used in the scanner to use the gi_ prefix.
1135 This should make it possible to use the raw C parser from
1138 2008-03-23 Johan Dahlin <johan@gnome.org>
1140 * tests/parser/Makefile.am (utility.gidl):
1141 * tests/parser/utility-expected.gidl:
1142 Pass in the gobject.gidl since we're defining a GObject.
1144 2008-03-12 Johan Dahlin <johan@gnome.org>
1146 * relaxng/relaxng.rng:
1147 Add a releaxng in relaxng we can use to validate the relaxngs
1150 2008-03-12 Jürg Billeter <j@bitron.ch>
1152 * tools/scanner.c: (g_igenerator_new):
1153 * tools/scannerparser.y:
1154 Fix compiler warnings.
1156 2008-03-12 Jürg Billeter <j@bitron.ch>
1160 * tools/scannerparser.y:
1161 Start fixing memory management in g-idl-scanner.
1163 2008-03-12 Rob Taylor <rob.taylor@codethink.co.uk>
1165 * tools/gidlcompilercontext.c: (write_compiled):
1166 Fix critical warning when no shlib passed to g-idl-compiler.
1168 2008-03-12 Johan Dahlin <johan@gnome.org>
1170 * tests/parser/utility-expected.gidl:
1171 * tests/parser/utility.h:
1172 Add a get_type-function, so the scanner actually
1173 parses it as an object.
1175 2008-03-12 Johan Dahlin <johan@gnome.org>
1177 * tools/gidlwriter.c (function_generate): Add missing trailing quote.
1180 * tests/parser/Foo-expected.gidl:
1181 * tests/parser/Makefile.am:
1182 * tests/parser/foo-object.h:
1183 * tests/parser/foo.c:
1184 * tests/parser/utility-expected.gidl:
1185 * tests/parser/utility.c:
1186 * tests/parser/utility.h:
1188 Add a new gidl test. 'utility.gidl', which is used to be able
1189 to test external type references. Add a reference to UtilityObject*
1192 2008-03-11 Johan Dahlin <johan@gnome.org>
1196 Remove most global variables
1198 2008-03-11 Philip Van Hoof <me@pvanhoof.be>
1200 * tools/scannerlexer.l:
1202 * tests/parser/Foo-expected.gidl:
1203 * tests/parser/foo.c:
1204 * tests/parser/Makefile.am:
1205 * tests/parser/foo-object.h:
1207 Added a few extra tests. Which resulted in finding a few
1208 bugs. Which resulted in me fixing those bugs
1210 2008-03-11 Rob Taylor <rob.taylor@codethink.co.uk>
1212 * tools/gidlcompilercontext.c: (g_idl_compiler_write_dir_entry),
1213 (g_idl_compiler_write_xref_entry), (g_idl_compiler_add_xref):
1214 Add some comments for strings into generated output for
1217 2008-03-11 Rob Taylor <rob.taylor@codethink.co.uk>
1219 * tools/gidlcompilercontext.c: (write_compiled):
1220 Write out the shlibs variable before writing out the strings
1221 length. Fixes compiler warning when using '-l' flag with
1224 2008-03-11 Johan Dahlin <johan@gnome.org>
1226 * tests/parser/Foo-expected.gidl:
1227 * tests/parser/foo-object.h:
1230 * tools/scannerlexer.l:
1231 Add support for parsing return arguments. Add support for
1232 caller-owns return types.
1233 Patch by Philip Van Hoof.
1235 * tools/scannerparser.y:
1236 Remove parsing of the @deprecated syntax used in headers.
1237 We will support gtk-doc deprecation in the future instead.
1239 2008-03-11 Johan Dahlin <johan@gnome.org>
1241 * tools/compiler.c (main): Coding style fixes
1243 2008-03-10 Johan Dahlin <johan@gnome.org>
1246 Add GCOV_LIBS to GILIBS
1248 2008-03-10 Johan Dahlin <johan@gnome.org>
1250 * tests/parser/Foo-expected.gidl:
1251 * tests/parser/foo.c:
1252 Rename null-ok to direction=out
1254 2008-03-10 Philip Van Hoof <me@pvanhoof.be>
1256 reviewed and extensively tested by Johan
1258 * tests/parser/Foo-expected.gidl:
1259 * tests/parser/foo-object.h:
1260 * tests/parser/foo.c:
1263 * tools/gidlwriter.c:
1266 * tools/scannerlexer.l:
1267 * tools/scannerparser.y:
1269 Add support for scanning for gtk-doc comments inside
1270 C source files. Add tests
1272 2008-03-10 Johan Dahlin <johan@gnome.org>
1274 * tests/parser/Makefile.am:
1275 * tests/parser/foo.c:
1278 * tools/scannerparser.y:
1279 Add an api to lex filenames.
1280 Lex all source .c files passed in on the command line.
1281 Scan sources in a test and a couple of private structures
1282 which should not be included in the generated gidl
1284 2008-03-10 Johan Dahlin <johan@gnome.org>
1286 * tests/invoke/Makefile.am: Make the generated metadata
1287 depend on the g-idl-compiler
1289 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1291 * tools/gidlmodule.c
1292 * tools/gidlmodule.h
1295 Remove the old g-idl-compiler code.
1298 2008-02-22 Mark Doffman <mark.doffman@codethink.co.uk>
1300 * tools/quote-file.sh
1303 Move to using the 'C' struct compiler code.
1305 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1307 * girepository/ginfo.c
1309 Change the way that external references with no namespace
1310 are dealt with. External references with no namespace
1311 are placed into the XML as-if they are a local reference.
1312 This is temporary, but helps with roundtrip tests.
1314 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1316 * girepository/ginfo.c
1317 Add the ability to get the value of a constant of
1318 type TYPE_TAG_SYMBOL. In the case of a symbol the value
1319 is provided as a string.
1321 This would deal properly with:
1322 typedef char* random;
1323 const random = "A string";
1325 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1327 * girepository/ginfo.c
1328 * girepository/girepository.h
1330 Add a function to check if an enum is registered or not.
1331 Previously anything testing this relied on the g-type
1332 string offset having a value of 0.
1334 * girepository/gmetadata.c
1335 * girepository/gmetadata.h
1337 Remove unneccesary or erroneous checks. There were two
1338 metadata validation checks which made sure that the blob
1339 sizes were the same as some magic numbers compiled into the code.
1340 This is wrong as it breaks any forwards compatibility that may
1343 Checks were also present that made sure that unregistered type
1344 blobs had a value of 0 in the g-type offset field. This is
1345 unneccessary. If a type blob is unregistered then any value
1346 in its g-type field is simply invalid.
1348 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1350 * girepository/ginfo.c
1351 * girepository/gmetadata.c
1352 * girepository/gmetadata.h
1354 Change the metadata format to have a standard header
1355 for all the type blobs. Merge the SimpleTypeBlob
1356 and InterfaceTypeBlob into a union. A union of these
1357 two blobs existed previously but was not explicit
1358 in the metadata format.
1360 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1362 * tools/gidlcompilercontext.c
1363 * tools/gidlcompilercontext.h
1364 * tools/gidlcompilerentrynode.c
1365 * tools/gidlcompilerentrynode.h
1366 * tools/gidlcompilertypenode.c
1367 * tools/gidlcompilertypenode.h
1369 Add code to compile a tree of GIdlNodes to
1370 a 'C' struct representing the metadata.
1371 This is to aid cross-compiling. Previously
1372 the g-idl-compiler created a binary blob with
1373 data written in the byte order and alignment
1374 of the tool rather than the intended target.
1376 Cleaned up and improved by Johan and Robert :-)
1378 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1380 * girepository/ginvoke.c
1381 * girepository/girepository.h
1382 * girepository/gmetadata.c
1383 * girepository/gmetadata.h
1385 * tools/gidlparser.c
1386 Modify TYPE_TAG_INTERFACE to TYPE_TAG_SYMBOL
1387 to avoid confusion with the interface blob.
1390 * tools/gidlparser.c
1391 Remove magic numbers and replace with type-tag
1392 enumeration symbols.
1394 * girepository/gmetadata.c
1395 Add validate declaration.
1397 2008-03-10 Jürg Billeter <j@bitron.ch>
1399 * tools/gidlparser.c: (parse_type_internal):
1400 * tools/scannerlexer.l:
1401 * tools/scannerparser.y:
1402 Support C99 _Bool type in scanner.
1404 2008-03-10 Jürg Billeter <j@bitron.ch>
1406 * tests/parser/Foo-expected.gidl:
1407 * tests/parser/foo-object.h:
1408 * tests/parser/foo.c: (foo_enum_method):
1409 * tools/scanner.c: (g_igenerator_process_function_symbol):
1410 Don't skip functions that are defined in the namespace of a type
1411 that doesn't support methods, as for example enums.
1413 2008-03-10 Johan Dahlin <johan@gnome.org>
1415 * gidl.dtd: Remove, we're using relaxng for now
1417 * tests/parser/Foo-expected.gidl:
1418 * tests/parser/foo-object.h:
1419 * tests/parser/foo.c:
1420 Rename the enum/flags get_type functions to include the whole type.
1422 2008-03-08 Marc-Andre Lureau <marcandre.lureau@gmail.com>
1424 * tools/gidlwriter.c (enum_generate): added "type-name",
1425 "get-type" and "deprecated" missing arguments.
1426 * tests/parser/Foo-expected.gidl:
1427 * tests/parser/foo-object.h: test enum type, and no type.
1429 2008-03-06 Johan Dahlin <jdahlin@async.com.br>
1432 Consistent checks, add missing 'test'
1434 2008-03-05 Havoc Pennington <hp@redhat.com>
1436 * configure.ac: Take advantage of a libffi.pc if one exists, as it
1437 does on Fedora 8. Make libffi a hard requirement, since it was in
1438 practice anyway (was not really conditional in the code or
1439 makefile, only in configure).
1441 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1443 reviewed by: Rob Taylor <rob.taylor@codethink.co.uk>
1444 reviewed by: Johan Dahlin <johan@gnome.org>
1446 * tests/Makefile.am:
1447 * tests/roundtrips.sh:
1448 Modify the roundtrips test so that they do not use the
1449 --raw option of the gidl compiler but instead compile a
1450 shared library to use with g_module.
1452 * tests/invoke/Makefile.am:
1453 * tests/invoke/invoke.c:
1454 Modify the invoke tests to build a shared library rather
1455 than use the --raw option.
1457 * tests/invoke/invoke-namespace-find.sh: Removed:
1458 Noone knows why this was here, so removed.
1460 2008-02-19 Rob Taylor <rob.taylor@codethink.co.uk>
1462 * tools/scanner.c: (g_igenerator_process_function_symbol):
1463 Move g_idl_node_can_have_member test later, as it broke spotting
1464 get_type's for nodes that can't have members.
1466 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
1469 * tools/gidlnode.c: (g_idl_node_can_have_member):
1470 Add g_idl_node_can_have_member.
1472 * tools/scanner.c: (g_igenerator_process_function_symbol):
1473 Use g_idl_node_can_have_member to test if we should add a function
1474 as a member of the type node.
1476 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
1478 * gidl/GLib.gidl: Renamed to gidl/gobject-2.0.gidl:
1480 * tests/parser/Makefile.am:
1481 Rename GLib.gidl to gobject-2.0.gidl and install in /usr/share/gidl.
1483 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
1485 * tools/scanner.c: (main):
1486 Ignore -pthread when passed to g-idl-scanner.
1488 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
1490 * tools/grealpath.h: Added:
1491 * tools/scanner.c: (main):
1492 * tools/scannerlexer.l:
1493 * tools/Makefile.am:
1494 Always use absolute paths with symbolic links resolved when
1495 comparing filenames.
1497 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
1499 * gobject-introspection.pc.in:
1500 Provide variables for g-idl-parser, scanner and compiler in the
1503 2008-02-13 Rob Taylor <rob.taylor@codethink.co.uk>
1506 * girepository/Makefile.am:
1507 * tools/Makefile.am:
1508 Rename GCOV_SOURCES to GCOVSOURCES to top automake complaining.
1510 2008-02-10 Johan Dahlin <johan@gnome.org>
1512 * tests/parser/Foo-expected.gidl:
1513 * tests/parser/foo-object.h:
1514 * tests/parser/foo.c: (foo_boxed_copy), (foo_boxed_free),
1515 (foo_boxed_get_type), (foo_boxed_new), (foo_boxed_method):
1518 2008-02-10 Johan Dahlin <johan@gnome.org>
1520 * tests/parser/Foo-expected.gidl:
1521 * tests/parser/foo-object.h:
1522 * tests/parser/foo.c: (foo_enum_get_type), (foo_flags_get_type):
1523 Add enum and flags test.
1525 2008-02-10 Johan Dahlin <johan@gnome.org>
1529 * girepository/Makefile.am:
1530 Make 'make distcheck' work again.
1532 2008-02-10 Johan Dahlin <johan@gnome.org>
1534 * m4/Makefile.am (EXTRA_DIST): its called as-compiler-flag.m4,
1537 * tests/parser/Makefile.am: Only create Foo.gidl when running make
1538 check, eg exclude it from BUILT_SOURCES.
1540 2008-02-08 Rob Taylor <rob.taylor@codethink.co.uk>
1545 * girepository/Makefile.am:
1546 * m4/Makefile.am: Added:
1547 * m4/as-compiler-flag.m4: Added:
1548 * m4/gcov.m4: Added:
1549 * tools/Makefile.am:
1550 Add ability to generate a coverage report.
1551 Adds configure option --enable-gcov and make rule 'check-coverage'.
1553 2008-02-08 Rob Taylor <rob.taylor@codethink.co.uk>
1557 * gidl/Makefile.am: Added:
1558 * girepository/Makefile.am: Added:
1559 * src/Makefile.am: Renamed to tools/Makefile.am:
1560 * src/compiler.c: Renamed to tools/compiler.c:
1561 * src/g-idl-offsets.pl: Renamed to tools/g-idl-offsets.pl:
1562 * src/generate.c: Renamed to tools/generate.c:
1563 * src/gidlmodule.c: Renamed to tools/gidlmodule.c:
1564 * src/gidlmodule.h: Renamed to tools/gidlmodule.h:
1565 * src/gidlnode.c: Renamed to tools/gidlnode.c:
1566 * src/gidlnode.h: Renamed to tools/gidlnode.h:
1567 * src/gidlparser.c: Renamed to tools/gidlparser.c:
1568 * src/gidlparser.h: Renamed to tools/gidlparser.h:
1569 * src/gidlwriter.c: Renamed to tools/gidlwriter.c:
1570 * src/gidlwriter.h: Renamed to tools/gidlwriter.h:
1571 * src/ginfo.c: Renamed to girepository/ginfo.c:
1572 * src/ginvoke.c: Renamed to girepository/ginvoke.c:
1573 * src/girepository.c: Renamed to girepository/girepository.c:
1574 * src/girepository.h: Renamed to girepository/girepository.h:
1575 * src/gmetadata.c: Renamed to girepository/gmetadata.c:
1576 * src/gmetadata.h: Renamed to girepository/gmetadata.h:
1577 * src/scanner.c: Renamed to tools/scanner.c:
1578 * src/scanner.h: Renamed to tools/scanner.h:
1579 * src/scannerlexer.l: Renamed to tools/scannerlexer.l:
1580 * src/scannerparser.y: Renamed to tools/scannerparser.y:
1581 * tests/invoke/Makefile.am:
1582 Split src/ into girepository/ and tools/
1586 * girepository/Makefile.am:
1587 * tests/Makefile.am:
1588 * tests/invoke/Makefile.am:
1589 * tests/parser/Makefile.am:
1590 * tests/roundtrips.sh:
1591 * tools/Makefile.am:
1592 Make distcheck work.
1594 2008-02-04 Rob Taylor <rob.taylor@codethink.co.uk>
1596 * tests/invoke/invoke.c: (main):
1597 * tests/invoke/testfns.c: (test6), (test7):
1598 * tests/invoke/testfns.xml:
1599 Add tests for invokation with a GList argument.
1600 Also tests caller-owns return values.
1602 2008-02-04 Rob Taylor <robtaylor@floopily.org>
1605 Add some documentation for GICallableInfo
1607 2008-02-01 Mark Doffman <mark.doffman@codethink.co.uk>
1610 Correct syntax errors in the DTD file.
1612 * relaxng/c-types.xml:
1613 * relaxng/g-types.xml:
1615 Add a RelaxNG specification for the GObject Introspection XML data.
1616 The Specification has validated all of the test files.
1618 2008-01-25 Rob Taylor <robtaylor@floopily.org>
1620 * tests/roundtrips.sh:
1621 * tests/struct.test:
1622 Add roundtrip tests for structs.
1624 2008-01-11 Johan Dahlin <johan@gnome.org>
1626 * src/scanner.c (g_igenerator_process_function_symbol):
1627 Refactor out g_idle_node_add_member.
1628 (create_node_from_gtype, create_node_from_ctype):
1629 Use case instead of if...else
1630 (get_type_from_type_id):
1631 Rename to create_node_from_gtype
1632 (get_type_from_ctype):
1633 Rename to create_node_from_ctype
1635 Rename ginode -> node, gitype -> type, gifunc -> func.
1637 * src/gidlnode.c (g_idl_node_add_member, g_idl_node_cmp):
1638 Two new functions, refactor out of scanner.c
1640 * src/scanner.c: (g_igenerator_process_function_symbol):
1641 * src/scannerlexer.l:
1642 Do not save the content of the deprecated variable, only
1645 2008-01-11 Johan Dahlin <johan@gnome.org>
1647 * tests/parser/foo-object.h: Add a couple of comment parser tests.
1649 2008-01-11 Jürg Billeter <j@bitron.ch>
1651 * src/scannerlexer.l:
1652 Fix GTK-Doc parsing.
1654 2008-01-11 Jürg Billeter <j@bitron.ch>
1656 * src/scannerlexer.l:
1657 Fix GTK-Doc parsing.
1659 2008-01-11 Jürg Billeter <j@bitron.ch>
1661 * src/scanner.c: (lookup_symbol):
1662 Return unresolved name if we find unknown symbol.
1664 2008-01-11 Jürg Billeter <j@bitron.ch>
1666 * src/scanner.c: (g_igenerator_generate):
1667 Initialize GObject to fix scanning interface properties.
1669 * tests/parser/Foo-expected.gidl:
1670 * tests/parser/foo-object.h:
1671 * tests/parser/foo.c: (foo_interface_get_type):
1672 Test interfaces with GObject prerequisite.
1674 * tests/parser/Makefile.am:
1675 Set G_DEBUG=fatal_warnings to abort test on warnings and criticals.
1677 2007-12-27 Johan Dahlin <johan@gnome.org>
1679 * src/scannerlexer.l:
1680 Parse gtk-doc comments.
1682 * src/gidlwriter.c: (function_generate):
1683 Reorganize, avoid duplication and add support for
1684 writing deprecated functions.
1686 * src/scannerparser.y:
1688 Add new structure CDirective and functions to create/free them.
1690 * src/scanner.c: (g_igenerator_process_function_symbol),
1691 (g_igenerator_process_unregistered_struct_typedef),
1692 (g_igenerator_process_struct_typedef),
1693 (g_igenerator_process_union_typedef),
1694 (g_igenerator_process_enum_typedef),
1695 (g_igenerator_process_function_typedef), (g_igenerator_add_symbol),
1696 (g_igenerator_start_preprocessor):
1697 Parse @deprecated directive for functions.
1698 Remove some more C99isms.
1699 Send in -C to cpp to avoid stripping comments.
1701 * tests/parser/foo-object.h:
1702 * tests/parser/Foo-expected.gidl:
1703 Add deprecated directive
1705 2007-12-27 Johan Dahlin <johan@gnome.org>
1707 * src/scannerlexer.l (intsuffix): Add emacs mode line and
1708 escape ' and " so it looks more like C.
1711 Unlink temporary file used.
1713 2007-12-27 Johan Dahlin <johan@gnome.org>
1715 * src/scanner.c: (g_igenerator_new), (g_igenerator_free),
1716 (g_igenerator_start_preprocessor), (main):
1718 * src/scannerparser.y:
1719 Plug a couple of simple memory leaks.
1721 2007-12-27 Johan Dahlin <johan@gnome.org>
1723 * src/scanner.c: (g_igenerator_parse_macros),
1724 (g_igenerator_start_preprocessor), (g_igenerator_set_verbose),
1727 * src/scannerparser.y:
1728 * tests/parser/Makefile.am:
1730 Improve error reporting, return when the preprocessor fails.
1731 Add a verbose parameter, to aid debugging.
1732 Revert to using a temporary file to communicate between the
1733 preprocessor and the parser, because we need to wait for
1734 the exit code from the pre-processor before starting to parse.
1736 2007-12-16 Johan Dahlin <jdahlin@async.com.br>
1738 * src/Makefile.am: Rename clexer.l to scannerlexer.l and
1739 cparser.y to scannerparser.y
1741 2007-12-11 Johan Dahlin <johan@gnome.org>
1745 * src/scanner.c: (g_igenerator_new):
1747 Get rid of the global the_generator variable.
1749 2007-12-10 Johan Dahlin <johan@gnome.org>
1751 * src/scanner.c (main): Add an output option,
1752 add checks for required parameters
1755 set BUILD_SOURCES and CLEANFILES properly
1757 * src/gidlwriter.c: (g_writer_write_inline), (g_writer_write),
1758 (g_writer_write_indent), (g_writer_write_unindent),
1759 (field_generate), (value_generate), (constant_generate),
1760 (property_generate), (function_generate), (vfunc_generate),
1761 (signal_generate), (interface_generate), (struct_generate),
1762 (union_generate), (boxed_generate), (enum_generate),
1763 (node_generate), (g_writer_write_module), (g_idl_writer_save_file):
1765 * src/scanner.c: (g_igenerator_generate):
1767 * src/scannerwriter.c:
1769 Refactor scannerwriter to only be tied to a GIdlModule and move
1770 it (again!) to gidlwriter.c. Change the writer function to take
1773 2007-12-10 Johan Dahlin <johan@gnome.org>
1776 * src/scanner.c: (g_igenerator_generate):
1778 * src/scannerwriter.c: (g_igenerator_write_inline),
1779 (g_igenerator_write), (g_igenerator_write_indent),
1780 (g_igenerator_write_unindent), (field_generate), (value_generate),
1781 (constant_generate), (property_generate), (function_generate),
1782 (vfunc_generate), (signal_generate), (interface_generate),
1783 (struct_generate), (union_generate), (boxed_generate),
1784 (enum_generate), (node_generate), (module_generate),
1785 (g_scanner_write_file):
1787 Move the scanner gidl writing to a separate source file.
1789 2007-12-10 Johan Dahlin <johan@gnome.org>
1794 Move over all CType construction functions.
1796 * tests/parser/Makefile.am:
1797 Be verbose when printing parsing tests results.
1799 2007-12-10 Johan Dahlin <johan@gnome.org>
1801 * src/scanner.c (g_igenerator_start_preprocessor): Refactor
1802 preprocessor handling to here. Start cpp insteado of cc -E,
1803 always include -U__GNUC__, since it's specific to the preprocessor
1806 * tests/parser/Makefile.am (check-local): Silent diff and skip
1807 -U__GNUC__ which is always defined now
1809 2007-12-10 Johan Dahlin,,, <jdahlin@plasttroll>
1811 reviewed by: <delete if not using a buddy>
1813 * src/scanner.c: (g_igenerator_start_preprocessor), (main):
1814 * tests/parser/Makefile.am:
1816 2007-12-09 Johan Dahlin <johan@gnome.org>
1819 Use GOption for command line options.
1820 (g_igenerator_new, main): Simplify constructor and they way
1821 parameters are passed into it.
1827 * src/gen-introspect.c:
1828 * src/gen-introspect.h:
1830 Rename gen-introspect.[ch] to scanner.[ch]
1832 2007-12-09 Johan Dahlin <johan@gnome.org>
1836 * src/Makefile.am: Rename gen-introspect to g-idl-scanner,
1837 don't make the repository library and the other utilites link against
1840 * src/gen-introspect.c: (g_igenerator_create_object),
1841 (g_igenerator_create_interface), (g_igenerator_create_boxed),
1842 (g_igenerator_create_enum), (g_igenerator_create_flags),
1843 (g_igenerator_process_module_symbol),
1844 (g_igenerator_process_module), (g_igenerator_generate), (main):
1845 * src/gen-introspect.h:
1846 Refactor g_igenerator_process_types into smaller pieces.
1848 * tests/parser/Makefile.am:
1849 Depend on the gen-introspect binary
1851 2007-12-09 Johan Dahlin <johan@gnome.org>
1853 * src/gen-introspect.c (g_igenerator_process_types):
1854 Break into smaller pieces, one for each generated node type.
1856 2007-12-08 Johan Dahlin <johan@gnome.org>
1858 * src/gen-introspect.c: (g_igenerator_process_types),
1859 (g_igenerator_add_module):
1860 * tests/parser/Foo-expected.gidl:
1861 * tests/parser/foo-object.h:
1862 * tests/parser/foo.c: (foo_subobject_class_init),
1863 (foo_subobject_init):
1865 Add a subobject test and make sure to register defined classes
1866 in the lookup symbol hash table.
1868 2007-12-08 Johan Dahlin <johan@gnome.org>
1872 * src/gen-introspect.c: (g_igenerator_new), (lookup_symbol),
1873 (g_igenerator_process_types), (g_igenerator_add_module),
1874 (g_igenerator_add_include_idl), (main):
1875 * src/gen-introspect.h:
1876 * tests/parser/Makefile.am:
1877 * tests/parser/Foo-expected.gidl:
1879 Change the gen-introspect to generate namespaced module names,
1880 such as GLib.Object instead of GObject.
1881 Add a GLib.gidl which introduces GLib.Object and GLib.InitiallyUnowned,
1882 add a --include-idl parameter to gen-introspect,
1883 and update the parser test.
1885 2007-12-08 Johan Dahlin <johan@gnome.org>
1887 * src/gen-introspect.c:
1888 Move main to the end of the file and attempt to make it valid
1891 * tests/parser/Makefile.am (BUILT_SOURCES): Remove .repo here,
1892 we're not quite ready to generate metadata yet.
1897 Add a simple gen-introspect parser test
1899 2007-12-06 Gustavo J. A. M. Carneiro <gjc@gnome.org>
1901 reviewed by: Johan Dahlin <johan@gnome.org>
1904 * gobject-introspection.pc.in:
1906 * src/compiler.c: (format_output), (write_out_metadata), (main):
1907 * src/gen-introspect.c: (main):
1908 * src/gen-introspect.h:
1909 * src/generate.c: (write_callable_info), (write_repository),
1910 (load_metadata), (main):
1911 * src/gidlmodule.c: (g_idl_module_new),
1912 (g_idl_module_build_metadata):
1914 * src/gidlparser.c: (start_element_handler):
1915 * src/ginfo.c: (g_info_new), (g_info_from_entry),
1916 (g_base_info_get_name), (g_base_info_get_namespace),
1917 (g_base_info_is_deprecated), (g_base_info_get_annotation),
1918 (g_base_info_get_metadata), (g_function_info_get_symbol),
1919 (g_function_info_get_flags), (g_function_info_get_property),
1920 (g_function_info_get_vfunc), (signature_offset), (g_type_info_new),
1921 (g_callable_info_may_return_null),
1922 (g_callable_info_get_caller_owns), (g_callable_info_get_n_args),
1923 (g_callable_info_get_arg), (g_arg_info_get_direction),
1924 (g_arg_info_is_return_value), (g_arg_info_is_dipper),
1925 (g_arg_info_is_optional), (g_arg_info_may_be_null),
1926 (g_arg_info_get_ownership_transfer), (g_type_info_is_pointer),
1927 (g_type_info_get_tag), (g_type_info_get_param_type),
1928 (g_type_info_get_interface), (g_type_info_get_array_length),
1929 (g_type_info_is_zero_terminated),
1930 (g_type_info_get_n_error_domains), (g_type_info_get_error_domain),
1931 (g_error_domain_info_get_quark), (g_error_domain_info_get_codes),
1932 (g_value_info_get_value), (g_field_info_get_flags),
1933 (g_field_info_get_size), (g_field_info_get_offset),
1934 (g_registered_type_info_get_type_name),
1935 (g_registered_type_info_get_type_init),
1936 (g_struct_info_get_n_fields), (g_struct_info_get_field),
1937 (g_struct_info_get_n_methods), (g_struct_info_get_method),
1938 (find_method), (g_struct_info_find_method),
1939 (g_enum_info_get_n_values), (g_enum_info_get_value),
1940 (g_object_info_get_parent), (g_object_info_get_type_name),
1941 (g_object_info_get_type_init), (g_object_info_get_n_interfaces),
1942 (g_object_info_get_interface), (g_object_info_get_n_fields),
1943 (g_object_info_get_field), (g_object_info_get_n_properties),
1944 (g_object_info_get_property), (g_object_info_get_n_methods),
1945 (g_object_info_get_method), (g_object_info_find_method),
1946 (g_object_info_get_n_signals), (g_object_info_get_signal),
1947 (g_object_info_get_n_vfuncs), (g_object_info_get_vfunc),
1948 (g_object_info_get_n_constants), (g_object_info_get_constant),
1949 (g_interface_info_get_n_prerequisites),
1950 (g_interface_info_get_prerequisite),
1951 (g_interface_info_get_n_properties),
1952 (g_interface_info_get_property), (g_interface_info_get_n_methods),
1953 (g_interface_info_get_method), (g_interface_info_find_method),
1954 (g_interface_info_get_n_signals), (g_interface_info_get_signal),
1955 (g_interface_info_get_n_vfuncs), (g_interface_info_get_vfunc),
1956 (g_interface_info_get_n_constants),
1957 (g_interface_info_get_constant), (g_property_info_get_flags),
1958 (g_signal_info_get_flags), (g_signal_info_get_class_closure),
1959 (g_signal_info_true_stops_emit), (g_vfunc_info_get_flags),
1960 (g_vfunc_info_get_offset), (g_vfunc_info_get_signal),
1961 (g_constant_info_get_value), (g_union_info_get_n_fields),
1962 (g_union_info_get_field), (g_union_info_get_n_methods),
1963 (g_union_info_get_method), (g_union_info_is_discriminated),
1964 (g_union_info_get_discriminator_offset),
1965 (g_union_info_get_discriminator):
1966 * src/ginvoke.c: (g_function_info_invoke):
1967 * src/girepository.c: (g_irepository_register),
1968 (g_irepository_unregister), (g_irepository_get_default),
1969 (count_interfaces), (g_irepository_get_n_infos), (find_interface),
1970 (g_irepository_get_info), (g_irepository_find_by_name),
1971 (g_irepository_get_shared_library),
1972 (g_irepository_build_search_path), (g_irepository_register_file),
1973 (g_irepository_error_quark):
1974 * src/girepository.h:
1975 * src/gmetadata.c: (g_metadata_get_dir_entry),
1976 (g_metadata_check_sanity), (validate_header),
1977 (validate_array_type_blob), (validate_iface_type_blob),
1978 (validate_param_type_blob), (validate_error_type_blob),
1979 (validate_type_blob), (validate_arg_blob),
1980 (validate_signature_blob), (validate_function_blob),
1981 (validate_callback_blob), (validate_constant_blob),
1982 (validate_value_blob), (validate_field_blob),
1983 (validate_property_blob), (validate_signal_blob),
1984 (validate_vfunc_blob), (validate_struct_blob),
1985 (validate_enum_blob), (validate_object_blob),
1986 (validate_interface_blob), (validate_errordomain_blob),
1987 (validate_union_blob), (validate_blob), (validate_directory),
1988 (validate_annotations), (g_metadata_validate), (_g_metadata_init),
1989 (g_metadata_new_from_memory), (g_metadata_new_from_const_memory),
1990 (g_metadata_new_from_mapped_file), (g_metadata_free),
1991 (g_metadata_set_module), (g_metadata_get_namespace):
1993 * tests/Makefile.am:
1994 * tests/invoke/Makefile.am:
1995 * tests/invoke/invoke-namespace-find.sh:
1996 * tests/invoke/invoke.c: (main):
1998 Add a namespace/shared library mapping. fixes #313268.
2000 2007-12-03 Johan Dahlin <johan@gnome.org>
2002 * src/gidlparser.c (parse_type_internal): Disable char/gchar and
2005 2007-11-30 Jürg Billeter <j@bitron.ch>
2011 * src/gen-introspect.c: (g_idl_node_cmp), (g_igenerator_new),
2012 (g_igenerator_write_inline), (g_igenerator_write),
2013 (g_igenerator_write_indent), (g_igenerator_write_unindent),
2014 (field_generate), (value_generate), (constant_generate),
2015 (property_generate), (function_generate), (vfunc_generate),
2016 (signal_generate), (interface_generate), (struct_generate),
2017 (union_generate), (boxed_generate), (enum_generate),
2018 (node_generate), (module_generate), (get_type_from_type_id),
2019 (str_replace), (g_igenerator_process_properties),
2020 (g_igenerator_process_signals), (g_igenerator_process_types),
2021 (get_type_from_ctype), (g_igenerator_process_function_symbol),
2022 (g_igenerator_process_unregistered_struct_typedef),
2023 (g_igenerator_process_struct_typedef),
2024 (g_igenerator_process_union_typedef),
2025 (g_igenerator_process_enum_typedef),
2026 (g_igenerator_process_function_typedef),
2027 (g_igenerator_process_constant), (g_igenerator_process_symbols),
2028 (g_igenerator_add_symbol), (g_igenerator_is_typedef),
2029 (g_igenerator_generate), (main), (csymbol_new),
2030 (csymbol_get_const_boolean), (ctype_new), (ctype_copy),
2031 (cbasic_type_new), (ctypedef_new), (cstruct_new), (cunion_new),
2032 (cenum_new), (cpointer_new), (carray_new), (cfunction_new),
2033 (eat_hspace), (eat_line), (read_identifier),
2034 (g_igenerator_parse_macros):
2035 * src/gen-introspect.h:
2037 Import gen-introspect to generate introspection information by
2040 2007-11-30 Jürg Billeter <j@bitron.ch>
2042 * src/gidlnode.c: (g_idl_node_new): support creating callback nodes
2044 2007-11-30 Jürg Billeter <j@bitron.ch>
2046 * src/gidlparser.c: (end_element_handler): Don't leave requires
2049 2007-11-29 Johan Dahlin <johan@gnome.org>
2051 * src/gidlparser.c (parse_type_internal): Add char,
2052 gchar and guchar to the builtin types.
2054 2007-11-26 Johan Dahlin <johan@gnome.org>
2056 * src/ginfo.c: (g_object_info_get_type_name),
2057 (g_object_info_get_type_init):
2058 * src/girepository.c: (g_irepository_is_registered):
2059 * src/girepository.h:
2061 Add g_object_info_get_type_name, g_object_info_get_type_init and
2062 g_irepository_is_registered.
2064 2006-08-14 Jürg Billeter <j@bitron.ch>
2066 * src/gidlparser.c: (end_element_handler): Don't leave
2067 namespace and implements states too early.
2070 2007-11-26 Johan Dahlin <johan@gnome.org>
2072 * src/gmetadata.c (validate_struct_blob):
2073 pass blob_type to validate_function_blob instead of
2074 hard-coding BLOB_TYPE_STRUCT.
2076 Patch by Torsten Schoenfeld, fixes #314190
2078 2006-10-03 Torsten Schoenfeld <tsch@cvs.gnome.org>
2080 * src/compiler.c, src/generate.c, src/gidlnode.c,
2081 src/gidlparser.c, src/ginfo.c, src/girepository.c,
2082 tests/invoke/invoke.c, test/invoke/testfns.c: Hush compiler
2083 warnings about return values, signedness mismatches, unused
2084 variables, and unhandles enum values in switch statements.
2086 * tests/invoke/Makefile.am: Don't install the invoke test program.
2087 Add -I ../../src to the cflags used for the test functions files.
2089 2005-08-31 Torsten Schoenfeld <tsch@cvs.gnome.org>
2091 * src/girepository.h: Export g_invoke_error_quark.
2093 2005-08-31 Torsten Schoenfeld <tsch@cvs.gnome.org>
2095 * src/ginvoke.c: Remove the fallback implementation of
2096 g_function_info_invoke since we now formally depend on libffi.
2098 2005-07-25 Matthias Clasen <mclasen@redhat.com>
2100 * src/Makefile, tests/Makefile, tests/invoke/Makefile:
2101 Remove these files from cvs, as they are now generated.
2103 * src/gmetadata.c (validate_iface_type_blob): Don't
2104 complain if blob->pointer is not set, since that
2105 happens for enum and flag types. (#308935, Gustavo
2108 * Commit an autoconf-conversion patch by
2109 Gustavo Carneiro (#308708)
2111 2005-05-24 Matthias Clasen <mclasen@redhat.com>
2113 * src/compiler.c (main): Use it here to validate
2114 the generated metadata.
2116 * src/gmetadata.[hc]: Add code to validate a
2119 * metadata-format.txt: Updates
2121 2005-05-22 Matthias Clasen <mclasen@redhat.com>
2123 * tests/*: Add struct offsets to field and vfunc
2126 * src/generate.c (write_vfunc_info): Write offset
2127 information for vfuncs.
2129 * src/gidlnode.c (g_idl_node_build_metadata): Write
2130 the struct offsets into the metadata.
2132 * src/gidlparser.c: Parse the offset attributes of
2133 field and vfunc elements.
2135 * src/gidlnode.h: Add offset members to field and
2138 2005-05-21 Matthias Clasen <mclasen@redhat.com>
2142 * gidl.dtd: Updates.
2144 * src/g-idl-offsets.pl: A perl script which reads a .gidl
2145 file, creates, compiles and runs a C file, and folds the
2146 resulting struct offsets back into the .gidl file.
2148 2005-05-20 Matthias Clasen <mclasen@redhat.com>
2150 * src/gidlparser.c (start_field): Make fields in objects
2153 * src/gidlmodule.c: Include string.h
2158 * metadata-format.txt: Cleanup basic types.
2159 * src/*: Adapt to the changes.
2160 * tests/*: Adapt to the changes.
2161 * examples/gdk-pixbuf.gidl: Adapt to the changes.
2163 * src/gidlnode.c (g_idl_node_get_size): Report the correct
2164 size for enum blobs.
2165 (g_idl_node_get_full_size): Report the correct size for
2168 * src/gidlmodule.c (g_idl_module_build_metadata): Add some
2169 error checking for blob sizes.
2171 2005-05-19 Matthias Clasen <mclasen@redhat.com>
2173 * src/gidlnode.c (g_idl_node_build_metadata): Correctly handle
2174 interface types for which is_pointer is FALSE, e.g. enums.
2176 * src/gidlnode.c (g_idl_node_get_full_size)
2177 * src/gidlparser.c (parse_type_internal):
2178 * src/generate.c (write_type_info): Support unspecialized
2179 lists, hashtables and errors. Also emit a '*' after these.
2183 2005-05-17 Matthias Clasen <mclasen@redhat.com>
2187 * metadata-format.txt: Cleanups by Maciej Katafiasz.
2189 2005-05-15 Matthias Clasen <mclasen@redhat.com>
2191 * src/*.c: Change the directory to be addressed by
2192 1-based indexes, and use an index of zero to mean
2195 2005-05-15 Matthias Clasen <mclasen@redhat.com>
2197 * tests/roundtrips.sh (SIMPLE_TESTS): Add union.test.
2199 * tests/union.test: Add a union test.
2201 * src/generate.c: Handle unions.
2203 * src/girepository.h:
2204 * src/ginfo.c: Add GIUnionInfo and functions to access it.
2206 * src/gidlnode.c: Handle GIdlNodeUnion nodes.
2208 * src/gidlparser.c (start_union): Parse <union> elements.
2210 * src/gidlnode.h: Add a GIdlNodeUnion.
2212 * gidl.dtd: Add a <union> element.
2214 * src/gmetadata.c (g_metadata_check_sanity): Check
2217 * src/gmetadata.h: Add union_blob_size to Header,
2220 * metadata-format.txt: Add a UnionBlob.
2222 2005-05-13 Matthias Clasen <mclasen@redhat.com>
2224 * tests/*: Update testcases.
2226 * src/generate.c (write_callable_info): Don't forget to
2227 write transfer and null-ok attributes for return types
2230 * src/girepository.h:
2231 * src/ginfo.c (g_callable_info_may_return_null):
2232 New function to find out if a function may return NULL.
2234 * src/compiler.c (format_output): Make the generated
2237 * README: Point to a recent libffi snapshot.
2239 * tests/invoke/*: Some invoke tests.
2241 * src/Makefile: Add ginvoke.c and the necessary
2244 * src/girepository.h (g_function_info_invoke): Add
2247 * src/ginvoke.c (g_function_info_invoke): Initial
2248 implementation of invoke functionality based on libffi.
2250 * src/gidlnode.c (g_idl_node_build_metadata): Pass the
2251 strings and types hash tables in the right order when
2253 (find_entry_node): Free the name parts.
2255 2005-05-12 Johan Dahlin <johan@gnome.org>
2257 * src/generate.c: Generate consistent end tags.
2261 2005-05-12 Matthias Clasen <mclasen@redhat.com>
2265 * src/gidlparser.c (start_function): Actually add
2266 methods to objects. (Steven Walter)
2268 * src/girepository.h:
2269 * src/ginfo.c: Rename Transfer and Direction to
2270 GITransfer and GIDirection. (Torsten Schoenfeld)
2272 * tests/*: Make tests work with the changes in name
2275 * src/gidlnode.c (find_entry_node): Parse qualified
2276 names and generate xref nodes for them if needed. Don't
2277 require all modules to be loaded any more.
2279 * src/gidlmodule.c (g_idl_module_build_metadata): Choke
2282 * src/ginfo.c (g_object_info_get_parent): Return NULL
2283 if blob->parent is 0. Still need to make sure index
2286 * src/generate.c: Generate qualified names when
2287 referring to non-local types. Emit transfer attribute
2290 * src/compiler.c (format_output): Put the function
2291 attributes where gcc accepts them.
2293 2005-05-11 Matthias Clasen <mclasen@redhat.com>
2295 * src/compiler.c (main): Add a --verbose cmdline option
2296 and only log messages if it is specified.
2299 * src/gidlnode.c (init_stats, dump_stats): Collect some
2300 statistics on string and type sharing.
2302 * src/gidlmodule.c (g_idl_module_build_metadata): Use
2303 g_message() instead of fprintf().
2305 * src/gidlnode.c (g_idl_node_free): Make this more robust.
2306 (g_idl_node_get_size): Implement for structs.
2307 (g_idl_node_get_full_size): Handle parent being NULL.
2308 (serialize_type): Handle lookup failures more gracefully.
2310 2005-05-10 Matthias Clasen <mclasen@redhat.com>
2312 * src/gidlnode.c (g_idl_node_get_full_size): Correct the
2313 size calculation for 2-parameter types and for objects.
2315 * src/compiler.c: Add a cmdline option for debug output
2316 and install a log handler to implement it.
2317 * src/gidlnode.c: Add some debug spew.
2321 * src/gidlmodule.c (g_idl_module_build_metadata): Don't
2322 forget to count the module name when calculating the
2323 required size for the metadata.
2326 * src/gidlparser.c: Fix compiler warnings.
2328 2005-05-09 Matthias Clasen <mclasen@redhat.com>
2330 * src/compiler.c (main): Free the option context.
2332 * gidl.dtd: Clean up handling of names. All elements
2333 have a "name", only the elements corresponding to
2334 actual callable functions (function, method, constructor),
2335 have an additional "symbol" attribute holding the
2336 dlsym()-able function name.
2338 * src/generate.c: Adapt to generate xml matching the
2342 * src/gidlnode.c: Adapt to parse the new dtd.
2344 * tests/*.test: Adjust to the new dtd.
2346 * metadata-format.txt:
2347 * src/gmetadata.h: Remove the short_name field
2349 * src/gmetadata.c: Shrink size of ValueBlob to 12.
2350 * src/girepository.h:
2351 * src/ginfo.c (g_value_info_get_short_name): Removed
2353 2005-05-09 Matthias Clasen <mclasen@redhat.com>
2355 * gidl.dtd: Allow constructors for boxed types,
2356 patch by Jonathan Blandford.
2359 2005-05-09 Matthias Clasen <mclasen@redhat.com>
2361 * --- Initial import ---