1 2008-08-20 Johan Dahlin <johan@gnome.org>
3 * tests/scanner/Foo-expected.gir:
4 * tests/scanner/Makefile.am:
5 * tests/scanner/drawable-expected.gir:
6 * tests/scanner/drawable.c (test_drawable_class_init),
8 * tests/scanner/drawable.h:
9 * tests/scanner/foo-object.h:
10 * tests/scanner/foo.c (foo_boxed_method):
11 Move the drawable parts out of Foo to its own test.
13 2008-08-20 Johan Dahlin <johan@gnome.org>
15 * tests/scanner/Foo-expected.gir:
16 * tests/scanner/foo-object.h:
17 * tests/scanner/foo.c (foo_drawable_class_init),
19 Add a based on GdkDrawable which generates
22 2008-08-19 Colin Walters <walters@verbum.org>
24 * giscanner/transformer.py: Don't try
25 to strip prefix before namespace.
27 2008-08-19 Johan Dahlin <johan@gnome.org>
29 * giscanner/transformer.py:
30 * tests/scanner/Foo-expected.gir:
31 * tests/scanner/foo-object.h:
32 Add support for typedef void foo type of
35 2008-08-19 Johan Dahlin <johan@gnome.org>
38 * giscanner/girwriter.py:
39 * giscanner/glibtransformer.py:
40 * giscanner/transformer.py:
41 * tests/scanner/Foo-expected.gir:
42 Add basic support for union, base the code much
43 on Struct. Add a testcase.
45 2008-08-19 Johan Dahlin <johan@gnome.org>
47 * tests/scanner/Foo-expected.gir:
48 * tests/scanner/foo-object.h:
49 Add a union testcase which the compiler currently
52 2008-08-19 Johan Dahlin <johan@gnome.org>
54 * gobject-introspection-1.0.pc.in:
55 Add a g_ir_compiler variable
57 2008-08-19 Colin Walters <walters@verbum.org>
59 * giscanner/ast.py: Rework types to be more closely
61 * giscanner/girparser.py: Parse more bits.
62 * giscanner/girwriter.py: Write sequences in a new
63 way that specifies container type.
64 * giscanner/glibast.py: Adjust for ast.py changes,
65 add 'ctype' property to GLibObject and GLibInterface
66 so we can look things up by it later.
67 * gicanner/transformer.py: Names is new class holding
68 the various namespaces we manage. Do not confuse
69 with Namespace which is toplevel XML node effectively.
70 Rework all type resolution to go through
72 * giscanner/glibtransformer.py: Raise UnknownTypeError
73 instead of ValueError for cleanliness. Add Unresolved
74 class to mark types whose parent we haven't seen yet.
75 Use new Names object from transformer.py.
76 Correctly look up parent=.
77 Fix type validation to handle sequences.
78 * tests/scanner/Foo-expected.gir: Update for sequence
79 work, int instead of int32.
80 * tools/g-ir-scanner: Add --noclosure option
81 * gir/Makefile.am: Use --noclosure by default for
84 2008-08-18 Johan Dahlin <johan@gnome.org>
86 * gir/gio-2.0-good.gir:
87 * gir/glib-2.0-good.gir:
88 * gir/gobject-2.0-good.gir:
91 2008-08-18 Johan Dahlin <johan@gnome.org>
94 * giscanner/girparser.py:
95 * giscanner/girwriter.py:
96 * giscanner/glibast.py:
97 * giscanner/glibtransformer.py:
98 * giscanner/transformer.py:
99 * tests/scanner/Foo-expected.gir:
100 * tests/scanner/foo-object.h:
101 * tests/scanner/utility-expected.gir:
102 * tests/scanner/utility.h:
103 Redo type resolving and validation.
104 Add a couple of new tests.
105 Patch mostly written by Colin.
107 2008-08-18 Johan Dahlin <johan@gnome.org>
110 * giscanner/girparser.py:
112 * giscanner/transformer.py:
113 Improve enum parsing for enums without a GType.
114 Make flags/enum references to other girs work
115 * giscanner/utils.py:
117 * tests/scanner/Makefile.am:
118 * tests/scanner/foo-object.h:
119 * tests/scanner/utility-expected.gir:
120 * tests/scanner/utility.h:
121 Add a new test for external enum references
123 2008-08-18 Johan Dahlin <johan@gnome.org>
125 * docs/global-module-registry.txt: Update
127 * tests/array.gir: Update with new type proposal
129 * girepository/girepository.c (g_type_tag_to_string):
130 * girepository/girepository.h:
131 * girepository/girnode.c (g_ir_node_get_full_size_internal),
133 * girepository/girnode.h:
134 Make enum serializing functions public. Clean up some whitespace.
136 2008-08-17 Johan Dahlin <johan@gnome.org>
138 * docs/global-module-registry.txt:
139 Add a document for an on disk module registry format
141 2008-08-17 Johan Dahlin <johan@gnome.org>
144 * gir/gio-2.0-good.gir:
147 2008-08-17 Johan Dahlin <johan@gnome.org>
150 * gir/glib-2.0-good.gir:
151 * gir/gobject-2.0-good.gir:
152 * giscanner/cgobject.py:
153 * giscanner/glibtransformer.py:
154 Regenerate GObject & GType.
155 Avoid warnings when generating gobject-2.0.gir.
156 Introspect a little more, and skip *_get_type functions.
158 2008-08-17 Colin Walters <walters@verbum.org>
160 * gir/glib-2.0.gir, gir/gobject-2.0.gir:
161 Rename to -good, always generate during build.
162 * gir/Makefile.am: Ensure .gir files dep on
164 * Makefile.am: Switch build order to ensure
165 the scanner is ready before we do gir/.
166 * tools/g-ir-scanner: Look for .git too.
168 2008-08-17 Johan Dahlin <johan@gnome.org>
170 * girepository/gtypelib.c (validate_enum_blob):
171 * giscanner/glibtransformer.py:
172 * giscanner/transformer.py:
173 Remove resolve_possible_typedefs, it was unused.
174 Allow multiple enum values of the sample value in an enum,
175 since it's actually pretty common.
176 Register enums so they can be resolved too.
178 2008-08-16 Johan Dahlin <johan@gnome.org>
180 * giscanner/girparser.py:
181 Parse enumeration/bitfield.
183 2008-08-16 Johan Dahlin <johan@gnome.org>
185 * giscanner/girparser.py:
188 2008-08-16 Johan Dahlin <johan@gnome.org>
190 * giscanner/glibtransformer.py:
191 Resolve type names for alias targets
192 * giscanner/transformer.py:
193 Skip FILE* parameters fow now
195 2008-08-16 Johan Dahlin <johan@gnome.org>
198 * gir/gobject-2.0.gir:
201 * tests/scanner/Makefile.am:
204 2008-08-15 Colin Walters <walters@verbum.org>
206 * giscanner/glibtransformer.py: Explicitly construct
207 new list, since we're deleting as we iterate.
208 Don't delete all structures which end in Class; just
209 ones which have a paired GObject.
210 Fix printing of type warning.
211 * giscanner/transformer.py: Make strip_namespace_object
212 be the identity function if it doesn't match the
215 2008-08-15 Colin Walters <walters@verbum.org>
217 * giscanner/cgobject.py: Define yet more argument
218 prototypes; fix prototype for g_type_fundamental.
220 2008-08-14 Johan Dahlin <johan@gnome.org>
223 * tests/constant.gir:
226 * tools/generate.c (write_struct_info):
227 Fix generator for constant/gobject/struct
229 2008-08-14 Johan Dahlin <johan@gnome.org>
233 * tools/generate.c (write_enum_info):
234 Fix generation of enum/bitfields
236 2008-08-14 Johan Dahlin <johan@gnome.org>
238 * girepository/girparser.c (start_field), (start_constant),
239 (start_type), (end_element_handler):
240 Clear up constant parsing
245 * tools/generate.c (write_callable_info), (write_function_info),
246 (write_callback_info), (write_constant_info), (write_signal_info),
247 (write_vfunc_info), (write_property_info), (write_object_info),
248 (write_interface_info):
249 Constants/Signals are handled now.
251 2008-08-14 Johan Dahlin <johan@gnome.org>
253 * girepository/girparser.c (start_type):
254 Don't require c:type.
258 Update, remove parts we don't support yet
259 * tests/roundtrips.sh:
261 * tools/generate.c (write_type_info), (write_field_info),
262 (write_callable_info), (write_struct_info):
263 Make it emit proper gir.
265 2008-08-14 Johan Dahlin <johan@gnome.org>
267 * giscanner/transformer.py:
268 New internal function for adding a new node.
270 2008-08-14 Johan Dahlin <johan@gnome.org>
273 Define an internal _H_ variable so we skip parsing both
274 i18n headers, only one is needed.
276 Add the glib-2.0.gir too.
277 * giscanner/glibast.py:
278 Add gconstpointer as an alias for ANY
279 * giscanner/transformer.py:
280 Do not lower case enumeration names per se.
281 Skip functions which has parameters called 'va_list'
283 2008-08-14 Colin Walters <walters@verbum.org>
285 * giscanner/transformer.py: Comment data structures.
286 Also squash pointers in resolve_type_name to correspond
287 with what we do for params.
288 * giscanner/glibtransformer.py: Print warnings in more
289 situations. Rework checks for method/constructor to
290 look up in our GType database instead of just checking
291 for *. Avoid generating <record> for GObject which
292 duplicate the <class>.
293 * gir/Makefile.am: Generate glib-2.0.gir and gobject-2.0.gir
296 2008-08-14 Johan Dahlin <johan@gnome.org>
298 * giscanner/girwriter.py:
299 * giscanner/glibast.py:
300 * giscanner/glibtransformer.py:
301 * giscanner/transformer.py:
304 Add pyflakes.py and run it in make check.
305 Update the source code to fix the errors reported by
308 2008-08-14 Johan Dahlin <johan@gnome.org>
311 * giscanner/girparser.py:
312 * giscanner/glibast.py:
313 * giscanner/glibtransformer.py:
314 Refactor the parser a bit.
315 Add parent type to interfaces and update callsites.
317 2008-08-14 Johan Dahlin <johan@gnome.org>
319 * giscanner/glibtransformer.py:
320 * giscanner/utils.py:
321 Refactor a bit, avoid isinstance and add a method
322 for each type we parse.
324 2008-08-14 Johan Dahlin <johan@gnome.org>
327 * giscanner/girparser.py:
328 * giscanner/glibtransformer.py:
330 Run pep8.py in make check, fix old errors.
332 2008-08-13 Colin Walters <walters@verbum.org>
334 * giscanner/girparser.py: Parse records.
336 2008-08-13 Colin Walters <walters@verbum.org>
338 * gir/Makefile.am: Install again.
339 * gir/gobject-2.0.gir: Add some more bits.
341 2008-08-13 Colin Walters <walters@verbum.org>
343 * gir/gobject-2.0.gir: Use correct namespace, add GType.
344 * giscanner/girparser.py: Handle aliases.
345 * giscanner/transformer.py: Record aliases. Make resolver
346 functions public; we now call into these explicitly from
347 glibtransformer. Handle resolving aliases.
348 * giscanner/glibtransformer.py: Separate our internal namespace
349 from included ones. Call up into transformer's resolver functions.
351 2008-08-13 Johan Dahlin <johan@gnome.org>
353 * girepository/girnode.c (g_ir_node_get_full_size_internal):
354 * girepository/girparser.c (start_class):
355 * giscanner/glibtransformer.py:
356 Allow get_type to be None, set a get_type for GInitiallyUnowned too.
358 2008-08-13 Johan Dahlin <johan@gnome.org>
360 * giscanner/cgobject.py:
361 Register GInitiallyUnowned
362 * giscanner/girwriter.py:
363 * giscanner/glibtransformer.py:
364 Special case GObject/GInitially owned as they are a bit special to use.
366 2008-08-13 Colin Walters <walters@verbum.org>
368 * tests/scanner/Foo-expected.gir, tests/scanner/utility-expected.gir:
369 Object is in GObject namespace.
371 2008-08-13 Colin Walters <walters@verbum.org>
373 * giscanner/girparser.py: Fix processing of functions
376 2008-08-13 Colin Walters <walters@verbum.org>
378 * giscanner/girparser.py: Parse more than just <class.
379 * giscanner/glibtransformer.py: Put aliases in a separate
380 data structure since their name is not canonicall.
381 * giscanner/transformer.py: Handle resolving type names
384 2008-08-13 Johan Dahlin <johan@gnome.org>
386 * tools/g-ir-scanner:
387 Allow multiple libraries
388 * giscanner/glibtransformer.py:
389 Rename load_library to add_library, traverse over all libraries
390 when trying to resolve a function
392 2008-08-12 Colin Walters <walters@verbum.org>
394 * giscanner/transformer.py: Record typedefs as <alias> elements.
395 Also attempt to look up types in external namespaces.
396 * giscanner/girwriter.py: Write them.
397 * giscanner/glibtransformer.py: Rework resolver using real instanceof
398 checks. Resolve interface methods and properties.
399 * tests/scanner/foo-object.h: Add a method with typedef.
400 * tests/scanner/Foo-expected.gir: Update.
401 * girepository/girnode.c: Debug tweaks.
402 * girepository/girparser.c: Make a first pass through the XML where we
403 record all the aliases. This lets us resolve them as we go through the
405 * gir/Makefile.am: Don't install gobject-2.0.gir; we want that to come
408 2008-08-12 Colin Walters <walters@verbum.org>
410 * giscanner/glibtransformer.py: Resolve typedefs (e.g. AtkAttributeSet -> GSList).
411 Correctly do subclasseing in 2nd pass resolution. Handle callbacks in structure
413 * giscanner/transformer.py: Record typedefs and expose public API for resolving
415 * tests/scanner/Foo-expected.gir: Fix expected callback types.
417 2008-08-12 Colin Walters <walters@verbum.org>
419 * giscanner/glibtransformer.py: Also transform object properties.
421 2008-08-12 Colin Walters <walters@verbum.org>
423 * giscanner/glibtransformer.py: Also transform callbacks
424 and structure field types.
425 * tests/scanner/Fooe-expected.gir: Update to expect correct
426 names for callbacks and structs.
428 2008-08-12 Colin Walters <walters@verbum.org>
430 * girepository/girparser.c: Handle 'any'.
431 * tests/scanner/Foo-expected.gir, tests/scanner/foo-object.h:
434 2008-08-12 Colin Walters <walters@verbum.org>
436 * giscanner/glibtransformer.py: We need to do type
437 resolution in a second pass after we've seen all the
440 2008-08-12 Colin Walters <walters@verbum.org>
442 * tests/scanner/Foo-expected.gir, tests/scanner/foo-object.h:
443 Add enum return value.
444 * giscanner/glibtransformer.py: Transform function return types
447 2008-08-12 Colin Walters <walters@verbum.org>
449 * tests/scanner/Makefile.am: Dep .gir files on scanner
450 sources too. Also remove @ so we see scanner invocations.
452 2008-08-12 Colin Walters <walters@verbum.org>
454 * girepository/girparser.c, girepository/gtypelib.c,
455 girepository/gtypelib.h, girepository/girnode.c:
456 Remove usage of (GAPI-oriented) TypeTag in favor of
457 GITypeTag from girepository.h.
459 2008-08-10 Colin Walters <walters@verbum.org>
461 * tests/roundtrips.sh: Use the correct tests.
463 2008-08-10 Colin Walters <walters@verbum.org>
465 * giscanner/cgobject.py: Declare/wrap a few more functions.
466 Fix parameter types for g_object_new and g_type_fundamental.
468 2008-08-10 Colin Walters <walters@verbum.org>
470 * giscanner/cgobject.py: Add new decorator @gwrap which forces
471 us to declare types for both return value and parameters. The
472 ctypes default of 'int' is bad because it hides 32/64 bit
473 problems. Convert all existing functions to use it.
475 2008-08-09 Johan Dahlin <johan@gnome.org>
477 * giscanner/__init__.py:
479 * giscanner/cgobject.py:
480 * giscanner/gidlparser.py:
481 * giscanner/gidlwriter.py:
482 * giscanner/girparser.py:
483 * giscanner/girwriter.py:
484 * giscanner/glibast.py:
485 * giscanner/glibtransformer.py:
486 * giscanner/odict.py:
487 * giscanner/sourcescanner.py:
488 * giscanner/transformer.py:
489 * giscanner/utils.py:
490 * giscanner/xmlwriter.py:
491 * tools/g-ir-scanner:
495 2008-08-09 Johan Dahlin <johan@gnome.org>
498 * relaxng/c-types.xml:
499 * relaxng/g-types.xml:
500 * relaxng/relaxng.rng:
502 Remove outdated relaxng schemas.
504 2008-08-09 Johan Dahlin <johan@gnome.org>
507 Rename metadata to typelib in variable names,
510 2008-08-09 Johan Dahlin <johan@gnome.org>
514 Remove old C scanner, which got rewritten in python.
516 2008-08-09 Johan Dahlin <johan@gnome.org>
518 * girepository/Makefile.am:
528 Move shared *.[ch] files to girepository from tools
530 2008-08-09 Johan Dahlin <johan@gnome.org>
535 * tests/constant.test:
538 * tests/function.test:
539 * tests/gobject.test:
540 * tests/interface.test:
547 Rename *.test to *.gir
549 2008-08-09 Johan Dahlin <johan@gnome.org>
553 * tests/parser/Foo-expected.gir:
554 * tests/parser/Makefile.am:
555 * tests/parser/foo-object.h:
556 * tests/parser/foo.c:
557 * tests/parser/utility-expected.gir:
558 * tests/parser/utility.c:
559 * tests/parser/utility.h:
560 * tests/scanner/Makefile.am:
561 Rename tests/parser to test/scanner
563 2008-08-08 Colin Walters <walters@verbum.org>
565 * tests/roundtrips.sh: Use local .gir files again.
567 2008-08-08 Colin Walters <walters@verbum.org>
569 * tests/invoke/Makefile.am: .gir file depends on libtool
572 2008-08-08 Colin Walters <walters@verbum.org>
574 * tools/girnode.c: Pass through parent node so we can
575 print the node whose child is NULL, if that occurs.
577 2008-08-08 Johan Dahlin <johan@gnome.org>
580 Disable roundtrip tests which are not yet working
581 * tests/invoke/testfns.gir:
584 2008-08-08 Johan Dahlin <johan@gnome.org>
586 * giscanner/girwriter.py:
588 * giscanner/glibast.py:
589 * giscanner/glibtransformer.py:
590 Swap order of members, to keep it consistent with
593 2008-08-08 Johan Dahlin <johan@gnome.org>
595 * girepository/gtypelib.c (validate_header):
596 * girepository/gtypelib.h:
598 * giscanner/girwriter.py:
599 * giscanner/sourcescanner.c (gi_source_symbol_ref),
600 (gi_source_symbol_unref):
603 * tests/constant.test:
606 * tests/function.test:
607 * tests/gobject.test:
608 * tests/interface.test:
609 * tests/invoke/Makefile.am:
610 * tests/invoke/testfns.xml:
612 * tests/parser/Makefile.am:
613 * tests/roundtrips.sh:
620 * tools/compiler.c (main):
621 * tools/generate.c (write_callable_info), (write_function_info),
623 * tools/gidlmodule.c:
624 * tools/gidlmodule.h:
627 * tools/gidlparser.c:
628 * tools/gidlparser.h:
629 * tools/gidlwriter.c:
630 * tools/gidlwriter.h:
631 * tools/scanner.c (create_node_from_gtype),
632 (create_node_from_ctype), (g_igenerator_process_properties),
633 (g_igenerator_process_signals), (g_igenerator_create_object),
634 (g_igenerator_create_interface), (g_igenerator_create_boxed),
635 (g_igenerator_create_enum), (g_igenerator_create_flags),
636 (g_igenerator_process_function_symbol),
637 (g_igenerator_process_unregistered_struct_typedef),
638 (g_igenerator_process_struct_typedef),
639 (g_igenerator_process_union_typedef),
640 (g_igenerator_process_enum_typedef),
641 (g_igenerator_process_function_typedef),
642 (g_igenerator_process_constant), (g_igenerator_process_symbols),
643 (g_igenerator_add_module), (g_igenerator_add_include_idl):
644 Merge in the gir-compiler branch.
645 Thanks to Philip and Colin for their help.
647 2008-07-26 Colin Walters <walters@verbum.org>
649 * tools/Makefile.am (bin_PROGRAMS): Install g-idl-compiler
650 and g-idl-generate to go along with how we're changing this
651 module to be installed.
652 * gobject-introspection-1.0.pc.in: Set up Cflags and Libs.
654 2008-07-24 Colin Walters <walters@verbum.org>
656 * girepository/girepository.c (g_irepository_register): Add
657 environment variable G_IREPOSITORY_VERBOSE so we can print
658 out what we're doing.
659 * girepository/girepository.c (g_irepository_register_file):
660 Add GError error message to g_debug call.
662 2008-07-08 Jürg Billeter <j@bitron.ch>
664 * giscanner/glibast.py:
668 2008-06-21 Johan Dahlin <jdahlin@async.com.br>
670 * giscanner/girparser.py (GIRParser._parse_api): Ignore a few
673 2008-06-20 Johan Dahlin <jdahlin@async.com.br>
676 * giscanner/girwriter.py:
677 * giscanner/transformer.py:
678 * tests/parser/Foo-expected.gir:
679 * tests/parser/foo-object.h:
680 * tests/parser/foo.c (foo_object_allow_none):
681 Add support for gtk-doc annotations for allow-none.
684 2008-06-19 Johan Dahlin <jdahlin@async.com.br>
687 * giscanner/girwriter.py:
688 * giscanner/glibast.py:
689 * giscanner/glibtransformer.py:
690 * giscanner/transformer.py:
691 * tests/parser/Foo-expected.gir:
692 Start using abstract type instead of the raw C types.
693 Register a bunch of glib types we care about.
695 2008-06-19 Rob Taylor <rob.taylor@codethink.co.uk>
700 2008-06-08 Philip Van Hoof <pvanhoof@gnome.org>
702 * girepository/girepository.c:
703 * girepository/gtypelib.c:
704 * girepository/ginfo.c:
705 * girepository/ginvoke.c:
706 * girepository/girepository.h:
707 * girepository/gtypelib.h:
708 * girepository/gmetadata.c:
709 * girepository/Makefile.am:
710 * girepository/gmetadata.h:
712 * tools/gidlmodule.c:
715 * tools/gidlmodule.h:
716 * tools/gidlparser.c:
718 Renamed GMetadata to GTypelib
720 2008-06-07 Johan Dahlin <jdahlin@async.com.br>
722 * giscanner/xmlwriter.py:
723 Improve line wrapping when > 79 charaters
725 2008-06-05 Jürg Billeter <j@bitron.ch>
728 * giscanner/girwriter.py:
729 * giscanner/transformer.py:
730 Use <type> element for field types
731 * tests/parser/Foo-expected.gir:
734 2008-06-04 Johan Dahlin <jdahlin@async.com.br>
736 * giscanner/glibtransformer.py:
737 Fix a bug which prevented GdkEvent from being generated
739 2008-06-03 Johan Dahlin <jdahlin@async.com.br>
741 * giscanner/Makefile.am:
743 * giscanner/girwriter.py:
744 * giscanner/glibast.py:
745 * giscanner/glibtransformer.py:
746 * giscanner/transformer.py:
747 * giscanner/utils.py:
748 * tests/parser/Foo-expected.gir:
749 Improve enum member parsing and introspection
751 2008-05-31 Johan Dahlin <jdahlin@async.com.br>
753 * giscanner/scannerparser.y:
754 * giscanner/sourcescanner.h:
755 * giscanner/sourcescanner.py:
756 Add a new source type enum for member.
757 Use __repr__ for improved debugging
758 * giscanner/girparser.py:
760 * giscanner/transformer.py:
761 Improve parsing of struct members.
762 * tests/parser/foo-object.h:
765 2008-05-31 Johan Dahlin <jdahlin@async.com.br>
767 * giscanner/xmlwriter.py:
768 Improve error reporting when trying to quote None.
769 * giscanner/girparser.py:
770 Do not print warnings when including more complete .gir files
771 * giscanner/girwriter.py:
772 Do not require a name for parameters, add a todo for singletons
773 * giscanner/glibtransformer.py:
774 Refactor the way structs are done, add a couple of hacks to allow
776 * giscanner/transformer.py:
777 Add enough hacks so cairo, atk and pango.gir can be parsed properly
778 * gobject-introspection-1.0.pc.in:
779 Export girdir, so we can access gobject-2.0.gir from outside
781 2008-05-31 Johan Dahlin <jdahlin@async.com.br>
783 * tools/g-ir-scanner:
784 * tests/parser/Makefile.am:
785 Update sys.path before running the parser so we don't have
786 to setup PYTHONPATH ourselves.
790 * girepository/Makefile.am:
791 * giscanner/transformer.py:
792 * gobject-introspection-1.0.pc.in:
793 * gobject-introspection.pc.in:
796 Rename pkg-config name to gobject-introspection-1.0,
797 Do not installed anything which is not using the gir format.
798 Disable compililation the old C scanner, but still keep the source
799 until all the remaning functionallity has been ported.
801 2008-05-31 Johan Dahlin <jdahlin@async.com.br>
803 * giscanner/giscannermodule.c (symbol_get_ident): Prevent
804 a crash when symbol->indent is NULL.
806 * giscanner/sourcescanner.py (ctype_name): Add ctype_name,
807 a function to convert a CTYPE symbol to a string
809 2008-05-24 Johan Dahlin <jdahlin@async.com.br>
812 * giscanner/girwriter.py:
813 * giscanner/giscannermodule.c
814 (pygi_source_scanner_append_filename),
815 (pygi_source_scanner_parse_file):
816 * giscanner/glibtransformer.py:
817 * giscanner/sourcescanner.py:
818 Revert back to using temporary files to send in headers.
819 Allow Functions to be passed in as callbacks, add a couple
820 of try/excepts missing features.
821 We can now scan pango
823 2008-05-08 Johan Dahlin <johan@gnome.org>
825 * giscanner/glibtransformer.py:
826 * giscanner/transformer.py:
827 Move namespace stripping glibtransformer->transformer
829 2008-05-08 Johan Dahlin <johan@gnome.org>
832 * giscanner/girwriter.py:
833 * giscanner/glibtransformer.py:
834 * giscanner/transformer.py:
835 * tools/g-ir-scanner:
836 Introduce a namespace ast node
838 2008-05-05 Johan Dahlin <johan@gnome.org>
840 * giscanner/__init__.py:
841 * giscanner/sourcescanner.py:
842 * giscanner/transformer.py:
843 Move sourcescanner symbols to the sourcescanner module, instead
844 of in the global __init__ namespace.
846 2008-05-03 Johan Dahlin <johan@gnome.org>
848 * giscanner/glibtransformer.py:
849 * tools/g-ir-scanner:
850 Handle missing parameters better, allow - and + in .la dlname
853 2008-05-03 Johan Dahlin <johan@gnome.org>
855 * giscanner/__init__.py:
857 * giscanner/girwriter.py:
858 * giscanner/glibtransformer.py:
859 * giscanner/transformer.py:
860 Parse struct fields properly, improve debugging.
862 2008-04-29 Johan Dahlin <johan@gnome.org>
865 * giscanner/girwriter.py:
866 * giscanner/transformer.py:
867 * tests/parser/Foo-expected.gir:
869 Use transfer-ownership everywhere, to mark ownership/calle/caller etc.
871 2008-04-29 Johan Dahlin <jdahlin@async.com.br>
874 * docs/g-ir-scanner.1:
875 * metadata-annotations-proposal.txt:
876 * metadata-format.txt:
877 Add a basic, unfinshed man page for g-ir-scanner, move documents into .txt
879 2008-04-29 Johan Dahlin <jdahlin@async.com.br>
881 * giscanner/girwriter.py:
882 * giscanner/glibtransformer.py:
883 * giscanner/transformer.py:
884 * giscanner/xmlwriter.py:
885 * tests/parser/Foo-expected.gir:
886 * tests/parser/foo-object.h:
887 Write record/structs to gir file too. Add a couple of tests,
888 fix an off by one error in xmlwriter.py.
890 2008-04-28 Johan Dahlin <johan@gnome.org>
892 * giscanner/xmlwriter.py: Calculate the line length properly,
893 include the provided extra indentation in the calculation, really.
895 2008-04-28 Johan Dahlin <jdahlin@async.com.br>
898 * giscanner/glibast.py:
899 * giscanner/glibtransformer.py:
900 * giscanner/transformer.py:
901 * tools/g-ir-scanner:
902 Add a --strip-prefix and sort out confusion between names and symbols
903 for functions and struct + derivaties.
904 Refactor bootstrap of g-ir-scanner, so we can set options on
905 Transformer() before parsing everything.
907 2008-04-28 Johan Dahlin <johan@gnome.org>
909 * giscanner/transformer.py (Transformer._traverse_one): Avoid recursion
910 when scanning girepository.h
912 * giscanner/sourcescanner.py (SourceScanner._preprocess): Define
913 a __GI_SCANNER__ when we run.
915 2008-04-28 Johan Dahlin <jdahlin@async.com.br>
918 * giscanner/girwriter.py:
919 * giscanner/glibast.py:
920 * giscanner/glibtransformer.py:
921 * tests/parser/Foo-expected.gir:
922 * tests/parser/utility-expected.gir:
923 Rename most c:identifier to c:type. Add new ones to
924 class/interface/enum/boxed.
926 2008-04-28 Johan Dahlin <jdahlin@async.com.br>
929 * giscanner/girwriter.py:
930 * giscanner/glibtransformer.py:
931 * tests/parser/Foo-expected.gidl:
932 * tests/parser/Makefile.am:
933 Move c:identifier from return-value to subchild type,
934 as per Jürgs suggestion
936 2008-04-28 Johan Dahlin <johan@gnome.org>
938 * giscanner/girwriter.py:
939 * tests/parser/Foo-expected.gir:
940 Write property.type as a child node.
942 2008-04-27 Johan Dahlin <johan@gnome.org>
947 * gidl/gobject-2.0.gidl:
949 * gir/gobject-2.0.gir:
950 * tests/parser/Makefile.am:
951 Replace the GObject gidl with a GObject gir.
953 2008-04-27 Johan Dahlin <johan@gnome.org>
955 * tools/Makefile.am (bin_SCRIPTS): g-ir-scanner is a script,
958 * giscanner/xmlwriter.py:
959 * tests/parser/Foo-expected.gir:
960 Include indentation in line length calculation
962 2008-04-27 Johan Dahlin <johan@gnome.org>
964 * giscanner/girparser.py:
965 Prettify NS parsing using elementtree.
967 2008-04-27 Johan Dahlin <johan@gnome.org>
970 * giscanner/Makefile.am:
971 * giscanner/girparser.py:
972 * giscanner/glibtransformer.py:
973 * tests/parser/Foo-expected.gidl:
974 * tests/parser/Foo-expected.gir:
975 * tests/parser/Makefile.am:
976 * tests/parser/utility-expected.gidl:
977 * tests/parser/utility-expected.gir:
978 * tools/g-ir-scanner:
979 Switch over to GIR as the default format. Add a simple GIDL
981 Update tests and fix simplify makefiles by depending
982 on GNU make extensions.
984 2008-04-27 Johan Dahlin <johan@gnome.org>
986 * giscanner/xmlwriter.py:
987 Wrap attributes for lines which are wider than 79 characters
989 * giscanner/scannerlexer.l:
990 Allow parenthesis in annotations
993 * giscanner/gidlwriter.py:
994 * giscanner/girwriter.py:
995 * giscanner/glibtransformer.py:
996 * giscanner/transformer.py:
997 Add initial sequence support, including annotation.
998 Refactor type handling a bit.
1000 2008-04-27 Johan Dahlin <johan@gnome.org>
1002 * tests/parser/Foo-expected.gidl:
1003 * tests/parser/foo-object.h:
1004 * tests/parser/foo.c (foo_object_class_init),
1005 (foo_object_get_strings), (foo_object_get_objects):
1006 Add two new functions to check sequence return values.
1007 Also fixes a compilation warning.
1009 2008-04-27 Johan Dahlin <johan@gnome.org>
1011 * giscanner/giscannermodule.c (]): Cast the getter, avoids
1012 a compilation warning.
1014 * tools/Makefile.am (g_ir_scanner_SOURCES):
1015 g-ir-scanner has no sources.
1017 2008-04-25 Johan Dahlin <johan@gnome.org>
1019 * giscanner/Makefile.am:
1021 * giscanner/gidlparser.py:
1022 * giscanner/gidlwriter.py:
1023 * giscanner/girwriter.py:
1024 * giscanner/glibast.py:
1025 * giscanner/glibtransformer.py:
1026 * giscanner/transformer.py:
1027 Split out nodes to ast.py and glibast.py
1029 2008-04-25 Johan Dahlin <jdahlin@async.com.br>
1031 * giscanner/Makefile.am:
1032 * giscanner/gidlparser.py:
1033 * giscanner/gidlwriter.py:
1034 * giscanner/girwriter.py:
1035 * giscanner/glibtransformer.py:
1036 * giscanner/gobjecttreebuilder.py:
1037 * giscanner/transformer.py:
1038 * giscanner/treebuilder.py:
1039 * tools/g-ir-scanner:
1040 Rename treebuilder to transformer and
1041 gobjectreebuilder to glibtransformer.
1043 2008-04-25 Johan Dahlin <jdahlin@async.com.br>
1045 * giscanner/Makefile.am:
1046 * giscanner/__init__.py:
1047 * giscanner/cgobject.py:
1048 * giscanner/gidlparser.py:
1049 * giscanner/gidlwriter.py:
1050 * giscanner/girwriter.py:
1051 * giscanner/gobjecttreebuilder.py:
1052 * giscanner/odict.py:
1053 * giscanner/sourcescanner.py:
1054 * giscanner/treebuilder.py:
1055 * giscanner/xmlwriter.py:
1056 * tools/Makefile.am:
1057 * tools/g-ir-scanner:
1058 Add LGPLv2 license header and install all python files
1060 2008-04-25 Johan Dahlin <jdahlin@async.com.br>
1063 * giscanner/gidlwriter.py:
1064 * giscanner/giscannermodule.c (pygi_source_directive_new),
1065 (directive_get_options), (pygi_source_symbol_new),
1066 (symbol_get_base_type), (pygi_source_type_new),
1067 (type_get_base_type), (type_get_child_list),
1068 (pygi_source_scanner_get_symbols),
1069 (pygi_source_scanner_get_directives):
1070 * giscanner/gobjecttreebuilder.py:
1071 * giscanner/sourcescanner.py:
1072 * giscanner/treebuilder.py:
1073 * tests/parser/foo-object.h:
1074 Add support for virtual methods.
1075 Pair struct FooClass with struct Foo.
1076 Clean up the SourceScanner bindings a bit.
1077 Add a testcase for virtual methods.
1079 2008-04-25 Johan Dahlin <jdahlin@async.com.br>
1081 * giscanner/cgobject.py:
1082 * giscanner/gidlwriter.py:
1083 * giscanner/gobjecttreebuilder.py:
1084 Add support for signals
1086 * tests/parser/foo.c (foo_object_class_init):
1087 * Foo-expected.gidl:
1088 Add a signal and update the expected output.
1090 2008-04-24 Johan Dahlin <jdahlin@async.com.br>
1092 * giscanner/gidlwriter.py:
1093 * giscanner/girwriter.py:
1094 * giscanner/giscannermodule.c (directive_get_name),
1095 (directive_get_value), (directive_get_options),
1096 (symbol_get_directives), (symbol_set_directives),
1097 (pygi_source_scanner_parse_file),
1098 (pygi_source_scanner_lex_filename),
1099 (pygi_source_scanner_get_directives), (init_giscanner):
1100 * giscanner/sourcescanner.c (gi_source_scanner_get_directives):
1101 * giscanner/sourcescanner.h:
1102 * giscanner/sourcescanner.py:
1103 * giscanner/treebuilder.py:
1104 * tools/g-ir-scanner:
1105 Add support for source/header annotations.
1107 2008-04-22 Johan Dahlin <jdahlin@async.com.br>
1109 * giscanner/gidlwriter.py:
1110 * giscanner/girwriter.py:
1111 * giscanner/gobjecttreebuilder.py:
1112 * giscanner/treebuilder.py:
1113 Add support for Callbacks
1115 2008-04-22 Havoc Pennington <hp@pobox.com>
1117 * girepository/ginvoke.c (g_function_info_invoke): If a symbol is
1118 not in metadata->module, look for it in the global module, in case
1119 some other object or the app itself provides the symbol.
1121 2008-04-22 Havoc Pennington <hp@pobox.com>
1123 * girepository/gmetadata.c (_g_metadata_init): hack to avoid
1124 dlopening a library that is already in the main app, by checking
1125 whether one of the lib's symbols is already loaded.
1127 2008-04-22 Johan Dahlin <jdahlin@async.com.br>
1129 * tests/parser/Foo-expected.gidl:
1130 * tests/parser/foo-object.h:
1133 2008-04-22 Havoc Pennington <hp@pobox.com>
1135 * girepository/ginfo.c (g_interface_info_find_method):
1136 Use interface_blob_size not object_blob_size to compute offset.
1138 2008-04-22 Havoc Pennington <hp@pobox.com>
1140 * girepository/gmetadata.c (_g_metadata_init): remove
1141 G_MODULE_BIND_LOCAL flag when loading libraries, since some libs
1142 (Glade and Clutter for example) rely on being loaded globally.
1144 2008-04-22 Havoc Pennington <hp@pobox.com>
1146 * girepository/ginfo.c (g_registered_type_info_get_g_type): new
1147 function to get the GType given a RegisteredTypeInfo
1149 2008-04-22 Johan Dahlin <johan@gnome.org>
1151 * COPYING: Add a LGPL license, to prevent automake to
1152 put in a copy of GPL here. Pointed out by Havoc.
1154 * girepository/ginfo.c (g_info_from_entry), (g_type_info_new),
1155 (g_type_info_is_pointer), (g_type_info_get_tag),
1156 (g_type_info_get_param_type), (g_type_info_get_interface),
1157 (g_type_info_get_array_length), (g_type_info_is_zero_terminated),
1158 (g_type_info_get_n_error_domains), (g_type_info_get_error_domain),
1159 (g_error_domain_info_get_codes), (g_enum_info_get_value),
1160 (g_object_info_get_interface), (g_object_info_get_field),
1161 (g_interface_info_get_prerequisite),
1162 (g_signal_info_get_class_closure), (g_constant_info_get_value):
1163 * girepository/ginvoke.c (get_ffi_type):
1164 * girepository/girepository.h:
1165 * girepository/gmetadata.c (g_metadata_get_dir_entry),
1166 (g_metadata_check_sanity), (validate_header),
1167 (validate_array_type_blob), (validate_iface_type_blob),
1168 (validate_param_type_blob), (validate_error_type_blob),
1169 (validate_type_blob), (validate_constant_blob),
1170 (validate_struct_blob), (validate_enum_blob):
1171 * girepository/gmetadata.h:
1172 * tests/Makefile.am:
1173 * tests/invoke/Makefile.am:
1174 * tests/invoke/invoke.c (main):
1175 * tests/roundtrips.sh:
1176 * tools/Makefile.am:
1177 * tools/compiler.c (format_output), (write_out_metadata), (main):
1178 * tools/generate.c (write_type_name), (write_type_info),
1179 (write_constant_value), (write_enum_info), (load_metadata), (main):
1180 * tools/gidlcompilercontext.c:
1181 * tools/gidlcompilercontext.h:
1182 * tools/gidlcompilerentrynode.c:
1183 * tools/gidlcompilerentrynode.h:
1184 * tools/gidlcompilertypenode.c:
1185 * tools/gidlcompilertypenode.h:
1186 * tools/gidlmodule.c (g_idl_module_build_metadata):
1187 * tools/gidlmodule.h:
1188 * tools/gidlnode.c (init_stats), (dump_stats),
1189 (g_idl_node_get_size), (g_idl_node_get_full_size),
1190 (g_idl_node_cmp), (g_idl_node_can_have_member),
1191 (g_idl_node_add_member), (g_idl_node_param_direction_string),
1192 (parse_int_value), (parse_uint_value), (parse_float_value),
1193 (parse_boolean_value), (find_entry_node), (find_entry),
1194 (serialize_type), (g_idl_node_build_metadata), (write_string):
1196 * tools/gidlparser.c (parse_type_internal):
1197 * tools/quote-file.sh:
1198 Revert revisions 157,149-148,136-129 and 120.
1199 Move back to using g-idl-generate to generate the metadata and
1200 avoids dependency on a c compiler.
1202 2008-04-22 Johan Dahlin <jdahlin@async.com.br>
1204 * giscanner/girwriter.py:
1205 * tools/g-ir-scanner:
1206 Add an initial GIR writer and a --format option to g-ir-scanner
1208 2008-04-21 Johan Dahlin <johan@gnome.org>
1210 * giscanner/cgobject.py: Use ctypes.util.find_library to locate
1211 gobject-2.0 and raise ImportError if not found.
1213 * giscanner/gidlparser.py:
1214 * giscanner/gidlwriter.py:
1215 * giscanner/gobjecttreebuilder.py:
1216 * tools/g-ir-scanner:
1217 Add a --include argument to include types from other idls.
1218 Add a minimalistic GIDL parser (just objects for now)
1219 Implement resolving of external type references and use it to
1220 resolve parent types, argument types and return types.
1222 2008-04-21 Johan Dahlin <johan@gnome.org>
1224 * giscanner/gidlwriter.py:
1225 * giscanner/gobjecttreebuilder.py:
1226 * giscanner/treebuilder.py:
1227 Add support for properties.
1228 Refactor Class/Interface support a bit, to share more code and
1229 always initialize their method attribute to an empty list.
1231 2008-04-21 Johan Dahlin <johan@gnome.org>
1233 * giscanner/cgobject.py:
1234 Add a workaround for a glib bug interface introspection bug
1235 (object_interface_list_properties, object_class_list_properties):
1236 Cast the return value to GParamSpec.
1238 * tests/parser/Foo-expected.gidl: Update
1239 * tests/parser/foo.c: Add a string property
1241 * giscanner/gobjecttreebuilder.py:
1242 After stripping namespaces, remove the original
1243 item to avoid duplication (GtkButton struct and Button object)
1245 2008-04-21 Johan Dahlin <johan@gnome.org>
1247 * giscanner/gobjecttreebuilder.py:
1248 * giscanner/treebuilder.py:
1249 Strip namespaces before objects, so we'll export
1250 GtkButton as Button in the gtk namespace
1252 2008-04-21 Johan Dahlin <johan@gnome.org>
1254 * giscanner/gidlwriter.py:
1255 * giscanner/gobjecttreebuilder.py:
1256 * giscanner/treebuilder.py:
1257 Add constructors for object/boxed types.
1259 2008-04-21 Johan Dahlin <johan@gnome.org>
1261 * giscanner/gidlwriter.py:
1262 * giscanner/gobjecttreebuilder.py:
1263 Add support for boxed types
1265 2008-04-21 Johan Dahlin <johan@gnome.org>
1267 * giscanner/giscannermodule.c: Mark structures as const,
1268 wrap SourceType.const_string.
1270 * tests/parser/foo-object.h: Add a couple of constants.
1272 * giscanner/gidlwriter.py:
1273 * giscanner/gobjecttreebuilder.py:
1274 * giscanner/treebuilder.py:
1275 Add basic support for interfaces
1277 * tools/g-ir-scanner:
1278 Add -o/--output for writing to a file
1280 2008-04-21 Havoc Pennington <hp@redhat.com>
1282 * TODO: add some C API wishlist items I could think of quickly
1284 2008-04-21 Johan Dahlin <jdahlin@async.com.br>
1286 * giscanner/gidlwriter.py:
1287 * giscanner/xmlwriter.py:
1288 Add a simple api for writing tags which can be used
1289 with the new 'with statement' in python 2.5
1291 2008-04-21 Johan Dahlin <johan@gnome.org>
1293 * giscanner/gobjecttreebuilder.py:
1294 Strip namespace and object prefix from method names.
1296 2008-04-21 Johan Dahlin <johan@gnome.org>
1298 * tools/g-ir-scanner (main): Add --pkg option to pass in
1299 pkg-config modules to get cflags from.
1301 * giscanner/gidlwriter.py (GIDLWriter._write_method):
1302 Avoid duplication, reuse function writer for methods.
1304 2008-04-21 Johan Dahlin <jdahlin@async.com.br>
1306 * giscanner/gidlwriter.py:
1307 * giscanner/gobjecttreebuilder.py:
1308 * giscanner/treebuilder.py:
1309 * tools/g-ir-scanner:
1310 Resolve libtool .la files.
1311 Strip name spaces for methods.
1312 Add function symbols
1314 2008-04-20 Johan Dahlin <jdahlin@async.com.br>
1316 * giscanner/cgobject.py:
1317 * giscanner/gidlwriter.py:
1318 * giscanner/gobjecttreebuilder.py:
1319 * giscanner/treebuilder.py:
1320 Add support for classes and methods
1322 2008-04-20 Johan Dahlin <johan@gnome.org>
1324 * giscanner/gidlwriter.py:
1325 * giscanner/gobjecttreebuilder.py:
1326 * giscanner/odict.py:
1327 Avoid conflicts, keep the output ordered similar to
1328 the order of the input.
1329 Add a simple ordered dictionary implemenation
1331 2008-04-19 Johan Dahlin <johan@gnome.org>
1333 * giscanner/cgobject.py:
1334 * giscanner/gidlwriter.py:
1335 * giscanner/gobjecttreebuilder.py:
1336 * tools/g-ir-scanner:
1337 Start introspecting get-type functions.
1338 Implement support for GLib/GFlags GTypes.
1339 Add a ctype based GObject binding.
1341 2008-04-18 Johan Dahlin <jdahlin@async.com.br>
1343 * giscanner/gidlwriter.py:
1344 * giscanner/xmlwriter.py:
1345 * tools/g-ir-scanner:
1346 Add a simplistic gidl writer, which can't do too much.
1348 2008-04-18 Johan Dahlin <johan@gnome.org>
1350 * giscanner/sourcescanner.py:
1351 * giscanner/treebuilder.py:
1352 * tools/g-ir-scanner:
1353 split tree building and source scanning interface to separate files.
1355 2008-04-18 Johan Dahlin <johan@gnome.org>
1357 * tools/g-ir-scanner (Parameter.__init__): Start constructing
1359 - Add support for struct/parameter/return, start parsing of ctypes
1361 * giscanner/giscannermodule.c: wrap GISourceType.child_list and
1364 2008-03-31 Johan Dahlin <johan@gnome.org>
1366 * tools/g-ir-scanner:
1367 Start to build abstract syntax node of scanned sources.
1368 Add support for cpp options.
1370 2008-03-27 Johan Dahlin <johan@gnome.org>
1372 * giscanner/giscannermodule.c:
1373 * giscanner/scannerlexer.l:
1374 * giscanner/sourcescanner.c:
1375 * tools/g-ir-scanner:
1377 Add simple pre-processor using subprocess and a PIPE.
1378 Change the parse_file apis to accept a file descriptor.
1380 2008-03-25 Johan Dahlin <johan@gnome.org>
1382 * giscanner/__init__.py:
1383 * tools/g-ir-scanner:
1384 Fix a typo and add an example python test program.
1386 2008-03-25 Johan Dahlin <johan@gnome.org>
1388 * giscanner/__init__.py:
1389 * giscanner/giscannermodule.c:
1390 * giscanner/sourcescanner.c:
1391 * giscanner/sourcescanner.h:
1392 Add constants and wrap a few more SymbolType fields
1394 2008-03-25 Johan Dahlin <johan@gnome.org>
1398 * giscanner/__init__.py:
1399 * giscanner/giscannermodule.c:
1400 * giscanner/Makefile.am:
1402 Add initial python bindings for the scanner and
1403 depend on python 2.5.
1405 2008-03-25 Johan Dahlin <johan@gnome.org>
1409 * giscanner/Makefile.am:
1410 * giscanner/sourcescanner.c:
1411 * giscanner/sourcescanner.h:
1412 * tools/Makefile.am:
1413 * tools/grealpath.h:
1414 * tools/sourcescanner.c:
1415 * tools/sourcescanner.h:
1417 Move the scanner to a separate library.
1419 2008-03-23 Johan Dahlin <johan@gnome.org>
1421 * tools/Makefile.am:
1424 * tools/scannerlexer.l:
1425 * tools/scannerparser.y:
1426 * tools/sourcescanner.c:
1427 * tools/sourcescanner.h:
1428 Split out the source scanner from the generator.
1429 Rename the symbols used in the scanner to use the gi_ prefix.
1430 This should make it possible to use the raw C parser from
1433 2008-03-23 Johan Dahlin <johan@gnome.org>
1435 * tests/parser/Makefile.am (utility.gidl):
1436 * tests/parser/utility-expected.gidl:
1437 Pass in the gobject.gidl since we're defining a GObject.
1439 2008-03-12 Johan Dahlin <johan@gnome.org>
1441 * relaxng/relaxng.rng:
1442 Add a releaxng in relaxng we can use to validate the relaxngs
1445 2008-03-12 Jürg Billeter <j@bitron.ch>
1447 * tools/scanner.c: (g_igenerator_new):
1448 * tools/scannerparser.y:
1449 Fix compiler warnings.
1451 2008-03-12 Jürg Billeter <j@bitron.ch>
1455 * tools/scannerparser.y:
1456 Start fixing memory management in g-idl-scanner.
1458 2008-03-12 Rob Taylor <rob.taylor@codethink.co.uk>
1460 * tools/gidlcompilercontext.c: (write_compiled):
1461 Fix critical warning when no shlib passed to g-idl-compiler.
1463 2008-03-12 Johan Dahlin <johan@gnome.org>
1465 * tests/parser/utility-expected.gidl:
1466 * tests/parser/utility.h:
1467 Add a get_type-function, so the scanner actually
1468 parses it as an object.
1470 2008-03-12 Johan Dahlin <johan@gnome.org>
1472 * tools/gidlwriter.c (function_generate): Add missing trailing quote.
1475 * tests/parser/Foo-expected.gidl:
1476 * tests/parser/Makefile.am:
1477 * tests/parser/foo-object.h:
1478 * tests/parser/foo.c:
1479 * tests/parser/utility-expected.gidl:
1480 * tests/parser/utility.c:
1481 * tests/parser/utility.h:
1483 Add a new gidl test. 'utility.gidl', which is used to be able
1484 to test external type references. Add a reference to UtilityObject*
1487 2008-03-11 Johan Dahlin <johan@gnome.org>
1491 Remove most global variables
1493 2008-03-11 Philip Van Hoof <me@pvanhoof.be>
1495 * tools/scannerlexer.l:
1497 * tests/parser/Foo-expected.gidl:
1498 * tests/parser/foo.c:
1499 * tests/parser/Makefile.am:
1500 * tests/parser/foo-object.h:
1502 Added a few extra tests. Which resulted in finding a few
1503 bugs. Which resulted in me fixing those bugs
1505 2008-03-11 Rob Taylor <rob.taylor@codethink.co.uk>
1507 * tools/gidlcompilercontext.c: (g_idl_compiler_write_dir_entry),
1508 (g_idl_compiler_write_xref_entry), (g_idl_compiler_add_xref):
1509 Add some comments for strings into generated output for
1512 2008-03-11 Rob Taylor <rob.taylor@codethink.co.uk>
1514 * tools/gidlcompilercontext.c: (write_compiled):
1515 Write out the shlibs variable before writing out the strings
1516 length. Fixes compiler warning when using '-l' flag with
1519 2008-03-11 Johan Dahlin <johan@gnome.org>
1521 * tests/parser/Foo-expected.gidl:
1522 * tests/parser/foo-object.h:
1525 * tools/scannerlexer.l:
1526 Add support for parsing return arguments. Add support for
1527 caller-owns return types.
1528 Patch by Philip Van Hoof.
1530 * tools/scannerparser.y:
1531 Remove parsing of the @deprecated syntax used in headers.
1532 We will support gtk-doc deprecation in the future instead.
1534 2008-03-11 Johan Dahlin <johan@gnome.org>
1536 * tools/compiler.c (main): Coding style fixes
1538 2008-03-10 Johan Dahlin <johan@gnome.org>
1541 Add GCOV_LIBS to GILIBS
1543 2008-03-10 Johan Dahlin <johan@gnome.org>
1545 * tests/parser/Foo-expected.gidl:
1546 * tests/parser/foo.c:
1547 Rename null-ok to direction=out
1549 2008-03-10 Philip Van Hoof <me@pvanhoof.be>
1551 reviewed and extensively tested by Johan
1553 * tests/parser/Foo-expected.gidl:
1554 * tests/parser/foo-object.h:
1555 * tests/parser/foo.c:
1558 * tools/gidlwriter.c:
1561 * tools/scannerlexer.l:
1562 * tools/scannerparser.y:
1564 Add support for scanning for gtk-doc comments inside
1565 C source files. Add tests
1567 2008-03-10 Johan Dahlin <johan@gnome.org>
1569 * tests/parser/Makefile.am:
1570 * tests/parser/foo.c:
1573 * tools/scannerparser.y:
1574 Add an api to lex filenames.
1575 Lex all source .c files passed in on the command line.
1576 Scan sources in a test and a couple of private structures
1577 which should not be included in the generated gidl
1579 2008-03-10 Johan Dahlin <johan@gnome.org>
1581 * tests/invoke/Makefile.am: Make the generated metadata
1582 depend on the g-idl-compiler
1584 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1586 * tools/gidlmodule.c
1587 * tools/gidlmodule.h
1590 Remove the old g-idl-compiler code.
1593 2008-02-22 Mark Doffman <mark.doffman@codethink.co.uk>
1595 * tools/quote-file.sh
1598 Move to using the 'C' struct compiler code.
1600 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1602 * girepository/ginfo.c
1604 Change the way that external references with no namespace
1605 are dealt with. External references with no namespace
1606 are placed into the XML as-if they are a local reference.
1607 This is temporary, but helps with roundtrip tests.
1609 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1611 * girepository/ginfo.c
1612 Add the ability to get the value of a constant of
1613 type TYPE_TAG_SYMBOL. In the case of a symbol the value
1614 is provided as a string.
1616 This would deal properly with:
1617 typedef char* random;
1618 const random = "A string";
1620 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1622 * girepository/ginfo.c
1623 * girepository/girepository.h
1625 Add a function to check if an enum is registered or not.
1626 Previously anything testing this relied on the g-type
1627 string offset having a value of 0.
1629 * girepository/gmetadata.c
1630 * girepository/gmetadata.h
1632 Remove unneccesary or erroneous checks. There were two
1633 metadata validation checks which made sure that the blob
1634 sizes were the same as some magic numbers compiled into the code.
1635 This is wrong as it breaks any forwards compatibility that may
1638 Checks were also present that made sure that unregistered type
1639 blobs had a value of 0 in the g-type offset field. This is
1640 unneccessary. If a type blob is unregistered then any value
1641 in its g-type field is simply invalid.
1643 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1645 * girepository/ginfo.c
1646 * girepository/gmetadata.c
1647 * girepository/gmetadata.h
1649 Change the metadata format to have a standard header
1650 for all the type blobs. Merge the SimpleTypeBlob
1651 and InterfaceTypeBlob into a union. A union of these
1652 two blobs existed previously but was not explicit
1653 in the metadata format.
1655 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1657 * tools/gidlcompilercontext.c
1658 * tools/gidlcompilercontext.h
1659 * tools/gidlcompilerentrynode.c
1660 * tools/gidlcompilerentrynode.h
1661 * tools/gidlcompilertypenode.c
1662 * tools/gidlcompilertypenode.h
1664 Add code to compile a tree of GIdlNodes to
1665 a 'C' struct representing the metadata.
1666 This is to aid cross-compiling. Previously
1667 the g-idl-compiler created a binary blob with
1668 data written in the byte order and alignment
1669 of the tool rather than the intended target.
1671 Cleaned up and improved by Johan and Robert :-)
1673 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1675 * girepository/ginvoke.c
1676 * girepository/girepository.h
1677 * girepository/gmetadata.c
1678 * girepository/gmetadata.h
1680 * tools/gidlparser.c
1681 Modify TYPE_TAG_INTERFACE to TYPE_TAG_SYMBOL
1682 to avoid confusion with the interface blob.
1685 * tools/gidlparser.c
1686 Remove magic numbers and replace with type-tag
1687 enumeration symbols.
1689 * girepository/gmetadata.c
1690 Add validate declaration.
1692 2008-03-10 Jürg Billeter <j@bitron.ch>
1694 * tools/gidlparser.c: (parse_type_internal):
1695 * tools/scannerlexer.l:
1696 * tools/scannerparser.y:
1697 Support C99 _Bool type in scanner.
1699 2008-03-10 Jürg Billeter <j@bitron.ch>
1701 * tests/parser/Foo-expected.gidl:
1702 * tests/parser/foo-object.h:
1703 * tests/parser/foo.c: (foo_enum_method):
1704 * tools/scanner.c: (g_igenerator_process_function_symbol):
1705 Don't skip functions that are defined in the namespace of a type
1706 that doesn't support methods, as for example enums.
1708 2008-03-10 Johan Dahlin <johan@gnome.org>
1710 * gidl.dtd: Remove, we're using relaxng for now
1712 * tests/parser/Foo-expected.gidl:
1713 * tests/parser/foo-object.h:
1714 * tests/parser/foo.c:
1715 Rename the enum/flags get_type functions to include the whole type.
1717 2008-03-08 Marc-Andre Lureau <marcandre.lureau@gmail.com>
1719 * tools/gidlwriter.c (enum_generate): added "type-name",
1720 "get-type" and "deprecated" missing arguments.
1721 * tests/parser/Foo-expected.gidl:
1722 * tests/parser/foo-object.h: test enum type, and no type.
1724 2008-03-06 Johan Dahlin <jdahlin@async.com.br>
1727 Consistent checks, add missing 'test'
1729 2008-03-05 Havoc Pennington <hp@redhat.com>
1731 * configure.ac: Take advantage of a libffi.pc if one exists, as it
1732 does on Fedora 8. Make libffi a hard requirement, since it was in
1733 practice anyway (was not really conditional in the code or
1734 makefile, only in configure).
1736 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1738 reviewed by: Rob Taylor <rob.taylor@codethink.co.uk>
1739 reviewed by: Johan Dahlin <johan@gnome.org>
1741 * tests/Makefile.am:
1742 * tests/roundtrips.sh:
1743 Modify the roundtrips test so that they do not use the
1744 --raw option of the gidl compiler but instead compile a
1745 shared library to use with g_module.
1747 * tests/invoke/Makefile.am:
1748 * tests/invoke/invoke.c:
1749 Modify the invoke tests to build a shared library rather
1750 than use the --raw option.
1752 * tests/invoke/invoke-namespace-find.sh: Removed:
1753 Noone knows why this was here, so removed.
1755 2008-02-19 Rob Taylor <rob.taylor@codethink.co.uk>
1757 * tools/scanner.c: (g_igenerator_process_function_symbol):
1758 Move g_idl_node_can_have_member test later, as it broke spotting
1759 get_type's for nodes that can't have members.
1761 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
1764 * tools/gidlnode.c: (g_idl_node_can_have_member):
1765 Add g_idl_node_can_have_member.
1767 * tools/scanner.c: (g_igenerator_process_function_symbol):
1768 Use g_idl_node_can_have_member to test if we should add a function
1769 as a member of the type node.
1771 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
1773 * gidl/GLib.gidl: Renamed to gidl/gobject-2.0.gidl:
1775 * tests/parser/Makefile.am:
1776 Rename GLib.gidl to gobject-2.0.gidl and install in /usr/share/gidl.
1778 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
1780 * tools/scanner.c: (main):
1781 Ignore -pthread when passed to g-idl-scanner.
1783 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
1785 * tools/grealpath.h: Added:
1786 * tools/scanner.c: (main):
1787 * tools/scannerlexer.l:
1788 * tools/Makefile.am:
1789 Always use absolute paths with symbolic links resolved when
1790 comparing filenames.
1792 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
1794 * gobject-introspection.pc.in:
1795 Provide variables for g-idl-parser, scanner and compiler in the
1798 2008-02-13 Rob Taylor <rob.taylor@codethink.co.uk>
1801 * girepository/Makefile.am:
1802 * tools/Makefile.am:
1803 Rename GCOV_SOURCES to GCOVSOURCES to top automake complaining.
1805 2008-02-10 Johan Dahlin <johan@gnome.org>
1807 * tests/parser/Foo-expected.gidl:
1808 * tests/parser/foo-object.h:
1809 * tests/parser/foo.c: (foo_boxed_copy), (foo_boxed_free),
1810 (foo_boxed_get_type), (foo_boxed_new), (foo_boxed_method):
1813 2008-02-10 Johan Dahlin <johan@gnome.org>
1815 * tests/parser/Foo-expected.gidl:
1816 * tests/parser/foo-object.h:
1817 * tests/parser/foo.c: (foo_enum_get_type), (foo_flags_get_type):
1818 Add enum and flags test.
1820 2008-02-10 Johan Dahlin <johan@gnome.org>
1824 * girepository/Makefile.am:
1825 Make 'make distcheck' work again.
1827 2008-02-10 Johan Dahlin <johan@gnome.org>
1829 * m4/Makefile.am (EXTRA_DIST): its called as-compiler-flag.m4,
1832 * tests/parser/Makefile.am: Only create Foo.gidl when running make
1833 check, eg exclude it from BUILT_SOURCES.
1835 2008-02-08 Rob Taylor <rob.taylor@codethink.co.uk>
1840 * girepository/Makefile.am:
1841 * m4/Makefile.am: Added:
1842 * m4/as-compiler-flag.m4: Added:
1843 * m4/gcov.m4: Added:
1844 * tools/Makefile.am:
1845 Add ability to generate a coverage report.
1846 Adds configure option --enable-gcov and make rule 'check-coverage'.
1848 2008-02-08 Rob Taylor <rob.taylor@codethink.co.uk>
1852 * gidl/Makefile.am: Added:
1853 * girepository/Makefile.am: Added:
1854 * src/Makefile.am: Renamed to tools/Makefile.am:
1855 * src/compiler.c: Renamed to tools/compiler.c:
1856 * src/g-idl-offsets.pl: Renamed to tools/g-idl-offsets.pl:
1857 * src/generate.c: Renamed to tools/generate.c:
1858 * src/gidlmodule.c: Renamed to tools/gidlmodule.c:
1859 * src/gidlmodule.h: Renamed to tools/gidlmodule.h:
1860 * src/gidlnode.c: Renamed to tools/gidlnode.c:
1861 * src/gidlnode.h: Renamed to tools/gidlnode.h:
1862 * src/gidlparser.c: Renamed to tools/gidlparser.c:
1863 * src/gidlparser.h: Renamed to tools/gidlparser.h:
1864 * src/gidlwriter.c: Renamed to tools/gidlwriter.c:
1865 * src/gidlwriter.h: Renamed to tools/gidlwriter.h:
1866 * src/ginfo.c: Renamed to girepository/ginfo.c:
1867 * src/ginvoke.c: Renamed to girepository/ginvoke.c:
1868 * src/girepository.c: Renamed to girepository/girepository.c:
1869 * src/girepository.h: Renamed to girepository/girepository.h:
1870 * src/gmetadata.c: Renamed to girepository/gmetadata.c:
1871 * src/gmetadata.h: Renamed to girepository/gmetadata.h:
1872 * src/scanner.c: Renamed to tools/scanner.c:
1873 * src/scanner.h: Renamed to tools/scanner.h:
1874 * src/scannerlexer.l: Renamed to tools/scannerlexer.l:
1875 * src/scannerparser.y: Renamed to tools/scannerparser.y:
1876 * tests/invoke/Makefile.am:
1877 Split src/ into girepository/ and tools/
1881 * girepository/Makefile.am:
1882 * tests/Makefile.am:
1883 * tests/invoke/Makefile.am:
1884 * tests/parser/Makefile.am:
1885 * tests/roundtrips.sh:
1886 * tools/Makefile.am:
1887 Make distcheck work.
1889 2008-02-04 Rob Taylor <rob.taylor@codethink.co.uk>
1891 * tests/invoke/invoke.c: (main):
1892 * tests/invoke/testfns.c: (test6), (test7):
1893 * tests/invoke/testfns.xml:
1894 Add tests for invokation with a GList argument.
1895 Also tests caller-owns return values.
1897 2008-02-04 Rob Taylor <robtaylor@floopily.org>
1900 Add some documentation for GICallableInfo
1902 2008-02-01 Mark Doffman <mark.doffman@codethink.co.uk>
1905 Correct syntax errors in the DTD file.
1907 * relaxng/c-types.xml:
1908 * relaxng/g-types.xml:
1910 Add a RelaxNG specification for the GObject Introspection XML data.
1911 The Specification has validated all of the test files.
1913 2008-01-25 Rob Taylor <robtaylor@floopily.org>
1915 * tests/roundtrips.sh:
1916 * tests/struct.test:
1917 Add roundtrip tests for structs.
1919 2008-01-11 Johan Dahlin <johan@gnome.org>
1921 * src/scanner.c (g_igenerator_process_function_symbol):
1922 Refactor out g_idle_node_add_member.
1923 (create_node_from_gtype, create_node_from_ctype):
1924 Use case instead of if...else
1925 (get_type_from_type_id):
1926 Rename to create_node_from_gtype
1927 (get_type_from_ctype):
1928 Rename to create_node_from_ctype
1930 Rename ginode -> node, gitype -> type, gifunc -> func.
1932 * src/gidlnode.c (g_idl_node_add_member, g_idl_node_cmp):
1933 Two new functions, refactor out of scanner.c
1935 * src/scanner.c: (g_igenerator_process_function_symbol):
1936 * src/scannerlexer.l:
1937 Do not save the content of the deprecated variable, only
1940 2008-01-11 Johan Dahlin <johan@gnome.org>
1942 * tests/parser/foo-object.h: Add a couple of comment parser tests.
1944 2008-01-11 Jürg Billeter <j@bitron.ch>
1946 * src/scannerlexer.l:
1947 Fix GTK-Doc parsing.
1949 2008-01-11 Jürg Billeter <j@bitron.ch>
1951 * src/scannerlexer.l:
1952 Fix GTK-Doc parsing.
1954 2008-01-11 Jürg Billeter <j@bitron.ch>
1956 * src/scanner.c: (lookup_symbol):
1957 Return unresolved name if we find unknown symbol.
1959 2008-01-11 Jürg Billeter <j@bitron.ch>
1961 * src/scanner.c: (g_igenerator_generate):
1962 Initialize GObject to fix scanning interface properties.
1964 * tests/parser/Foo-expected.gidl:
1965 * tests/parser/foo-object.h:
1966 * tests/parser/foo.c: (foo_interface_get_type):
1967 Test interfaces with GObject prerequisite.
1969 * tests/parser/Makefile.am:
1970 Set G_DEBUG=fatal_warnings to abort test on warnings and criticals.
1972 2007-12-27 Johan Dahlin <johan@gnome.org>
1974 * src/scannerlexer.l:
1975 Parse gtk-doc comments.
1977 * src/gidlwriter.c: (function_generate):
1978 Reorganize, avoid duplication and add support for
1979 writing deprecated functions.
1981 * src/scannerparser.y:
1983 Add new structure CDirective and functions to create/free them.
1985 * src/scanner.c: (g_igenerator_process_function_symbol),
1986 (g_igenerator_process_unregistered_struct_typedef),
1987 (g_igenerator_process_struct_typedef),
1988 (g_igenerator_process_union_typedef),
1989 (g_igenerator_process_enum_typedef),
1990 (g_igenerator_process_function_typedef), (g_igenerator_add_symbol),
1991 (g_igenerator_start_preprocessor):
1992 Parse @deprecated directive for functions.
1993 Remove some more C99isms.
1994 Send in -C to cpp to avoid stripping comments.
1996 * tests/parser/foo-object.h:
1997 * tests/parser/Foo-expected.gidl:
1998 Add deprecated directive
2000 2007-12-27 Johan Dahlin <johan@gnome.org>
2002 * src/scannerlexer.l (intsuffix): Add emacs mode line and
2003 escape ' and " so it looks more like C.
2006 Unlink temporary file used.
2008 2007-12-27 Johan Dahlin <johan@gnome.org>
2010 * src/scanner.c: (g_igenerator_new), (g_igenerator_free),
2011 (g_igenerator_start_preprocessor), (main):
2013 * src/scannerparser.y:
2014 Plug a couple of simple memory leaks.
2016 2007-12-27 Johan Dahlin <johan@gnome.org>
2018 * src/scanner.c: (g_igenerator_parse_macros),
2019 (g_igenerator_start_preprocessor), (g_igenerator_set_verbose),
2022 * src/scannerparser.y:
2023 * tests/parser/Makefile.am:
2025 Improve error reporting, return when the preprocessor fails.
2026 Add a verbose parameter, to aid debugging.
2027 Revert to using a temporary file to communicate between the
2028 preprocessor and the parser, because we need to wait for
2029 the exit code from the pre-processor before starting to parse.
2031 2007-12-16 Johan Dahlin <jdahlin@async.com.br>
2033 * src/Makefile.am: Rename clexer.l to scannerlexer.l and
2034 cparser.y to scannerparser.y
2036 2007-12-11 Johan Dahlin <johan@gnome.org>
2040 * src/scanner.c: (g_igenerator_new):
2042 Get rid of the global the_generator variable.
2044 2007-12-10 Johan Dahlin <johan@gnome.org>
2046 * src/scanner.c (main): Add an output option,
2047 add checks for required parameters
2050 set BUILD_SOURCES and CLEANFILES properly
2052 * src/gidlwriter.c: (g_writer_write_inline), (g_writer_write),
2053 (g_writer_write_indent), (g_writer_write_unindent),
2054 (field_generate), (value_generate), (constant_generate),
2055 (property_generate), (function_generate), (vfunc_generate),
2056 (signal_generate), (interface_generate), (struct_generate),
2057 (union_generate), (boxed_generate), (enum_generate),
2058 (node_generate), (g_writer_write_module), (g_idl_writer_save_file):
2060 * src/scanner.c: (g_igenerator_generate):
2062 * src/scannerwriter.c:
2064 Refactor scannerwriter to only be tied to a GIdlModule and move
2065 it (again!) to gidlwriter.c. Change the writer function to take
2068 2007-12-10 Johan Dahlin <johan@gnome.org>
2071 * src/scanner.c: (g_igenerator_generate):
2073 * src/scannerwriter.c: (g_igenerator_write_inline),
2074 (g_igenerator_write), (g_igenerator_write_indent),
2075 (g_igenerator_write_unindent), (field_generate), (value_generate),
2076 (constant_generate), (property_generate), (function_generate),
2077 (vfunc_generate), (signal_generate), (interface_generate),
2078 (struct_generate), (union_generate), (boxed_generate),
2079 (enum_generate), (node_generate), (module_generate),
2080 (g_scanner_write_file):
2082 Move the scanner gidl writing to a separate source file.
2084 2007-12-10 Johan Dahlin <johan@gnome.org>
2089 Move over all CType construction functions.
2091 * tests/parser/Makefile.am:
2092 Be verbose when printing parsing tests results.
2094 2007-12-10 Johan Dahlin <johan@gnome.org>
2096 * src/scanner.c (g_igenerator_start_preprocessor): Refactor
2097 preprocessor handling to here. Start cpp insteado of cc -E,
2098 always include -U__GNUC__, since it's specific to the preprocessor
2101 * tests/parser/Makefile.am (check-local): Silent diff and skip
2102 -U__GNUC__ which is always defined now
2104 2007-12-10 Johan Dahlin,,, <jdahlin@plasttroll>
2106 reviewed by: <delete if not using a buddy>
2108 * src/scanner.c: (g_igenerator_start_preprocessor), (main):
2109 * tests/parser/Makefile.am:
2111 2007-12-09 Johan Dahlin <johan@gnome.org>
2114 Use GOption for command line options.
2115 (g_igenerator_new, main): Simplify constructor and they way
2116 parameters are passed into it.
2122 * src/gen-introspect.c:
2123 * src/gen-introspect.h:
2125 Rename gen-introspect.[ch] to scanner.[ch]
2127 2007-12-09 Johan Dahlin <johan@gnome.org>
2131 * src/Makefile.am: Rename gen-introspect to g-idl-scanner,
2132 don't make the repository library and the other utilites link against
2135 * src/gen-introspect.c: (g_igenerator_create_object),
2136 (g_igenerator_create_interface), (g_igenerator_create_boxed),
2137 (g_igenerator_create_enum), (g_igenerator_create_flags),
2138 (g_igenerator_process_module_symbol),
2139 (g_igenerator_process_module), (g_igenerator_generate), (main):
2140 * src/gen-introspect.h:
2141 Refactor g_igenerator_process_types into smaller pieces.
2143 * tests/parser/Makefile.am:
2144 Depend on the gen-introspect binary
2146 2007-12-09 Johan Dahlin <johan@gnome.org>
2148 * src/gen-introspect.c (g_igenerator_process_types):
2149 Break into smaller pieces, one for each generated node type.
2151 2007-12-08 Johan Dahlin <johan@gnome.org>
2153 * src/gen-introspect.c: (g_igenerator_process_types),
2154 (g_igenerator_add_module):
2155 * tests/parser/Foo-expected.gidl:
2156 * tests/parser/foo-object.h:
2157 * tests/parser/foo.c: (foo_subobject_class_init),
2158 (foo_subobject_init):
2160 Add a subobject test and make sure to register defined classes
2161 in the lookup symbol hash table.
2163 2007-12-08 Johan Dahlin <johan@gnome.org>
2167 * src/gen-introspect.c: (g_igenerator_new), (lookup_symbol),
2168 (g_igenerator_process_types), (g_igenerator_add_module),
2169 (g_igenerator_add_include_idl), (main):
2170 * src/gen-introspect.h:
2171 * tests/parser/Makefile.am:
2172 * tests/parser/Foo-expected.gidl:
2174 Change the gen-introspect to generate namespaced module names,
2175 such as GLib.Object instead of GObject.
2176 Add a GLib.gidl which introduces GLib.Object and GLib.InitiallyUnowned,
2177 add a --include-idl parameter to gen-introspect,
2178 and update the parser test.
2180 2007-12-08 Johan Dahlin <johan@gnome.org>
2182 * src/gen-introspect.c:
2183 Move main to the end of the file and attempt to make it valid
2186 * tests/parser/Makefile.am (BUILT_SOURCES): Remove .repo here,
2187 we're not quite ready to generate metadata yet.
2192 Add a simple gen-introspect parser test
2194 2007-12-06 Gustavo J. A. M. Carneiro <gjc@gnome.org>
2196 reviewed by: Johan Dahlin <johan@gnome.org>
2199 * gobject-introspection.pc.in:
2201 * src/compiler.c: (format_output), (write_out_metadata), (main):
2202 * src/gen-introspect.c: (main):
2203 * src/gen-introspect.h:
2204 * src/generate.c: (write_callable_info), (write_repository),
2205 (load_metadata), (main):
2206 * src/gidlmodule.c: (g_idl_module_new),
2207 (g_idl_module_build_metadata):
2209 * src/gidlparser.c: (start_element_handler):
2210 * src/ginfo.c: (g_info_new), (g_info_from_entry),
2211 (g_base_info_get_name), (g_base_info_get_namespace),
2212 (g_base_info_is_deprecated), (g_base_info_get_annotation),
2213 (g_base_info_get_metadata), (g_function_info_get_symbol),
2214 (g_function_info_get_flags), (g_function_info_get_property),
2215 (g_function_info_get_vfunc), (signature_offset), (g_type_info_new),
2216 (g_callable_info_may_return_null),
2217 (g_callable_info_get_caller_owns), (g_callable_info_get_n_args),
2218 (g_callable_info_get_arg), (g_arg_info_get_direction),
2219 (g_arg_info_is_return_value), (g_arg_info_is_dipper),
2220 (g_arg_info_is_optional), (g_arg_info_may_be_null),
2221 (g_arg_info_get_ownership_transfer), (g_type_info_is_pointer),
2222 (g_type_info_get_tag), (g_type_info_get_param_type),
2223 (g_type_info_get_interface), (g_type_info_get_array_length),
2224 (g_type_info_is_zero_terminated),
2225 (g_type_info_get_n_error_domains), (g_type_info_get_error_domain),
2226 (g_error_domain_info_get_quark), (g_error_domain_info_get_codes),
2227 (g_value_info_get_value), (g_field_info_get_flags),
2228 (g_field_info_get_size), (g_field_info_get_offset),
2229 (g_registered_type_info_get_type_name),
2230 (g_registered_type_info_get_type_init),
2231 (g_struct_info_get_n_fields), (g_struct_info_get_field),
2232 (g_struct_info_get_n_methods), (g_struct_info_get_method),
2233 (find_method), (g_struct_info_find_method),
2234 (g_enum_info_get_n_values), (g_enum_info_get_value),
2235 (g_object_info_get_parent), (g_object_info_get_type_name),
2236 (g_object_info_get_type_init), (g_object_info_get_n_interfaces),
2237 (g_object_info_get_interface), (g_object_info_get_n_fields),
2238 (g_object_info_get_field), (g_object_info_get_n_properties),
2239 (g_object_info_get_property), (g_object_info_get_n_methods),
2240 (g_object_info_get_method), (g_object_info_find_method),
2241 (g_object_info_get_n_signals), (g_object_info_get_signal),
2242 (g_object_info_get_n_vfuncs), (g_object_info_get_vfunc),
2243 (g_object_info_get_n_constants), (g_object_info_get_constant),
2244 (g_interface_info_get_n_prerequisites),
2245 (g_interface_info_get_prerequisite),
2246 (g_interface_info_get_n_properties),
2247 (g_interface_info_get_property), (g_interface_info_get_n_methods),
2248 (g_interface_info_get_method), (g_interface_info_find_method),
2249 (g_interface_info_get_n_signals), (g_interface_info_get_signal),
2250 (g_interface_info_get_n_vfuncs), (g_interface_info_get_vfunc),
2251 (g_interface_info_get_n_constants),
2252 (g_interface_info_get_constant), (g_property_info_get_flags),
2253 (g_signal_info_get_flags), (g_signal_info_get_class_closure),
2254 (g_signal_info_true_stops_emit), (g_vfunc_info_get_flags),
2255 (g_vfunc_info_get_offset), (g_vfunc_info_get_signal),
2256 (g_constant_info_get_value), (g_union_info_get_n_fields),
2257 (g_union_info_get_field), (g_union_info_get_n_methods),
2258 (g_union_info_get_method), (g_union_info_is_discriminated),
2259 (g_union_info_get_discriminator_offset),
2260 (g_union_info_get_discriminator):
2261 * src/ginvoke.c: (g_function_info_invoke):
2262 * src/girepository.c: (g_irepository_register),
2263 (g_irepository_unregister), (g_irepository_get_default),
2264 (count_interfaces), (g_irepository_get_n_infos), (find_interface),
2265 (g_irepository_get_info), (g_irepository_find_by_name),
2266 (g_irepository_get_shared_library),
2267 (g_irepository_build_search_path), (g_irepository_register_file),
2268 (g_irepository_error_quark):
2269 * src/girepository.h:
2270 * src/gmetadata.c: (g_metadata_get_dir_entry),
2271 (g_metadata_check_sanity), (validate_header),
2272 (validate_array_type_blob), (validate_iface_type_blob),
2273 (validate_param_type_blob), (validate_error_type_blob),
2274 (validate_type_blob), (validate_arg_blob),
2275 (validate_signature_blob), (validate_function_blob),
2276 (validate_callback_blob), (validate_constant_blob),
2277 (validate_value_blob), (validate_field_blob),
2278 (validate_property_blob), (validate_signal_blob),
2279 (validate_vfunc_blob), (validate_struct_blob),
2280 (validate_enum_blob), (validate_object_blob),
2281 (validate_interface_blob), (validate_errordomain_blob),
2282 (validate_union_blob), (validate_blob), (validate_directory),
2283 (validate_annotations), (g_metadata_validate), (_g_metadata_init),
2284 (g_metadata_new_from_memory), (g_metadata_new_from_const_memory),
2285 (g_metadata_new_from_mapped_file), (g_metadata_free),
2286 (g_metadata_set_module), (g_metadata_get_namespace):
2288 * tests/Makefile.am:
2289 * tests/invoke/Makefile.am:
2290 * tests/invoke/invoke-namespace-find.sh:
2291 * tests/invoke/invoke.c: (main):
2293 Add a namespace/shared library mapping. fixes #313268.
2295 2007-12-03 Johan Dahlin <johan@gnome.org>
2297 * src/gidlparser.c (parse_type_internal): Disable char/gchar and
2300 2007-11-30 Jürg Billeter <j@bitron.ch>
2306 * src/gen-introspect.c: (g_idl_node_cmp), (g_igenerator_new),
2307 (g_igenerator_write_inline), (g_igenerator_write),
2308 (g_igenerator_write_indent), (g_igenerator_write_unindent),
2309 (field_generate), (value_generate), (constant_generate),
2310 (property_generate), (function_generate), (vfunc_generate),
2311 (signal_generate), (interface_generate), (struct_generate),
2312 (union_generate), (boxed_generate), (enum_generate),
2313 (node_generate), (module_generate), (get_type_from_type_id),
2314 (str_replace), (g_igenerator_process_properties),
2315 (g_igenerator_process_signals), (g_igenerator_process_types),
2316 (get_type_from_ctype), (g_igenerator_process_function_symbol),
2317 (g_igenerator_process_unregistered_struct_typedef),
2318 (g_igenerator_process_struct_typedef),
2319 (g_igenerator_process_union_typedef),
2320 (g_igenerator_process_enum_typedef),
2321 (g_igenerator_process_function_typedef),
2322 (g_igenerator_process_constant), (g_igenerator_process_symbols),
2323 (g_igenerator_add_symbol), (g_igenerator_is_typedef),
2324 (g_igenerator_generate), (main), (csymbol_new),
2325 (csymbol_get_const_boolean), (ctype_new), (ctype_copy),
2326 (cbasic_type_new), (ctypedef_new), (cstruct_new), (cunion_new),
2327 (cenum_new), (cpointer_new), (carray_new), (cfunction_new),
2328 (eat_hspace), (eat_line), (read_identifier),
2329 (g_igenerator_parse_macros):
2330 * src/gen-introspect.h:
2332 Import gen-introspect to generate introspection information by
2335 2007-11-30 Jürg Billeter <j@bitron.ch>
2337 * src/gidlnode.c: (g_idl_node_new): support creating callback nodes
2339 2007-11-30 Jürg Billeter <j@bitron.ch>
2341 * src/gidlparser.c: (end_element_handler): Don't leave requires
2344 2007-11-29 Johan Dahlin <johan@gnome.org>
2346 * src/gidlparser.c (parse_type_internal): Add char,
2347 gchar and guchar to the builtin types.
2349 2007-11-26 Johan Dahlin <johan@gnome.org>
2351 * src/ginfo.c: (g_object_info_get_type_name),
2352 (g_object_info_get_type_init):
2353 * src/girepository.c: (g_irepository_is_registered):
2354 * src/girepository.h:
2356 Add g_object_info_get_type_name, g_object_info_get_type_init and
2357 g_irepository_is_registered.
2359 2006-08-14 Jürg Billeter <j@bitron.ch>
2361 * src/gidlparser.c: (end_element_handler): Don't leave
2362 namespace and implements states too early.
2365 2007-11-26 Johan Dahlin <johan@gnome.org>
2367 * src/gmetadata.c (validate_struct_blob):
2368 pass blob_type to validate_function_blob instead of
2369 hard-coding BLOB_TYPE_STRUCT.
2371 Patch by Torsten Schoenfeld, fixes #314190
2373 2006-10-03 Torsten Schoenfeld <tsch@cvs.gnome.org>
2375 * src/compiler.c, src/generate.c, src/gidlnode.c,
2376 src/gidlparser.c, src/ginfo.c, src/girepository.c,
2377 tests/invoke/invoke.c, test/invoke/testfns.c: Hush compiler
2378 warnings about return values, signedness mismatches, unused
2379 variables, and unhandles enum values in switch statements.
2381 * tests/invoke/Makefile.am: Don't install the invoke test program.
2382 Add -I ../../src to the cflags used for the test functions files.
2384 2005-08-31 Torsten Schoenfeld <tsch@cvs.gnome.org>
2386 * src/girepository.h: Export g_invoke_error_quark.
2388 2005-08-31 Torsten Schoenfeld <tsch@cvs.gnome.org>
2390 * src/ginvoke.c: Remove the fallback implementation of
2391 g_function_info_invoke since we now formally depend on libffi.
2393 2005-07-25 Matthias Clasen <mclasen@redhat.com>
2395 * src/Makefile, tests/Makefile, tests/invoke/Makefile:
2396 Remove these files from cvs, as they are now generated.
2398 * src/gmetadata.c (validate_iface_type_blob): Don't
2399 complain if blob->pointer is not set, since that
2400 happens for enum and flag types. (#308935, Gustavo
2403 * Commit an autoconf-conversion patch by
2404 Gustavo Carneiro (#308708)
2406 2005-05-24 Matthias Clasen <mclasen@redhat.com>
2408 * src/compiler.c (main): Use it here to validate
2409 the generated metadata.
2411 * src/gmetadata.[hc]: Add code to validate a
2414 * metadata-format.txt: Updates
2416 2005-05-22 Matthias Clasen <mclasen@redhat.com>
2418 * tests/*: Add struct offsets to field and vfunc
2421 * src/generate.c (write_vfunc_info): Write offset
2422 information for vfuncs.
2424 * src/gidlnode.c (g_idl_node_build_metadata): Write
2425 the struct offsets into the metadata.
2427 * src/gidlparser.c: Parse the offset attributes of
2428 field and vfunc elements.
2430 * src/gidlnode.h: Add offset members to field and
2433 2005-05-21 Matthias Clasen <mclasen@redhat.com>
2437 * gidl.dtd: Updates.
2439 * src/g-idl-offsets.pl: A perl script which reads a .gidl
2440 file, creates, compiles and runs a C file, and folds the
2441 resulting struct offsets back into the .gidl file.
2443 2005-05-20 Matthias Clasen <mclasen@redhat.com>
2445 * src/gidlparser.c (start_field): Make fields in objects
2448 * src/gidlmodule.c: Include string.h
2453 * metadata-format.txt: Cleanup basic types.
2454 * src/*: Adapt to the changes.
2455 * tests/*: Adapt to the changes.
2456 * examples/gdk-pixbuf.gidl: Adapt to the changes.
2458 * src/gidlnode.c (g_idl_node_get_size): Report the correct
2459 size for enum blobs.
2460 (g_idl_node_get_full_size): Report the correct size for
2463 * src/gidlmodule.c (g_idl_module_build_metadata): Add some
2464 error checking for blob sizes.
2466 2005-05-19 Matthias Clasen <mclasen@redhat.com>
2468 * src/gidlnode.c (g_idl_node_build_metadata): Correctly handle
2469 interface types for which is_pointer is FALSE, e.g. enums.
2471 * src/gidlnode.c (g_idl_node_get_full_size)
2472 * src/gidlparser.c (parse_type_internal):
2473 * src/generate.c (write_type_info): Support unspecialized
2474 lists, hashtables and errors. Also emit a '*' after these.
2478 2005-05-17 Matthias Clasen <mclasen@redhat.com>
2482 * metadata-format.txt: Cleanups by Maciej Katafiasz.
2484 2005-05-15 Matthias Clasen <mclasen@redhat.com>
2486 * src/*.c: Change the directory to be addressed by
2487 1-based indexes, and use an index of zero to mean
2490 2005-05-15 Matthias Clasen <mclasen@redhat.com>
2492 * tests/roundtrips.sh (SIMPLE_TESTS): Add union.test.
2494 * tests/union.test: Add a union test.
2496 * src/generate.c: Handle unions.
2498 * src/girepository.h:
2499 * src/ginfo.c: Add GIUnionInfo and functions to access it.
2501 * src/gidlnode.c: Handle GIdlNodeUnion nodes.
2503 * src/gidlparser.c (start_union): Parse <union> elements.
2505 * src/gidlnode.h: Add a GIdlNodeUnion.
2507 * gidl.dtd: Add a <union> element.
2509 * src/gmetadata.c (g_metadata_check_sanity): Check
2512 * src/gmetadata.h: Add union_blob_size to Header,
2515 * metadata-format.txt: Add a UnionBlob.
2517 2005-05-13 Matthias Clasen <mclasen@redhat.com>
2519 * tests/*: Update testcases.
2521 * src/generate.c (write_callable_info): Don't forget to
2522 write transfer and null-ok attributes for return types
2525 * src/girepository.h:
2526 * src/ginfo.c (g_callable_info_may_return_null):
2527 New function to find out if a function may return NULL.
2529 * src/compiler.c (format_output): Make the generated
2532 * README: Point to a recent libffi snapshot.
2534 * tests/invoke/*: Some invoke tests.
2536 * src/Makefile: Add ginvoke.c and the necessary
2539 * src/girepository.h (g_function_info_invoke): Add
2542 * src/ginvoke.c (g_function_info_invoke): Initial
2543 implementation of invoke functionality based on libffi.
2545 * src/gidlnode.c (g_idl_node_build_metadata): Pass the
2546 strings and types hash tables in the right order when
2548 (find_entry_node): Free the name parts.
2550 2005-05-12 Johan Dahlin <johan@gnome.org>
2552 * src/generate.c: Generate consistent end tags.
2556 2005-05-12 Matthias Clasen <mclasen@redhat.com>
2560 * src/gidlparser.c (start_function): Actually add
2561 methods to objects. (Steven Walter)
2563 * src/girepository.h:
2564 * src/ginfo.c: Rename Transfer and Direction to
2565 GITransfer and GIDirection. (Torsten Schoenfeld)
2567 * tests/*: Make tests work with the changes in name
2570 * src/gidlnode.c (find_entry_node): Parse qualified
2571 names and generate xref nodes for them if needed. Don't
2572 require all modules to be loaded any more.
2574 * src/gidlmodule.c (g_idl_module_build_metadata): Choke
2577 * src/ginfo.c (g_object_info_get_parent): Return NULL
2578 if blob->parent is 0. Still need to make sure index
2581 * src/generate.c: Generate qualified names when
2582 referring to non-local types. Emit transfer attribute
2585 * src/compiler.c (format_output): Put the function
2586 attributes where gcc accepts them.
2588 2005-05-11 Matthias Clasen <mclasen@redhat.com>
2590 * src/compiler.c (main): Add a --verbose cmdline option
2591 and only log messages if it is specified.
2594 * src/gidlnode.c (init_stats, dump_stats): Collect some
2595 statistics on string and type sharing.
2597 * src/gidlmodule.c (g_idl_module_build_metadata): Use
2598 g_message() instead of fprintf().
2600 * src/gidlnode.c (g_idl_node_free): Make this more robust.
2601 (g_idl_node_get_size): Implement for structs.
2602 (g_idl_node_get_full_size): Handle parent being NULL.
2603 (serialize_type): Handle lookup failures more gracefully.
2605 2005-05-10 Matthias Clasen <mclasen@redhat.com>
2607 * src/gidlnode.c (g_idl_node_get_full_size): Correct the
2608 size calculation for 2-parameter types and for objects.
2610 * src/compiler.c: Add a cmdline option for debug output
2611 and install a log handler to implement it.
2612 * src/gidlnode.c: Add some debug spew.
2616 * src/gidlmodule.c (g_idl_module_build_metadata): Don't
2617 forget to count the module name when calculating the
2618 required size for the metadata.
2621 * src/gidlparser.c: Fix compiler warnings.
2623 2005-05-09 Matthias Clasen <mclasen@redhat.com>
2625 * src/compiler.c (main): Free the option context.
2627 * gidl.dtd: Clean up handling of names. All elements
2628 have a "name", only the elements corresponding to
2629 actual callable functions (function, method, constructor),
2630 have an additional "symbol" attribute holding the
2631 dlsym()-able function name.
2633 * src/generate.c: Adapt to generate xml matching the
2637 * src/gidlnode.c: Adapt to parse the new dtd.
2639 * tests/*.test: Adjust to the new dtd.
2641 * metadata-format.txt:
2642 * src/gmetadata.h: Remove the short_name field
2644 * src/gmetadata.c: Shrink size of ValueBlob to 12.
2645 * src/girepository.h:
2646 * src/ginfo.c (g_value_info_get_short_name): Removed
2648 2005-05-09 Matthias Clasen <mclasen@redhat.com>
2650 * gidl.dtd: Allow constructors for boxed types,
2651 patch by Jonathan Blandford.
2654 2005-05-09 Matthias Clasen <mclasen@redhat.com>
2656 * --- Initial import ---