1 2008-08-13 Johan Dahlin <johan@gnome.org>
3 * giscanner/cgobject.py:
4 Register GInitiallyUnowned
5 * giscanner/girwriter.py:
6 * giscanner/glibtransformer.py:
7 Special case GObject/GInitially owned as they are a bit special to use.
9 2008-08-13 Colin Walters <walters@verbum.org>
11 * tests/scanner/Foo-expected.gir, tests/scanner/utility-expected.gir:
12 Object is in GObject namespace.
14 2008-08-13 Colin Walters <walters@verbum.org>
16 * giscanner/girparser.py: Fix processing of functions
19 2008-08-13 Colin Walters <walters@verbum.org>
21 * giscanner/girparser.py: Parse more than just <class.
22 * giscanner/glibtransformer.py: Put aliases in a separate
23 data structure since their name is not canonicall.
24 * giscanner/transformer.py: Handle resolving type names
27 2008-08-13 Johan Dahlin <johan@gnome.org>
30 Allow multiple libraries
31 * giscanner/glibtransformer.py:
32 Rename load_library to add_library, traverse over all libraries
33 when trying to resolve a function
35 2008-08-12 Colin Walters <walters@verbum.org>
37 * giscanner/transformer.py: Record typedefs as <alias> elements.
38 Also attempt to look up types in external namespaces.
39 * giscanner/girwriter.py: Write them.
40 * giscanner/glibtransformer.py: Rework resolver using real instanceof
41 checks. Resolve interface methods and properties.
42 * tests/scanner/foo-object.h: Add a method with typedef.
43 * tests/scanner/Foo-expected.gir: Update.
44 * girepository/girnode.c: Debug tweaks.
45 * girepository/girparser.c: Make a first pass through the XML where we
46 record all the aliases. This lets us resolve them as we go through the
48 * gir/Makefile.am: Don't install gobject-2.0.gir; we want that to come
51 2008-08-12 Colin Walters <walters@verbum.org>
53 * giscanner/glibtransformer.py: Resolve typedefs (e.g. AtkAttributeSet -> GSList).
54 Correctly do subclasseing in 2nd pass resolution. Handle callbacks in structure
56 * giscanner/transformer.py: Record typedefs and expose public API for resolving
58 * tests/scanner/Foo-expected.gir: Fix expected callback types.
60 2008-08-12 Colin Walters <walters@verbum.org>
62 * giscanner/glibtransformer.py: Also transform object properties.
64 2008-08-12 Colin Walters <walters@verbum.org>
66 * giscanner/glibtransformer.py: Also transform callbacks
67 and structure field types.
68 * tests/scanner/Fooe-expected.gir: Update to expect correct
69 names for callbacks and structs.
71 2008-08-12 Colin Walters <walters@verbum.org>
73 * girepository/girparser.c: Handle 'any'.
74 * tests/scanner/Foo-expected.gir, tests/scanner/foo-object.h:
77 2008-08-12 Colin Walters <walters@verbum.org>
79 * giscanner/glibtransformer.py: We need to do type
80 resolution in a second pass after we've seen all the
83 2008-08-12 Colin Walters <walters@verbum.org>
85 * tests/scanner/Foo-expected.gir, tests/scanner/foo-object.h:
86 Add enum return value.
87 * giscanner/glibtransformer.py: Transform function return types
90 2008-08-12 Colin Walters <walters@verbum.org>
92 * tests/scanner/Makefile.am: Dep .gir files on scanner
93 sources too. Also remove @ so we see scanner invocations.
95 2008-08-12 Colin Walters <walters@verbum.org>
97 * girepository/girparser.c, girepository/gtypelib.c,
98 girepository/gtypelib.h, girepository/girnode.c:
99 Remove usage of (GAPI-oriented) TypeTag in favor of
100 GITypeTag from girepository.h.
102 2008-08-10 Colin Walters <walters@verbum.org>
104 * tests/roundtrips.sh: Use the correct tests.
106 2008-08-10 Colin Walters <walters@verbum.org>
108 * giscanner/cgobject.py: Declare/wrap a few more functions.
109 Fix parameter types for g_object_new and g_type_fundamental.
111 2008-08-10 Colin Walters <walters@verbum.org>
113 * giscanner/cgobject.py: Add new decorator @gwrap which forces
114 us to declare types for both return value and parameters. The
115 ctypes default of 'int' is bad because it hides 32/64 bit
116 problems. Convert all existing functions to use it.
118 2008-08-09 Johan Dahlin <johan@gnome.org>
120 * giscanner/__init__.py:
122 * giscanner/cgobject.py:
123 * giscanner/gidlparser.py:
124 * giscanner/gidlwriter.py:
125 * giscanner/girparser.py:
126 * giscanner/girwriter.py:
127 * giscanner/glibast.py:
128 * giscanner/glibtransformer.py:
129 * giscanner/odict.py:
130 * giscanner/sourcescanner.py:
131 * giscanner/transformer.py:
132 * giscanner/utils.py:
133 * giscanner/xmlwriter.py:
134 * tools/g-ir-scanner:
138 2008-08-09 Johan Dahlin <johan@gnome.org>
141 * relaxng/c-types.xml:
142 * relaxng/g-types.xml:
143 * relaxng/relaxng.rng:
145 Remove outdated relaxng schemas.
147 2008-08-09 Johan Dahlin <johan@gnome.org>
150 Rename metadata to typelib in variable names,
153 2008-08-09 Johan Dahlin <johan@gnome.org>
157 Remove old C scanner, which got rewritten in python.
159 2008-08-09 Johan Dahlin <johan@gnome.org>
161 * girepository/Makefile.am:
171 Move shared *.[ch] files to girepository from tools
173 2008-08-09 Johan Dahlin <johan@gnome.org>
178 * tests/constant.test:
181 * tests/function.test:
182 * tests/gobject.test:
183 * tests/interface.test:
190 Rename *.test to *.gir
192 2008-08-09 Johan Dahlin <johan@gnome.org>
196 * tests/parser/Foo-expected.gir:
197 * tests/parser/Makefile.am:
198 * tests/parser/foo-object.h:
199 * tests/parser/foo.c:
200 * tests/parser/utility-expected.gir:
201 * tests/parser/utility.c:
202 * tests/parser/utility.h:
203 * tests/scanner/Makefile.am:
204 Rename tests/parser to test/scanner
206 2008-08-08 Colin Walters <walters@verbum.org>
208 * tests/roundtrips.sh: Use local .gir files again.
210 2008-08-08 Colin Walters <walters@verbum.org>
212 * tests/invoke/Makefile.am: .gir file depends on libtool
215 2008-08-08 Colin Walters <walters@verbum.org>
217 * tools/girnode.c: Pass through parent node so we can
218 print the node whose child is NULL, if that occurs.
220 2008-08-08 Johan Dahlin <johan@gnome.org>
223 Disable roundtrip tests which are not yet working
224 * tests/invoke/testfns.gir:
227 2008-08-08 Johan Dahlin <johan@gnome.org>
229 * giscanner/girwriter.py:
231 * giscanner/glibast.py:
232 * giscanner/glibtransformer.py:
233 Swap order of members, to keep it consistent with
236 2008-08-08 Johan Dahlin <johan@gnome.org>
238 * girepository/gtypelib.c (validate_header):
239 * girepository/gtypelib.h:
241 * giscanner/girwriter.py:
242 * giscanner/sourcescanner.c (gi_source_symbol_ref),
243 (gi_source_symbol_unref):
246 * tests/constant.test:
249 * tests/function.test:
250 * tests/gobject.test:
251 * tests/interface.test:
252 * tests/invoke/Makefile.am:
253 * tests/invoke/testfns.xml:
255 * tests/parser/Makefile.am:
256 * tests/roundtrips.sh:
263 * tools/compiler.c (main):
264 * tools/generate.c (write_callable_info), (write_function_info),
266 * tools/gidlmodule.c:
267 * tools/gidlmodule.h:
270 * tools/gidlparser.c:
271 * tools/gidlparser.h:
272 * tools/gidlwriter.c:
273 * tools/gidlwriter.h:
274 * tools/scanner.c (create_node_from_gtype),
275 (create_node_from_ctype), (g_igenerator_process_properties),
276 (g_igenerator_process_signals), (g_igenerator_create_object),
277 (g_igenerator_create_interface), (g_igenerator_create_boxed),
278 (g_igenerator_create_enum), (g_igenerator_create_flags),
279 (g_igenerator_process_function_symbol),
280 (g_igenerator_process_unregistered_struct_typedef),
281 (g_igenerator_process_struct_typedef),
282 (g_igenerator_process_union_typedef),
283 (g_igenerator_process_enum_typedef),
284 (g_igenerator_process_function_typedef),
285 (g_igenerator_process_constant), (g_igenerator_process_symbols),
286 (g_igenerator_add_module), (g_igenerator_add_include_idl):
287 Merge in the gir-compiler branch.
288 Thanks to Philip and Colin for their help.
290 2008-07-26 Colin Walters <walters@verbum.org>
292 * tools/Makefile.am (bin_PROGRAMS): Install g-idl-compiler
293 and g-idl-generate to go along with how we're changing this
294 module to be installed.
295 * gobject-introspection-1.0.pc.in: Set up Cflags and Libs.
297 2008-07-24 Colin Walters <walters@verbum.org>
299 * girepository/girepository.c (g_irepository_register): Add
300 environment variable G_IREPOSITORY_VERBOSE so we can print
301 out what we're doing.
302 * girepository/girepository.c (g_irepository_register_file):
303 Add GError error message to g_debug call.
305 2008-07-08 Jürg Billeter <j@bitron.ch>
307 * giscanner/glibast.py:
311 2008-06-21 Johan Dahlin <jdahlin@async.com.br>
313 * giscanner/girparser.py (GIRParser._parse_api): Ignore a few
316 2008-06-20 Johan Dahlin <jdahlin@async.com.br>
319 * giscanner/girwriter.py:
320 * giscanner/transformer.py:
321 * tests/parser/Foo-expected.gir:
322 * tests/parser/foo-object.h:
323 * tests/parser/foo.c (foo_object_allow_none):
324 Add support for gtk-doc annotations for allow-none.
327 2008-06-19 Johan Dahlin <jdahlin@async.com.br>
330 * giscanner/girwriter.py:
331 * giscanner/glibast.py:
332 * giscanner/glibtransformer.py:
333 * giscanner/transformer.py:
334 * tests/parser/Foo-expected.gir:
335 Start using abstract type instead of the raw C types.
336 Register a bunch of glib types we care about.
338 2008-06-19 Rob Taylor <rob.taylor@codethink.co.uk>
343 2008-06-08 Philip Van Hoof <pvanhoof@gnome.org>
345 * girepository/girepository.c:
346 * girepository/gtypelib.c:
347 * girepository/ginfo.c:
348 * girepository/ginvoke.c:
349 * girepository/girepository.h:
350 * girepository/gtypelib.h:
351 * girepository/gmetadata.c:
352 * girepository/Makefile.am:
353 * girepository/gmetadata.h:
355 * tools/gidlmodule.c:
358 * tools/gidlmodule.h:
359 * tools/gidlparser.c:
361 Renamed GMetadata to GTypelib
363 2008-06-07 Johan Dahlin <jdahlin@async.com.br>
365 * giscanner/xmlwriter.py:
366 Improve line wrapping when > 79 charaters
368 2008-06-05 Jürg Billeter <j@bitron.ch>
371 * giscanner/girwriter.py:
372 * giscanner/transformer.py:
373 Use <type> element for field types
374 * tests/parser/Foo-expected.gir:
377 2008-06-04 Johan Dahlin <jdahlin@async.com.br>
379 * giscanner/glibtransformer.py:
380 Fix a bug which prevented GdkEvent from being generated
382 2008-06-03 Johan Dahlin <jdahlin@async.com.br>
384 * giscanner/Makefile.am:
386 * giscanner/girwriter.py:
387 * giscanner/glibast.py:
388 * giscanner/glibtransformer.py:
389 * giscanner/transformer.py:
390 * giscanner/utils.py:
391 * tests/parser/Foo-expected.gir:
392 Improve enum member parsing and introspection
394 2008-05-31 Johan Dahlin <jdahlin@async.com.br>
396 * giscanner/scannerparser.y:
397 * giscanner/sourcescanner.h:
398 * giscanner/sourcescanner.py:
399 Add a new source type enum for member.
400 Use __repr__ for improved debugging
401 * giscanner/girparser.py:
403 * giscanner/transformer.py:
404 Improve parsing of struct members.
405 * tests/parser/foo-object.h:
408 2008-05-31 Johan Dahlin <jdahlin@async.com.br>
410 * giscanner/xmlwriter.py:
411 Improve error reporting when trying to quote None.
412 * giscanner/girparser.py:
413 Do not print warnings when including more complete .gir files
414 * giscanner/girwriter.py:
415 Do not require a name for parameters, add a todo for singletons
416 * giscanner/glibtransformer.py:
417 Refactor the way structs are done, add a couple of hacks to allow
419 * giscanner/transformer.py:
420 Add enough hacks so cairo, atk and pango.gir can be parsed properly
421 * gobject-introspection-1.0.pc.in:
422 Export girdir, so we can access gobject-2.0.gir from outside
424 2008-05-31 Johan Dahlin <jdahlin@async.com.br>
426 * tools/g-ir-scanner:
427 * tests/parser/Makefile.am:
428 Update sys.path before running the parser so we don't have
429 to setup PYTHONPATH ourselves.
433 * girepository/Makefile.am:
434 * giscanner/transformer.py:
435 * gobject-introspection-1.0.pc.in:
436 * gobject-introspection.pc.in:
439 Rename pkg-config name to gobject-introspection-1.0,
440 Do not installed anything which is not using the gir format.
441 Disable compililation the old C scanner, but still keep the source
442 until all the remaning functionallity has been ported.
444 2008-05-31 Johan Dahlin <jdahlin@async.com.br>
446 * giscanner/giscannermodule.c (symbol_get_ident): Prevent
447 a crash when symbol->indent is NULL.
449 * giscanner/sourcescanner.py (ctype_name): Add ctype_name,
450 a function to convert a CTYPE symbol to a string
452 2008-05-24 Johan Dahlin <jdahlin@async.com.br>
455 * giscanner/girwriter.py:
456 * giscanner/giscannermodule.c
457 (pygi_source_scanner_append_filename),
458 (pygi_source_scanner_parse_file):
459 * giscanner/glibtransformer.py:
460 * giscanner/sourcescanner.py:
461 Revert back to using temporary files to send in headers.
462 Allow Functions to be passed in as callbacks, add a couple
463 of try/excepts missing features.
464 We can now scan pango
466 2008-05-08 Johan Dahlin <johan@gnome.org>
468 * giscanner/glibtransformer.py:
469 * giscanner/transformer.py:
470 Move namespace stripping glibtransformer->transformer
472 2008-05-08 Johan Dahlin <johan@gnome.org>
475 * giscanner/girwriter.py:
476 * giscanner/glibtransformer.py:
477 * giscanner/transformer.py:
478 * tools/g-ir-scanner:
479 Introduce a namespace ast node
481 2008-05-05 Johan Dahlin <johan@gnome.org>
483 * giscanner/__init__.py:
484 * giscanner/sourcescanner.py:
485 * giscanner/transformer.py:
486 Move sourcescanner symbols to the sourcescanner module, instead
487 of in the global __init__ namespace.
489 2008-05-03 Johan Dahlin <johan@gnome.org>
491 * giscanner/glibtransformer.py:
492 * tools/g-ir-scanner:
493 Handle missing parameters better, allow - and + in .la dlname
496 2008-05-03 Johan Dahlin <johan@gnome.org>
498 * giscanner/__init__.py:
500 * giscanner/girwriter.py:
501 * giscanner/glibtransformer.py:
502 * giscanner/transformer.py:
503 Parse struct fields properly, improve debugging.
505 2008-04-29 Johan Dahlin <johan@gnome.org>
508 * giscanner/girwriter.py:
509 * giscanner/transformer.py:
510 * tests/parser/Foo-expected.gir:
512 Use transfer-ownership everywhere, to mark ownership/calle/caller etc.
514 2008-04-29 Johan Dahlin <jdahlin@async.com.br>
517 * docs/g-ir-scanner.1:
518 * metadata-annotations-proposal.txt:
519 * metadata-format.txt:
520 Add a basic, unfinshed man page for g-ir-scanner, move documents into .txt
522 2008-04-29 Johan Dahlin <jdahlin@async.com.br>
524 * giscanner/girwriter.py:
525 * giscanner/glibtransformer.py:
526 * giscanner/transformer.py:
527 * giscanner/xmlwriter.py:
528 * tests/parser/Foo-expected.gir:
529 * tests/parser/foo-object.h:
530 Write record/structs to gir file too. Add a couple of tests,
531 fix an off by one error in xmlwriter.py.
533 2008-04-28 Johan Dahlin <johan@gnome.org>
535 * giscanner/xmlwriter.py: Calculate the line length properly,
536 include the provided extra indentation in the calculation, really.
538 2008-04-28 Johan Dahlin <jdahlin@async.com.br>
541 * giscanner/glibast.py:
542 * giscanner/glibtransformer.py:
543 * giscanner/transformer.py:
544 * tools/g-ir-scanner:
545 Add a --strip-prefix and sort out confusion between names and symbols
546 for functions and struct + derivaties.
547 Refactor bootstrap of g-ir-scanner, so we can set options on
548 Transformer() before parsing everything.
550 2008-04-28 Johan Dahlin <johan@gnome.org>
552 * giscanner/transformer.py (Transformer._traverse_one): Avoid recursion
553 when scanning girepository.h
555 * giscanner/sourcescanner.py (SourceScanner._preprocess): Define
556 a __GI_SCANNER__ when we run.
558 2008-04-28 Johan Dahlin <jdahlin@async.com.br>
561 * giscanner/girwriter.py:
562 * giscanner/glibast.py:
563 * giscanner/glibtransformer.py:
564 * tests/parser/Foo-expected.gir:
565 * tests/parser/utility-expected.gir:
566 Rename most c:identifier to c:type. Add new ones to
567 class/interface/enum/boxed.
569 2008-04-28 Johan Dahlin <jdahlin@async.com.br>
572 * giscanner/girwriter.py:
573 * giscanner/glibtransformer.py:
574 * tests/parser/Foo-expected.gidl:
575 * tests/parser/Makefile.am:
576 Move c:identifier from return-value to subchild type,
577 as per Jürgs suggestion
579 2008-04-28 Johan Dahlin <johan@gnome.org>
581 * giscanner/girwriter.py:
582 * tests/parser/Foo-expected.gir:
583 Write property.type as a child node.
585 2008-04-27 Johan Dahlin <johan@gnome.org>
590 * gidl/gobject-2.0.gidl:
592 * gir/gobject-2.0.gir:
593 * tests/parser/Makefile.am:
594 Replace the GObject gidl with a GObject gir.
596 2008-04-27 Johan Dahlin <johan@gnome.org>
598 * tools/Makefile.am (bin_SCRIPTS): g-ir-scanner is a script,
601 * giscanner/xmlwriter.py:
602 * tests/parser/Foo-expected.gir:
603 Include indentation in line length calculation
605 2008-04-27 Johan Dahlin <johan@gnome.org>
607 * giscanner/girparser.py:
608 Prettify NS parsing using elementtree.
610 2008-04-27 Johan Dahlin <johan@gnome.org>
613 * giscanner/Makefile.am:
614 * giscanner/girparser.py:
615 * giscanner/glibtransformer.py:
616 * tests/parser/Foo-expected.gidl:
617 * tests/parser/Foo-expected.gir:
618 * tests/parser/Makefile.am:
619 * tests/parser/utility-expected.gidl:
620 * tests/parser/utility-expected.gir:
621 * tools/g-ir-scanner:
622 Switch over to GIR as the default format. Add a simple GIDL
624 Update tests and fix simplify makefiles by depending
625 on GNU make extensions.
627 2008-04-27 Johan Dahlin <johan@gnome.org>
629 * giscanner/xmlwriter.py:
630 Wrap attributes for lines which are wider than 79 characters
632 * giscanner/scannerlexer.l:
633 Allow parenthesis in annotations
636 * giscanner/gidlwriter.py:
637 * giscanner/girwriter.py:
638 * giscanner/glibtransformer.py:
639 * giscanner/transformer.py:
640 Add initial sequence support, including annotation.
641 Refactor type handling a bit.
643 2008-04-27 Johan Dahlin <johan@gnome.org>
645 * tests/parser/Foo-expected.gidl:
646 * tests/parser/foo-object.h:
647 * tests/parser/foo.c (foo_object_class_init),
648 (foo_object_get_strings), (foo_object_get_objects):
649 Add two new functions to check sequence return values.
650 Also fixes a compilation warning.
652 2008-04-27 Johan Dahlin <johan@gnome.org>
654 * giscanner/giscannermodule.c (]): Cast the getter, avoids
655 a compilation warning.
657 * tools/Makefile.am (g_ir_scanner_SOURCES):
658 g-ir-scanner has no sources.
660 2008-04-25 Johan Dahlin <johan@gnome.org>
662 * giscanner/Makefile.am:
664 * giscanner/gidlparser.py:
665 * giscanner/gidlwriter.py:
666 * giscanner/girwriter.py:
667 * giscanner/glibast.py:
668 * giscanner/glibtransformer.py:
669 * giscanner/transformer.py:
670 Split out nodes to ast.py and glibast.py
672 2008-04-25 Johan Dahlin <jdahlin@async.com.br>
674 * giscanner/Makefile.am:
675 * giscanner/gidlparser.py:
676 * giscanner/gidlwriter.py:
677 * giscanner/girwriter.py:
678 * giscanner/glibtransformer.py:
679 * giscanner/gobjecttreebuilder.py:
680 * giscanner/transformer.py:
681 * giscanner/treebuilder.py:
682 * tools/g-ir-scanner:
683 Rename treebuilder to transformer and
684 gobjectreebuilder to glibtransformer.
686 2008-04-25 Johan Dahlin <jdahlin@async.com.br>
688 * giscanner/Makefile.am:
689 * giscanner/__init__.py:
690 * giscanner/cgobject.py:
691 * giscanner/gidlparser.py:
692 * giscanner/gidlwriter.py:
693 * giscanner/girwriter.py:
694 * giscanner/gobjecttreebuilder.py:
695 * giscanner/odict.py:
696 * giscanner/sourcescanner.py:
697 * giscanner/treebuilder.py:
698 * giscanner/xmlwriter.py:
700 * tools/g-ir-scanner:
701 Add LGPLv2 license header and install all python files
703 2008-04-25 Johan Dahlin <jdahlin@async.com.br>
706 * giscanner/gidlwriter.py:
707 * giscanner/giscannermodule.c (pygi_source_directive_new),
708 (directive_get_options), (pygi_source_symbol_new),
709 (symbol_get_base_type), (pygi_source_type_new),
710 (type_get_base_type), (type_get_child_list),
711 (pygi_source_scanner_get_symbols),
712 (pygi_source_scanner_get_directives):
713 * giscanner/gobjecttreebuilder.py:
714 * giscanner/sourcescanner.py:
715 * giscanner/treebuilder.py:
716 * tests/parser/foo-object.h:
717 Add support for virtual methods.
718 Pair struct FooClass with struct Foo.
719 Clean up the SourceScanner bindings a bit.
720 Add a testcase for virtual methods.
722 2008-04-25 Johan Dahlin <jdahlin@async.com.br>
724 * giscanner/cgobject.py:
725 * giscanner/gidlwriter.py:
726 * giscanner/gobjecttreebuilder.py:
727 Add support for signals
729 * tests/parser/foo.c (foo_object_class_init):
731 Add a signal and update the expected output.
733 2008-04-24 Johan Dahlin <jdahlin@async.com.br>
735 * giscanner/gidlwriter.py:
736 * giscanner/girwriter.py:
737 * giscanner/giscannermodule.c (directive_get_name),
738 (directive_get_value), (directive_get_options),
739 (symbol_get_directives), (symbol_set_directives),
740 (pygi_source_scanner_parse_file),
741 (pygi_source_scanner_lex_filename),
742 (pygi_source_scanner_get_directives), (init_giscanner):
743 * giscanner/sourcescanner.c (gi_source_scanner_get_directives):
744 * giscanner/sourcescanner.h:
745 * giscanner/sourcescanner.py:
746 * giscanner/treebuilder.py:
747 * tools/g-ir-scanner:
748 Add support for source/header annotations.
750 2008-04-22 Johan Dahlin <jdahlin@async.com.br>
752 * giscanner/gidlwriter.py:
753 * giscanner/girwriter.py:
754 * giscanner/gobjecttreebuilder.py:
755 * giscanner/treebuilder.py:
756 Add support for Callbacks
758 2008-04-22 Havoc Pennington <hp@pobox.com>
760 * girepository/ginvoke.c (g_function_info_invoke): If a symbol is
761 not in metadata->module, look for it in the global module, in case
762 some other object or the app itself provides the symbol.
764 2008-04-22 Havoc Pennington <hp@pobox.com>
766 * girepository/gmetadata.c (_g_metadata_init): hack to avoid
767 dlopening a library that is already in the main app, by checking
768 whether one of the lib's symbols is already loaded.
770 2008-04-22 Johan Dahlin <jdahlin@async.com.br>
772 * tests/parser/Foo-expected.gidl:
773 * tests/parser/foo-object.h:
776 2008-04-22 Havoc Pennington <hp@pobox.com>
778 * girepository/ginfo.c (g_interface_info_find_method):
779 Use interface_blob_size not object_blob_size to compute offset.
781 2008-04-22 Havoc Pennington <hp@pobox.com>
783 * girepository/gmetadata.c (_g_metadata_init): remove
784 G_MODULE_BIND_LOCAL flag when loading libraries, since some libs
785 (Glade and Clutter for example) rely on being loaded globally.
787 2008-04-22 Havoc Pennington <hp@pobox.com>
789 * girepository/ginfo.c (g_registered_type_info_get_g_type): new
790 function to get the GType given a RegisteredTypeInfo
792 2008-04-22 Johan Dahlin <johan@gnome.org>
794 * COPYING: Add a LGPL license, to prevent automake to
795 put in a copy of GPL here. Pointed out by Havoc.
797 * girepository/ginfo.c (g_info_from_entry), (g_type_info_new),
798 (g_type_info_is_pointer), (g_type_info_get_tag),
799 (g_type_info_get_param_type), (g_type_info_get_interface),
800 (g_type_info_get_array_length), (g_type_info_is_zero_terminated),
801 (g_type_info_get_n_error_domains), (g_type_info_get_error_domain),
802 (g_error_domain_info_get_codes), (g_enum_info_get_value),
803 (g_object_info_get_interface), (g_object_info_get_field),
804 (g_interface_info_get_prerequisite),
805 (g_signal_info_get_class_closure), (g_constant_info_get_value):
806 * girepository/ginvoke.c (get_ffi_type):
807 * girepository/girepository.h:
808 * girepository/gmetadata.c (g_metadata_get_dir_entry),
809 (g_metadata_check_sanity), (validate_header),
810 (validate_array_type_blob), (validate_iface_type_blob),
811 (validate_param_type_blob), (validate_error_type_blob),
812 (validate_type_blob), (validate_constant_blob),
813 (validate_struct_blob), (validate_enum_blob):
814 * girepository/gmetadata.h:
816 * tests/invoke/Makefile.am:
817 * tests/invoke/invoke.c (main):
818 * tests/roundtrips.sh:
820 * tools/compiler.c (format_output), (write_out_metadata), (main):
821 * tools/generate.c (write_type_name), (write_type_info),
822 (write_constant_value), (write_enum_info), (load_metadata), (main):
823 * tools/gidlcompilercontext.c:
824 * tools/gidlcompilercontext.h:
825 * tools/gidlcompilerentrynode.c:
826 * tools/gidlcompilerentrynode.h:
827 * tools/gidlcompilertypenode.c:
828 * tools/gidlcompilertypenode.h:
829 * tools/gidlmodule.c (g_idl_module_build_metadata):
830 * tools/gidlmodule.h:
831 * tools/gidlnode.c (init_stats), (dump_stats),
832 (g_idl_node_get_size), (g_idl_node_get_full_size),
833 (g_idl_node_cmp), (g_idl_node_can_have_member),
834 (g_idl_node_add_member), (g_idl_node_param_direction_string),
835 (parse_int_value), (parse_uint_value), (parse_float_value),
836 (parse_boolean_value), (find_entry_node), (find_entry),
837 (serialize_type), (g_idl_node_build_metadata), (write_string):
839 * tools/gidlparser.c (parse_type_internal):
840 * tools/quote-file.sh:
841 Revert revisions 157,149-148,136-129 and 120.
842 Move back to using g-idl-generate to generate the metadata and
843 avoids dependency on a c compiler.
845 2008-04-22 Johan Dahlin <jdahlin@async.com.br>
847 * giscanner/girwriter.py:
848 * tools/g-ir-scanner:
849 Add an initial GIR writer and a --format option to g-ir-scanner
851 2008-04-21 Johan Dahlin <johan@gnome.org>
853 * giscanner/cgobject.py: Use ctypes.util.find_library to locate
854 gobject-2.0 and raise ImportError if not found.
856 * giscanner/gidlparser.py:
857 * giscanner/gidlwriter.py:
858 * giscanner/gobjecttreebuilder.py:
859 * tools/g-ir-scanner:
860 Add a --include argument to include types from other idls.
861 Add a minimalistic GIDL parser (just objects for now)
862 Implement resolving of external type references and use it to
863 resolve parent types, argument types and return types.
865 2008-04-21 Johan Dahlin <johan@gnome.org>
867 * giscanner/gidlwriter.py:
868 * giscanner/gobjecttreebuilder.py:
869 * giscanner/treebuilder.py:
870 Add support for properties.
871 Refactor Class/Interface support a bit, to share more code and
872 always initialize their method attribute to an empty list.
874 2008-04-21 Johan Dahlin <johan@gnome.org>
876 * giscanner/cgobject.py:
877 Add a workaround for a glib bug interface introspection bug
878 (object_interface_list_properties, object_class_list_properties):
879 Cast the return value to GParamSpec.
881 * tests/parser/Foo-expected.gidl: Update
882 * tests/parser/foo.c: Add a string property
884 * giscanner/gobjecttreebuilder.py:
885 After stripping namespaces, remove the original
886 item to avoid duplication (GtkButton struct and Button object)
888 2008-04-21 Johan Dahlin <johan@gnome.org>
890 * giscanner/gobjecttreebuilder.py:
891 * giscanner/treebuilder.py:
892 Strip namespaces before objects, so we'll export
893 GtkButton as Button in the gtk namespace
895 2008-04-21 Johan Dahlin <johan@gnome.org>
897 * giscanner/gidlwriter.py:
898 * giscanner/gobjecttreebuilder.py:
899 * giscanner/treebuilder.py:
900 Add constructors for object/boxed types.
902 2008-04-21 Johan Dahlin <johan@gnome.org>
904 * giscanner/gidlwriter.py:
905 * giscanner/gobjecttreebuilder.py:
906 Add support for boxed types
908 2008-04-21 Johan Dahlin <johan@gnome.org>
910 * giscanner/giscannermodule.c: Mark structures as const,
911 wrap SourceType.const_string.
913 * tests/parser/foo-object.h: Add a couple of constants.
915 * giscanner/gidlwriter.py:
916 * giscanner/gobjecttreebuilder.py:
917 * giscanner/treebuilder.py:
918 Add basic support for interfaces
920 * tools/g-ir-scanner:
921 Add -o/--output for writing to a file
923 2008-04-21 Havoc Pennington <hp@redhat.com>
925 * TODO: add some C API wishlist items I could think of quickly
927 2008-04-21 Johan Dahlin <jdahlin@async.com.br>
929 * giscanner/gidlwriter.py:
930 * giscanner/xmlwriter.py:
931 Add a simple api for writing tags which can be used
932 with the new 'with statement' in python 2.5
934 2008-04-21 Johan Dahlin <johan@gnome.org>
936 * giscanner/gobjecttreebuilder.py:
937 Strip namespace and object prefix from method names.
939 2008-04-21 Johan Dahlin <johan@gnome.org>
941 * tools/g-ir-scanner (main): Add --pkg option to pass in
942 pkg-config modules to get cflags from.
944 * giscanner/gidlwriter.py (GIDLWriter._write_method):
945 Avoid duplication, reuse function writer for methods.
947 2008-04-21 Johan Dahlin <jdahlin@async.com.br>
949 * giscanner/gidlwriter.py:
950 * giscanner/gobjecttreebuilder.py:
951 * giscanner/treebuilder.py:
952 * tools/g-ir-scanner:
953 Resolve libtool .la files.
954 Strip name spaces for methods.
957 2008-04-20 Johan Dahlin <jdahlin@async.com.br>
959 * giscanner/cgobject.py:
960 * giscanner/gidlwriter.py:
961 * giscanner/gobjecttreebuilder.py:
962 * giscanner/treebuilder.py:
963 Add support for classes and methods
965 2008-04-20 Johan Dahlin <johan@gnome.org>
967 * giscanner/gidlwriter.py:
968 * giscanner/gobjecttreebuilder.py:
969 * giscanner/odict.py:
970 Avoid conflicts, keep the output ordered similar to
971 the order of the input.
972 Add a simple ordered dictionary implemenation
974 2008-04-19 Johan Dahlin <johan@gnome.org>
976 * giscanner/cgobject.py:
977 * giscanner/gidlwriter.py:
978 * giscanner/gobjecttreebuilder.py:
979 * tools/g-ir-scanner:
980 Start introspecting get-type functions.
981 Implement support for GLib/GFlags GTypes.
982 Add a ctype based GObject binding.
984 2008-04-18 Johan Dahlin <jdahlin@async.com.br>
986 * giscanner/gidlwriter.py:
987 * giscanner/xmlwriter.py:
988 * tools/g-ir-scanner:
989 Add a simplistic gidl writer, which can't do too much.
991 2008-04-18 Johan Dahlin <johan@gnome.org>
993 * giscanner/sourcescanner.py:
994 * giscanner/treebuilder.py:
995 * tools/g-ir-scanner:
996 split tree building and source scanning interface to separate files.
998 2008-04-18 Johan Dahlin <johan@gnome.org>
1000 * tools/g-ir-scanner (Parameter.__init__): Start constructing
1002 - Add support for struct/parameter/return, start parsing of ctypes
1004 * giscanner/giscannermodule.c: wrap GISourceType.child_list and
1007 2008-03-31 Johan Dahlin <johan@gnome.org>
1009 * tools/g-ir-scanner:
1010 Start to build abstract syntax node of scanned sources.
1011 Add support for cpp options.
1013 2008-03-27 Johan Dahlin <johan@gnome.org>
1015 * giscanner/giscannermodule.c:
1016 * giscanner/scannerlexer.l:
1017 * giscanner/sourcescanner.c:
1018 * tools/g-ir-scanner:
1020 Add simple pre-processor using subprocess and a PIPE.
1021 Change the parse_file apis to accept a file descriptor.
1023 2008-03-25 Johan Dahlin <johan@gnome.org>
1025 * giscanner/__init__.py:
1026 * tools/g-ir-scanner:
1027 Fix a typo and add an example python test program.
1029 2008-03-25 Johan Dahlin <johan@gnome.org>
1031 * giscanner/__init__.py:
1032 * giscanner/giscannermodule.c:
1033 * giscanner/sourcescanner.c:
1034 * giscanner/sourcescanner.h:
1035 Add constants and wrap a few more SymbolType fields
1037 2008-03-25 Johan Dahlin <johan@gnome.org>
1041 * giscanner/__init__.py:
1042 * giscanner/giscannermodule.c:
1043 * giscanner/Makefile.am:
1045 Add initial python bindings for the scanner and
1046 depend on python 2.5.
1048 2008-03-25 Johan Dahlin <johan@gnome.org>
1052 * giscanner/Makefile.am:
1053 * giscanner/sourcescanner.c:
1054 * giscanner/sourcescanner.h:
1055 * tools/Makefile.am:
1056 * tools/grealpath.h:
1057 * tools/sourcescanner.c:
1058 * tools/sourcescanner.h:
1060 Move the scanner to a separate library.
1062 2008-03-23 Johan Dahlin <johan@gnome.org>
1064 * tools/Makefile.am:
1067 * tools/scannerlexer.l:
1068 * tools/scannerparser.y:
1069 * tools/sourcescanner.c:
1070 * tools/sourcescanner.h:
1071 Split out the source scanner from the generator.
1072 Rename the symbols used in the scanner to use the gi_ prefix.
1073 This should make it possible to use the raw C parser from
1076 2008-03-23 Johan Dahlin <johan@gnome.org>
1078 * tests/parser/Makefile.am (utility.gidl):
1079 * tests/parser/utility-expected.gidl:
1080 Pass in the gobject.gidl since we're defining a GObject.
1082 2008-03-12 Johan Dahlin <johan@gnome.org>
1084 * relaxng/relaxng.rng:
1085 Add a releaxng in relaxng we can use to validate the relaxngs
1088 2008-03-12 Jürg Billeter <j@bitron.ch>
1090 * tools/scanner.c: (g_igenerator_new):
1091 * tools/scannerparser.y:
1092 Fix compiler warnings.
1094 2008-03-12 Jürg Billeter <j@bitron.ch>
1098 * tools/scannerparser.y:
1099 Start fixing memory management in g-idl-scanner.
1101 2008-03-12 Rob Taylor <rob.taylor@codethink.co.uk>
1103 * tools/gidlcompilercontext.c: (write_compiled):
1104 Fix critical warning when no shlib passed to g-idl-compiler.
1106 2008-03-12 Johan Dahlin <johan@gnome.org>
1108 * tests/parser/utility-expected.gidl:
1109 * tests/parser/utility.h:
1110 Add a get_type-function, so the scanner actually
1111 parses it as an object.
1113 2008-03-12 Johan Dahlin <johan@gnome.org>
1115 * tools/gidlwriter.c (function_generate): Add missing trailing quote.
1118 * tests/parser/Foo-expected.gidl:
1119 * tests/parser/Makefile.am:
1120 * tests/parser/foo-object.h:
1121 * tests/parser/foo.c:
1122 * tests/parser/utility-expected.gidl:
1123 * tests/parser/utility.c:
1124 * tests/parser/utility.h:
1126 Add a new gidl test. 'utility.gidl', which is used to be able
1127 to test external type references. Add a reference to UtilityObject*
1130 2008-03-11 Johan Dahlin <johan@gnome.org>
1134 Remove most global variables
1136 2008-03-11 Philip Van Hoof <me@pvanhoof.be>
1138 * tools/scannerlexer.l:
1140 * tests/parser/Foo-expected.gidl:
1141 * tests/parser/foo.c:
1142 * tests/parser/Makefile.am:
1143 * tests/parser/foo-object.h:
1145 Added a few extra tests. Which resulted in finding a few
1146 bugs. Which resulted in me fixing those bugs
1148 2008-03-11 Rob Taylor <rob.taylor@codethink.co.uk>
1150 * tools/gidlcompilercontext.c: (g_idl_compiler_write_dir_entry),
1151 (g_idl_compiler_write_xref_entry), (g_idl_compiler_add_xref):
1152 Add some comments for strings into generated output for
1155 2008-03-11 Rob Taylor <rob.taylor@codethink.co.uk>
1157 * tools/gidlcompilercontext.c: (write_compiled):
1158 Write out the shlibs variable before writing out the strings
1159 length. Fixes compiler warning when using '-l' flag with
1162 2008-03-11 Johan Dahlin <johan@gnome.org>
1164 * tests/parser/Foo-expected.gidl:
1165 * tests/parser/foo-object.h:
1168 * tools/scannerlexer.l:
1169 Add support for parsing return arguments. Add support for
1170 caller-owns return types.
1171 Patch by Philip Van Hoof.
1173 * tools/scannerparser.y:
1174 Remove parsing of the @deprecated syntax used in headers.
1175 We will support gtk-doc deprecation in the future instead.
1177 2008-03-11 Johan Dahlin <johan@gnome.org>
1179 * tools/compiler.c (main): Coding style fixes
1181 2008-03-10 Johan Dahlin <johan@gnome.org>
1184 Add GCOV_LIBS to GILIBS
1186 2008-03-10 Johan Dahlin <johan@gnome.org>
1188 * tests/parser/Foo-expected.gidl:
1189 * tests/parser/foo.c:
1190 Rename null-ok to direction=out
1192 2008-03-10 Philip Van Hoof <me@pvanhoof.be>
1194 reviewed and extensively tested by Johan
1196 * tests/parser/Foo-expected.gidl:
1197 * tests/parser/foo-object.h:
1198 * tests/parser/foo.c:
1201 * tools/gidlwriter.c:
1204 * tools/scannerlexer.l:
1205 * tools/scannerparser.y:
1207 Add support for scanning for gtk-doc comments inside
1208 C source files. Add tests
1210 2008-03-10 Johan Dahlin <johan@gnome.org>
1212 * tests/parser/Makefile.am:
1213 * tests/parser/foo.c:
1216 * tools/scannerparser.y:
1217 Add an api to lex filenames.
1218 Lex all source .c files passed in on the command line.
1219 Scan sources in a test and a couple of private structures
1220 which should not be included in the generated gidl
1222 2008-03-10 Johan Dahlin <johan@gnome.org>
1224 * tests/invoke/Makefile.am: Make the generated metadata
1225 depend on the g-idl-compiler
1227 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1229 * tools/gidlmodule.c
1230 * tools/gidlmodule.h
1233 Remove the old g-idl-compiler code.
1236 2008-02-22 Mark Doffman <mark.doffman@codethink.co.uk>
1238 * tools/quote-file.sh
1241 Move to using the 'C' struct compiler code.
1243 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1245 * girepository/ginfo.c
1247 Change the way that external references with no namespace
1248 are dealt with. External references with no namespace
1249 are placed into the XML as-if they are a local reference.
1250 This is temporary, but helps with roundtrip tests.
1252 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1254 * girepository/ginfo.c
1255 Add the ability to get the value of a constant of
1256 type TYPE_TAG_SYMBOL. In the case of a symbol the value
1257 is provided as a string.
1259 This would deal properly with:
1260 typedef char* random;
1261 const random = "A string";
1263 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1265 * girepository/ginfo.c
1266 * girepository/girepository.h
1268 Add a function to check if an enum is registered or not.
1269 Previously anything testing this relied on the g-type
1270 string offset having a value of 0.
1272 * girepository/gmetadata.c
1273 * girepository/gmetadata.h
1275 Remove unneccesary or erroneous checks. There were two
1276 metadata validation checks which made sure that the blob
1277 sizes were the same as some magic numbers compiled into the code.
1278 This is wrong as it breaks any forwards compatibility that may
1281 Checks were also present that made sure that unregistered type
1282 blobs had a value of 0 in the g-type offset field. This is
1283 unneccessary. If a type blob is unregistered then any value
1284 in its g-type field is simply invalid.
1286 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1288 * girepository/ginfo.c
1289 * girepository/gmetadata.c
1290 * girepository/gmetadata.h
1292 Change the metadata format to have a standard header
1293 for all the type blobs. Merge the SimpleTypeBlob
1294 and InterfaceTypeBlob into a union. A union of these
1295 two blobs existed previously but was not explicit
1296 in the metadata format.
1298 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1300 * tools/gidlcompilercontext.c
1301 * tools/gidlcompilercontext.h
1302 * tools/gidlcompilerentrynode.c
1303 * tools/gidlcompilerentrynode.h
1304 * tools/gidlcompilertypenode.c
1305 * tools/gidlcompilertypenode.h
1307 Add code to compile a tree of GIdlNodes to
1308 a 'C' struct representing the metadata.
1309 This is to aid cross-compiling. Previously
1310 the g-idl-compiler created a binary blob with
1311 data written in the byte order and alignment
1312 of the tool rather than the intended target.
1314 Cleaned up and improved by Johan and Robert :-)
1316 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1318 * girepository/ginvoke.c
1319 * girepository/girepository.h
1320 * girepository/gmetadata.c
1321 * girepository/gmetadata.h
1323 * tools/gidlparser.c
1324 Modify TYPE_TAG_INTERFACE to TYPE_TAG_SYMBOL
1325 to avoid confusion with the interface blob.
1328 * tools/gidlparser.c
1329 Remove magic numbers and replace with type-tag
1330 enumeration symbols.
1332 * girepository/gmetadata.c
1333 Add validate declaration.
1335 2008-03-10 Jürg Billeter <j@bitron.ch>
1337 * tools/gidlparser.c: (parse_type_internal):
1338 * tools/scannerlexer.l:
1339 * tools/scannerparser.y:
1340 Support C99 _Bool type in scanner.
1342 2008-03-10 Jürg Billeter <j@bitron.ch>
1344 * tests/parser/Foo-expected.gidl:
1345 * tests/parser/foo-object.h:
1346 * tests/parser/foo.c: (foo_enum_method):
1347 * tools/scanner.c: (g_igenerator_process_function_symbol):
1348 Don't skip functions that are defined in the namespace of a type
1349 that doesn't support methods, as for example enums.
1351 2008-03-10 Johan Dahlin <johan@gnome.org>
1353 * gidl.dtd: Remove, we're using relaxng for now
1355 * tests/parser/Foo-expected.gidl:
1356 * tests/parser/foo-object.h:
1357 * tests/parser/foo.c:
1358 Rename the enum/flags get_type functions to include the whole type.
1360 2008-03-08 Marc-Andre Lureau <marcandre.lureau@gmail.com>
1362 * tools/gidlwriter.c (enum_generate): added "type-name",
1363 "get-type" and "deprecated" missing arguments.
1364 * tests/parser/Foo-expected.gidl:
1365 * tests/parser/foo-object.h: test enum type, and no type.
1367 2008-03-06 Johan Dahlin <jdahlin@async.com.br>
1370 Consistent checks, add missing 'test'
1372 2008-03-05 Havoc Pennington <hp@redhat.com>
1374 * configure.ac: Take advantage of a libffi.pc if one exists, as it
1375 does on Fedora 8. Make libffi a hard requirement, since it was in
1376 practice anyway (was not really conditional in the code or
1377 makefile, only in configure).
1379 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1381 reviewed by: Rob Taylor <rob.taylor@codethink.co.uk>
1382 reviewed by: Johan Dahlin <johan@gnome.org>
1384 * tests/Makefile.am:
1385 * tests/roundtrips.sh:
1386 Modify the roundtrips test so that they do not use the
1387 --raw option of the gidl compiler but instead compile a
1388 shared library to use with g_module.
1390 * tests/invoke/Makefile.am:
1391 * tests/invoke/invoke.c:
1392 Modify the invoke tests to build a shared library rather
1393 than use the --raw option.
1395 * tests/invoke/invoke-namespace-find.sh: Removed:
1396 Noone knows why this was here, so removed.
1398 2008-02-19 Rob Taylor <rob.taylor@codethink.co.uk>
1400 * tools/scanner.c: (g_igenerator_process_function_symbol):
1401 Move g_idl_node_can_have_member test later, as it broke spotting
1402 get_type's for nodes that can't have members.
1404 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
1407 * tools/gidlnode.c: (g_idl_node_can_have_member):
1408 Add g_idl_node_can_have_member.
1410 * tools/scanner.c: (g_igenerator_process_function_symbol):
1411 Use g_idl_node_can_have_member to test if we should add a function
1412 as a member of the type node.
1414 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
1416 * gidl/GLib.gidl: Renamed to gidl/gobject-2.0.gidl:
1418 * tests/parser/Makefile.am:
1419 Rename GLib.gidl to gobject-2.0.gidl and install in /usr/share/gidl.
1421 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
1423 * tools/scanner.c: (main):
1424 Ignore -pthread when passed to g-idl-scanner.
1426 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
1428 * tools/grealpath.h: Added:
1429 * tools/scanner.c: (main):
1430 * tools/scannerlexer.l:
1431 * tools/Makefile.am:
1432 Always use absolute paths with symbolic links resolved when
1433 comparing filenames.
1435 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
1437 * gobject-introspection.pc.in:
1438 Provide variables for g-idl-parser, scanner and compiler in the
1441 2008-02-13 Rob Taylor <rob.taylor@codethink.co.uk>
1444 * girepository/Makefile.am:
1445 * tools/Makefile.am:
1446 Rename GCOV_SOURCES to GCOVSOURCES to top automake complaining.
1448 2008-02-10 Johan Dahlin <johan@gnome.org>
1450 * tests/parser/Foo-expected.gidl:
1451 * tests/parser/foo-object.h:
1452 * tests/parser/foo.c: (foo_boxed_copy), (foo_boxed_free),
1453 (foo_boxed_get_type), (foo_boxed_new), (foo_boxed_method):
1456 2008-02-10 Johan Dahlin <johan@gnome.org>
1458 * tests/parser/Foo-expected.gidl:
1459 * tests/parser/foo-object.h:
1460 * tests/parser/foo.c: (foo_enum_get_type), (foo_flags_get_type):
1461 Add enum and flags test.
1463 2008-02-10 Johan Dahlin <johan@gnome.org>
1467 * girepository/Makefile.am:
1468 Make 'make distcheck' work again.
1470 2008-02-10 Johan Dahlin <johan@gnome.org>
1472 * m4/Makefile.am (EXTRA_DIST): its called as-compiler-flag.m4,
1475 * tests/parser/Makefile.am: Only create Foo.gidl when running make
1476 check, eg exclude it from BUILT_SOURCES.
1478 2008-02-08 Rob Taylor <rob.taylor@codethink.co.uk>
1483 * girepository/Makefile.am:
1484 * m4/Makefile.am: Added:
1485 * m4/as-compiler-flag.m4: Added:
1486 * m4/gcov.m4: Added:
1487 * tools/Makefile.am:
1488 Add ability to generate a coverage report.
1489 Adds configure option --enable-gcov and make rule 'check-coverage'.
1491 2008-02-08 Rob Taylor <rob.taylor@codethink.co.uk>
1495 * gidl/Makefile.am: Added:
1496 * girepository/Makefile.am: Added:
1497 * src/Makefile.am: Renamed to tools/Makefile.am:
1498 * src/compiler.c: Renamed to tools/compiler.c:
1499 * src/g-idl-offsets.pl: Renamed to tools/g-idl-offsets.pl:
1500 * src/generate.c: Renamed to tools/generate.c:
1501 * src/gidlmodule.c: Renamed to tools/gidlmodule.c:
1502 * src/gidlmodule.h: Renamed to tools/gidlmodule.h:
1503 * src/gidlnode.c: Renamed to tools/gidlnode.c:
1504 * src/gidlnode.h: Renamed to tools/gidlnode.h:
1505 * src/gidlparser.c: Renamed to tools/gidlparser.c:
1506 * src/gidlparser.h: Renamed to tools/gidlparser.h:
1507 * src/gidlwriter.c: Renamed to tools/gidlwriter.c:
1508 * src/gidlwriter.h: Renamed to tools/gidlwriter.h:
1509 * src/ginfo.c: Renamed to girepository/ginfo.c:
1510 * src/ginvoke.c: Renamed to girepository/ginvoke.c:
1511 * src/girepository.c: Renamed to girepository/girepository.c:
1512 * src/girepository.h: Renamed to girepository/girepository.h:
1513 * src/gmetadata.c: Renamed to girepository/gmetadata.c:
1514 * src/gmetadata.h: Renamed to girepository/gmetadata.h:
1515 * src/scanner.c: Renamed to tools/scanner.c:
1516 * src/scanner.h: Renamed to tools/scanner.h:
1517 * src/scannerlexer.l: Renamed to tools/scannerlexer.l:
1518 * src/scannerparser.y: Renamed to tools/scannerparser.y:
1519 * tests/invoke/Makefile.am:
1520 Split src/ into girepository/ and tools/
1524 * girepository/Makefile.am:
1525 * tests/Makefile.am:
1526 * tests/invoke/Makefile.am:
1527 * tests/parser/Makefile.am:
1528 * tests/roundtrips.sh:
1529 * tools/Makefile.am:
1530 Make distcheck work.
1532 2008-02-04 Rob Taylor <rob.taylor@codethink.co.uk>
1534 * tests/invoke/invoke.c: (main):
1535 * tests/invoke/testfns.c: (test6), (test7):
1536 * tests/invoke/testfns.xml:
1537 Add tests for invokation with a GList argument.
1538 Also tests caller-owns return values.
1540 2008-02-04 Rob Taylor <robtaylor@floopily.org>
1543 Add some documentation for GICallableInfo
1545 2008-02-01 Mark Doffman <mark.doffman@codethink.co.uk>
1548 Correct syntax errors in the DTD file.
1550 * relaxng/c-types.xml:
1551 * relaxng/g-types.xml:
1553 Add a RelaxNG specification for the GObject Introspection XML data.
1554 The Specification has validated all of the test files.
1556 2008-01-25 Rob Taylor <robtaylor@floopily.org>
1558 * tests/roundtrips.sh:
1559 * tests/struct.test:
1560 Add roundtrip tests for structs.
1562 2008-01-11 Johan Dahlin <johan@gnome.org>
1564 * src/scanner.c (g_igenerator_process_function_symbol):
1565 Refactor out g_idle_node_add_member.
1566 (create_node_from_gtype, create_node_from_ctype):
1567 Use case instead of if...else
1568 (get_type_from_type_id):
1569 Rename to create_node_from_gtype
1570 (get_type_from_ctype):
1571 Rename to create_node_from_ctype
1573 Rename ginode -> node, gitype -> type, gifunc -> func.
1575 * src/gidlnode.c (g_idl_node_add_member, g_idl_node_cmp):
1576 Two new functions, refactor out of scanner.c
1578 * src/scanner.c: (g_igenerator_process_function_symbol):
1579 * src/scannerlexer.l:
1580 Do not save the content of the deprecated variable, only
1583 2008-01-11 Johan Dahlin <johan@gnome.org>
1585 * tests/parser/foo-object.h: Add a couple of comment parser tests.
1587 2008-01-11 Jürg Billeter <j@bitron.ch>
1589 * src/scannerlexer.l:
1590 Fix GTK-Doc parsing.
1592 2008-01-11 Jürg Billeter <j@bitron.ch>
1594 * src/scannerlexer.l:
1595 Fix GTK-Doc parsing.
1597 2008-01-11 Jürg Billeter <j@bitron.ch>
1599 * src/scanner.c: (lookup_symbol):
1600 Return unresolved name if we find unknown symbol.
1602 2008-01-11 Jürg Billeter <j@bitron.ch>
1604 * src/scanner.c: (g_igenerator_generate):
1605 Initialize GObject to fix scanning interface properties.
1607 * tests/parser/Foo-expected.gidl:
1608 * tests/parser/foo-object.h:
1609 * tests/parser/foo.c: (foo_interface_get_type):
1610 Test interfaces with GObject prerequisite.
1612 * tests/parser/Makefile.am:
1613 Set G_DEBUG=fatal_warnings to abort test on warnings and criticals.
1615 2007-12-27 Johan Dahlin <johan@gnome.org>
1617 * src/scannerlexer.l:
1618 Parse gtk-doc comments.
1620 * src/gidlwriter.c: (function_generate):
1621 Reorganize, avoid duplication and add support for
1622 writing deprecated functions.
1624 * src/scannerparser.y:
1626 Add new structure CDirective and functions to create/free them.
1628 * src/scanner.c: (g_igenerator_process_function_symbol),
1629 (g_igenerator_process_unregistered_struct_typedef),
1630 (g_igenerator_process_struct_typedef),
1631 (g_igenerator_process_union_typedef),
1632 (g_igenerator_process_enum_typedef),
1633 (g_igenerator_process_function_typedef), (g_igenerator_add_symbol),
1634 (g_igenerator_start_preprocessor):
1635 Parse @deprecated directive for functions.
1636 Remove some more C99isms.
1637 Send in -C to cpp to avoid stripping comments.
1639 * tests/parser/foo-object.h:
1640 * tests/parser/Foo-expected.gidl:
1641 Add deprecated directive
1643 2007-12-27 Johan Dahlin <johan@gnome.org>
1645 * src/scannerlexer.l (intsuffix): Add emacs mode line and
1646 escape ' and " so it looks more like C.
1649 Unlink temporary file used.
1651 2007-12-27 Johan Dahlin <johan@gnome.org>
1653 * src/scanner.c: (g_igenerator_new), (g_igenerator_free),
1654 (g_igenerator_start_preprocessor), (main):
1656 * src/scannerparser.y:
1657 Plug a couple of simple memory leaks.
1659 2007-12-27 Johan Dahlin <johan@gnome.org>
1661 * src/scanner.c: (g_igenerator_parse_macros),
1662 (g_igenerator_start_preprocessor), (g_igenerator_set_verbose),
1665 * src/scannerparser.y:
1666 * tests/parser/Makefile.am:
1668 Improve error reporting, return when the preprocessor fails.
1669 Add a verbose parameter, to aid debugging.
1670 Revert to using a temporary file to communicate between the
1671 preprocessor and the parser, because we need to wait for
1672 the exit code from the pre-processor before starting to parse.
1674 2007-12-16 Johan Dahlin <jdahlin@async.com.br>
1676 * src/Makefile.am: Rename clexer.l to scannerlexer.l and
1677 cparser.y to scannerparser.y
1679 2007-12-11 Johan Dahlin <johan@gnome.org>
1683 * src/scanner.c: (g_igenerator_new):
1685 Get rid of the global the_generator variable.
1687 2007-12-10 Johan Dahlin <johan@gnome.org>
1689 * src/scanner.c (main): Add an output option,
1690 add checks for required parameters
1693 set BUILD_SOURCES and CLEANFILES properly
1695 * src/gidlwriter.c: (g_writer_write_inline), (g_writer_write),
1696 (g_writer_write_indent), (g_writer_write_unindent),
1697 (field_generate), (value_generate), (constant_generate),
1698 (property_generate), (function_generate), (vfunc_generate),
1699 (signal_generate), (interface_generate), (struct_generate),
1700 (union_generate), (boxed_generate), (enum_generate),
1701 (node_generate), (g_writer_write_module), (g_idl_writer_save_file):
1703 * src/scanner.c: (g_igenerator_generate):
1705 * src/scannerwriter.c:
1707 Refactor scannerwriter to only be tied to a GIdlModule and move
1708 it (again!) to gidlwriter.c. Change the writer function to take
1711 2007-12-10 Johan Dahlin <johan@gnome.org>
1714 * src/scanner.c: (g_igenerator_generate):
1716 * src/scannerwriter.c: (g_igenerator_write_inline),
1717 (g_igenerator_write), (g_igenerator_write_indent),
1718 (g_igenerator_write_unindent), (field_generate), (value_generate),
1719 (constant_generate), (property_generate), (function_generate),
1720 (vfunc_generate), (signal_generate), (interface_generate),
1721 (struct_generate), (union_generate), (boxed_generate),
1722 (enum_generate), (node_generate), (module_generate),
1723 (g_scanner_write_file):
1725 Move the scanner gidl writing to a separate source file.
1727 2007-12-10 Johan Dahlin <johan@gnome.org>
1732 Move over all CType construction functions.
1734 * tests/parser/Makefile.am:
1735 Be verbose when printing parsing tests results.
1737 2007-12-10 Johan Dahlin <johan@gnome.org>
1739 * src/scanner.c (g_igenerator_start_preprocessor): Refactor
1740 preprocessor handling to here. Start cpp insteado of cc -E,
1741 always include -U__GNUC__, since it's specific to the preprocessor
1744 * tests/parser/Makefile.am (check-local): Silent diff and skip
1745 -U__GNUC__ which is always defined now
1747 2007-12-10 Johan Dahlin,,, <jdahlin@plasttroll>
1749 reviewed by: <delete if not using a buddy>
1751 * src/scanner.c: (g_igenerator_start_preprocessor), (main):
1752 * tests/parser/Makefile.am:
1754 2007-12-09 Johan Dahlin <johan@gnome.org>
1757 Use GOption for command line options.
1758 (g_igenerator_new, main): Simplify constructor and they way
1759 parameters are passed into it.
1765 * src/gen-introspect.c:
1766 * src/gen-introspect.h:
1768 Rename gen-introspect.[ch] to scanner.[ch]
1770 2007-12-09 Johan Dahlin <johan@gnome.org>
1774 * src/Makefile.am: Rename gen-introspect to g-idl-scanner,
1775 don't make the repository library and the other utilites link against
1778 * src/gen-introspect.c: (g_igenerator_create_object),
1779 (g_igenerator_create_interface), (g_igenerator_create_boxed),
1780 (g_igenerator_create_enum), (g_igenerator_create_flags),
1781 (g_igenerator_process_module_symbol),
1782 (g_igenerator_process_module), (g_igenerator_generate), (main):
1783 * src/gen-introspect.h:
1784 Refactor g_igenerator_process_types into smaller pieces.
1786 * tests/parser/Makefile.am:
1787 Depend on the gen-introspect binary
1789 2007-12-09 Johan Dahlin <johan@gnome.org>
1791 * src/gen-introspect.c (g_igenerator_process_types):
1792 Break into smaller pieces, one for each generated node type.
1794 2007-12-08 Johan Dahlin <johan@gnome.org>
1796 * src/gen-introspect.c: (g_igenerator_process_types),
1797 (g_igenerator_add_module):
1798 * tests/parser/Foo-expected.gidl:
1799 * tests/parser/foo-object.h:
1800 * tests/parser/foo.c: (foo_subobject_class_init),
1801 (foo_subobject_init):
1803 Add a subobject test and make sure to register defined classes
1804 in the lookup symbol hash table.
1806 2007-12-08 Johan Dahlin <johan@gnome.org>
1810 * src/gen-introspect.c: (g_igenerator_new), (lookup_symbol),
1811 (g_igenerator_process_types), (g_igenerator_add_module),
1812 (g_igenerator_add_include_idl), (main):
1813 * src/gen-introspect.h:
1814 * tests/parser/Makefile.am:
1815 * tests/parser/Foo-expected.gidl:
1817 Change the gen-introspect to generate namespaced module names,
1818 such as GLib.Object instead of GObject.
1819 Add a GLib.gidl which introduces GLib.Object and GLib.InitiallyUnowned,
1820 add a --include-idl parameter to gen-introspect,
1821 and update the parser test.
1823 2007-12-08 Johan Dahlin <johan@gnome.org>
1825 * src/gen-introspect.c:
1826 Move main to the end of the file and attempt to make it valid
1829 * tests/parser/Makefile.am (BUILT_SOURCES): Remove .repo here,
1830 we're not quite ready to generate metadata yet.
1835 Add a simple gen-introspect parser test
1837 2007-12-06 Gustavo J. A. M. Carneiro <gjc@gnome.org>
1839 reviewed by: Johan Dahlin <johan@gnome.org>
1842 * gobject-introspection.pc.in:
1844 * src/compiler.c: (format_output), (write_out_metadata), (main):
1845 * src/gen-introspect.c: (main):
1846 * src/gen-introspect.h:
1847 * src/generate.c: (write_callable_info), (write_repository),
1848 (load_metadata), (main):
1849 * src/gidlmodule.c: (g_idl_module_new),
1850 (g_idl_module_build_metadata):
1852 * src/gidlparser.c: (start_element_handler):
1853 * src/ginfo.c: (g_info_new), (g_info_from_entry),
1854 (g_base_info_get_name), (g_base_info_get_namespace),
1855 (g_base_info_is_deprecated), (g_base_info_get_annotation),
1856 (g_base_info_get_metadata), (g_function_info_get_symbol),
1857 (g_function_info_get_flags), (g_function_info_get_property),
1858 (g_function_info_get_vfunc), (signature_offset), (g_type_info_new),
1859 (g_callable_info_may_return_null),
1860 (g_callable_info_get_caller_owns), (g_callable_info_get_n_args),
1861 (g_callable_info_get_arg), (g_arg_info_get_direction),
1862 (g_arg_info_is_return_value), (g_arg_info_is_dipper),
1863 (g_arg_info_is_optional), (g_arg_info_may_be_null),
1864 (g_arg_info_get_ownership_transfer), (g_type_info_is_pointer),
1865 (g_type_info_get_tag), (g_type_info_get_param_type),
1866 (g_type_info_get_interface), (g_type_info_get_array_length),
1867 (g_type_info_is_zero_terminated),
1868 (g_type_info_get_n_error_domains), (g_type_info_get_error_domain),
1869 (g_error_domain_info_get_quark), (g_error_domain_info_get_codes),
1870 (g_value_info_get_value), (g_field_info_get_flags),
1871 (g_field_info_get_size), (g_field_info_get_offset),
1872 (g_registered_type_info_get_type_name),
1873 (g_registered_type_info_get_type_init),
1874 (g_struct_info_get_n_fields), (g_struct_info_get_field),
1875 (g_struct_info_get_n_methods), (g_struct_info_get_method),
1876 (find_method), (g_struct_info_find_method),
1877 (g_enum_info_get_n_values), (g_enum_info_get_value),
1878 (g_object_info_get_parent), (g_object_info_get_type_name),
1879 (g_object_info_get_type_init), (g_object_info_get_n_interfaces),
1880 (g_object_info_get_interface), (g_object_info_get_n_fields),
1881 (g_object_info_get_field), (g_object_info_get_n_properties),
1882 (g_object_info_get_property), (g_object_info_get_n_methods),
1883 (g_object_info_get_method), (g_object_info_find_method),
1884 (g_object_info_get_n_signals), (g_object_info_get_signal),
1885 (g_object_info_get_n_vfuncs), (g_object_info_get_vfunc),
1886 (g_object_info_get_n_constants), (g_object_info_get_constant),
1887 (g_interface_info_get_n_prerequisites),
1888 (g_interface_info_get_prerequisite),
1889 (g_interface_info_get_n_properties),
1890 (g_interface_info_get_property), (g_interface_info_get_n_methods),
1891 (g_interface_info_get_method), (g_interface_info_find_method),
1892 (g_interface_info_get_n_signals), (g_interface_info_get_signal),
1893 (g_interface_info_get_n_vfuncs), (g_interface_info_get_vfunc),
1894 (g_interface_info_get_n_constants),
1895 (g_interface_info_get_constant), (g_property_info_get_flags),
1896 (g_signal_info_get_flags), (g_signal_info_get_class_closure),
1897 (g_signal_info_true_stops_emit), (g_vfunc_info_get_flags),
1898 (g_vfunc_info_get_offset), (g_vfunc_info_get_signal),
1899 (g_constant_info_get_value), (g_union_info_get_n_fields),
1900 (g_union_info_get_field), (g_union_info_get_n_methods),
1901 (g_union_info_get_method), (g_union_info_is_discriminated),
1902 (g_union_info_get_discriminator_offset),
1903 (g_union_info_get_discriminator):
1904 * src/ginvoke.c: (g_function_info_invoke):
1905 * src/girepository.c: (g_irepository_register),
1906 (g_irepository_unregister), (g_irepository_get_default),
1907 (count_interfaces), (g_irepository_get_n_infos), (find_interface),
1908 (g_irepository_get_info), (g_irepository_find_by_name),
1909 (g_irepository_get_shared_library),
1910 (g_irepository_build_search_path), (g_irepository_register_file),
1911 (g_irepository_error_quark):
1912 * src/girepository.h:
1913 * src/gmetadata.c: (g_metadata_get_dir_entry),
1914 (g_metadata_check_sanity), (validate_header),
1915 (validate_array_type_blob), (validate_iface_type_blob),
1916 (validate_param_type_blob), (validate_error_type_blob),
1917 (validate_type_blob), (validate_arg_blob),
1918 (validate_signature_blob), (validate_function_blob),
1919 (validate_callback_blob), (validate_constant_blob),
1920 (validate_value_blob), (validate_field_blob),
1921 (validate_property_blob), (validate_signal_blob),
1922 (validate_vfunc_blob), (validate_struct_blob),
1923 (validate_enum_blob), (validate_object_blob),
1924 (validate_interface_blob), (validate_errordomain_blob),
1925 (validate_union_blob), (validate_blob), (validate_directory),
1926 (validate_annotations), (g_metadata_validate), (_g_metadata_init),
1927 (g_metadata_new_from_memory), (g_metadata_new_from_const_memory),
1928 (g_metadata_new_from_mapped_file), (g_metadata_free),
1929 (g_metadata_set_module), (g_metadata_get_namespace):
1931 * tests/Makefile.am:
1932 * tests/invoke/Makefile.am:
1933 * tests/invoke/invoke-namespace-find.sh:
1934 * tests/invoke/invoke.c: (main):
1936 Add a namespace/shared library mapping. fixes #313268.
1938 2007-12-03 Johan Dahlin <johan@gnome.org>
1940 * src/gidlparser.c (parse_type_internal): Disable char/gchar and
1943 2007-11-30 Jürg Billeter <j@bitron.ch>
1949 * src/gen-introspect.c: (g_idl_node_cmp), (g_igenerator_new),
1950 (g_igenerator_write_inline), (g_igenerator_write),
1951 (g_igenerator_write_indent), (g_igenerator_write_unindent),
1952 (field_generate), (value_generate), (constant_generate),
1953 (property_generate), (function_generate), (vfunc_generate),
1954 (signal_generate), (interface_generate), (struct_generate),
1955 (union_generate), (boxed_generate), (enum_generate),
1956 (node_generate), (module_generate), (get_type_from_type_id),
1957 (str_replace), (g_igenerator_process_properties),
1958 (g_igenerator_process_signals), (g_igenerator_process_types),
1959 (get_type_from_ctype), (g_igenerator_process_function_symbol),
1960 (g_igenerator_process_unregistered_struct_typedef),
1961 (g_igenerator_process_struct_typedef),
1962 (g_igenerator_process_union_typedef),
1963 (g_igenerator_process_enum_typedef),
1964 (g_igenerator_process_function_typedef),
1965 (g_igenerator_process_constant), (g_igenerator_process_symbols),
1966 (g_igenerator_add_symbol), (g_igenerator_is_typedef),
1967 (g_igenerator_generate), (main), (csymbol_new),
1968 (csymbol_get_const_boolean), (ctype_new), (ctype_copy),
1969 (cbasic_type_new), (ctypedef_new), (cstruct_new), (cunion_new),
1970 (cenum_new), (cpointer_new), (carray_new), (cfunction_new),
1971 (eat_hspace), (eat_line), (read_identifier),
1972 (g_igenerator_parse_macros):
1973 * src/gen-introspect.h:
1975 Import gen-introspect to generate introspection information by
1978 2007-11-30 Jürg Billeter <j@bitron.ch>
1980 * src/gidlnode.c: (g_idl_node_new): support creating callback nodes
1982 2007-11-30 Jürg Billeter <j@bitron.ch>
1984 * src/gidlparser.c: (end_element_handler): Don't leave requires
1987 2007-11-29 Johan Dahlin <johan@gnome.org>
1989 * src/gidlparser.c (parse_type_internal): Add char,
1990 gchar and guchar to the builtin types.
1992 2007-11-26 Johan Dahlin <johan@gnome.org>
1994 * src/ginfo.c: (g_object_info_get_type_name),
1995 (g_object_info_get_type_init):
1996 * src/girepository.c: (g_irepository_is_registered):
1997 * src/girepository.h:
1999 Add g_object_info_get_type_name, g_object_info_get_type_init and
2000 g_irepository_is_registered.
2002 2006-08-14 Jürg Billeter <j@bitron.ch>
2004 * src/gidlparser.c: (end_element_handler): Don't leave
2005 namespace and implements states too early.
2008 2007-11-26 Johan Dahlin <johan@gnome.org>
2010 * src/gmetadata.c (validate_struct_blob):
2011 pass blob_type to validate_function_blob instead of
2012 hard-coding BLOB_TYPE_STRUCT.
2014 Patch by Torsten Schoenfeld, fixes #314190
2016 2006-10-03 Torsten Schoenfeld <tsch@cvs.gnome.org>
2018 * src/compiler.c, src/generate.c, src/gidlnode.c,
2019 src/gidlparser.c, src/ginfo.c, src/girepository.c,
2020 tests/invoke/invoke.c, test/invoke/testfns.c: Hush compiler
2021 warnings about return values, signedness mismatches, unused
2022 variables, and unhandles enum values in switch statements.
2024 * tests/invoke/Makefile.am: Don't install the invoke test program.
2025 Add -I ../../src to the cflags used for the test functions files.
2027 2005-08-31 Torsten Schoenfeld <tsch@cvs.gnome.org>
2029 * src/girepository.h: Export g_invoke_error_quark.
2031 2005-08-31 Torsten Schoenfeld <tsch@cvs.gnome.org>
2033 * src/ginvoke.c: Remove the fallback implementation of
2034 g_function_info_invoke since we now formally depend on libffi.
2036 2005-07-25 Matthias Clasen <mclasen@redhat.com>
2038 * src/Makefile, tests/Makefile, tests/invoke/Makefile:
2039 Remove these files from cvs, as they are now generated.
2041 * src/gmetadata.c (validate_iface_type_blob): Don't
2042 complain if blob->pointer is not set, since that
2043 happens for enum and flag types. (#308935, Gustavo
2046 * Commit an autoconf-conversion patch by
2047 Gustavo Carneiro (#308708)
2049 2005-05-24 Matthias Clasen <mclasen@redhat.com>
2051 * src/compiler.c (main): Use it here to validate
2052 the generated metadata.
2054 * src/gmetadata.[hc]: Add code to validate a
2057 * metadata-format.txt: Updates
2059 2005-05-22 Matthias Clasen <mclasen@redhat.com>
2061 * tests/*: Add struct offsets to field and vfunc
2064 * src/generate.c (write_vfunc_info): Write offset
2065 information for vfuncs.
2067 * src/gidlnode.c (g_idl_node_build_metadata): Write
2068 the struct offsets into the metadata.
2070 * src/gidlparser.c: Parse the offset attributes of
2071 field and vfunc elements.
2073 * src/gidlnode.h: Add offset members to field and
2076 2005-05-21 Matthias Clasen <mclasen@redhat.com>
2080 * gidl.dtd: Updates.
2082 * src/g-idl-offsets.pl: A perl script which reads a .gidl
2083 file, creates, compiles and runs a C file, and folds the
2084 resulting struct offsets back into the .gidl file.
2086 2005-05-20 Matthias Clasen <mclasen@redhat.com>
2088 * src/gidlparser.c (start_field): Make fields in objects
2091 * src/gidlmodule.c: Include string.h
2096 * metadata-format.txt: Cleanup basic types.
2097 * src/*: Adapt to the changes.
2098 * tests/*: Adapt to the changes.
2099 * examples/gdk-pixbuf.gidl: Adapt to the changes.
2101 * src/gidlnode.c (g_idl_node_get_size): Report the correct
2102 size for enum blobs.
2103 (g_idl_node_get_full_size): Report the correct size for
2106 * src/gidlmodule.c (g_idl_module_build_metadata): Add some
2107 error checking for blob sizes.
2109 2005-05-19 Matthias Clasen <mclasen@redhat.com>
2111 * src/gidlnode.c (g_idl_node_build_metadata): Correctly handle
2112 interface types for which is_pointer is FALSE, e.g. enums.
2114 * src/gidlnode.c (g_idl_node_get_full_size)
2115 * src/gidlparser.c (parse_type_internal):
2116 * src/generate.c (write_type_info): Support unspecialized
2117 lists, hashtables and errors. Also emit a '*' after these.
2121 2005-05-17 Matthias Clasen <mclasen@redhat.com>
2125 * metadata-format.txt: Cleanups by Maciej Katafiasz.
2127 2005-05-15 Matthias Clasen <mclasen@redhat.com>
2129 * src/*.c: Change the directory to be addressed by
2130 1-based indexes, and use an index of zero to mean
2133 2005-05-15 Matthias Clasen <mclasen@redhat.com>
2135 * tests/roundtrips.sh (SIMPLE_TESTS): Add union.test.
2137 * tests/union.test: Add a union test.
2139 * src/generate.c: Handle unions.
2141 * src/girepository.h:
2142 * src/ginfo.c: Add GIUnionInfo and functions to access it.
2144 * src/gidlnode.c: Handle GIdlNodeUnion nodes.
2146 * src/gidlparser.c (start_union): Parse <union> elements.
2148 * src/gidlnode.h: Add a GIdlNodeUnion.
2150 * gidl.dtd: Add a <union> element.
2152 * src/gmetadata.c (g_metadata_check_sanity): Check
2155 * src/gmetadata.h: Add union_blob_size to Header,
2158 * metadata-format.txt: Add a UnionBlob.
2160 2005-05-13 Matthias Clasen <mclasen@redhat.com>
2162 * tests/*: Update testcases.
2164 * src/generate.c (write_callable_info): Don't forget to
2165 write transfer and null-ok attributes for return types
2168 * src/girepository.h:
2169 * src/ginfo.c (g_callable_info_may_return_null):
2170 New function to find out if a function may return NULL.
2172 * src/compiler.c (format_output): Make the generated
2175 * README: Point to a recent libffi snapshot.
2177 * tests/invoke/*: Some invoke tests.
2179 * src/Makefile: Add ginvoke.c and the necessary
2182 * src/girepository.h (g_function_info_invoke): Add
2185 * src/ginvoke.c (g_function_info_invoke): Initial
2186 implementation of invoke functionality based on libffi.
2188 * src/gidlnode.c (g_idl_node_build_metadata): Pass the
2189 strings and types hash tables in the right order when
2191 (find_entry_node): Free the name parts.
2193 2005-05-12 Johan Dahlin <johan@gnome.org>
2195 * src/generate.c: Generate consistent end tags.
2199 2005-05-12 Matthias Clasen <mclasen@redhat.com>
2203 * src/gidlparser.c (start_function): Actually add
2204 methods to objects. (Steven Walter)
2206 * src/girepository.h:
2207 * src/ginfo.c: Rename Transfer and Direction to
2208 GITransfer and GIDirection. (Torsten Schoenfeld)
2210 * tests/*: Make tests work with the changes in name
2213 * src/gidlnode.c (find_entry_node): Parse qualified
2214 names and generate xref nodes for them if needed. Don't
2215 require all modules to be loaded any more.
2217 * src/gidlmodule.c (g_idl_module_build_metadata): Choke
2220 * src/ginfo.c (g_object_info_get_parent): Return NULL
2221 if blob->parent is 0. Still need to make sure index
2224 * src/generate.c: Generate qualified names when
2225 referring to non-local types. Emit transfer attribute
2228 * src/compiler.c (format_output): Put the function
2229 attributes where gcc accepts them.
2231 2005-05-11 Matthias Clasen <mclasen@redhat.com>
2233 * src/compiler.c (main): Add a --verbose cmdline option
2234 and only log messages if it is specified.
2237 * src/gidlnode.c (init_stats, dump_stats): Collect some
2238 statistics on string and type sharing.
2240 * src/gidlmodule.c (g_idl_module_build_metadata): Use
2241 g_message() instead of fprintf().
2243 * src/gidlnode.c (g_idl_node_free): Make this more robust.
2244 (g_idl_node_get_size): Implement for structs.
2245 (g_idl_node_get_full_size): Handle parent being NULL.
2246 (serialize_type): Handle lookup failures more gracefully.
2248 2005-05-10 Matthias Clasen <mclasen@redhat.com>
2250 * src/gidlnode.c (g_idl_node_get_full_size): Correct the
2251 size calculation for 2-parameter types and for objects.
2253 * src/compiler.c: Add a cmdline option for debug output
2254 and install a log handler to implement it.
2255 * src/gidlnode.c: Add some debug spew.
2259 * src/gidlmodule.c (g_idl_module_build_metadata): Don't
2260 forget to count the module name when calculating the
2261 required size for the metadata.
2264 * src/gidlparser.c: Fix compiler warnings.
2266 2005-05-09 Matthias Clasen <mclasen@redhat.com>
2268 * src/compiler.c (main): Free the option context.
2270 * gidl.dtd: Clean up handling of names. All elements
2271 have a "name", only the elements corresponding to
2272 actual callable functions (function, method, constructor),
2273 have an additional "symbol" attribute holding the
2274 dlsym()-able function name.
2276 * src/generate.c: Adapt to generate xml matching the
2280 * src/gidlnode.c: Adapt to parse the new dtd.
2282 * tests/*.test: Adjust to the new dtd.
2284 * metadata-format.txt:
2285 * src/gmetadata.h: Remove the short_name field
2287 * src/gmetadata.c: Shrink size of ValueBlob to 12.
2288 * src/girepository.h:
2289 * src/ginfo.c (g_value_info_get_short_name): Removed
2291 2005-05-09 Matthias Clasen <mclasen@redhat.com>
2293 * gidl.dtd: Allow constructors for boxed types,
2294 patch by Jonathan Blandford.
2297 2005-05-09 Matthias Clasen <mclasen@redhat.com>
2299 * --- Initial import ---