1 2008-08-13 Colin Walters <walters@verbum.org>
3 * giscanner/girparser.py: Parse more than just <class.
4 * giscanner/glibtransformer.py: Put aliases in a separate
5 data structure since their name is not canonicall.
6 * giscanner/transformer.py: Handle resolving type names
9 2008-08-13 Johan Dahlin <johan@gnome.org>
12 Allow multiple libraries
13 * giscanner/glibtransformer.py:
14 Rename load_library to add_library, traverse over all libraries
15 when trying to resolve a function
17 2008-08-12 Colin Walters <walters@verbum.org>
19 * giscanner/transformer.py: Record typedefs as <alias> elements.
20 Also attempt to look up types in external namespaces.
21 * giscanner/girwriter.py: Write them.
22 * giscanner/glibtransformer.py: Rework resolver using real instanceof
23 checks. Resolve interface methods and properties.
24 * tests/scanner/foo-object.h: Add a method with typedef.
25 * tests/scanner/Foo-expected.gir: Update.
26 * girepository/girnode.c: Debug tweaks.
27 * girepository/girparser.c: Make a first pass through the XML where we
28 record all the aliases. This lets us resolve them as we go through the
30 * gir/Makefile.am: Don't install gobject-2.0.gir; we want that to come
33 2008-08-12 Colin Walters <walters@verbum.org>
35 * giscanner/glibtransformer.py: Resolve typedefs (e.g. AtkAttributeSet -> GSList).
36 Correctly do subclasseing in 2nd pass resolution. Handle callbacks in structure
38 * giscanner/transformer.py: Record typedefs and expose public API for resolving
40 * tests/scanner/Foo-expected.gir: Fix expected callback types.
42 2008-08-12 Colin Walters <walters@verbum.org>
44 * giscanner/glibtransformer.py: Also transform object properties.
46 2008-08-12 Colin Walters <walters@verbum.org>
48 * giscanner/glibtransformer.py: Also transform callbacks
49 and structure field types.
50 * tests/scanner/Fooe-expected.gir: Update to expect correct
51 names for callbacks and structs.
53 2008-08-12 Colin Walters <walters@verbum.org>
55 * girepository/girparser.c: Handle 'any'.
56 * tests/scanner/Foo-expected.gir, tests/scanner/foo-object.h:
59 2008-08-12 Colin Walters <walters@verbum.org>
61 * giscanner/glibtransformer.py: We need to do type
62 resolution in a second pass after we've seen all the
65 2008-08-12 Colin Walters <walters@verbum.org>
67 * tests/scanner/Foo-expected.gir, tests/scanner/foo-object.h:
68 Add enum return value.
69 * giscanner/glibtransformer.py: Transform function return types
72 2008-08-12 Colin Walters <walters@verbum.org>
74 * tests/scanner/Makefile.am: Dep .gir files on scanner
75 sources too. Also remove @ so we see scanner invocations.
77 2008-08-12 Colin Walters <walters@verbum.org>
79 * girepository/girparser.c, girepository/gtypelib.c,
80 girepository/gtypelib.h, girepository/girnode.c:
81 Remove usage of (GAPI-oriented) TypeTag in favor of
82 GITypeTag from girepository.h.
84 2008-08-10 Colin Walters <walters@verbum.org>
86 * tests/roundtrips.sh: Use the correct tests.
88 2008-08-10 Colin Walters <walters@verbum.org>
90 * giscanner/cgobject.py: Declare/wrap a few more functions.
91 Fix parameter types for g_object_new and g_type_fundamental.
93 2008-08-10 Colin Walters <walters@verbum.org>
95 * giscanner/cgobject.py: Add new decorator @gwrap which forces
96 us to declare types for both return value and parameters. The
97 ctypes default of 'int' is bad because it hides 32/64 bit
98 problems. Convert all existing functions to use it.
100 2008-08-09 Johan Dahlin <johan@gnome.org>
102 * giscanner/__init__.py:
104 * giscanner/cgobject.py:
105 * giscanner/gidlparser.py:
106 * giscanner/gidlwriter.py:
107 * giscanner/girparser.py:
108 * giscanner/girwriter.py:
109 * giscanner/glibast.py:
110 * giscanner/glibtransformer.py:
111 * giscanner/odict.py:
112 * giscanner/sourcescanner.py:
113 * giscanner/transformer.py:
114 * giscanner/utils.py:
115 * giscanner/xmlwriter.py:
116 * tools/g-ir-scanner:
120 2008-08-09 Johan Dahlin <johan@gnome.org>
123 * relaxng/c-types.xml:
124 * relaxng/g-types.xml:
125 * relaxng/relaxng.rng:
127 Remove outdated relaxng schemas.
129 2008-08-09 Johan Dahlin <johan@gnome.org>
132 Rename metadata to typelib in variable names,
135 2008-08-09 Johan Dahlin <johan@gnome.org>
139 Remove old C scanner, which got rewritten in python.
141 2008-08-09 Johan Dahlin <johan@gnome.org>
143 * girepository/Makefile.am:
153 Move shared *.[ch] files to girepository from tools
155 2008-08-09 Johan Dahlin <johan@gnome.org>
160 * tests/constant.test:
163 * tests/function.test:
164 * tests/gobject.test:
165 * tests/interface.test:
172 Rename *.test to *.gir
174 2008-08-09 Johan Dahlin <johan@gnome.org>
178 * tests/parser/Foo-expected.gir:
179 * tests/parser/Makefile.am:
180 * tests/parser/foo-object.h:
181 * tests/parser/foo.c:
182 * tests/parser/utility-expected.gir:
183 * tests/parser/utility.c:
184 * tests/parser/utility.h:
185 * tests/scanner/Makefile.am:
186 Rename tests/parser to test/scanner
188 2008-08-08 Colin Walters <walters@verbum.org>
190 * tests/roundtrips.sh: Use local .gir files again.
192 2008-08-08 Colin Walters <walters@verbum.org>
194 * tests/invoke/Makefile.am: .gir file depends on libtool
197 2008-08-08 Colin Walters <walters@verbum.org>
199 * tools/girnode.c: Pass through parent node so we can
200 print the node whose child is NULL, if that occurs.
202 2008-08-08 Johan Dahlin <johan@gnome.org>
205 Disable roundtrip tests which are not yet working
206 * tests/invoke/testfns.gir:
209 2008-08-08 Johan Dahlin <johan@gnome.org>
211 * giscanner/girwriter.py:
213 * giscanner/glibast.py:
214 * giscanner/glibtransformer.py:
215 Swap order of members, to keep it consistent with
218 2008-08-08 Johan Dahlin <johan@gnome.org>
220 * girepository/gtypelib.c (validate_header):
221 * girepository/gtypelib.h:
223 * giscanner/girwriter.py:
224 * giscanner/sourcescanner.c (gi_source_symbol_ref),
225 (gi_source_symbol_unref):
228 * tests/constant.test:
231 * tests/function.test:
232 * tests/gobject.test:
233 * tests/interface.test:
234 * tests/invoke/Makefile.am:
235 * tests/invoke/testfns.xml:
237 * tests/parser/Makefile.am:
238 * tests/roundtrips.sh:
245 * tools/compiler.c (main):
246 * tools/generate.c (write_callable_info), (write_function_info),
248 * tools/gidlmodule.c:
249 * tools/gidlmodule.h:
252 * tools/gidlparser.c:
253 * tools/gidlparser.h:
254 * tools/gidlwriter.c:
255 * tools/gidlwriter.h:
256 * tools/scanner.c (create_node_from_gtype),
257 (create_node_from_ctype), (g_igenerator_process_properties),
258 (g_igenerator_process_signals), (g_igenerator_create_object),
259 (g_igenerator_create_interface), (g_igenerator_create_boxed),
260 (g_igenerator_create_enum), (g_igenerator_create_flags),
261 (g_igenerator_process_function_symbol),
262 (g_igenerator_process_unregistered_struct_typedef),
263 (g_igenerator_process_struct_typedef),
264 (g_igenerator_process_union_typedef),
265 (g_igenerator_process_enum_typedef),
266 (g_igenerator_process_function_typedef),
267 (g_igenerator_process_constant), (g_igenerator_process_symbols),
268 (g_igenerator_add_module), (g_igenerator_add_include_idl):
269 Merge in the gir-compiler branch.
270 Thanks to Philip and Colin for their help.
272 2008-07-26 Colin Walters <walters@verbum.org>
274 * tools/Makefile.am (bin_PROGRAMS): Install g-idl-compiler
275 and g-idl-generate to go along with how we're changing this
276 module to be installed.
277 * gobject-introspection-1.0.pc.in: Set up Cflags and Libs.
279 2008-07-24 Colin Walters <walters@verbum.org>
281 * girepository/girepository.c (g_irepository_register): Add
282 environment variable G_IREPOSITORY_VERBOSE so we can print
283 out what we're doing.
284 * girepository/girepository.c (g_irepository_register_file):
285 Add GError error message to g_debug call.
287 2008-07-08 Jürg Billeter <j@bitron.ch>
289 * giscanner/glibast.py:
293 2008-06-21 Johan Dahlin <jdahlin@async.com.br>
295 * giscanner/girparser.py (GIRParser._parse_api): Ignore a few
298 2008-06-20 Johan Dahlin <jdahlin@async.com.br>
301 * giscanner/girwriter.py:
302 * giscanner/transformer.py:
303 * tests/parser/Foo-expected.gir:
304 * tests/parser/foo-object.h:
305 * tests/parser/foo.c (foo_object_allow_none):
306 Add support for gtk-doc annotations for allow-none.
309 2008-06-19 Johan Dahlin <jdahlin@async.com.br>
312 * giscanner/girwriter.py:
313 * giscanner/glibast.py:
314 * giscanner/glibtransformer.py:
315 * giscanner/transformer.py:
316 * tests/parser/Foo-expected.gir:
317 Start using abstract type instead of the raw C types.
318 Register a bunch of glib types we care about.
320 2008-06-19 Rob Taylor <rob.taylor@codethink.co.uk>
325 2008-06-08 Philip Van Hoof <pvanhoof@gnome.org>
327 * girepository/girepository.c:
328 * girepository/gtypelib.c:
329 * girepository/ginfo.c:
330 * girepository/ginvoke.c:
331 * girepository/girepository.h:
332 * girepository/gtypelib.h:
333 * girepository/gmetadata.c:
334 * girepository/Makefile.am:
335 * girepository/gmetadata.h:
337 * tools/gidlmodule.c:
340 * tools/gidlmodule.h:
341 * tools/gidlparser.c:
343 Renamed GMetadata to GTypelib
345 2008-06-07 Johan Dahlin <jdahlin@async.com.br>
347 * giscanner/xmlwriter.py:
348 Improve line wrapping when > 79 charaters
350 2008-06-05 Jürg Billeter <j@bitron.ch>
353 * giscanner/girwriter.py:
354 * giscanner/transformer.py:
355 Use <type> element for field types
356 * tests/parser/Foo-expected.gir:
359 2008-06-04 Johan Dahlin <jdahlin@async.com.br>
361 * giscanner/glibtransformer.py:
362 Fix a bug which prevented GdkEvent from being generated
364 2008-06-03 Johan Dahlin <jdahlin@async.com.br>
366 * giscanner/Makefile.am:
368 * giscanner/girwriter.py:
369 * giscanner/glibast.py:
370 * giscanner/glibtransformer.py:
371 * giscanner/transformer.py:
372 * giscanner/utils.py:
373 * tests/parser/Foo-expected.gir:
374 Improve enum member parsing and introspection
376 2008-05-31 Johan Dahlin <jdahlin@async.com.br>
378 * giscanner/scannerparser.y:
379 * giscanner/sourcescanner.h:
380 * giscanner/sourcescanner.py:
381 Add a new source type enum for member.
382 Use __repr__ for improved debugging
383 * giscanner/girparser.py:
385 * giscanner/transformer.py:
386 Improve parsing of struct members.
387 * tests/parser/foo-object.h:
390 2008-05-31 Johan Dahlin <jdahlin@async.com.br>
392 * giscanner/xmlwriter.py:
393 Improve error reporting when trying to quote None.
394 * giscanner/girparser.py:
395 Do not print warnings when including more complete .gir files
396 * giscanner/girwriter.py:
397 Do not require a name for parameters, add a todo for singletons
398 * giscanner/glibtransformer.py:
399 Refactor the way structs are done, add a couple of hacks to allow
401 * giscanner/transformer.py:
402 Add enough hacks so cairo, atk and pango.gir can be parsed properly
403 * gobject-introspection-1.0.pc.in:
404 Export girdir, so we can access gobject-2.0.gir from outside
406 2008-05-31 Johan Dahlin <jdahlin@async.com.br>
408 * tools/g-ir-scanner:
409 * tests/parser/Makefile.am:
410 Update sys.path before running the parser so we don't have
411 to setup PYTHONPATH ourselves.
415 * girepository/Makefile.am:
416 * giscanner/transformer.py:
417 * gobject-introspection-1.0.pc.in:
418 * gobject-introspection.pc.in:
421 Rename pkg-config name to gobject-introspection-1.0,
422 Do not installed anything which is not using the gir format.
423 Disable compililation the old C scanner, but still keep the source
424 until all the remaning functionallity has been ported.
426 2008-05-31 Johan Dahlin <jdahlin@async.com.br>
428 * giscanner/giscannermodule.c (symbol_get_ident): Prevent
429 a crash when symbol->indent is NULL.
431 * giscanner/sourcescanner.py (ctype_name): Add ctype_name,
432 a function to convert a CTYPE symbol to a string
434 2008-05-24 Johan Dahlin <jdahlin@async.com.br>
437 * giscanner/girwriter.py:
438 * giscanner/giscannermodule.c
439 (pygi_source_scanner_append_filename),
440 (pygi_source_scanner_parse_file):
441 * giscanner/glibtransformer.py:
442 * giscanner/sourcescanner.py:
443 Revert back to using temporary files to send in headers.
444 Allow Functions to be passed in as callbacks, add a couple
445 of try/excepts missing features.
446 We can now scan pango
448 2008-05-08 Johan Dahlin <johan@gnome.org>
450 * giscanner/glibtransformer.py:
451 * giscanner/transformer.py:
452 Move namespace stripping glibtransformer->transformer
454 2008-05-08 Johan Dahlin <johan@gnome.org>
457 * giscanner/girwriter.py:
458 * giscanner/glibtransformer.py:
459 * giscanner/transformer.py:
460 * tools/g-ir-scanner:
461 Introduce a namespace ast node
463 2008-05-05 Johan Dahlin <johan@gnome.org>
465 * giscanner/__init__.py:
466 * giscanner/sourcescanner.py:
467 * giscanner/transformer.py:
468 Move sourcescanner symbols to the sourcescanner module, instead
469 of in the global __init__ namespace.
471 2008-05-03 Johan Dahlin <johan@gnome.org>
473 * giscanner/glibtransformer.py:
474 * tools/g-ir-scanner:
475 Handle missing parameters better, allow - and + in .la dlname
478 2008-05-03 Johan Dahlin <johan@gnome.org>
480 * giscanner/__init__.py:
482 * giscanner/girwriter.py:
483 * giscanner/glibtransformer.py:
484 * giscanner/transformer.py:
485 Parse struct fields properly, improve debugging.
487 2008-04-29 Johan Dahlin <johan@gnome.org>
490 * giscanner/girwriter.py:
491 * giscanner/transformer.py:
492 * tests/parser/Foo-expected.gir:
494 Use transfer-ownership everywhere, to mark ownership/calle/caller etc.
496 2008-04-29 Johan Dahlin <jdahlin@async.com.br>
499 * docs/g-ir-scanner.1:
500 * metadata-annotations-proposal.txt:
501 * metadata-format.txt:
502 Add a basic, unfinshed man page for g-ir-scanner, move documents into .txt
504 2008-04-29 Johan Dahlin <jdahlin@async.com.br>
506 * giscanner/girwriter.py:
507 * giscanner/glibtransformer.py:
508 * giscanner/transformer.py:
509 * giscanner/xmlwriter.py:
510 * tests/parser/Foo-expected.gir:
511 * tests/parser/foo-object.h:
512 Write record/structs to gir file too. Add a couple of tests,
513 fix an off by one error in xmlwriter.py.
515 2008-04-28 Johan Dahlin <johan@gnome.org>
517 * giscanner/xmlwriter.py: Calculate the line length properly,
518 include the provided extra indentation in the calculation, really.
520 2008-04-28 Johan Dahlin <jdahlin@async.com.br>
523 * giscanner/glibast.py:
524 * giscanner/glibtransformer.py:
525 * giscanner/transformer.py:
526 * tools/g-ir-scanner:
527 Add a --strip-prefix and sort out confusion between names and symbols
528 for functions and struct + derivaties.
529 Refactor bootstrap of g-ir-scanner, so we can set options on
530 Transformer() before parsing everything.
532 2008-04-28 Johan Dahlin <johan@gnome.org>
534 * giscanner/transformer.py (Transformer._traverse_one): Avoid recursion
535 when scanning girepository.h
537 * giscanner/sourcescanner.py (SourceScanner._preprocess): Define
538 a __GI_SCANNER__ when we run.
540 2008-04-28 Johan Dahlin <jdahlin@async.com.br>
543 * giscanner/girwriter.py:
544 * giscanner/glibast.py:
545 * giscanner/glibtransformer.py:
546 * tests/parser/Foo-expected.gir:
547 * tests/parser/utility-expected.gir:
548 Rename most c:identifier to c:type. Add new ones to
549 class/interface/enum/boxed.
551 2008-04-28 Johan Dahlin <jdahlin@async.com.br>
554 * giscanner/girwriter.py:
555 * giscanner/glibtransformer.py:
556 * tests/parser/Foo-expected.gidl:
557 * tests/parser/Makefile.am:
558 Move c:identifier from return-value to subchild type,
559 as per Jürgs suggestion
561 2008-04-28 Johan Dahlin <johan@gnome.org>
563 * giscanner/girwriter.py:
564 * tests/parser/Foo-expected.gir:
565 Write property.type as a child node.
567 2008-04-27 Johan Dahlin <johan@gnome.org>
572 * gidl/gobject-2.0.gidl:
574 * gir/gobject-2.0.gir:
575 * tests/parser/Makefile.am:
576 Replace the GObject gidl with a GObject gir.
578 2008-04-27 Johan Dahlin <johan@gnome.org>
580 * tools/Makefile.am (bin_SCRIPTS): g-ir-scanner is a script,
583 * giscanner/xmlwriter.py:
584 * tests/parser/Foo-expected.gir:
585 Include indentation in line length calculation
587 2008-04-27 Johan Dahlin <johan@gnome.org>
589 * giscanner/girparser.py:
590 Prettify NS parsing using elementtree.
592 2008-04-27 Johan Dahlin <johan@gnome.org>
595 * giscanner/Makefile.am:
596 * giscanner/girparser.py:
597 * giscanner/glibtransformer.py:
598 * tests/parser/Foo-expected.gidl:
599 * tests/parser/Foo-expected.gir:
600 * tests/parser/Makefile.am:
601 * tests/parser/utility-expected.gidl:
602 * tests/parser/utility-expected.gir:
603 * tools/g-ir-scanner:
604 Switch over to GIR as the default format. Add a simple GIDL
606 Update tests and fix simplify makefiles by depending
607 on GNU make extensions.
609 2008-04-27 Johan Dahlin <johan@gnome.org>
611 * giscanner/xmlwriter.py:
612 Wrap attributes for lines which are wider than 79 characters
614 * giscanner/scannerlexer.l:
615 Allow parenthesis in annotations
618 * giscanner/gidlwriter.py:
619 * giscanner/girwriter.py:
620 * giscanner/glibtransformer.py:
621 * giscanner/transformer.py:
622 Add initial sequence support, including annotation.
623 Refactor type handling a bit.
625 2008-04-27 Johan Dahlin <johan@gnome.org>
627 * tests/parser/Foo-expected.gidl:
628 * tests/parser/foo-object.h:
629 * tests/parser/foo.c (foo_object_class_init),
630 (foo_object_get_strings), (foo_object_get_objects):
631 Add two new functions to check sequence return values.
632 Also fixes a compilation warning.
634 2008-04-27 Johan Dahlin <johan@gnome.org>
636 * giscanner/giscannermodule.c (]): Cast the getter, avoids
637 a compilation warning.
639 * tools/Makefile.am (g_ir_scanner_SOURCES):
640 g-ir-scanner has no sources.
642 2008-04-25 Johan Dahlin <johan@gnome.org>
644 * giscanner/Makefile.am:
646 * giscanner/gidlparser.py:
647 * giscanner/gidlwriter.py:
648 * giscanner/girwriter.py:
649 * giscanner/glibast.py:
650 * giscanner/glibtransformer.py:
651 * giscanner/transformer.py:
652 Split out nodes to ast.py and glibast.py
654 2008-04-25 Johan Dahlin <jdahlin@async.com.br>
656 * giscanner/Makefile.am:
657 * giscanner/gidlparser.py:
658 * giscanner/gidlwriter.py:
659 * giscanner/girwriter.py:
660 * giscanner/glibtransformer.py:
661 * giscanner/gobjecttreebuilder.py:
662 * giscanner/transformer.py:
663 * giscanner/treebuilder.py:
664 * tools/g-ir-scanner:
665 Rename treebuilder to transformer and
666 gobjectreebuilder to glibtransformer.
668 2008-04-25 Johan Dahlin <jdahlin@async.com.br>
670 * giscanner/Makefile.am:
671 * giscanner/__init__.py:
672 * giscanner/cgobject.py:
673 * giscanner/gidlparser.py:
674 * giscanner/gidlwriter.py:
675 * giscanner/girwriter.py:
676 * giscanner/gobjecttreebuilder.py:
677 * giscanner/odict.py:
678 * giscanner/sourcescanner.py:
679 * giscanner/treebuilder.py:
680 * giscanner/xmlwriter.py:
682 * tools/g-ir-scanner:
683 Add LGPLv2 license header and install all python files
685 2008-04-25 Johan Dahlin <jdahlin@async.com.br>
688 * giscanner/gidlwriter.py:
689 * giscanner/giscannermodule.c (pygi_source_directive_new),
690 (directive_get_options), (pygi_source_symbol_new),
691 (symbol_get_base_type), (pygi_source_type_new),
692 (type_get_base_type), (type_get_child_list),
693 (pygi_source_scanner_get_symbols),
694 (pygi_source_scanner_get_directives):
695 * giscanner/gobjecttreebuilder.py:
696 * giscanner/sourcescanner.py:
697 * giscanner/treebuilder.py:
698 * tests/parser/foo-object.h:
699 Add support for virtual methods.
700 Pair struct FooClass with struct Foo.
701 Clean up the SourceScanner bindings a bit.
702 Add a testcase for virtual methods.
704 2008-04-25 Johan Dahlin <jdahlin@async.com.br>
706 * giscanner/cgobject.py:
707 * giscanner/gidlwriter.py:
708 * giscanner/gobjecttreebuilder.py:
709 Add support for signals
711 * tests/parser/foo.c (foo_object_class_init):
713 Add a signal and update the expected output.
715 2008-04-24 Johan Dahlin <jdahlin@async.com.br>
717 * giscanner/gidlwriter.py:
718 * giscanner/girwriter.py:
719 * giscanner/giscannermodule.c (directive_get_name),
720 (directive_get_value), (directive_get_options),
721 (symbol_get_directives), (symbol_set_directives),
722 (pygi_source_scanner_parse_file),
723 (pygi_source_scanner_lex_filename),
724 (pygi_source_scanner_get_directives), (init_giscanner):
725 * giscanner/sourcescanner.c (gi_source_scanner_get_directives):
726 * giscanner/sourcescanner.h:
727 * giscanner/sourcescanner.py:
728 * giscanner/treebuilder.py:
729 * tools/g-ir-scanner:
730 Add support for source/header annotations.
732 2008-04-22 Johan Dahlin <jdahlin@async.com.br>
734 * giscanner/gidlwriter.py:
735 * giscanner/girwriter.py:
736 * giscanner/gobjecttreebuilder.py:
737 * giscanner/treebuilder.py:
738 Add support for Callbacks
740 2008-04-22 Havoc Pennington <hp@pobox.com>
742 * girepository/ginvoke.c (g_function_info_invoke): If a symbol is
743 not in metadata->module, look for it in the global module, in case
744 some other object or the app itself provides the symbol.
746 2008-04-22 Havoc Pennington <hp@pobox.com>
748 * girepository/gmetadata.c (_g_metadata_init): hack to avoid
749 dlopening a library that is already in the main app, by checking
750 whether one of the lib's symbols is already loaded.
752 2008-04-22 Johan Dahlin <jdahlin@async.com.br>
754 * tests/parser/Foo-expected.gidl:
755 * tests/parser/foo-object.h:
758 2008-04-22 Havoc Pennington <hp@pobox.com>
760 * girepository/ginfo.c (g_interface_info_find_method):
761 Use interface_blob_size not object_blob_size to compute offset.
763 2008-04-22 Havoc Pennington <hp@pobox.com>
765 * girepository/gmetadata.c (_g_metadata_init): remove
766 G_MODULE_BIND_LOCAL flag when loading libraries, since some libs
767 (Glade and Clutter for example) rely on being loaded globally.
769 2008-04-22 Havoc Pennington <hp@pobox.com>
771 * girepository/ginfo.c (g_registered_type_info_get_g_type): new
772 function to get the GType given a RegisteredTypeInfo
774 2008-04-22 Johan Dahlin <johan@gnome.org>
776 * COPYING: Add a LGPL license, to prevent automake to
777 put in a copy of GPL here. Pointed out by Havoc.
779 * girepository/ginfo.c (g_info_from_entry), (g_type_info_new),
780 (g_type_info_is_pointer), (g_type_info_get_tag),
781 (g_type_info_get_param_type), (g_type_info_get_interface),
782 (g_type_info_get_array_length), (g_type_info_is_zero_terminated),
783 (g_type_info_get_n_error_domains), (g_type_info_get_error_domain),
784 (g_error_domain_info_get_codes), (g_enum_info_get_value),
785 (g_object_info_get_interface), (g_object_info_get_field),
786 (g_interface_info_get_prerequisite),
787 (g_signal_info_get_class_closure), (g_constant_info_get_value):
788 * girepository/ginvoke.c (get_ffi_type):
789 * girepository/girepository.h:
790 * girepository/gmetadata.c (g_metadata_get_dir_entry),
791 (g_metadata_check_sanity), (validate_header),
792 (validate_array_type_blob), (validate_iface_type_blob),
793 (validate_param_type_blob), (validate_error_type_blob),
794 (validate_type_blob), (validate_constant_blob),
795 (validate_struct_blob), (validate_enum_blob):
796 * girepository/gmetadata.h:
798 * tests/invoke/Makefile.am:
799 * tests/invoke/invoke.c (main):
800 * tests/roundtrips.sh:
802 * tools/compiler.c (format_output), (write_out_metadata), (main):
803 * tools/generate.c (write_type_name), (write_type_info),
804 (write_constant_value), (write_enum_info), (load_metadata), (main):
805 * tools/gidlcompilercontext.c:
806 * tools/gidlcompilercontext.h:
807 * tools/gidlcompilerentrynode.c:
808 * tools/gidlcompilerentrynode.h:
809 * tools/gidlcompilertypenode.c:
810 * tools/gidlcompilertypenode.h:
811 * tools/gidlmodule.c (g_idl_module_build_metadata):
812 * tools/gidlmodule.h:
813 * tools/gidlnode.c (init_stats), (dump_stats),
814 (g_idl_node_get_size), (g_idl_node_get_full_size),
815 (g_idl_node_cmp), (g_idl_node_can_have_member),
816 (g_idl_node_add_member), (g_idl_node_param_direction_string),
817 (parse_int_value), (parse_uint_value), (parse_float_value),
818 (parse_boolean_value), (find_entry_node), (find_entry),
819 (serialize_type), (g_idl_node_build_metadata), (write_string):
821 * tools/gidlparser.c (parse_type_internal):
822 * tools/quote-file.sh:
823 Revert revisions 157,149-148,136-129 and 120.
824 Move back to using g-idl-generate to generate the metadata and
825 avoids dependency on a c compiler.
827 2008-04-22 Johan Dahlin <jdahlin@async.com.br>
829 * giscanner/girwriter.py:
830 * tools/g-ir-scanner:
831 Add an initial GIR writer and a --format option to g-ir-scanner
833 2008-04-21 Johan Dahlin <johan@gnome.org>
835 * giscanner/cgobject.py: Use ctypes.util.find_library to locate
836 gobject-2.0 and raise ImportError if not found.
838 * giscanner/gidlparser.py:
839 * giscanner/gidlwriter.py:
840 * giscanner/gobjecttreebuilder.py:
841 * tools/g-ir-scanner:
842 Add a --include argument to include types from other idls.
843 Add a minimalistic GIDL parser (just objects for now)
844 Implement resolving of external type references and use it to
845 resolve parent types, argument types and return types.
847 2008-04-21 Johan Dahlin <johan@gnome.org>
849 * giscanner/gidlwriter.py:
850 * giscanner/gobjecttreebuilder.py:
851 * giscanner/treebuilder.py:
852 Add support for properties.
853 Refactor Class/Interface support a bit, to share more code and
854 always initialize their method attribute to an empty list.
856 2008-04-21 Johan Dahlin <johan@gnome.org>
858 * giscanner/cgobject.py:
859 Add a workaround for a glib bug interface introspection bug
860 (object_interface_list_properties, object_class_list_properties):
861 Cast the return value to GParamSpec.
863 * tests/parser/Foo-expected.gidl: Update
864 * tests/parser/foo.c: Add a string property
866 * giscanner/gobjecttreebuilder.py:
867 After stripping namespaces, remove the original
868 item to avoid duplication (GtkButton struct and Button object)
870 2008-04-21 Johan Dahlin <johan@gnome.org>
872 * giscanner/gobjecttreebuilder.py:
873 * giscanner/treebuilder.py:
874 Strip namespaces before objects, so we'll export
875 GtkButton as Button in the gtk namespace
877 2008-04-21 Johan Dahlin <johan@gnome.org>
879 * giscanner/gidlwriter.py:
880 * giscanner/gobjecttreebuilder.py:
881 * giscanner/treebuilder.py:
882 Add constructors for object/boxed types.
884 2008-04-21 Johan Dahlin <johan@gnome.org>
886 * giscanner/gidlwriter.py:
887 * giscanner/gobjecttreebuilder.py:
888 Add support for boxed types
890 2008-04-21 Johan Dahlin <johan@gnome.org>
892 * giscanner/giscannermodule.c: Mark structures as const,
893 wrap SourceType.const_string.
895 * tests/parser/foo-object.h: Add a couple of constants.
897 * giscanner/gidlwriter.py:
898 * giscanner/gobjecttreebuilder.py:
899 * giscanner/treebuilder.py:
900 Add basic support for interfaces
902 * tools/g-ir-scanner:
903 Add -o/--output for writing to a file
905 2008-04-21 Havoc Pennington <hp@redhat.com>
907 * TODO: add some C API wishlist items I could think of quickly
909 2008-04-21 Johan Dahlin <jdahlin@async.com.br>
911 * giscanner/gidlwriter.py:
912 * giscanner/xmlwriter.py:
913 Add a simple api for writing tags which can be used
914 with the new 'with statement' in python 2.5
916 2008-04-21 Johan Dahlin <johan@gnome.org>
918 * giscanner/gobjecttreebuilder.py:
919 Strip namespace and object prefix from method names.
921 2008-04-21 Johan Dahlin <johan@gnome.org>
923 * tools/g-ir-scanner (main): Add --pkg option to pass in
924 pkg-config modules to get cflags from.
926 * giscanner/gidlwriter.py (GIDLWriter._write_method):
927 Avoid duplication, reuse function writer for methods.
929 2008-04-21 Johan Dahlin <jdahlin@async.com.br>
931 * giscanner/gidlwriter.py:
932 * giscanner/gobjecttreebuilder.py:
933 * giscanner/treebuilder.py:
934 * tools/g-ir-scanner:
935 Resolve libtool .la files.
936 Strip name spaces for methods.
939 2008-04-20 Johan Dahlin <jdahlin@async.com.br>
941 * giscanner/cgobject.py:
942 * giscanner/gidlwriter.py:
943 * giscanner/gobjecttreebuilder.py:
944 * giscanner/treebuilder.py:
945 Add support for classes and methods
947 2008-04-20 Johan Dahlin <johan@gnome.org>
949 * giscanner/gidlwriter.py:
950 * giscanner/gobjecttreebuilder.py:
951 * giscanner/odict.py:
952 Avoid conflicts, keep the output ordered similar to
953 the order of the input.
954 Add a simple ordered dictionary implemenation
956 2008-04-19 Johan Dahlin <johan@gnome.org>
958 * giscanner/cgobject.py:
959 * giscanner/gidlwriter.py:
960 * giscanner/gobjecttreebuilder.py:
961 * tools/g-ir-scanner:
962 Start introspecting get-type functions.
963 Implement support for GLib/GFlags GTypes.
964 Add a ctype based GObject binding.
966 2008-04-18 Johan Dahlin <jdahlin@async.com.br>
968 * giscanner/gidlwriter.py:
969 * giscanner/xmlwriter.py:
970 * tools/g-ir-scanner:
971 Add a simplistic gidl writer, which can't do too much.
973 2008-04-18 Johan Dahlin <johan@gnome.org>
975 * giscanner/sourcescanner.py:
976 * giscanner/treebuilder.py:
977 * tools/g-ir-scanner:
978 split tree building and source scanning interface to separate files.
980 2008-04-18 Johan Dahlin <johan@gnome.org>
982 * tools/g-ir-scanner (Parameter.__init__): Start constructing
984 - Add support for struct/parameter/return, start parsing of ctypes
986 * giscanner/giscannermodule.c: wrap GISourceType.child_list and
989 2008-03-31 Johan Dahlin <johan@gnome.org>
991 * tools/g-ir-scanner:
992 Start to build abstract syntax node of scanned sources.
993 Add support for cpp options.
995 2008-03-27 Johan Dahlin <johan@gnome.org>
997 * giscanner/giscannermodule.c:
998 * giscanner/scannerlexer.l:
999 * giscanner/sourcescanner.c:
1000 * tools/g-ir-scanner:
1002 Add simple pre-processor using subprocess and a PIPE.
1003 Change the parse_file apis to accept a file descriptor.
1005 2008-03-25 Johan Dahlin <johan@gnome.org>
1007 * giscanner/__init__.py:
1008 * tools/g-ir-scanner:
1009 Fix a typo and add an example python test program.
1011 2008-03-25 Johan Dahlin <johan@gnome.org>
1013 * giscanner/__init__.py:
1014 * giscanner/giscannermodule.c:
1015 * giscanner/sourcescanner.c:
1016 * giscanner/sourcescanner.h:
1017 Add constants and wrap a few more SymbolType fields
1019 2008-03-25 Johan Dahlin <johan@gnome.org>
1023 * giscanner/__init__.py:
1024 * giscanner/giscannermodule.c:
1025 * giscanner/Makefile.am:
1027 Add initial python bindings for the scanner and
1028 depend on python 2.5.
1030 2008-03-25 Johan Dahlin <johan@gnome.org>
1034 * giscanner/Makefile.am:
1035 * giscanner/sourcescanner.c:
1036 * giscanner/sourcescanner.h:
1037 * tools/Makefile.am:
1038 * tools/grealpath.h:
1039 * tools/sourcescanner.c:
1040 * tools/sourcescanner.h:
1042 Move the scanner to a separate library.
1044 2008-03-23 Johan Dahlin <johan@gnome.org>
1046 * tools/Makefile.am:
1049 * tools/scannerlexer.l:
1050 * tools/scannerparser.y:
1051 * tools/sourcescanner.c:
1052 * tools/sourcescanner.h:
1053 Split out the source scanner from the generator.
1054 Rename the symbols used in the scanner to use the gi_ prefix.
1055 This should make it possible to use the raw C parser from
1058 2008-03-23 Johan Dahlin <johan@gnome.org>
1060 * tests/parser/Makefile.am (utility.gidl):
1061 * tests/parser/utility-expected.gidl:
1062 Pass in the gobject.gidl since we're defining a GObject.
1064 2008-03-12 Johan Dahlin <johan@gnome.org>
1066 * relaxng/relaxng.rng:
1067 Add a releaxng in relaxng we can use to validate the relaxngs
1070 2008-03-12 Jürg Billeter <j@bitron.ch>
1072 * tools/scanner.c: (g_igenerator_new):
1073 * tools/scannerparser.y:
1074 Fix compiler warnings.
1076 2008-03-12 Jürg Billeter <j@bitron.ch>
1080 * tools/scannerparser.y:
1081 Start fixing memory management in g-idl-scanner.
1083 2008-03-12 Rob Taylor <rob.taylor@codethink.co.uk>
1085 * tools/gidlcompilercontext.c: (write_compiled):
1086 Fix critical warning when no shlib passed to g-idl-compiler.
1088 2008-03-12 Johan Dahlin <johan@gnome.org>
1090 * tests/parser/utility-expected.gidl:
1091 * tests/parser/utility.h:
1092 Add a get_type-function, so the scanner actually
1093 parses it as an object.
1095 2008-03-12 Johan Dahlin <johan@gnome.org>
1097 * tools/gidlwriter.c (function_generate): Add missing trailing quote.
1100 * tests/parser/Foo-expected.gidl:
1101 * tests/parser/Makefile.am:
1102 * tests/parser/foo-object.h:
1103 * tests/parser/foo.c:
1104 * tests/parser/utility-expected.gidl:
1105 * tests/parser/utility.c:
1106 * tests/parser/utility.h:
1108 Add a new gidl test. 'utility.gidl', which is used to be able
1109 to test external type references. Add a reference to UtilityObject*
1112 2008-03-11 Johan Dahlin <johan@gnome.org>
1116 Remove most global variables
1118 2008-03-11 Philip Van Hoof <me@pvanhoof.be>
1120 * tools/scannerlexer.l:
1122 * tests/parser/Foo-expected.gidl:
1123 * tests/parser/foo.c:
1124 * tests/parser/Makefile.am:
1125 * tests/parser/foo-object.h:
1127 Added a few extra tests. Which resulted in finding a few
1128 bugs. Which resulted in me fixing those bugs
1130 2008-03-11 Rob Taylor <rob.taylor@codethink.co.uk>
1132 * tools/gidlcompilercontext.c: (g_idl_compiler_write_dir_entry),
1133 (g_idl_compiler_write_xref_entry), (g_idl_compiler_add_xref):
1134 Add some comments for strings into generated output for
1137 2008-03-11 Rob Taylor <rob.taylor@codethink.co.uk>
1139 * tools/gidlcompilercontext.c: (write_compiled):
1140 Write out the shlibs variable before writing out the strings
1141 length. Fixes compiler warning when using '-l' flag with
1144 2008-03-11 Johan Dahlin <johan@gnome.org>
1146 * tests/parser/Foo-expected.gidl:
1147 * tests/parser/foo-object.h:
1150 * tools/scannerlexer.l:
1151 Add support for parsing return arguments. Add support for
1152 caller-owns return types.
1153 Patch by Philip Van Hoof.
1155 * tools/scannerparser.y:
1156 Remove parsing of the @deprecated syntax used in headers.
1157 We will support gtk-doc deprecation in the future instead.
1159 2008-03-11 Johan Dahlin <johan@gnome.org>
1161 * tools/compiler.c (main): Coding style fixes
1163 2008-03-10 Johan Dahlin <johan@gnome.org>
1166 Add GCOV_LIBS to GILIBS
1168 2008-03-10 Johan Dahlin <johan@gnome.org>
1170 * tests/parser/Foo-expected.gidl:
1171 * tests/parser/foo.c:
1172 Rename null-ok to direction=out
1174 2008-03-10 Philip Van Hoof <me@pvanhoof.be>
1176 reviewed and extensively tested by Johan
1178 * tests/parser/Foo-expected.gidl:
1179 * tests/parser/foo-object.h:
1180 * tests/parser/foo.c:
1183 * tools/gidlwriter.c:
1186 * tools/scannerlexer.l:
1187 * tools/scannerparser.y:
1189 Add support for scanning for gtk-doc comments inside
1190 C source files. Add tests
1192 2008-03-10 Johan Dahlin <johan@gnome.org>
1194 * tests/parser/Makefile.am:
1195 * tests/parser/foo.c:
1198 * tools/scannerparser.y:
1199 Add an api to lex filenames.
1200 Lex all source .c files passed in on the command line.
1201 Scan sources in a test and a couple of private structures
1202 which should not be included in the generated gidl
1204 2008-03-10 Johan Dahlin <johan@gnome.org>
1206 * tests/invoke/Makefile.am: Make the generated metadata
1207 depend on the g-idl-compiler
1209 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1211 * tools/gidlmodule.c
1212 * tools/gidlmodule.h
1215 Remove the old g-idl-compiler code.
1218 2008-02-22 Mark Doffman <mark.doffman@codethink.co.uk>
1220 * tools/quote-file.sh
1223 Move to using the 'C' struct compiler code.
1225 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1227 * girepository/ginfo.c
1229 Change the way that external references with no namespace
1230 are dealt with. External references with no namespace
1231 are placed into the XML as-if they are a local reference.
1232 This is temporary, but helps with roundtrip tests.
1234 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1236 * girepository/ginfo.c
1237 Add the ability to get the value of a constant of
1238 type TYPE_TAG_SYMBOL. In the case of a symbol the value
1239 is provided as a string.
1241 This would deal properly with:
1242 typedef char* random;
1243 const random = "A string";
1245 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1247 * girepository/ginfo.c
1248 * girepository/girepository.h
1250 Add a function to check if an enum is registered or not.
1251 Previously anything testing this relied on the g-type
1252 string offset having a value of 0.
1254 * girepository/gmetadata.c
1255 * girepository/gmetadata.h
1257 Remove unneccesary or erroneous checks. There were two
1258 metadata validation checks which made sure that the blob
1259 sizes were the same as some magic numbers compiled into the code.
1260 This is wrong as it breaks any forwards compatibility that may
1263 Checks were also present that made sure that unregistered type
1264 blobs had a value of 0 in the g-type offset field. This is
1265 unneccessary. If a type blob is unregistered then any value
1266 in its g-type field is simply invalid.
1268 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1270 * girepository/ginfo.c
1271 * girepository/gmetadata.c
1272 * girepository/gmetadata.h
1274 Change the metadata format to have a standard header
1275 for all the type blobs. Merge the SimpleTypeBlob
1276 and InterfaceTypeBlob into a union. A union of these
1277 two blobs existed previously but was not explicit
1278 in the metadata format.
1280 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1282 * tools/gidlcompilercontext.c
1283 * tools/gidlcompilercontext.h
1284 * tools/gidlcompilerentrynode.c
1285 * tools/gidlcompilerentrynode.h
1286 * tools/gidlcompilertypenode.c
1287 * tools/gidlcompilertypenode.h
1289 Add code to compile a tree of GIdlNodes to
1290 a 'C' struct representing the metadata.
1291 This is to aid cross-compiling. Previously
1292 the g-idl-compiler created a binary blob with
1293 data written in the byte order and alignment
1294 of the tool rather than the intended target.
1296 Cleaned up and improved by Johan and Robert :-)
1298 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1300 * girepository/ginvoke.c
1301 * girepository/girepository.h
1302 * girepository/gmetadata.c
1303 * girepository/gmetadata.h
1305 * tools/gidlparser.c
1306 Modify TYPE_TAG_INTERFACE to TYPE_TAG_SYMBOL
1307 to avoid confusion with the interface blob.
1310 * tools/gidlparser.c
1311 Remove magic numbers and replace with type-tag
1312 enumeration symbols.
1314 * girepository/gmetadata.c
1315 Add validate declaration.
1317 2008-03-10 Jürg Billeter <j@bitron.ch>
1319 * tools/gidlparser.c: (parse_type_internal):
1320 * tools/scannerlexer.l:
1321 * tools/scannerparser.y:
1322 Support C99 _Bool type in scanner.
1324 2008-03-10 Jürg Billeter <j@bitron.ch>
1326 * tests/parser/Foo-expected.gidl:
1327 * tests/parser/foo-object.h:
1328 * tests/parser/foo.c: (foo_enum_method):
1329 * tools/scanner.c: (g_igenerator_process_function_symbol):
1330 Don't skip functions that are defined in the namespace of a type
1331 that doesn't support methods, as for example enums.
1333 2008-03-10 Johan Dahlin <johan@gnome.org>
1335 * gidl.dtd: Remove, we're using relaxng for now
1337 * tests/parser/Foo-expected.gidl:
1338 * tests/parser/foo-object.h:
1339 * tests/parser/foo.c:
1340 Rename the enum/flags get_type functions to include the whole type.
1342 2008-03-08 Marc-Andre Lureau <marcandre.lureau@gmail.com>
1344 * tools/gidlwriter.c (enum_generate): added "type-name",
1345 "get-type" and "deprecated" missing arguments.
1346 * tests/parser/Foo-expected.gidl:
1347 * tests/parser/foo-object.h: test enum type, and no type.
1349 2008-03-06 Johan Dahlin <jdahlin@async.com.br>
1352 Consistent checks, add missing 'test'
1354 2008-03-05 Havoc Pennington <hp@redhat.com>
1356 * configure.ac: Take advantage of a libffi.pc if one exists, as it
1357 does on Fedora 8. Make libffi a hard requirement, since it was in
1358 practice anyway (was not really conditional in the code or
1359 makefile, only in configure).
1361 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1363 reviewed by: Rob Taylor <rob.taylor@codethink.co.uk>
1364 reviewed by: Johan Dahlin <johan@gnome.org>
1366 * tests/Makefile.am:
1367 * tests/roundtrips.sh:
1368 Modify the roundtrips test so that they do not use the
1369 --raw option of the gidl compiler but instead compile a
1370 shared library to use with g_module.
1372 * tests/invoke/Makefile.am:
1373 * tests/invoke/invoke.c:
1374 Modify the invoke tests to build a shared library rather
1375 than use the --raw option.
1377 * tests/invoke/invoke-namespace-find.sh: Removed:
1378 Noone knows why this was here, so removed.
1380 2008-02-19 Rob Taylor <rob.taylor@codethink.co.uk>
1382 * tools/scanner.c: (g_igenerator_process_function_symbol):
1383 Move g_idl_node_can_have_member test later, as it broke spotting
1384 get_type's for nodes that can't have members.
1386 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
1389 * tools/gidlnode.c: (g_idl_node_can_have_member):
1390 Add g_idl_node_can_have_member.
1392 * tools/scanner.c: (g_igenerator_process_function_symbol):
1393 Use g_idl_node_can_have_member to test if we should add a function
1394 as a member of the type node.
1396 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
1398 * gidl/GLib.gidl: Renamed to gidl/gobject-2.0.gidl:
1400 * tests/parser/Makefile.am:
1401 Rename GLib.gidl to gobject-2.0.gidl and install in /usr/share/gidl.
1403 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
1405 * tools/scanner.c: (main):
1406 Ignore -pthread when passed to g-idl-scanner.
1408 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
1410 * tools/grealpath.h: Added:
1411 * tools/scanner.c: (main):
1412 * tools/scannerlexer.l:
1413 * tools/Makefile.am:
1414 Always use absolute paths with symbolic links resolved when
1415 comparing filenames.
1417 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
1419 * gobject-introspection.pc.in:
1420 Provide variables for g-idl-parser, scanner and compiler in the
1423 2008-02-13 Rob Taylor <rob.taylor@codethink.co.uk>
1426 * girepository/Makefile.am:
1427 * tools/Makefile.am:
1428 Rename GCOV_SOURCES to GCOVSOURCES to top automake complaining.
1430 2008-02-10 Johan Dahlin <johan@gnome.org>
1432 * tests/parser/Foo-expected.gidl:
1433 * tests/parser/foo-object.h:
1434 * tests/parser/foo.c: (foo_boxed_copy), (foo_boxed_free),
1435 (foo_boxed_get_type), (foo_boxed_new), (foo_boxed_method):
1438 2008-02-10 Johan Dahlin <johan@gnome.org>
1440 * tests/parser/Foo-expected.gidl:
1441 * tests/parser/foo-object.h:
1442 * tests/parser/foo.c: (foo_enum_get_type), (foo_flags_get_type):
1443 Add enum and flags test.
1445 2008-02-10 Johan Dahlin <johan@gnome.org>
1449 * girepository/Makefile.am:
1450 Make 'make distcheck' work again.
1452 2008-02-10 Johan Dahlin <johan@gnome.org>
1454 * m4/Makefile.am (EXTRA_DIST): its called as-compiler-flag.m4,
1457 * tests/parser/Makefile.am: Only create Foo.gidl when running make
1458 check, eg exclude it from BUILT_SOURCES.
1460 2008-02-08 Rob Taylor <rob.taylor@codethink.co.uk>
1465 * girepository/Makefile.am:
1466 * m4/Makefile.am: Added:
1467 * m4/as-compiler-flag.m4: Added:
1468 * m4/gcov.m4: Added:
1469 * tools/Makefile.am:
1470 Add ability to generate a coverage report.
1471 Adds configure option --enable-gcov and make rule 'check-coverage'.
1473 2008-02-08 Rob Taylor <rob.taylor@codethink.co.uk>
1477 * gidl/Makefile.am: Added:
1478 * girepository/Makefile.am: Added:
1479 * src/Makefile.am: Renamed to tools/Makefile.am:
1480 * src/compiler.c: Renamed to tools/compiler.c:
1481 * src/g-idl-offsets.pl: Renamed to tools/g-idl-offsets.pl:
1482 * src/generate.c: Renamed to tools/generate.c:
1483 * src/gidlmodule.c: Renamed to tools/gidlmodule.c:
1484 * src/gidlmodule.h: Renamed to tools/gidlmodule.h:
1485 * src/gidlnode.c: Renamed to tools/gidlnode.c:
1486 * src/gidlnode.h: Renamed to tools/gidlnode.h:
1487 * src/gidlparser.c: Renamed to tools/gidlparser.c:
1488 * src/gidlparser.h: Renamed to tools/gidlparser.h:
1489 * src/gidlwriter.c: Renamed to tools/gidlwriter.c:
1490 * src/gidlwriter.h: Renamed to tools/gidlwriter.h:
1491 * src/ginfo.c: Renamed to girepository/ginfo.c:
1492 * src/ginvoke.c: Renamed to girepository/ginvoke.c:
1493 * src/girepository.c: Renamed to girepository/girepository.c:
1494 * src/girepository.h: Renamed to girepository/girepository.h:
1495 * src/gmetadata.c: Renamed to girepository/gmetadata.c:
1496 * src/gmetadata.h: Renamed to girepository/gmetadata.h:
1497 * src/scanner.c: Renamed to tools/scanner.c:
1498 * src/scanner.h: Renamed to tools/scanner.h:
1499 * src/scannerlexer.l: Renamed to tools/scannerlexer.l:
1500 * src/scannerparser.y: Renamed to tools/scannerparser.y:
1501 * tests/invoke/Makefile.am:
1502 Split src/ into girepository/ and tools/
1506 * girepository/Makefile.am:
1507 * tests/Makefile.am:
1508 * tests/invoke/Makefile.am:
1509 * tests/parser/Makefile.am:
1510 * tests/roundtrips.sh:
1511 * tools/Makefile.am:
1512 Make distcheck work.
1514 2008-02-04 Rob Taylor <rob.taylor@codethink.co.uk>
1516 * tests/invoke/invoke.c: (main):
1517 * tests/invoke/testfns.c: (test6), (test7):
1518 * tests/invoke/testfns.xml:
1519 Add tests for invokation with a GList argument.
1520 Also tests caller-owns return values.
1522 2008-02-04 Rob Taylor <robtaylor@floopily.org>
1525 Add some documentation for GICallableInfo
1527 2008-02-01 Mark Doffman <mark.doffman@codethink.co.uk>
1530 Correct syntax errors in the DTD file.
1532 * relaxng/c-types.xml:
1533 * relaxng/g-types.xml:
1535 Add a RelaxNG specification for the GObject Introspection XML data.
1536 The Specification has validated all of the test files.
1538 2008-01-25 Rob Taylor <robtaylor@floopily.org>
1540 * tests/roundtrips.sh:
1541 * tests/struct.test:
1542 Add roundtrip tests for structs.
1544 2008-01-11 Johan Dahlin <johan@gnome.org>
1546 * src/scanner.c (g_igenerator_process_function_symbol):
1547 Refactor out g_idle_node_add_member.
1548 (create_node_from_gtype, create_node_from_ctype):
1549 Use case instead of if...else
1550 (get_type_from_type_id):
1551 Rename to create_node_from_gtype
1552 (get_type_from_ctype):
1553 Rename to create_node_from_ctype
1555 Rename ginode -> node, gitype -> type, gifunc -> func.
1557 * src/gidlnode.c (g_idl_node_add_member, g_idl_node_cmp):
1558 Two new functions, refactor out of scanner.c
1560 * src/scanner.c: (g_igenerator_process_function_symbol):
1561 * src/scannerlexer.l:
1562 Do not save the content of the deprecated variable, only
1565 2008-01-11 Johan Dahlin <johan@gnome.org>
1567 * tests/parser/foo-object.h: Add a couple of comment parser tests.
1569 2008-01-11 Jürg Billeter <j@bitron.ch>
1571 * src/scannerlexer.l:
1572 Fix GTK-Doc parsing.
1574 2008-01-11 Jürg Billeter <j@bitron.ch>
1576 * src/scannerlexer.l:
1577 Fix GTK-Doc parsing.
1579 2008-01-11 Jürg Billeter <j@bitron.ch>
1581 * src/scanner.c: (lookup_symbol):
1582 Return unresolved name if we find unknown symbol.
1584 2008-01-11 Jürg Billeter <j@bitron.ch>
1586 * src/scanner.c: (g_igenerator_generate):
1587 Initialize GObject to fix scanning interface properties.
1589 * tests/parser/Foo-expected.gidl:
1590 * tests/parser/foo-object.h:
1591 * tests/parser/foo.c: (foo_interface_get_type):
1592 Test interfaces with GObject prerequisite.
1594 * tests/parser/Makefile.am:
1595 Set G_DEBUG=fatal_warnings to abort test on warnings and criticals.
1597 2007-12-27 Johan Dahlin <johan@gnome.org>
1599 * src/scannerlexer.l:
1600 Parse gtk-doc comments.
1602 * src/gidlwriter.c: (function_generate):
1603 Reorganize, avoid duplication and add support for
1604 writing deprecated functions.
1606 * src/scannerparser.y:
1608 Add new structure CDirective and functions to create/free them.
1610 * src/scanner.c: (g_igenerator_process_function_symbol),
1611 (g_igenerator_process_unregistered_struct_typedef),
1612 (g_igenerator_process_struct_typedef),
1613 (g_igenerator_process_union_typedef),
1614 (g_igenerator_process_enum_typedef),
1615 (g_igenerator_process_function_typedef), (g_igenerator_add_symbol),
1616 (g_igenerator_start_preprocessor):
1617 Parse @deprecated directive for functions.
1618 Remove some more C99isms.
1619 Send in -C to cpp to avoid stripping comments.
1621 * tests/parser/foo-object.h:
1622 * tests/parser/Foo-expected.gidl:
1623 Add deprecated directive
1625 2007-12-27 Johan Dahlin <johan@gnome.org>
1627 * src/scannerlexer.l (intsuffix): Add emacs mode line and
1628 escape ' and " so it looks more like C.
1631 Unlink temporary file used.
1633 2007-12-27 Johan Dahlin <johan@gnome.org>
1635 * src/scanner.c: (g_igenerator_new), (g_igenerator_free),
1636 (g_igenerator_start_preprocessor), (main):
1638 * src/scannerparser.y:
1639 Plug a couple of simple memory leaks.
1641 2007-12-27 Johan Dahlin <johan@gnome.org>
1643 * src/scanner.c: (g_igenerator_parse_macros),
1644 (g_igenerator_start_preprocessor), (g_igenerator_set_verbose),
1647 * src/scannerparser.y:
1648 * tests/parser/Makefile.am:
1650 Improve error reporting, return when the preprocessor fails.
1651 Add a verbose parameter, to aid debugging.
1652 Revert to using a temporary file to communicate between the
1653 preprocessor and the parser, because we need to wait for
1654 the exit code from the pre-processor before starting to parse.
1656 2007-12-16 Johan Dahlin <jdahlin@async.com.br>
1658 * src/Makefile.am: Rename clexer.l to scannerlexer.l and
1659 cparser.y to scannerparser.y
1661 2007-12-11 Johan Dahlin <johan@gnome.org>
1665 * src/scanner.c: (g_igenerator_new):
1667 Get rid of the global the_generator variable.
1669 2007-12-10 Johan Dahlin <johan@gnome.org>
1671 * src/scanner.c (main): Add an output option,
1672 add checks for required parameters
1675 set BUILD_SOURCES and CLEANFILES properly
1677 * src/gidlwriter.c: (g_writer_write_inline), (g_writer_write),
1678 (g_writer_write_indent), (g_writer_write_unindent),
1679 (field_generate), (value_generate), (constant_generate),
1680 (property_generate), (function_generate), (vfunc_generate),
1681 (signal_generate), (interface_generate), (struct_generate),
1682 (union_generate), (boxed_generate), (enum_generate),
1683 (node_generate), (g_writer_write_module), (g_idl_writer_save_file):
1685 * src/scanner.c: (g_igenerator_generate):
1687 * src/scannerwriter.c:
1689 Refactor scannerwriter to only be tied to a GIdlModule and move
1690 it (again!) to gidlwriter.c. Change the writer function to take
1693 2007-12-10 Johan Dahlin <johan@gnome.org>
1696 * src/scanner.c: (g_igenerator_generate):
1698 * src/scannerwriter.c: (g_igenerator_write_inline),
1699 (g_igenerator_write), (g_igenerator_write_indent),
1700 (g_igenerator_write_unindent), (field_generate), (value_generate),
1701 (constant_generate), (property_generate), (function_generate),
1702 (vfunc_generate), (signal_generate), (interface_generate),
1703 (struct_generate), (union_generate), (boxed_generate),
1704 (enum_generate), (node_generate), (module_generate),
1705 (g_scanner_write_file):
1707 Move the scanner gidl writing to a separate source file.
1709 2007-12-10 Johan Dahlin <johan@gnome.org>
1714 Move over all CType construction functions.
1716 * tests/parser/Makefile.am:
1717 Be verbose when printing parsing tests results.
1719 2007-12-10 Johan Dahlin <johan@gnome.org>
1721 * src/scanner.c (g_igenerator_start_preprocessor): Refactor
1722 preprocessor handling to here. Start cpp insteado of cc -E,
1723 always include -U__GNUC__, since it's specific to the preprocessor
1726 * tests/parser/Makefile.am (check-local): Silent diff and skip
1727 -U__GNUC__ which is always defined now
1729 2007-12-10 Johan Dahlin,,, <jdahlin@plasttroll>
1731 reviewed by: <delete if not using a buddy>
1733 * src/scanner.c: (g_igenerator_start_preprocessor), (main):
1734 * tests/parser/Makefile.am:
1736 2007-12-09 Johan Dahlin <johan@gnome.org>
1739 Use GOption for command line options.
1740 (g_igenerator_new, main): Simplify constructor and they way
1741 parameters are passed into it.
1747 * src/gen-introspect.c:
1748 * src/gen-introspect.h:
1750 Rename gen-introspect.[ch] to scanner.[ch]
1752 2007-12-09 Johan Dahlin <johan@gnome.org>
1756 * src/Makefile.am: Rename gen-introspect to g-idl-scanner,
1757 don't make the repository library and the other utilites link against
1760 * src/gen-introspect.c: (g_igenerator_create_object),
1761 (g_igenerator_create_interface), (g_igenerator_create_boxed),
1762 (g_igenerator_create_enum), (g_igenerator_create_flags),
1763 (g_igenerator_process_module_symbol),
1764 (g_igenerator_process_module), (g_igenerator_generate), (main):
1765 * src/gen-introspect.h:
1766 Refactor g_igenerator_process_types into smaller pieces.
1768 * tests/parser/Makefile.am:
1769 Depend on the gen-introspect binary
1771 2007-12-09 Johan Dahlin <johan@gnome.org>
1773 * src/gen-introspect.c (g_igenerator_process_types):
1774 Break into smaller pieces, one for each generated node type.
1776 2007-12-08 Johan Dahlin <johan@gnome.org>
1778 * src/gen-introspect.c: (g_igenerator_process_types),
1779 (g_igenerator_add_module):
1780 * tests/parser/Foo-expected.gidl:
1781 * tests/parser/foo-object.h:
1782 * tests/parser/foo.c: (foo_subobject_class_init),
1783 (foo_subobject_init):
1785 Add a subobject test and make sure to register defined classes
1786 in the lookup symbol hash table.
1788 2007-12-08 Johan Dahlin <johan@gnome.org>
1792 * src/gen-introspect.c: (g_igenerator_new), (lookup_symbol),
1793 (g_igenerator_process_types), (g_igenerator_add_module),
1794 (g_igenerator_add_include_idl), (main):
1795 * src/gen-introspect.h:
1796 * tests/parser/Makefile.am:
1797 * tests/parser/Foo-expected.gidl:
1799 Change the gen-introspect to generate namespaced module names,
1800 such as GLib.Object instead of GObject.
1801 Add a GLib.gidl which introduces GLib.Object and GLib.InitiallyUnowned,
1802 add a --include-idl parameter to gen-introspect,
1803 and update the parser test.
1805 2007-12-08 Johan Dahlin <johan@gnome.org>
1807 * src/gen-introspect.c:
1808 Move main to the end of the file and attempt to make it valid
1811 * tests/parser/Makefile.am (BUILT_SOURCES): Remove .repo here,
1812 we're not quite ready to generate metadata yet.
1817 Add a simple gen-introspect parser test
1819 2007-12-06 Gustavo J. A. M. Carneiro <gjc@gnome.org>
1821 reviewed by: Johan Dahlin <johan@gnome.org>
1824 * gobject-introspection.pc.in:
1826 * src/compiler.c: (format_output), (write_out_metadata), (main):
1827 * src/gen-introspect.c: (main):
1828 * src/gen-introspect.h:
1829 * src/generate.c: (write_callable_info), (write_repository),
1830 (load_metadata), (main):
1831 * src/gidlmodule.c: (g_idl_module_new),
1832 (g_idl_module_build_metadata):
1834 * src/gidlparser.c: (start_element_handler):
1835 * src/ginfo.c: (g_info_new), (g_info_from_entry),
1836 (g_base_info_get_name), (g_base_info_get_namespace),
1837 (g_base_info_is_deprecated), (g_base_info_get_annotation),
1838 (g_base_info_get_metadata), (g_function_info_get_symbol),
1839 (g_function_info_get_flags), (g_function_info_get_property),
1840 (g_function_info_get_vfunc), (signature_offset), (g_type_info_new),
1841 (g_callable_info_may_return_null),
1842 (g_callable_info_get_caller_owns), (g_callable_info_get_n_args),
1843 (g_callable_info_get_arg), (g_arg_info_get_direction),
1844 (g_arg_info_is_return_value), (g_arg_info_is_dipper),
1845 (g_arg_info_is_optional), (g_arg_info_may_be_null),
1846 (g_arg_info_get_ownership_transfer), (g_type_info_is_pointer),
1847 (g_type_info_get_tag), (g_type_info_get_param_type),
1848 (g_type_info_get_interface), (g_type_info_get_array_length),
1849 (g_type_info_is_zero_terminated),
1850 (g_type_info_get_n_error_domains), (g_type_info_get_error_domain),
1851 (g_error_domain_info_get_quark), (g_error_domain_info_get_codes),
1852 (g_value_info_get_value), (g_field_info_get_flags),
1853 (g_field_info_get_size), (g_field_info_get_offset),
1854 (g_registered_type_info_get_type_name),
1855 (g_registered_type_info_get_type_init),
1856 (g_struct_info_get_n_fields), (g_struct_info_get_field),
1857 (g_struct_info_get_n_methods), (g_struct_info_get_method),
1858 (find_method), (g_struct_info_find_method),
1859 (g_enum_info_get_n_values), (g_enum_info_get_value),
1860 (g_object_info_get_parent), (g_object_info_get_type_name),
1861 (g_object_info_get_type_init), (g_object_info_get_n_interfaces),
1862 (g_object_info_get_interface), (g_object_info_get_n_fields),
1863 (g_object_info_get_field), (g_object_info_get_n_properties),
1864 (g_object_info_get_property), (g_object_info_get_n_methods),
1865 (g_object_info_get_method), (g_object_info_find_method),
1866 (g_object_info_get_n_signals), (g_object_info_get_signal),
1867 (g_object_info_get_n_vfuncs), (g_object_info_get_vfunc),
1868 (g_object_info_get_n_constants), (g_object_info_get_constant),
1869 (g_interface_info_get_n_prerequisites),
1870 (g_interface_info_get_prerequisite),
1871 (g_interface_info_get_n_properties),
1872 (g_interface_info_get_property), (g_interface_info_get_n_methods),
1873 (g_interface_info_get_method), (g_interface_info_find_method),
1874 (g_interface_info_get_n_signals), (g_interface_info_get_signal),
1875 (g_interface_info_get_n_vfuncs), (g_interface_info_get_vfunc),
1876 (g_interface_info_get_n_constants),
1877 (g_interface_info_get_constant), (g_property_info_get_flags),
1878 (g_signal_info_get_flags), (g_signal_info_get_class_closure),
1879 (g_signal_info_true_stops_emit), (g_vfunc_info_get_flags),
1880 (g_vfunc_info_get_offset), (g_vfunc_info_get_signal),
1881 (g_constant_info_get_value), (g_union_info_get_n_fields),
1882 (g_union_info_get_field), (g_union_info_get_n_methods),
1883 (g_union_info_get_method), (g_union_info_is_discriminated),
1884 (g_union_info_get_discriminator_offset),
1885 (g_union_info_get_discriminator):
1886 * src/ginvoke.c: (g_function_info_invoke):
1887 * src/girepository.c: (g_irepository_register),
1888 (g_irepository_unregister), (g_irepository_get_default),
1889 (count_interfaces), (g_irepository_get_n_infos), (find_interface),
1890 (g_irepository_get_info), (g_irepository_find_by_name),
1891 (g_irepository_get_shared_library),
1892 (g_irepository_build_search_path), (g_irepository_register_file),
1893 (g_irepository_error_quark):
1894 * src/girepository.h:
1895 * src/gmetadata.c: (g_metadata_get_dir_entry),
1896 (g_metadata_check_sanity), (validate_header),
1897 (validate_array_type_blob), (validate_iface_type_blob),
1898 (validate_param_type_blob), (validate_error_type_blob),
1899 (validate_type_blob), (validate_arg_blob),
1900 (validate_signature_blob), (validate_function_blob),
1901 (validate_callback_blob), (validate_constant_blob),
1902 (validate_value_blob), (validate_field_blob),
1903 (validate_property_blob), (validate_signal_blob),
1904 (validate_vfunc_blob), (validate_struct_blob),
1905 (validate_enum_blob), (validate_object_blob),
1906 (validate_interface_blob), (validate_errordomain_blob),
1907 (validate_union_blob), (validate_blob), (validate_directory),
1908 (validate_annotations), (g_metadata_validate), (_g_metadata_init),
1909 (g_metadata_new_from_memory), (g_metadata_new_from_const_memory),
1910 (g_metadata_new_from_mapped_file), (g_metadata_free),
1911 (g_metadata_set_module), (g_metadata_get_namespace):
1913 * tests/Makefile.am:
1914 * tests/invoke/Makefile.am:
1915 * tests/invoke/invoke-namespace-find.sh:
1916 * tests/invoke/invoke.c: (main):
1918 Add a namespace/shared library mapping. fixes #313268.
1920 2007-12-03 Johan Dahlin <johan@gnome.org>
1922 * src/gidlparser.c (parse_type_internal): Disable char/gchar and
1925 2007-11-30 Jürg Billeter <j@bitron.ch>
1931 * src/gen-introspect.c: (g_idl_node_cmp), (g_igenerator_new),
1932 (g_igenerator_write_inline), (g_igenerator_write),
1933 (g_igenerator_write_indent), (g_igenerator_write_unindent),
1934 (field_generate), (value_generate), (constant_generate),
1935 (property_generate), (function_generate), (vfunc_generate),
1936 (signal_generate), (interface_generate), (struct_generate),
1937 (union_generate), (boxed_generate), (enum_generate),
1938 (node_generate), (module_generate), (get_type_from_type_id),
1939 (str_replace), (g_igenerator_process_properties),
1940 (g_igenerator_process_signals), (g_igenerator_process_types),
1941 (get_type_from_ctype), (g_igenerator_process_function_symbol),
1942 (g_igenerator_process_unregistered_struct_typedef),
1943 (g_igenerator_process_struct_typedef),
1944 (g_igenerator_process_union_typedef),
1945 (g_igenerator_process_enum_typedef),
1946 (g_igenerator_process_function_typedef),
1947 (g_igenerator_process_constant), (g_igenerator_process_symbols),
1948 (g_igenerator_add_symbol), (g_igenerator_is_typedef),
1949 (g_igenerator_generate), (main), (csymbol_new),
1950 (csymbol_get_const_boolean), (ctype_new), (ctype_copy),
1951 (cbasic_type_new), (ctypedef_new), (cstruct_new), (cunion_new),
1952 (cenum_new), (cpointer_new), (carray_new), (cfunction_new),
1953 (eat_hspace), (eat_line), (read_identifier),
1954 (g_igenerator_parse_macros):
1955 * src/gen-introspect.h:
1957 Import gen-introspect to generate introspection information by
1960 2007-11-30 Jürg Billeter <j@bitron.ch>
1962 * src/gidlnode.c: (g_idl_node_new): support creating callback nodes
1964 2007-11-30 Jürg Billeter <j@bitron.ch>
1966 * src/gidlparser.c: (end_element_handler): Don't leave requires
1969 2007-11-29 Johan Dahlin <johan@gnome.org>
1971 * src/gidlparser.c (parse_type_internal): Add char,
1972 gchar and guchar to the builtin types.
1974 2007-11-26 Johan Dahlin <johan@gnome.org>
1976 * src/ginfo.c: (g_object_info_get_type_name),
1977 (g_object_info_get_type_init):
1978 * src/girepository.c: (g_irepository_is_registered):
1979 * src/girepository.h:
1981 Add g_object_info_get_type_name, g_object_info_get_type_init and
1982 g_irepository_is_registered.
1984 2006-08-14 Jürg Billeter <j@bitron.ch>
1986 * src/gidlparser.c: (end_element_handler): Don't leave
1987 namespace and implements states too early.
1990 2007-11-26 Johan Dahlin <johan@gnome.org>
1992 * src/gmetadata.c (validate_struct_blob):
1993 pass blob_type to validate_function_blob instead of
1994 hard-coding BLOB_TYPE_STRUCT.
1996 Patch by Torsten Schoenfeld, fixes #314190
1998 2006-10-03 Torsten Schoenfeld <tsch@cvs.gnome.org>
2000 * src/compiler.c, src/generate.c, src/gidlnode.c,
2001 src/gidlparser.c, src/ginfo.c, src/girepository.c,
2002 tests/invoke/invoke.c, test/invoke/testfns.c: Hush compiler
2003 warnings about return values, signedness mismatches, unused
2004 variables, and unhandles enum values in switch statements.
2006 * tests/invoke/Makefile.am: Don't install the invoke test program.
2007 Add -I ../../src to the cflags used for the test functions files.
2009 2005-08-31 Torsten Schoenfeld <tsch@cvs.gnome.org>
2011 * src/girepository.h: Export g_invoke_error_quark.
2013 2005-08-31 Torsten Schoenfeld <tsch@cvs.gnome.org>
2015 * src/ginvoke.c: Remove the fallback implementation of
2016 g_function_info_invoke since we now formally depend on libffi.
2018 2005-07-25 Matthias Clasen <mclasen@redhat.com>
2020 * src/Makefile, tests/Makefile, tests/invoke/Makefile:
2021 Remove these files from cvs, as they are now generated.
2023 * src/gmetadata.c (validate_iface_type_blob): Don't
2024 complain if blob->pointer is not set, since that
2025 happens for enum and flag types. (#308935, Gustavo
2028 * Commit an autoconf-conversion patch by
2029 Gustavo Carneiro (#308708)
2031 2005-05-24 Matthias Clasen <mclasen@redhat.com>
2033 * src/compiler.c (main): Use it here to validate
2034 the generated metadata.
2036 * src/gmetadata.[hc]: Add code to validate a
2039 * metadata-format.txt: Updates
2041 2005-05-22 Matthias Clasen <mclasen@redhat.com>
2043 * tests/*: Add struct offsets to field and vfunc
2046 * src/generate.c (write_vfunc_info): Write offset
2047 information for vfuncs.
2049 * src/gidlnode.c (g_idl_node_build_metadata): Write
2050 the struct offsets into the metadata.
2052 * src/gidlparser.c: Parse the offset attributes of
2053 field and vfunc elements.
2055 * src/gidlnode.h: Add offset members to field and
2058 2005-05-21 Matthias Clasen <mclasen@redhat.com>
2062 * gidl.dtd: Updates.
2064 * src/g-idl-offsets.pl: A perl script which reads a .gidl
2065 file, creates, compiles and runs a C file, and folds the
2066 resulting struct offsets back into the .gidl file.
2068 2005-05-20 Matthias Clasen <mclasen@redhat.com>
2070 * src/gidlparser.c (start_field): Make fields in objects
2073 * src/gidlmodule.c: Include string.h
2078 * metadata-format.txt: Cleanup basic types.
2079 * src/*: Adapt to the changes.
2080 * tests/*: Adapt to the changes.
2081 * examples/gdk-pixbuf.gidl: Adapt to the changes.
2083 * src/gidlnode.c (g_idl_node_get_size): Report the correct
2084 size for enum blobs.
2085 (g_idl_node_get_full_size): Report the correct size for
2088 * src/gidlmodule.c (g_idl_module_build_metadata): Add some
2089 error checking for blob sizes.
2091 2005-05-19 Matthias Clasen <mclasen@redhat.com>
2093 * src/gidlnode.c (g_idl_node_build_metadata): Correctly handle
2094 interface types for which is_pointer is FALSE, e.g. enums.
2096 * src/gidlnode.c (g_idl_node_get_full_size)
2097 * src/gidlparser.c (parse_type_internal):
2098 * src/generate.c (write_type_info): Support unspecialized
2099 lists, hashtables and errors. Also emit a '*' after these.
2103 2005-05-17 Matthias Clasen <mclasen@redhat.com>
2107 * metadata-format.txt: Cleanups by Maciej Katafiasz.
2109 2005-05-15 Matthias Clasen <mclasen@redhat.com>
2111 * src/*.c: Change the directory to be addressed by
2112 1-based indexes, and use an index of zero to mean
2115 2005-05-15 Matthias Clasen <mclasen@redhat.com>
2117 * tests/roundtrips.sh (SIMPLE_TESTS): Add union.test.
2119 * tests/union.test: Add a union test.
2121 * src/generate.c: Handle unions.
2123 * src/girepository.h:
2124 * src/ginfo.c: Add GIUnionInfo and functions to access it.
2126 * src/gidlnode.c: Handle GIdlNodeUnion nodes.
2128 * src/gidlparser.c (start_union): Parse <union> elements.
2130 * src/gidlnode.h: Add a GIdlNodeUnion.
2132 * gidl.dtd: Add a <union> element.
2134 * src/gmetadata.c (g_metadata_check_sanity): Check
2137 * src/gmetadata.h: Add union_blob_size to Header,
2140 * metadata-format.txt: Add a UnionBlob.
2142 2005-05-13 Matthias Clasen <mclasen@redhat.com>
2144 * tests/*: Update testcases.
2146 * src/generate.c (write_callable_info): Don't forget to
2147 write transfer and null-ok attributes for return types
2150 * src/girepository.h:
2151 * src/ginfo.c (g_callable_info_may_return_null):
2152 New function to find out if a function may return NULL.
2154 * src/compiler.c (format_output): Make the generated
2157 * README: Point to a recent libffi snapshot.
2159 * tests/invoke/*: Some invoke tests.
2161 * src/Makefile: Add ginvoke.c and the necessary
2164 * src/girepository.h (g_function_info_invoke): Add
2167 * src/ginvoke.c (g_function_info_invoke): Initial
2168 implementation of invoke functionality based on libffi.
2170 * src/gidlnode.c (g_idl_node_build_metadata): Pass the
2171 strings and types hash tables in the right order when
2173 (find_entry_node): Free the name parts.
2175 2005-05-12 Johan Dahlin <johan@gnome.org>
2177 * src/generate.c: Generate consistent end tags.
2181 2005-05-12 Matthias Clasen <mclasen@redhat.com>
2185 * src/gidlparser.c (start_function): Actually add
2186 methods to objects. (Steven Walter)
2188 * src/girepository.h:
2189 * src/ginfo.c: Rename Transfer and Direction to
2190 GITransfer and GIDirection. (Torsten Schoenfeld)
2192 * tests/*: Make tests work with the changes in name
2195 * src/gidlnode.c (find_entry_node): Parse qualified
2196 names and generate xref nodes for them if needed. Don't
2197 require all modules to be loaded any more.
2199 * src/gidlmodule.c (g_idl_module_build_metadata): Choke
2202 * src/ginfo.c (g_object_info_get_parent): Return NULL
2203 if blob->parent is 0. Still need to make sure index
2206 * src/generate.c: Generate qualified names when
2207 referring to non-local types. Emit transfer attribute
2210 * src/compiler.c (format_output): Put the function
2211 attributes where gcc accepts them.
2213 2005-05-11 Matthias Clasen <mclasen@redhat.com>
2215 * src/compiler.c (main): Add a --verbose cmdline option
2216 and only log messages if it is specified.
2219 * src/gidlnode.c (init_stats, dump_stats): Collect some
2220 statistics on string and type sharing.
2222 * src/gidlmodule.c (g_idl_module_build_metadata): Use
2223 g_message() instead of fprintf().
2225 * src/gidlnode.c (g_idl_node_free): Make this more robust.
2226 (g_idl_node_get_size): Implement for structs.
2227 (g_idl_node_get_full_size): Handle parent being NULL.
2228 (serialize_type): Handle lookup failures more gracefully.
2230 2005-05-10 Matthias Clasen <mclasen@redhat.com>
2232 * src/gidlnode.c (g_idl_node_get_full_size): Correct the
2233 size calculation for 2-parameter types and for objects.
2235 * src/compiler.c: Add a cmdline option for debug output
2236 and install a log handler to implement it.
2237 * src/gidlnode.c: Add some debug spew.
2241 * src/gidlmodule.c (g_idl_module_build_metadata): Don't
2242 forget to count the module name when calculating the
2243 required size for the metadata.
2246 * src/gidlparser.c: Fix compiler warnings.
2248 2005-05-09 Matthias Clasen <mclasen@redhat.com>
2250 * src/compiler.c (main): Free the option context.
2252 * gidl.dtd: Clean up handling of names. All elements
2253 have a "name", only the elements corresponding to
2254 actual callable functions (function, method, constructor),
2255 have an additional "symbol" attribute holding the
2256 dlsym()-able function name.
2258 * src/generate.c: Adapt to generate xml matching the
2262 * src/gidlnode.c: Adapt to parse the new dtd.
2264 * tests/*.test: Adjust to the new dtd.
2266 * metadata-format.txt:
2267 * src/gmetadata.h: Remove the short_name field
2269 * src/gmetadata.c: Shrink size of ValueBlob to 12.
2270 * src/girepository.h:
2271 * src/ginfo.c (g_value_info_get_short_name): Removed
2273 2005-05-09 Matthias Clasen <mclasen@redhat.com>
2275 * gidl.dtd: Allow constructors for boxed types,
2276 patch by Jonathan Blandford.
2279 2005-05-09 Matthias Clasen <mclasen@redhat.com>
2281 * --- Initial import ---