1 2008-08-20 Colin Walters <walters@verbum.org>
3 * girepository/girparser.py: And parse them.
5 2008-08-20 Johan Dahlin <johan@gnome.org>
7 * giscanner/glibast.py: Add gshort/gushort types
9 2008-08-20 Colin Walters <walters@verbum.org>
11 * gir/Makefile.am: Rename .gir files using GI namespace.
12 * girepository/girepository.c: Use XDG_DATA_DIRS for
13 looking up typelibs. Also typelibs are now suffixed
15 * tests/invoke/Makefile.am: Only use metadata.
16 * girepository/Makefile.am: Remove unnecessary include.
17 * tests/scanner/Makefile.am: Update using GI namespaces
20 2008-08-20 Colin Walters <walters@verbum.org>
22 * girepository/transformer.py: Suppress aliases whose
24 * girepository/ast.py: Define some more aliases.
26 2008-08-20 Colin Walters <walters@verbum.org>
28 * girepository/girparser.c: Avoid alias infloops.
30 2008-08-20 Colin Walters <walters@verbum.org>
32 * tests/scanner/foo-expected.gir: Fix expected list type.
34 2008-08-20 Johan Dahlin <johan@gnome.org>
36 * giscanner/glibtransformer.py (GLibTransformer._resolve_type_name):
37 Add a workaround for #548689.
38 We can now compile gtk!
40 2008-08-20 Colin Walters <walters@verbum.org>
42 * giscanner/glibtransformer.py: Try to look up
43 aliases using the c:type too.
45 2008-08-20 Colin Walters <walters@verbum.org>
47 * girepository/girparser.c: Parse union fields.
49 2008-08-20 Johan Dahlin <johan@gnome.org>
51 * giscanner/ast.py: Make time_t an alias for long
53 * gir/gio-2.0-good.gir:
54 * gir/glib-2.0-good.gir:
55 * gir/gobject-2.0-good.gir:
57 * giscanner/glibtransformer.py:
58 Do not delete Class structures, we need them in gdk/gtk.
59 * tests/scanner/drawable-expected.gir:
60 * tests/scanner/foo-expected.gir:
61 * tests/scanner/utility-expected.gir:
64 2008-08-20 Johan Dahlin <johan@gnome.org>
66 * tests/scanner/Makefile.am:
67 * tests/scanner/annotation-expected.gir:
68 * tests/scanner/annotation.c (annotation_object_class_init),
69 (annotation_object_init), (annotation_object_method),
70 (annotation_object_in), (annotation_object_out),
71 (annotation_object_inout), (annotation_object_inout2),
72 (annotation_object_inout3), (annotation_object_calleeowns),
73 (annotation_object_calleesowns), (annotation_object_get_strings),
74 (annotation_object_with_voidp), (annotation_object_get_objects),
75 (annotation_object_create_object), (annotation_object_allow_none):
76 * tests/scanner/annotation.h:
77 * tests/scanner/foo-expected.gir:
78 * tests/scanner/foo.c:
79 * tests/scanner/foo.h:
80 Split out annotation tests out of foo
82 2008-08-20 Johan Dahlin <johan@gnome.org>
84 * tests/scanner/Foo-expected.gir:
85 * tests/scanner/Makefile.am:
86 * tests/scanner/foo-expected.gir:
87 * tests/scanner/foo-object.h:
88 * tests/scanner/foo.c:
89 Foo->foo, foo-object.h -> foo.h
91 2008-08-20 Johan Dahlin <johan@gnome.org>
93 * tests/scanner/Foo-expected.gir:
94 * tests/scanner/Makefile.am:
95 * tests/scanner/drawable-expected.gir:
96 * tests/scanner/drawable.c (test_drawable_class_init),
98 * tests/scanner/drawable.h:
99 * tests/scanner/foo-object.h:
100 * tests/scanner/foo.c (foo_boxed_method):
101 Move the drawable parts out of Foo to its own test.
103 2008-08-20 Johan Dahlin <johan@gnome.org>
105 * tests/scanner/Foo-expected.gir:
106 * tests/scanner/foo-object.h:
107 * tests/scanner/foo.c (foo_drawable_class_init),
109 Add a based on GdkDrawable which generates
112 2008-08-19 Colin Walters <walters@verbum.org>
114 * giscanner/transformer.py: Don't try
115 to strip prefix before namespace.
117 2008-08-19 Johan Dahlin <johan@gnome.org>
119 * giscanner/transformer.py:
120 * tests/scanner/Foo-expected.gir:
121 * tests/scanner/foo-object.h:
122 Add support for typedef void foo type of
125 2008-08-19 Johan Dahlin <johan@gnome.org>
128 * giscanner/girwriter.py:
129 * giscanner/glibtransformer.py:
130 * giscanner/transformer.py:
131 * tests/scanner/Foo-expected.gir:
132 Add basic support for union, base the code much
133 on Struct. Add a testcase.
135 2008-08-19 Johan Dahlin <johan@gnome.org>
137 * tests/scanner/Foo-expected.gir:
138 * tests/scanner/foo-object.h:
139 Add a union testcase which the compiler currently
142 2008-08-19 Johan Dahlin <johan@gnome.org>
144 * gobject-introspection-1.0.pc.in:
145 Add a g_ir_compiler variable
147 2008-08-19 Colin Walters <walters@verbum.org>
149 * giscanner/ast.py: Rework types to be more closely
151 * giscanner/girparser.py: Parse more bits.
152 * giscanner/girwriter.py: Write sequences in a new
153 way that specifies container type.
154 * giscanner/glibast.py: Adjust for ast.py changes,
155 add 'ctype' property to GLibObject and GLibInterface
156 so we can look things up by it later.
157 * gicanner/transformer.py: Names is new class holding
158 the various namespaces we manage. Do not confuse
159 with Namespace which is toplevel XML node effectively.
160 Rework all type resolution to go through
161 _resolve_type_name_1.
162 * giscanner/glibtransformer.py: Raise UnknownTypeError
163 instead of ValueError for cleanliness. Add Unresolved
164 class to mark types whose parent we haven't seen yet.
165 Use new Names object from transformer.py.
166 Correctly look up parent=.
167 Fix type validation to handle sequences.
168 * tests/scanner/Foo-expected.gir: Update for sequence
169 work, int instead of int32.
170 * tools/g-ir-scanner: Add --noclosure option
171 * gir/Makefile.am: Use --noclosure by default for
174 2008-08-18 Johan Dahlin <johan@gnome.org>
176 * gir/gio-2.0-good.gir:
177 * gir/glib-2.0-good.gir:
178 * gir/gobject-2.0-good.gir:
181 2008-08-18 Johan Dahlin <johan@gnome.org>
184 * giscanner/girparser.py:
185 * giscanner/girwriter.py:
186 * giscanner/glibast.py:
187 * giscanner/glibtransformer.py:
188 * giscanner/transformer.py:
189 * tests/scanner/Foo-expected.gir:
190 * tests/scanner/foo-object.h:
191 * tests/scanner/utility-expected.gir:
192 * tests/scanner/utility.h:
193 Redo type resolving and validation.
194 Add a couple of new tests.
195 Patch mostly written by Colin.
197 2008-08-18 Johan Dahlin <johan@gnome.org>
200 * giscanner/girparser.py:
202 * giscanner/transformer.py:
203 Improve enum parsing for enums without a GType.
204 Make flags/enum references to other girs work
205 * giscanner/utils.py:
207 * tests/scanner/Makefile.am:
208 * tests/scanner/foo-object.h:
209 * tests/scanner/utility-expected.gir:
210 * tests/scanner/utility.h:
211 Add a new test for external enum references
213 2008-08-18 Johan Dahlin <johan@gnome.org>
215 * docs/global-module-registry.txt: Update
217 * tests/array.gir: Update with new type proposal
219 * girepository/girepository.c (g_type_tag_to_string):
220 * girepository/girepository.h:
221 * girepository/girnode.c (g_ir_node_get_full_size_internal),
223 * girepository/girnode.h:
224 Make enum serializing functions public. Clean up some whitespace.
226 2008-08-17 Johan Dahlin <johan@gnome.org>
228 * docs/global-module-registry.txt:
229 Add a document for an on disk module registry format
231 2008-08-17 Johan Dahlin <johan@gnome.org>
234 * gir/gio-2.0-good.gir:
237 2008-08-17 Johan Dahlin <johan@gnome.org>
240 * gir/glib-2.0-good.gir:
241 * gir/gobject-2.0-good.gir:
242 * giscanner/cgobject.py:
243 * giscanner/glibtransformer.py:
244 Regenerate GObject & GType.
245 Avoid warnings when generating gobject-2.0.gir.
246 Introspect a little more, and skip *_get_type functions.
248 2008-08-17 Colin Walters <walters@verbum.org>
250 * gir/glib-2.0.gir, gir/gobject-2.0.gir:
251 Rename to -good, always generate during build.
252 * gir/Makefile.am: Ensure .gir files dep on
254 * Makefile.am: Switch build order to ensure
255 the scanner is ready before we do gir/.
256 * tools/g-ir-scanner: Look for .git too.
258 2008-08-17 Johan Dahlin <johan@gnome.org>
260 * girepository/gtypelib.c (validate_enum_blob):
261 * giscanner/glibtransformer.py:
262 * giscanner/transformer.py:
263 Remove resolve_possible_typedefs, it was unused.
264 Allow multiple enum values of the sample value in an enum,
265 since it's actually pretty common.
266 Register enums so they can be resolved too.
268 2008-08-16 Johan Dahlin <johan@gnome.org>
270 * giscanner/girparser.py:
271 Parse enumeration/bitfield.
273 2008-08-16 Johan Dahlin <johan@gnome.org>
275 * giscanner/girparser.py:
278 2008-08-16 Johan Dahlin <johan@gnome.org>
280 * giscanner/glibtransformer.py:
281 Resolve type names for alias targets
282 * giscanner/transformer.py:
283 Skip FILE* parameters fow now
285 2008-08-16 Johan Dahlin <johan@gnome.org>
288 * gir/gobject-2.0.gir:
291 * tests/scanner/Makefile.am:
294 2008-08-15 Colin Walters <walters@verbum.org>
296 * giscanner/glibtransformer.py: Explicitly construct
297 new list, since we're deleting as we iterate.
298 Don't delete all structures which end in Class; just
299 ones which have a paired GObject.
300 Fix printing of type warning.
301 * giscanner/transformer.py: Make strip_namespace_object
302 be the identity function if it doesn't match the
305 2008-08-15 Colin Walters <walters@verbum.org>
307 * giscanner/cgobject.py: Define yet more argument
308 prototypes; fix prototype for g_type_fundamental.
310 2008-08-14 Johan Dahlin <johan@gnome.org>
313 * tests/constant.gir:
316 * tools/generate.c (write_struct_info):
317 Fix generator for constant/gobject/struct
319 2008-08-14 Johan Dahlin <johan@gnome.org>
323 * tools/generate.c (write_enum_info):
324 Fix generation of enum/bitfields
326 2008-08-14 Johan Dahlin <johan@gnome.org>
328 * girepository/girparser.c (start_field), (start_constant),
329 (start_type), (end_element_handler):
330 Clear up constant parsing
335 * tools/generate.c (write_callable_info), (write_function_info),
336 (write_callback_info), (write_constant_info), (write_signal_info),
337 (write_vfunc_info), (write_property_info), (write_object_info),
338 (write_interface_info):
339 Constants/Signals are handled now.
341 2008-08-14 Johan Dahlin <johan@gnome.org>
343 * girepository/girparser.c (start_type):
344 Don't require c:type.
348 Update, remove parts we don't support yet
349 * tests/roundtrips.sh:
351 * tools/generate.c (write_type_info), (write_field_info),
352 (write_callable_info), (write_struct_info):
353 Make it emit proper gir.
355 2008-08-14 Johan Dahlin <johan@gnome.org>
357 * giscanner/transformer.py:
358 New internal function for adding a new node.
360 2008-08-14 Johan Dahlin <johan@gnome.org>
363 Define an internal _H_ variable so we skip parsing both
364 i18n headers, only one is needed.
366 Add the glib-2.0.gir too.
367 * giscanner/glibast.py:
368 Add gconstpointer as an alias for ANY
369 * giscanner/transformer.py:
370 Do not lower case enumeration names per se.
371 Skip functions which has parameters called 'va_list'
373 2008-08-14 Colin Walters <walters@verbum.org>
375 * giscanner/transformer.py: Comment data structures.
376 Also squash pointers in resolve_type_name to correspond
377 with what we do for params.
378 * giscanner/glibtransformer.py: Print warnings in more
379 situations. Rework checks for method/constructor to
380 look up in our GType database instead of just checking
381 for *. Avoid generating <record> for GObject which
382 duplicate the <class>.
383 * gir/Makefile.am: Generate glib-2.0.gir and gobject-2.0.gir
386 2008-08-14 Johan Dahlin <johan@gnome.org>
388 * giscanner/girwriter.py:
389 * giscanner/glibast.py:
390 * giscanner/glibtransformer.py:
391 * giscanner/transformer.py:
394 Add pyflakes.py and run it in make check.
395 Update the source code to fix the errors reported by
398 2008-08-14 Johan Dahlin <johan@gnome.org>
401 * giscanner/girparser.py:
402 * giscanner/glibast.py:
403 * giscanner/glibtransformer.py:
404 Refactor the parser a bit.
405 Add parent type to interfaces and update callsites.
407 2008-08-14 Johan Dahlin <johan@gnome.org>
409 * giscanner/glibtransformer.py:
410 * giscanner/utils.py:
411 Refactor a bit, avoid isinstance and add a method
412 for each type we parse.
414 2008-08-14 Johan Dahlin <johan@gnome.org>
417 * giscanner/girparser.py:
418 * giscanner/glibtransformer.py:
420 Run pep8.py in make check, fix old errors.
422 2008-08-13 Colin Walters <walters@verbum.org>
424 * giscanner/girparser.py: Parse records.
426 2008-08-13 Colin Walters <walters@verbum.org>
428 * gir/Makefile.am: Install again.
429 * gir/gobject-2.0.gir: Add some more bits.
431 2008-08-13 Colin Walters <walters@verbum.org>
433 * gir/gobject-2.0.gir: Use correct namespace, add GType.
434 * giscanner/girparser.py: Handle aliases.
435 * giscanner/transformer.py: Record aliases. Make resolver
436 functions public; we now call into these explicitly from
437 glibtransformer. Handle resolving aliases.
438 * giscanner/glibtransformer.py: Separate our internal namespace
439 from included ones. Call up into transformer's resolver functions.
441 2008-08-13 Johan Dahlin <johan@gnome.org>
443 * girepository/girnode.c (g_ir_node_get_full_size_internal):
444 * girepository/girparser.c (start_class):
445 * giscanner/glibtransformer.py:
446 Allow get_type to be None, set a get_type for GInitiallyUnowned too.
448 2008-08-13 Johan Dahlin <johan@gnome.org>
450 * giscanner/cgobject.py:
451 Register GInitiallyUnowned
452 * giscanner/girwriter.py:
453 * giscanner/glibtransformer.py:
454 Special case GObject/GInitially owned as they are a bit special to use.
456 2008-08-13 Colin Walters <walters@verbum.org>
458 * tests/scanner/Foo-expected.gir, tests/scanner/utility-expected.gir:
459 Object is in GObject namespace.
461 2008-08-13 Colin Walters <walters@verbum.org>
463 * giscanner/girparser.py: Fix processing of functions
466 2008-08-13 Colin Walters <walters@verbum.org>
468 * giscanner/girparser.py: Parse more than just <class.
469 * giscanner/glibtransformer.py: Put aliases in a separate
470 data structure since their name is not canonicall.
471 * giscanner/transformer.py: Handle resolving type names
474 2008-08-13 Johan Dahlin <johan@gnome.org>
476 * tools/g-ir-scanner:
477 Allow multiple libraries
478 * giscanner/glibtransformer.py:
479 Rename load_library to add_library, traverse over all libraries
480 when trying to resolve a function
482 2008-08-12 Colin Walters <walters@verbum.org>
484 * giscanner/transformer.py: Record typedefs as <alias> elements.
485 Also attempt to look up types in external namespaces.
486 * giscanner/girwriter.py: Write them.
487 * giscanner/glibtransformer.py: Rework resolver using real instanceof
488 checks. Resolve interface methods and properties.
489 * tests/scanner/foo-object.h: Add a method with typedef.
490 * tests/scanner/Foo-expected.gir: Update.
491 * girepository/girnode.c: Debug tweaks.
492 * girepository/girparser.c: Make a first pass through the XML where we
493 record all the aliases. This lets us resolve them as we go through the
495 * gir/Makefile.am: Don't install gobject-2.0.gir; we want that to come
498 2008-08-12 Colin Walters <walters@verbum.org>
500 * giscanner/glibtransformer.py: Resolve typedefs (e.g. AtkAttributeSet -> GSList).
501 Correctly do subclasseing in 2nd pass resolution. Handle callbacks in structure
503 * giscanner/transformer.py: Record typedefs and expose public API for resolving
505 * tests/scanner/Foo-expected.gir: Fix expected callback types.
507 2008-08-12 Colin Walters <walters@verbum.org>
509 * giscanner/glibtransformer.py: Also transform object properties.
511 2008-08-12 Colin Walters <walters@verbum.org>
513 * giscanner/glibtransformer.py: Also transform callbacks
514 and structure field types.
515 * tests/scanner/Fooe-expected.gir: Update to expect correct
516 names for callbacks and structs.
518 2008-08-12 Colin Walters <walters@verbum.org>
520 * girepository/girparser.c: Handle 'any'.
521 * tests/scanner/Foo-expected.gir, tests/scanner/foo-object.h:
524 2008-08-12 Colin Walters <walters@verbum.org>
526 * giscanner/glibtransformer.py: We need to do type
527 resolution in a second pass after we've seen all the
530 2008-08-12 Colin Walters <walters@verbum.org>
532 * tests/scanner/Foo-expected.gir, tests/scanner/foo-object.h:
533 Add enum return value.
534 * giscanner/glibtransformer.py: Transform function return types
537 2008-08-12 Colin Walters <walters@verbum.org>
539 * tests/scanner/Makefile.am: Dep .gir files on scanner
540 sources too. Also remove @ so we see scanner invocations.
542 2008-08-12 Colin Walters <walters@verbum.org>
544 * girepository/girparser.c, girepository/gtypelib.c,
545 girepository/gtypelib.h, girepository/girnode.c:
546 Remove usage of (GAPI-oriented) TypeTag in favor of
547 GITypeTag from girepository.h.
549 2008-08-10 Colin Walters <walters@verbum.org>
551 * tests/roundtrips.sh: Use the correct tests.
553 2008-08-10 Colin Walters <walters@verbum.org>
555 * giscanner/cgobject.py: Declare/wrap a few more functions.
556 Fix parameter types for g_object_new and g_type_fundamental.
558 2008-08-10 Colin Walters <walters@verbum.org>
560 * giscanner/cgobject.py: Add new decorator @gwrap which forces
561 us to declare types for both return value and parameters. The
562 ctypes default of 'int' is bad because it hides 32/64 bit
563 problems. Convert all existing functions to use it.
565 2008-08-09 Johan Dahlin <johan@gnome.org>
567 * giscanner/__init__.py:
569 * giscanner/cgobject.py:
570 * giscanner/gidlparser.py:
571 * giscanner/gidlwriter.py:
572 * giscanner/girparser.py:
573 * giscanner/girwriter.py:
574 * giscanner/glibast.py:
575 * giscanner/glibtransformer.py:
576 * giscanner/odict.py:
577 * giscanner/sourcescanner.py:
578 * giscanner/transformer.py:
579 * giscanner/utils.py:
580 * giscanner/xmlwriter.py:
581 * tools/g-ir-scanner:
585 2008-08-09 Johan Dahlin <johan@gnome.org>
588 * relaxng/c-types.xml:
589 * relaxng/g-types.xml:
590 * relaxng/relaxng.rng:
592 Remove outdated relaxng schemas.
594 2008-08-09 Johan Dahlin <johan@gnome.org>
597 Rename metadata to typelib in variable names,
600 2008-08-09 Johan Dahlin <johan@gnome.org>
604 Remove old C scanner, which got rewritten in python.
606 2008-08-09 Johan Dahlin <johan@gnome.org>
608 * girepository/Makefile.am:
618 Move shared *.[ch] files to girepository from tools
620 2008-08-09 Johan Dahlin <johan@gnome.org>
625 * tests/constant.test:
628 * tests/function.test:
629 * tests/gobject.test:
630 * tests/interface.test:
637 Rename *.test to *.gir
639 2008-08-09 Johan Dahlin <johan@gnome.org>
643 * tests/parser/Foo-expected.gir:
644 * tests/parser/Makefile.am:
645 * tests/parser/foo-object.h:
646 * tests/parser/foo.c:
647 * tests/parser/utility-expected.gir:
648 * tests/parser/utility.c:
649 * tests/parser/utility.h:
650 * tests/scanner/Makefile.am:
651 Rename tests/parser to test/scanner
653 2008-08-08 Colin Walters <walters@verbum.org>
655 * tests/roundtrips.sh: Use local .gir files again.
657 2008-08-08 Colin Walters <walters@verbum.org>
659 * tests/invoke/Makefile.am: .gir file depends on libtool
662 2008-08-08 Colin Walters <walters@verbum.org>
664 * tools/girnode.c: Pass through parent node so we can
665 print the node whose child is NULL, if that occurs.
667 2008-08-08 Johan Dahlin <johan@gnome.org>
670 Disable roundtrip tests which are not yet working
671 * tests/invoke/testfns.gir:
674 2008-08-08 Johan Dahlin <johan@gnome.org>
676 * giscanner/girwriter.py:
678 * giscanner/glibast.py:
679 * giscanner/glibtransformer.py:
680 Swap order of members, to keep it consistent with
683 2008-08-08 Johan Dahlin <johan@gnome.org>
685 * girepository/gtypelib.c (validate_header):
686 * girepository/gtypelib.h:
688 * giscanner/girwriter.py:
689 * giscanner/sourcescanner.c (gi_source_symbol_ref),
690 (gi_source_symbol_unref):
693 * tests/constant.test:
696 * tests/function.test:
697 * tests/gobject.test:
698 * tests/interface.test:
699 * tests/invoke/Makefile.am:
700 * tests/invoke/testfns.xml:
702 * tests/parser/Makefile.am:
703 * tests/roundtrips.sh:
710 * tools/compiler.c (main):
711 * tools/generate.c (write_callable_info), (write_function_info),
713 * tools/gidlmodule.c:
714 * tools/gidlmodule.h:
717 * tools/gidlparser.c:
718 * tools/gidlparser.h:
719 * tools/gidlwriter.c:
720 * tools/gidlwriter.h:
721 * tools/scanner.c (create_node_from_gtype),
722 (create_node_from_ctype), (g_igenerator_process_properties),
723 (g_igenerator_process_signals), (g_igenerator_create_object),
724 (g_igenerator_create_interface), (g_igenerator_create_boxed),
725 (g_igenerator_create_enum), (g_igenerator_create_flags),
726 (g_igenerator_process_function_symbol),
727 (g_igenerator_process_unregistered_struct_typedef),
728 (g_igenerator_process_struct_typedef),
729 (g_igenerator_process_union_typedef),
730 (g_igenerator_process_enum_typedef),
731 (g_igenerator_process_function_typedef),
732 (g_igenerator_process_constant), (g_igenerator_process_symbols),
733 (g_igenerator_add_module), (g_igenerator_add_include_idl):
734 Merge in the gir-compiler branch.
735 Thanks to Philip and Colin for their help.
737 2008-07-26 Colin Walters <walters@verbum.org>
739 * tools/Makefile.am (bin_PROGRAMS): Install g-idl-compiler
740 and g-idl-generate to go along with how we're changing this
741 module to be installed.
742 * gobject-introspection-1.0.pc.in: Set up Cflags and Libs.
744 2008-07-24 Colin Walters <walters@verbum.org>
746 * girepository/girepository.c (g_irepository_register): Add
747 environment variable G_IREPOSITORY_VERBOSE so we can print
748 out what we're doing.
749 * girepository/girepository.c (g_irepository_register_file):
750 Add GError error message to g_debug call.
752 2008-07-08 Jürg Billeter <j@bitron.ch>
754 * giscanner/glibast.py:
758 2008-06-21 Johan Dahlin <jdahlin@async.com.br>
760 * giscanner/girparser.py (GIRParser._parse_api): Ignore a few
763 2008-06-20 Johan Dahlin <jdahlin@async.com.br>
766 * giscanner/girwriter.py:
767 * giscanner/transformer.py:
768 * tests/parser/Foo-expected.gir:
769 * tests/parser/foo-object.h:
770 * tests/parser/foo.c (foo_object_allow_none):
771 Add support for gtk-doc annotations for allow-none.
774 2008-06-19 Johan Dahlin <jdahlin@async.com.br>
777 * giscanner/girwriter.py:
778 * giscanner/glibast.py:
779 * giscanner/glibtransformer.py:
780 * giscanner/transformer.py:
781 * tests/parser/Foo-expected.gir:
782 Start using abstract type instead of the raw C types.
783 Register a bunch of glib types we care about.
785 2008-06-19 Rob Taylor <rob.taylor@codethink.co.uk>
790 2008-06-08 Philip Van Hoof <pvanhoof@gnome.org>
792 * girepository/girepository.c:
793 * girepository/gtypelib.c:
794 * girepository/ginfo.c:
795 * girepository/ginvoke.c:
796 * girepository/girepository.h:
797 * girepository/gtypelib.h:
798 * girepository/gmetadata.c:
799 * girepository/Makefile.am:
800 * girepository/gmetadata.h:
802 * tools/gidlmodule.c:
805 * tools/gidlmodule.h:
806 * tools/gidlparser.c:
808 Renamed GMetadata to GTypelib
810 2008-06-07 Johan Dahlin <jdahlin@async.com.br>
812 * giscanner/xmlwriter.py:
813 Improve line wrapping when > 79 charaters
815 2008-06-05 Jürg Billeter <j@bitron.ch>
818 * giscanner/girwriter.py:
819 * giscanner/transformer.py:
820 Use <type> element for field types
821 * tests/parser/Foo-expected.gir:
824 2008-06-04 Johan Dahlin <jdahlin@async.com.br>
826 * giscanner/glibtransformer.py:
827 Fix a bug which prevented GdkEvent from being generated
829 2008-06-03 Johan Dahlin <jdahlin@async.com.br>
831 * giscanner/Makefile.am:
833 * giscanner/girwriter.py:
834 * giscanner/glibast.py:
835 * giscanner/glibtransformer.py:
836 * giscanner/transformer.py:
837 * giscanner/utils.py:
838 * tests/parser/Foo-expected.gir:
839 Improve enum member parsing and introspection
841 2008-05-31 Johan Dahlin <jdahlin@async.com.br>
843 * giscanner/scannerparser.y:
844 * giscanner/sourcescanner.h:
845 * giscanner/sourcescanner.py:
846 Add a new source type enum for member.
847 Use __repr__ for improved debugging
848 * giscanner/girparser.py:
850 * giscanner/transformer.py:
851 Improve parsing of struct members.
852 * tests/parser/foo-object.h:
855 2008-05-31 Johan Dahlin <jdahlin@async.com.br>
857 * giscanner/xmlwriter.py:
858 Improve error reporting when trying to quote None.
859 * giscanner/girparser.py:
860 Do not print warnings when including more complete .gir files
861 * giscanner/girwriter.py:
862 Do not require a name for parameters, add a todo for singletons
863 * giscanner/glibtransformer.py:
864 Refactor the way structs are done, add a couple of hacks to allow
866 * giscanner/transformer.py:
867 Add enough hacks so cairo, atk and pango.gir can be parsed properly
868 * gobject-introspection-1.0.pc.in:
869 Export girdir, so we can access gobject-2.0.gir from outside
871 2008-05-31 Johan Dahlin <jdahlin@async.com.br>
873 * tools/g-ir-scanner:
874 * tests/parser/Makefile.am:
875 Update sys.path before running the parser so we don't have
876 to setup PYTHONPATH ourselves.
880 * girepository/Makefile.am:
881 * giscanner/transformer.py:
882 * gobject-introspection-1.0.pc.in:
883 * gobject-introspection.pc.in:
886 Rename pkg-config name to gobject-introspection-1.0,
887 Do not installed anything which is not using the gir format.
888 Disable compililation the old C scanner, but still keep the source
889 until all the remaning functionallity has been ported.
891 2008-05-31 Johan Dahlin <jdahlin@async.com.br>
893 * giscanner/giscannermodule.c (symbol_get_ident): Prevent
894 a crash when symbol->indent is NULL.
896 * giscanner/sourcescanner.py (ctype_name): Add ctype_name,
897 a function to convert a CTYPE symbol to a string
899 2008-05-24 Johan Dahlin <jdahlin@async.com.br>
902 * giscanner/girwriter.py:
903 * giscanner/giscannermodule.c
904 (pygi_source_scanner_append_filename),
905 (pygi_source_scanner_parse_file):
906 * giscanner/glibtransformer.py:
907 * giscanner/sourcescanner.py:
908 Revert back to using temporary files to send in headers.
909 Allow Functions to be passed in as callbacks, add a couple
910 of try/excepts missing features.
911 We can now scan pango
913 2008-05-08 Johan Dahlin <johan@gnome.org>
915 * giscanner/glibtransformer.py:
916 * giscanner/transformer.py:
917 Move namespace stripping glibtransformer->transformer
919 2008-05-08 Johan Dahlin <johan@gnome.org>
922 * giscanner/girwriter.py:
923 * giscanner/glibtransformer.py:
924 * giscanner/transformer.py:
925 * tools/g-ir-scanner:
926 Introduce a namespace ast node
928 2008-05-05 Johan Dahlin <johan@gnome.org>
930 * giscanner/__init__.py:
931 * giscanner/sourcescanner.py:
932 * giscanner/transformer.py:
933 Move sourcescanner symbols to the sourcescanner module, instead
934 of in the global __init__ namespace.
936 2008-05-03 Johan Dahlin <johan@gnome.org>
938 * giscanner/glibtransformer.py:
939 * tools/g-ir-scanner:
940 Handle missing parameters better, allow - and + in .la dlname
943 2008-05-03 Johan Dahlin <johan@gnome.org>
945 * giscanner/__init__.py:
947 * giscanner/girwriter.py:
948 * giscanner/glibtransformer.py:
949 * giscanner/transformer.py:
950 Parse struct fields properly, improve debugging.
952 2008-04-29 Johan Dahlin <johan@gnome.org>
955 * giscanner/girwriter.py:
956 * giscanner/transformer.py:
957 * tests/parser/Foo-expected.gir:
959 Use transfer-ownership everywhere, to mark ownership/calle/caller etc.
961 2008-04-29 Johan Dahlin <jdahlin@async.com.br>
964 * docs/g-ir-scanner.1:
965 * metadata-annotations-proposal.txt:
966 * metadata-format.txt:
967 Add a basic, unfinshed man page for g-ir-scanner, move documents into .txt
969 2008-04-29 Johan Dahlin <jdahlin@async.com.br>
971 * giscanner/girwriter.py:
972 * giscanner/glibtransformer.py:
973 * giscanner/transformer.py:
974 * giscanner/xmlwriter.py:
975 * tests/parser/Foo-expected.gir:
976 * tests/parser/foo-object.h:
977 Write record/structs to gir file too. Add a couple of tests,
978 fix an off by one error in xmlwriter.py.
980 2008-04-28 Johan Dahlin <johan@gnome.org>
982 * giscanner/xmlwriter.py: Calculate the line length properly,
983 include the provided extra indentation in the calculation, really.
985 2008-04-28 Johan Dahlin <jdahlin@async.com.br>
988 * giscanner/glibast.py:
989 * giscanner/glibtransformer.py:
990 * giscanner/transformer.py:
991 * tools/g-ir-scanner:
992 Add a --strip-prefix and sort out confusion between names and symbols
993 for functions and struct + derivaties.
994 Refactor bootstrap of g-ir-scanner, so we can set options on
995 Transformer() before parsing everything.
997 2008-04-28 Johan Dahlin <johan@gnome.org>
999 * giscanner/transformer.py (Transformer._traverse_one): Avoid recursion
1000 when scanning girepository.h
1002 * giscanner/sourcescanner.py (SourceScanner._preprocess): Define
1003 a __GI_SCANNER__ when we run.
1005 2008-04-28 Johan Dahlin <jdahlin@async.com.br>
1008 * giscanner/girwriter.py:
1009 * giscanner/glibast.py:
1010 * giscanner/glibtransformer.py:
1011 * tests/parser/Foo-expected.gir:
1012 * tests/parser/utility-expected.gir:
1013 Rename most c:identifier to c:type. Add new ones to
1014 class/interface/enum/boxed.
1016 2008-04-28 Johan Dahlin <jdahlin@async.com.br>
1019 * giscanner/girwriter.py:
1020 * giscanner/glibtransformer.py:
1021 * tests/parser/Foo-expected.gidl:
1022 * tests/parser/Makefile.am:
1023 Move c:identifier from return-value to subchild type,
1024 as per Jürgs suggestion
1026 2008-04-28 Johan Dahlin <johan@gnome.org>
1028 * giscanner/girwriter.py:
1029 * tests/parser/Foo-expected.gir:
1030 Write property.type as a child node.
1032 2008-04-27 Johan Dahlin <johan@gnome.org>
1037 * gidl/gobject-2.0.gidl:
1039 * gir/gobject-2.0.gir:
1040 * tests/parser/Makefile.am:
1041 Replace the GObject gidl with a GObject gir.
1043 2008-04-27 Johan Dahlin <johan@gnome.org>
1045 * tools/Makefile.am (bin_SCRIPTS): g-ir-scanner is a script,
1048 * giscanner/xmlwriter.py:
1049 * tests/parser/Foo-expected.gir:
1050 Include indentation in line length calculation
1052 2008-04-27 Johan Dahlin <johan@gnome.org>
1054 * giscanner/girparser.py:
1055 Prettify NS parsing using elementtree.
1057 2008-04-27 Johan Dahlin <johan@gnome.org>
1060 * giscanner/Makefile.am:
1061 * giscanner/girparser.py:
1062 * giscanner/glibtransformer.py:
1063 * tests/parser/Foo-expected.gidl:
1064 * tests/parser/Foo-expected.gir:
1065 * tests/parser/Makefile.am:
1066 * tests/parser/utility-expected.gidl:
1067 * tests/parser/utility-expected.gir:
1068 * tools/g-ir-scanner:
1069 Switch over to GIR as the default format. Add a simple GIDL
1071 Update tests and fix simplify makefiles by depending
1072 on GNU make extensions.
1074 2008-04-27 Johan Dahlin <johan@gnome.org>
1076 * giscanner/xmlwriter.py:
1077 Wrap attributes for lines which are wider than 79 characters
1079 * giscanner/scannerlexer.l:
1080 Allow parenthesis in annotations
1083 * giscanner/gidlwriter.py:
1084 * giscanner/girwriter.py:
1085 * giscanner/glibtransformer.py:
1086 * giscanner/transformer.py:
1087 Add initial sequence support, including annotation.
1088 Refactor type handling a bit.
1090 2008-04-27 Johan Dahlin <johan@gnome.org>
1092 * tests/parser/Foo-expected.gidl:
1093 * tests/parser/foo-object.h:
1094 * tests/parser/foo.c (foo_object_class_init),
1095 (foo_object_get_strings), (foo_object_get_objects):
1096 Add two new functions to check sequence return values.
1097 Also fixes a compilation warning.
1099 2008-04-27 Johan Dahlin <johan@gnome.org>
1101 * giscanner/giscannermodule.c (]): Cast the getter, avoids
1102 a compilation warning.
1104 * tools/Makefile.am (g_ir_scanner_SOURCES):
1105 g-ir-scanner has no sources.
1107 2008-04-25 Johan Dahlin <johan@gnome.org>
1109 * giscanner/Makefile.am:
1111 * giscanner/gidlparser.py:
1112 * giscanner/gidlwriter.py:
1113 * giscanner/girwriter.py:
1114 * giscanner/glibast.py:
1115 * giscanner/glibtransformer.py:
1116 * giscanner/transformer.py:
1117 Split out nodes to ast.py and glibast.py
1119 2008-04-25 Johan Dahlin <jdahlin@async.com.br>
1121 * giscanner/Makefile.am:
1122 * giscanner/gidlparser.py:
1123 * giscanner/gidlwriter.py:
1124 * giscanner/girwriter.py:
1125 * giscanner/glibtransformer.py:
1126 * giscanner/gobjecttreebuilder.py:
1127 * giscanner/transformer.py:
1128 * giscanner/treebuilder.py:
1129 * tools/g-ir-scanner:
1130 Rename treebuilder to transformer and
1131 gobjectreebuilder to glibtransformer.
1133 2008-04-25 Johan Dahlin <jdahlin@async.com.br>
1135 * giscanner/Makefile.am:
1136 * giscanner/__init__.py:
1137 * giscanner/cgobject.py:
1138 * giscanner/gidlparser.py:
1139 * giscanner/gidlwriter.py:
1140 * giscanner/girwriter.py:
1141 * giscanner/gobjecttreebuilder.py:
1142 * giscanner/odict.py:
1143 * giscanner/sourcescanner.py:
1144 * giscanner/treebuilder.py:
1145 * giscanner/xmlwriter.py:
1146 * tools/Makefile.am:
1147 * tools/g-ir-scanner:
1148 Add LGPLv2 license header and install all python files
1150 2008-04-25 Johan Dahlin <jdahlin@async.com.br>
1153 * giscanner/gidlwriter.py:
1154 * giscanner/giscannermodule.c (pygi_source_directive_new),
1155 (directive_get_options), (pygi_source_symbol_new),
1156 (symbol_get_base_type), (pygi_source_type_new),
1157 (type_get_base_type), (type_get_child_list),
1158 (pygi_source_scanner_get_symbols),
1159 (pygi_source_scanner_get_directives):
1160 * giscanner/gobjecttreebuilder.py:
1161 * giscanner/sourcescanner.py:
1162 * giscanner/treebuilder.py:
1163 * tests/parser/foo-object.h:
1164 Add support for virtual methods.
1165 Pair struct FooClass with struct Foo.
1166 Clean up the SourceScanner bindings a bit.
1167 Add a testcase for virtual methods.
1169 2008-04-25 Johan Dahlin <jdahlin@async.com.br>
1171 * giscanner/cgobject.py:
1172 * giscanner/gidlwriter.py:
1173 * giscanner/gobjecttreebuilder.py:
1174 Add support for signals
1176 * tests/parser/foo.c (foo_object_class_init):
1177 * Foo-expected.gidl:
1178 Add a signal and update the expected output.
1180 2008-04-24 Johan Dahlin <jdahlin@async.com.br>
1182 * giscanner/gidlwriter.py:
1183 * giscanner/girwriter.py:
1184 * giscanner/giscannermodule.c (directive_get_name),
1185 (directive_get_value), (directive_get_options),
1186 (symbol_get_directives), (symbol_set_directives),
1187 (pygi_source_scanner_parse_file),
1188 (pygi_source_scanner_lex_filename),
1189 (pygi_source_scanner_get_directives), (init_giscanner):
1190 * giscanner/sourcescanner.c (gi_source_scanner_get_directives):
1191 * giscanner/sourcescanner.h:
1192 * giscanner/sourcescanner.py:
1193 * giscanner/treebuilder.py:
1194 * tools/g-ir-scanner:
1195 Add support for source/header annotations.
1197 2008-04-22 Johan Dahlin <jdahlin@async.com.br>
1199 * giscanner/gidlwriter.py:
1200 * giscanner/girwriter.py:
1201 * giscanner/gobjecttreebuilder.py:
1202 * giscanner/treebuilder.py:
1203 Add support for Callbacks
1205 2008-04-22 Havoc Pennington <hp@pobox.com>
1207 * girepository/ginvoke.c (g_function_info_invoke): If a symbol is
1208 not in metadata->module, look for it in the global module, in case
1209 some other object or the app itself provides the symbol.
1211 2008-04-22 Havoc Pennington <hp@pobox.com>
1213 * girepository/gmetadata.c (_g_metadata_init): hack to avoid
1214 dlopening a library that is already in the main app, by checking
1215 whether one of the lib's symbols is already loaded.
1217 2008-04-22 Johan Dahlin <jdahlin@async.com.br>
1219 * tests/parser/Foo-expected.gidl:
1220 * tests/parser/foo-object.h:
1223 2008-04-22 Havoc Pennington <hp@pobox.com>
1225 * girepository/ginfo.c (g_interface_info_find_method):
1226 Use interface_blob_size not object_blob_size to compute offset.
1228 2008-04-22 Havoc Pennington <hp@pobox.com>
1230 * girepository/gmetadata.c (_g_metadata_init): remove
1231 G_MODULE_BIND_LOCAL flag when loading libraries, since some libs
1232 (Glade and Clutter for example) rely on being loaded globally.
1234 2008-04-22 Havoc Pennington <hp@pobox.com>
1236 * girepository/ginfo.c (g_registered_type_info_get_g_type): new
1237 function to get the GType given a RegisteredTypeInfo
1239 2008-04-22 Johan Dahlin <johan@gnome.org>
1241 * COPYING: Add a LGPL license, to prevent automake to
1242 put in a copy of GPL here. Pointed out by Havoc.
1244 * girepository/ginfo.c (g_info_from_entry), (g_type_info_new),
1245 (g_type_info_is_pointer), (g_type_info_get_tag),
1246 (g_type_info_get_param_type), (g_type_info_get_interface),
1247 (g_type_info_get_array_length), (g_type_info_is_zero_terminated),
1248 (g_type_info_get_n_error_domains), (g_type_info_get_error_domain),
1249 (g_error_domain_info_get_codes), (g_enum_info_get_value),
1250 (g_object_info_get_interface), (g_object_info_get_field),
1251 (g_interface_info_get_prerequisite),
1252 (g_signal_info_get_class_closure), (g_constant_info_get_value):
1253 * girepository/ginvoke.c (get_ffi_type):
1254 * girepository/girepository.h:
1255 * girepository/gmetadata.c (g_metadata_get_dir_entry),
1256 (g_metadata_check_sanity), (validate_header),
1257 (validate_array_type_blob), (validate_iface_type_blob),
1258 (validate_param_type_blob), (validate_error_type_blob),
1259 (validate_type_blob), (validate_constant_blob),
1260 (validate_struct_blob), (validate_enum_blob):
1261 * girepository/gmetadata.h:
1262 * tests/Makefile.am:
1263 * tests/invoke/Makefile.am:
1264 * tests/invoke/invoke.c (main):
1265 * tests/roundtrips.sh:
1266 * tools/Makefile.am:
1267 * tools/compiler.c (format_output), (write_out_metadata), (main):
1268 * tools/generate.c (write_type_name), (write_type_info),
1269 (write_constant_value), (write_enum_info), (load_metadata), (main):
1270 * tools/gidlcompilercontext.c:
1271 * tools/gidlcompilercontext.h:
1272 * tools/gidlcompilerentrynode.c:
1273 * tools/gidlcompilerentrynode.h:
1274 * tools/gidlcompilertypenode.c:
1275 * tools/gidlcompilertypenode.h:
1276 * tools/gidlmodule.c (g_idl_module_build_metadata):
1277 * tools/gidlmodule.h:
1278 * tools/gidlnode.c (init_stats), (dump_stats),
1279 (g_idl_node_get_size), (g_idl_node_get_full_size),
1280 (g_idl_node_cmp), (g_idl_node_can_have_member),
1281 (g_idl_node_add_member), (g_idl_node_param_direction_string),
1282 (parse_int_value), (parse_uint_value), (parse_float_value),
1283 (parse_boolean_value), (find_entry_node), (find_entry),
1284 (serialize_type), (g_idl_node_build_metadata), (write_string):
1286 * tools/gidlparser.c (parse_type_internal):
1287 * tools/quote-file.sh:
1288 Revert revisions 157,149-148,136-129 and 120.
1289 Move back to using g-idl-generate to generate the metadata and
1290 avoids dependency on a c compiler.
1292 2008-04-22 Johan Dahlin <jdahlin@async.com.br>
1294 * giscanner/girwriter.py:
1295 * tools/g-ir-scanner:
1296 Add an initial GIR writer and a --format option to g-ir-scanner
1298 2008-04-21 Johan Dahlin <johan@gnome.org>
1300 * giscanner/cgobject.py: Use ctypes.util.find_library to locate
1301 gobject-2.0 and raise ImportError if not found.
1303 * giscanner/gidlparser.py:
1304 * giscanner/gidlwriter.py:
1305 * giscanner/gobjecttreebuilder.py:
1306 * tools/g-ir-scanner:
1307 Add a --include argument to include types from other idls.
1308 Add a minimalistic GIDL parser (just objects for now)
1309 Implement resolving of external type references and use it to
1310 resolve parent types, argument types and return types.
1312 2008-04-21 Johan Dahlin <johan@gnome.org>
1314 * giscanner/gidlwriter.py:
1315 * giscanner/gobjecttreebuilder.py:
1316 * giscanner/treebuilder.py:
1317 Add support for properties.
1318 Refactor Class/Interface support a bit, to share more code and
1319 always initialize their method attribute to an empty list.
1321 2008-04-21 Johan Dahlin <johan@gnome.org>
1323 * giscanner/cgobject.py:
1324 Add a workaround for a glib bug interface introspection bug
1325 (object_interface_list_properties, object_class_list_properties):
1326 Cast the return value to GParamSpec.
1328 * tests/parser/Foo-expected.gidl: Update
1329 * tests/parser/foo.c: Add a string property
1331 * giscanner/gobjecttreebuilder.py:
1332 After stripping namespaces, remove the original
1333 item to avoid duplication (GtkButton struct and Button object)
1335 2008-04-21 Johan Dahlin <johan@gnome.org>
1337 * giscanner/gobjecttreebuilder.py:
1338 * giscanner/treebuilder.py:
1339 Strip namespaces before objects, so we'll export
1340 GtkButton as Button in the gtk namespace
1342 2008-04-21 Johan Dahlin <johan@gnome.org>
1344 * giscanner/gidlwriter.py:
1345 * giscanner/gobjecttreebuilder.py:
1346 * giscanner/treebuilder.py:
1347 Add constructors for object/boxed types.
1349 2008-04-21 Johan Dahlin <johan@gnome.org>
1351 * giscanner/gidlwriter.py:
1352 * giscanner/gobjecttreebuilder.py:
1353 Add support for boxed types
1355 2008-04-21 Johan Dahlin <johan@gnome.org>
1357 * giscanner/giscannermodule.c: Mark structures as const,
1358 wrap SourceType.const_string.
1360 * tests/parser/foo-object.h: Add a couple of constants.
1362 * giscanner/gidlwriter.py:
1363 * giscanner/gobjecttreebuilder.py:
1364 * giscanner/treebuilder.py:
1365 Add basic support for interfaces
1367 * tools/g-ir-scanner:
1368 Add -o/--output for writing to a file
1370 2008-04-21 Havoc Pennington <hp@redhat.com>
1372 * TODO: add some C API wishlist items I could think of quickly
1374 2008-04-21 Johan Dahlin <jdahlin@async.com.br>
1376 * giscanner/gidlwriter.py:
1377 * giscanner/xmlwriter.py:
1378 Add a simple api for writing tags which can be used
1379 with the new 'with statement' in python 2.5
1381 2008-04-21 Johan Dahlin <johan@gnome.org>
1383 * giscanner/gobjecttreebuilder.py:
1384 Strip namespace and object prefix from method names.
1386 2008-04-21 Johan Dahlin <johan@gnome.org>
1388 * tools/g-ir-scanner (main): Add --pkg option to pass in
1389 pkg-config modules to get cflags from.
1391 * giscanner/gidlwriter.py (GIDLWriter._write_method):
1392 Avoid duplication, reuse function writer for methods.
1394 2008-04-21 Johan Dahlin <jdahlin@async.com.br>
1396 * giscanner/gidlwriter.py:
1397 * giscanner/gobjecttreebuilder.py:
1398 * giscanner/treebuilder.py:
1399 * tools/g-ir-scanner:
1400 Resolve libtool .la files.
1401 Strip name spaces for methods.
1402 Add function symbols
1404 2008-04-20 Johan Dahlin <jdahlin@async.com.br>
1406 * giscanner/cgobject.py:
1407 * giscanner/gidlwriter.py:
1408 * giscanner/gobjecttreebuilder.py:
1409 * giscanner/treebuilder.py:
1410 Add support for classes and methods
1412 2008-04-20 Johan Dahlin <johan@gnome.org>
1414 * giscanner/gidlwriter.py:
1415 * giscanner/gobjecttreebuilder.py:
1416 * giscanner/odict.py:
1417 Avoid conflicts, keep the output ordered similar to
1418 the order of the input.
1419 Add a simple ordered dictionary implemenation
1421 2008-04-19 Johan Dahlin <johan@gnome.org>
1423 * giscanner/cgobject.py:
1424 * giscanner/gidlwriter.py:
1425 * giscanner/gobjecttreebuilder.py:
1426 * tools/g-ir-scanner:
1427 Start introspecting get-type functions.
1428 Implement support for GLib/GFlags GTypes.
1429 Add a ctype based GObject binding.
1431 2008-04-18 Johan Dahlin <jdahlin@async.com.br>
1433 * giscanner/gidlwriter.py:
1434 * giscanner/xmlwriter.py:
1435 * tools/g-ir-scanner:
1436 Add a simplistic gidl writer, which can't do too much.
1438 2008-04-18 Johan Dahlin <johan@gnome.org>
1440 * giscanner/sourcescanner.py:
1441 * giscanner/treebuilder.py:
1442 * tools/g-ir-scanner:
1443 split tree building and source scanning interface to separate files.
1445 2008-04-18 Johan Dahlin <johan@gnome.org>
1447 * tools/g-ir-scanner (Parameter.__init__): Start constructing
1449 - Add support for struct/parameter/return, start parsing of ctypes
1451 * giscanner/giscannermodule.c: wrap GISourceType.child_list and
1454 2008-03-31 Johan Dahlin <johan@gnome.org>
1456 * tools/g-ir-scanner:
1457 Start to build abstract syntax node of scanned sources.
1458 Add support for cpp options.
1460 2008-03-27 Johan Dahlin <johan@gnome.org>
1462 * giscanner/giscannermodule.c:
1463 * giscanner/scannerlexer.l:
1464 * giscanner/sourcescanner.c:
1465 * tools/g-ir-scanner:
1467 Add simple pre-processor using subprocess and a PIPE.
1468 Change the parse_file apis to accept a file descriptor.
1470 2008-03-25 Johan Dahlin <johan@gnome.org>
1472 * giscanner/__init__.py:
1473 * tools/g-ir-scanner:
1474 Fix a typo and add an example python test program.
1476 2008-03-25 Johan Dahlin <johan@gnome.org>
1478 * giscanner/__init__.py:
1479 * giscanner/giscannermodule.c:
1480 * giscanner/sourcescanner.c:
1481 * giscanner/sourcescanner.h:
1482 Add constants and wrap a few more SymbolType fields
1484 2008-03-25 Johan Dahlin <johan@gnome.org>
1488 * giscanner/__init__.py:
1489 * giscanner/giscannermodule.c:
1490 * giscanner/Makefile.am:
1492 Add initial python bindings for the scanner and
1493 depend on python 2.5.
1495 2008-03-25 Johan Dahlin <johan@gnome.org>
1499 * giscanner/Makefile.am:
1500 * giscanner/sourcescanner.c:
1501 * giscanner/sourcescanner.h:
1502 * tools/Makefile.am:
1503 * tools/grealpath.h:
1504 * tools/sourcescanner.c:
1505 * tools/sourcescanner.h:
1507 Move the scanner to a separate library.
1509 2008-03-23 Johan Dahlin <johan@gnome.org>
1511 * tools/Makefile.am:
1514 * tools/scannerlexer.l:
1515 * tools/scannerparser.y:
1516 * tools/sourcescanner.c:
1517 * tools/sourcescanner.h:
1518 Split out the source scanner from the generator.
1519 Rename the symbols used in the scanner to use the gi_ prefix.
1520 This should make it possible to use the raw C parser from
1523 2008-03-23 Johan Dahlin <johan@gnome.org>
1525 * tests/parser/Makefile.am (utility.gidl):
1526 * tests/parser/utility-expected.gidl:
1527 Pass in the gobject.gidl since we're defining a GObject.
1529 2008-03-12 Johan Dahlin <johan@gnome.org>
1531 * relaxng/relaxng.rng:
1532 Add a releaxng in relaxng we can use to validate the relaxngs
1535 2008-03-12 Jürg Billeter <j@bitron.ch>
1537 * tools/scanner.c: (g_igenerator_new):
1538 * tools/scannerparser.y:
1539 Fix compiler warnings.
1541 2008-03-12 Jürg Billeter <j@bitron.ch>
1545 * tools/scannerparser.y:
1546 Start fixing memory management in g-idl-scanner.
1548 2008-03-12 Rob Taylor <rob.taylor@codethink.co.uk>
1550 * tools/gidlcompilercontext.c: (write_compiled):
1551 Fix critical warning when no shlib passed to g-idl-compiler.
1553 2008-03-12 Johan Dahlin <johan@gnome.org>
1555 * tests/parser/utility-expected.gidl:
1556 * tests/parser/utility.h:
1557 Add a get_type-function, so the scanner actually
1558 parses it as an object.
1560 2008-03-12 Johan Dahlin <johan@gnome.org>
1562 * tools/gidlwriter.c (function_generate): Add missing trailing quote.
1565 * tests/parser/Foo-expected.gidl:
1566 * tests/parser/Makefile.am:
1567 * tests/parser/foo-object.h:
1568 * tests/parser/foo.c:
1569 * tests/parser/utility-expected.gidl:
1570 * tests/parser/utility.c:
1571 * tests/parser/utility.h:
1573 Add a new gidl test. 'utility.gidl', which is used to be able
1574 to test external type references. Add a reference to UtilityObject*
1577 2008-03-11 Johan Dahlin <johan@gnome.org>
1581 Remove most global variables
1583 2008-03-11 Philip Van Hoof <me@pvanhoof.be>
1585 * tools/scannerlexer.l:
1587 * tests/parser/Foo-expected.gidl:
1588 * tests/parser/foo.c:
1589 * tests/parser/Makefile.am:
1590 * tests/parser/foo-object.h:
1592 Added a few extra tests. Which resulted in finding a few
1593 bugs. Which resulted in me fixing those bugs
1595 2008-03-11 Rob Taylor <rob.taylor@codethink.co.uk>
1597 * tools/gidlcompilercontext.c: (g_idl_compiler_write_dir_entry),
1598 (g_idl_compiler_write_xref_entry), (g_idl_compiler_add_xref):
1599 Add some comments for strings into generated output for
1602 2008-03-11 Rob Taylor <rob.taylor@codethink.co.uk>
1604 * tools/gidlcompilercontext.c: (write_compiled):
1605 Write out the shlibs variable before writing out the strings
1606 length. Fixes compiler warning when using '-l' flag with
1609 2008-03-11 Johan Dahlin <johan@gnome.org>
1611 * tests/parser/Foo-expected.gidl:
1612 * tests/parser/foo-object.h:
1615 * tools/scannerlexer.l:
1616 Add support for parsing return arguments. Add support for
1617 caller-owns return types.
1618 Patch by Philip Van Hoof.
1620 * tools/scannerparser.y:
1621 Remove parsing of the @deprecated syntax used in headers.
1622 We will support gtk-doc deprecation in the future instead.
1624 2008-03-11 Johan Dahlin <johan@gnome.org>
1626 * tools/compiler.c (main): Coding style fixes
1628 2008-03-10 Johan Dahlin <johan@gnome.org>
1631 Add GCOV_LIBS to GILIBS
1633 2008-03-10 Johan Dahlin <johan@gnome.org>
1635 * tests/parser/Foo-expected.gidl:
1636 * tests/parser/foo.c:
1637 Rename null-ok to direction=out
1639 2008-03-10 Philip Van Hoof <me@pvanhoof.be>
1641 reviewed and extensively tested by Johan
1643 * tests/parser/Foo-expected.gidl:
1644 * tests/parser/foo-object.h:
1645 * tests/parser/foo.c:
1648 * tools/gidlwriter.c:
1651 * tools/scannerlexer.l:
1652 * tools/scannerparser.y:
1654 Add support for scanning for gtk-doc comments inside
1655 C source files. Add tests
1657 2008-03-10 Johan Dahlin <johan@gnome.org>
1659 * tests/parser/Makefile.am:
1660 * tests/parser/foo.c:
1663 * tools/scannerparser.y:
1664 Add an api to lex filenames.
1665 Lex all source .c files passed in on the command line.
1666 Scan sources in a test and a couple of private structures
1667 which should not be included in the generated gidl
1669 2008-03-10 Johan Dahlin <johan@gnome.org>
1671 * tests/invoke/Makefile.am: Make the generated metadata
1672 depend on the g-idl-compiler
1674 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1676 * tools/gidlmodule.c
1677 * tools/gidlmodule.h
1680 Remove the old g-idl-compiler code.
1683 2008-02-22 Mark Doffman <mark.doffman@codethink.co.uk>
1685 * tools/quote-file.sh
1688 Move to using the 'C' struct compiler code.
1690 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1692 * girepository/ginfo.c
1694 Change the way that external references with no namespace
1695 are dealt with. External references with no namespace
1696 are placed into the XML as-if they are a local reference.
1697 This is temporary, but helps with roundtrip tests.
1699 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1701 * girepository/ginfo.c
1702 Add the ability to get the value of a constant of
1703 type TYPE_TAG_SYMBOL. In the case of a symbol the value
1704 is provided as a string.
1706 This would deal properly with:
1707 typedef char* random;
1708 const random = "A string";
1710 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1712 * girepository/ginfo.c
1713 * girepository/girepository.h
1715 Add a function to check if an enum is registered or not.
1716 Previously anything testing this relied on the g-type
1717 string offset having a value of 0.
1719 * girepository/gmetadata.c
1720 * girepository/gmetadata.h
1722 Remove unneccesary or erroneous checks. There were two
1723 metadata validation checks which made sure that the blob
1724 sizes were the same as some magic numbers compiled into the code.
1725 This is wrong as it breaks any forwards compatibility that may
1728 Checks were also present that made sure that unregistered type
1729 blobs had a value of 0 in the g-type offset field. This is
1730 unneccessary. If a type blob is unregistered then any value
1731 in its g-type field is simply invalid.
1733 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1735 * girepository/ginfo.c
1736 * girepository/gmetadata.c
1737 * girepository/gmetadata.h
1739 Change the metadata format to have a standard header
1740 for all the type blobs. Merge the SimpleTypeBlob
1741 and InterfaceTypeBlob into a union. A union of these
1742 two blobs existed previously but was not explicit
1743 in the metadata format.
1745 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1747 * tools/gidlcompilercontext.c
1748 * tools/gidlcompilercontext.h
1749 * tools/gidlcompilerentrynode.c
1750 * tools/gidlcompilerentrynode.h
1751 * tools/gidlcompilertypenode.c
1752 * tools/gidlcompilertypenode.h
1754 Add code to compile a tree of GIdlNodes to
1755 a 'C' struct representing the metadata.
1756 This is to aid cross-compiling. Previously
1757 the g-idl-compiler created a binary blob with
1758 data written in the byte order and alignment
1759 of the tool rather than the intended target.
1761 Cleaned up and improved by Johan and Robert :-)
1763 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1765 * girepository/ginvoke.c
1766 * girepository/girepository.h
1767 * girepository/gmetadata.c
1768 * girepository/gmetadata.h
1770 * tools/gidlparser.c
1771 Modify TYPE_TAG_INTERFACE to TYPE_TAG_SYMBOL
1772 to avoid confusion with the interface blob.
1775 * tools/gidlparser.c
1776 Remove magic numbers and replace with type-tag
1777 enumeration symbols.
1779 * girepository/gmetadata.c
1780 Add validate declaration.
1782 2008-03-10 Jürg Billeter <j@bitron.ch>
1784 * tools/gidlparser.c: (parse_type_internal):
1785 * tools/scannerlexer.l:
1786 * tools/scannerparser.y:
1787 Support C99 _Bool type in scanner.
1789 2008-03-10 Jürg Billeter <j@bitron.ch>
1791 * tests/parser/Foo-expected.gidl:
1792 * tests/parser/foo-object.h:
1793 * tests/parser/foo.c: (foo_enum_method):
1794 * tools/scanner.c: (g_igenerator_process_function_symbol):
1795 Don't skip functions that are defined in the namespace of a type
1796 that doesn't support methods, as for example enums.
1798 2008-03-10 Johan Dahlin <johan@gnome.org>
1800 * gidl.dtd: Remove, we're using relaxng for now
1802 * tests/parser/Foo-expected.gidl:
1803 * tests/parser/foo-object.h:
1804 * tests/parser/foo.c:
1805 Rename the enum/flags get_type functions to include the whole type.
1807 2008-03-08 Marc-Andre Lureau <marcandre.lureau@gmail.com>
1809 * tools/gidlwriter.c (enum_generate): added "type-name",
1810 "get-type" and "deprecated" missing arguments.
1811 * tests/parser/Foo-expected.gidl:
1812 * tests/parser/foo-object.h: test enum type, and no type.
1814 2008-03-06 Johan Dahlin <jdahlin@async.com.br>
1817 Consistent checks, add missing 'test'
1819 2008-03-05 Havoc Pennington <hp@redhat.com>
1821 * configure.ac: Take advantage of a libffi.pc if one exists, as it
1822 does on Fedora 8. Make libffi a hard requirement, since it was in
1823 practice anyway (was not really conditional in the code or
1824 makefile, only in configure).
1826 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1828 reviewed by: Rob Taylor <rob.taylor@codethink.co.uk>
1829 reviewed by: Johan Dahlin <johan@gnome.org>
1831 * tests/Makefile.am:
1832 * tests/roundtrips.sh:
1833 Modify the roundtrips test so that they do not use the
1834 --raw option of the gidl compiler but instead compile a
1835 shared library to use with g_module.
1837 * tests/invoke/Makefile.am:
1838 * tests/invoke/invoke.c:
1839 Modify the invoke tests to build a shared library rather
1840 than use the --raw option.
1842 * tests/invoke/invoke-namespace-find.sh: Removed:
1843 Noone knows why this was here, so removed.
1845 2008-02-19 Rob Taylor <rob.taylor@codethink.co.uk>
1847 * tools/scanner.c: (g_igenerator_process_function_symbol):
1848 Move g_idl_node_can_have_member test later, as it broke spotting
1849 get_type's for nodes that can't have members.
1851 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
1854 * tools/gidlnode.c: (g_idl_node_can_have_member):
1855 Add g_idl_node_can_have_member.
1857 * tools/scanner.c: (g_igenerator_process_function_symbol):
1858 Use g_idl_node_can_have_member to test if we should add a function
1859 as a member of the type node.
1861 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
1863 * gidl/GLib.gidl: Renamed to gidl/gobject-2.0.gidl:
1865 * tests/parser/Makefile.am:
1866 Rename GLib.gidl to gobject-2.0.gidl and install in /usr/share/gidl.
1868 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
1870 * tools/scanner.c: (main):
1871 Ignore -pthread when passed to g-idl-scanner.
1873 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
1875 * tools/grealpath.h: Added:
1876 * tools/scanner.c: (main):
1877 * tools/scannerlexer.l:
1878 * tools/Makefile.am:
1879 Always use absolute paths with symbolic links resolved when
1880 comparing filenames.
1882 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
1884 * gobject-introspection.pc.in:
1885 Provide variables for g-idl-parser, scanner and compiler in the
1888 2008-02-13 Rob Taylor <rob.taylor@codethink.co.uk>
1891 * girepository/Makefile.am:
1892 * tools/Makefile.am:
1893 Rename GCOV_SOURCES to GCOVSOURCES to top automake complaining.
1895 2008-02-10 Johan Dahlin <johan@gnome.org>
1897 * tests/parser/Foo-expected.gidl:
1898 * tests/parser/foo-object.h:
1899 * tests/parser/foo.c: (foo_boxed_copy), (foo_boxed_free),
1900 (foo_boxed_get_type), (foo_boxed_new), (foo_boxed_method):
1903 2008-02-10 Johan Dahlin <johan@gnome.org>
1905 * tests/parser/Foo-expected.gidl:
1906 * tests/parser/foo-object.h:
1907 * tests/parser/foo.c: (foo_enum_get_type), (foo_flags_get_type):
1908 Add enum and flags test.
1910 2008-02-10 Johan Dahlin <johan@gnome.org>
1914 * girepository/Makefile.am:
1915 Make 'make distcheck' work again.
1917 2008-02-10 Johan Dahlin <johan@gnome.org>
1919 * m4/Makefile.am (EXTRA_DIST): its called as-compiler-flag.m4,
1922 * tests/parser/Makefile.am: Only create Foo.gidl when running make
1923 check, eg exclude it from BUILT_SOURCES.
1925 2008-02-08 Rob Taylor <rob.taylor@codethink.co.uk>
1930 * girepository/Makefile.am:
1931 * m4/Makefile.am: Added:
1932 * m4/as-compiler-flag.m4: Added:
1933 * m4/gcov.m4: Added:
1934 * tools/Makefile.am:
1935 Add ability to generate a coverage report.
1936 Adds configure option --enable-gcov and make rule 'check-coverage'.
1938 2008-02-08 Rob Taylor <rob.taylor@codethink.co.uk>
1942 * gidl/Makefile.am: Added:
1943 * girepository/Makefile.am: Added:
1944 * src/Makefile.am: Renamed to tools/Makefile.am:
1945 * src/compiler.c: Renamed to tools/compiler.c:
1946 * src/g-idl-offsets.pl: Renamed to tools/g-idl-offsets.pl:
1947 * src/generate.c: Renamed to tools/generate.c:
1948 * src/gidlmodule.c: Renamed to tools/gidlmodule.c:
1949 * src/gidlmodule.h: Renamed to tools/gidlmodule.h:
1950 * src/gidlnode.c: Renamed to tools/gidlnode.c:
1951 * src/gidlnode.h: Renamed to tools/gidlnode.h:
1952 * src/gidlparser.c: Renamed to tools/gidlparser.c:
1953 * src/gidlparser.h: Renamed to tools/gidlparser.h:
1954 * src/gidlwriter.c: Renamed to tools/gidlwriter.c:
1955 * src/gidlwriter.h: Renamed to tools/gidlwriter.h:
1956 * src/ginfo.c: Renamed to girepository/ginfo.c:
1957 * src/ginvoke.c: Renamed to girepository/ginvoke.c:
1958 * src/girepository.c: Renamed to girepository/girepository.c:
1959 * src/girepository.h: Renamed to girepository/girepository.h:
1960 * src/gmetadata.c: Renamed to girepository/gmetadata.c:
1961 * src/gmetadata.h: Renamed to girepository/gmetadata.h:
1962 * src/scanner.c: Renamed to tools/scanner.c:
1963 * src/scanner.h: Renamed to tools/scanner.h:
1964 * src/scannerlexer.l: Renamed to tools/scannerlexer.l:
1965 * src/scannerparser.y: Renamed to tools/scannerparser.y:
1966 * tests/invoke/Makefile.am:
1967 Split src/ into girepository/ and tools/
1971 * girepository/Makefile.am:
1972 * tests/Makefile.am:
1973 * tests/invoke/Makefile.am:
1974 * tests/parser/Makefile.am:
1975 * tests/roundtrips.sh:
1976 * tools/Makefile.am:
1977 Make distcheck work.
1979 2008-02-04 Rob Taylor <rob.taylor@codethink.co.uk>
1981 * tests/invoke/invoke.c: (main):
1982 * tests/invoke/testfns.c: (test6), (test7):
1983 * tests/invoke/testfns.xml:
1984 Add tests for invokation with a GList argument.
1985 Also tests caller-owns return values.
1987 2008-02-04 Rob Taylor <robtaylor@floopily.org>
1990 Add some documentation for GICallableInfo
1992 2008-02-01 Mark Doffman <mark.doffman@codethink.co.uk>
1995 Correct syntax errors in the DTD file.
1997 * relaxng/c-types.xml:
1998 * relaxng/g-types.xml:
2000 Add a RelaxNG specification for the GObject Introspection XML data.
2001 The Specification has validated all of the test files.
2003 2008-01-25 Rob Taylor <robtaylor@floopily.org>
2005 * tests/roundtrips.sh:
2006 * tests/struct.test:
2007 Add roundtrip tests for structs.
2009 2008-01-11 Johan Dahlin <johan@gnome.org>
2011 * src/scanner.c (g_igenerator_process_function_symbol):
2012 Refactor out g_idle_node_add_member.
2013 (create_node_from_gtype, create_node_from_ctype):
2014 Use case instead of if...else
2015 (get_type_from_type_id):
2016 Rename to create_node_from_gtype
2017 (get_type_from_ctype):
2018 Rename to create_node_from_ctype
2020 Rename ginode -> node, gitype -> type, gifunc -> func.
2022 * src/gidlnode.c (g_idl_node_add_member, g_idl_node_cmp):
2023 Two new functions, refactor out of scanner.c
2025 * src/scanner.c: (g_igenerator_process_function_symbol):
2026 * src/scannerlexer.l:
2027 Do not save the content of the deprecated variable, only
2030 2008-01-11 Johan Dahlin <johan@gnome.org>
2032 * tests/parser/foo-object.h: Add a couple of comment parser tests.
2034 2008-01-11 Jürg Billeter <j@bitron.ch>
2036 * src/scannerlexer.l:
2037 Fix GTK-Doc parsing.
2039 2008-01-11 Jürg Billeter <j@bitron.ch>
2041 * src/scannerlexer.l:
2042 Fix GTK-Doc parsing.
2044 2008-01-11 Jürg Billeter <j@bitron.ch>
2046 * src/scanner.c: (lookup_symbol):
2047 Return unresolved name if we find unknown symbol.
2049 2008-01-11 Jürg Billeter <j@bitron.ch>
2051 * src/scanner.c: (g_igenerator_generate):
2052 Initialize GObject to fix scanning interface properties.
2054 * tests/parser/Foo-expected.gidl:
2055 * tests/parser/foo-object.h:
2056 * tests/parser/foo.c: (foo_interface_get_type):
2057 Test interfaces with GObject prerequisite.
2059 * tests/parser/Makefile.am:
2060 Set G_DEBUG=fatal_warnings to abort test on warnings and criticals.
2062 2007-12-27 Johan Dahlin <johan@gnome.org>
2064 * src/scannerlexer.l:
2065 Parse gtk-doc comments.
2067 * src/gidlwriter.c: (function_generate):
2068 Reorganize, avoid duplication and add support for
2069 writing deprecated functions.
2071 * src/scannerparser.y:
2073 Add new structure CDirective and functions to create/free them.
2075 * src/scanner.c: (g_igenerator_process_function_symbol),
2076 (g_igenerator_process_unregistered_struct_typedef),
2077 (g_igenerator_process_struct_typedef),
2078 (g_igenerator_process_union_typedef),
2079 (g_igenerator_process_enum_typedef),
2080 (g_igenerator_process_function_typedef), (g_igenerator_add_symbol),
2081 (g_igenerator_start_preprocessor):
2082 Parse @deprecated directive for functions.
2083 Remove some more C99isms.
2084 Send in -C to cpp to avoid stripping comments.
2086 * tests/parser/foo-object.h:
2087 * tests/parser/Foo-expected.gidl:
2088 Add deprecated directive
2090 2007-12-27 Johan Dahlin <johan@gnome.org>
2092 * src/scannerlexer.l (intsuffix): Add emacs mode line and
2093 escape ' and " so it looks more like C.
2096 Unlink temporary file used.
2098 2007-12-27 Johan Dahlin <johan@gnome.org>
2100 * src/scanner.c: (g_igenerator_new), (g_igenerator_free),
2101 (g_igenerator_start_preprocessor), (main):
2103 * src/scannerparser.y:
2104 Plug a couple of simple memory leaks.
2106 2007-12-27 Johan Dahlin <johan@gnome.org>
2108 * src/scanner.c: (g_igenerator_parse_macros),
2109 (g_igenerator_start_preprocessor), (g_igenerator_set_verbose),
2112 * src/scannerparser.y:
2113 * tests/parser/Makefile.am:
2115 Improve error reporting, return when the preprocessor fails.
2116 Add a verbose parameter, to aid debugging.
2117 Revert to using a temporary file to communicate between the
2118 preprocessor and the parser, because we need to wait for
2119 the exit code from the pre-processor before starting to parse.
2121 2007-12-16 Johan Dahlin <jdahlin@async.com.br>
2123 * src/Makefile.am: Rename clexer.l to scannerlexer.l and
2124 cparser.y to scannerparser.y
2126 2007-12-11 Johan Dahlin <johan@gnome.org>
2130 * src/scanner.c: (g_igenerator_new):
2132 Get rid of the global the_generator variable.
2134 2007-12-10 Johan Dahlin <johan@gnome.org>
2136 * src/scanner.c (main): Add an output option,
2137 add checks for required parameters
2140 set BUILD_SOURCES and CLEANFILES properly
2142 * src/gidlwriter.c: (g_writer_write_inline), (g_writer_write),
2143 (g_writer_write_indent), (g_writer_write_unindent),
2144 (field_generate), (value_generate), (constant_generate),
2145 (property_generate), (function_generate), (vfunc_generate),
2146 (signal_generate), (interface_generate), (struct_generate),
2147 (union_generate), (boxed_generate), (enum_generate),
2148 (node_generate), (g_writer_write_module), (g_idl_writer_save_file):
2150 * src/scanner.c: (g_igenerator_generate):
2152 * src/scannerwriter.c:
2154 Refactor scannerwriter to only be tied to a GIdlModule and move
2155 it (again!) to gidlwriter.c. Change the writer function to take
2158 2007-12-10 Johan Dahlin <johan@gnome.org>
2161 * src/scanner.c: (g_igenerator_generate):
2163 * src/scannerwriter.c: (g_igenerator_write_inline),
2164 (g_igenerator_write), (g_igenerator_write_indent),
2165 (g_igenerator_write_unindent), (field_generate), (value_generate),
2166 (constant_generate), (property_generate), (function_generate),
2167 (vfunc_generate), (signal_generate), (interface_generate),
2168 (struct_generate), (union_generate), (boxed_generate),
2169 (enum_generate), (node_generate), (module_generate),
2170 (g_scanner_write_file):
2172 Move the scanner gidl writing to a separate source file.
2174 2007-12-10 Johan Dahlin <johan@gnome.org>
2179 Move over all CType construction functions.
2181 * tests/parser/Makefile.am:
2182 Be verbose when printing parsing tests results.
2184 2007-12-10 Johan Dahlin <johan@gnome.org>
2186 * src/scanner.c (g_igenerator_start_preprocessor): Refactor
2187 preprocessor handling to here. Start cpp insteado of cc -E,
2188 always include -U__GNUC__, since it's specific to the preprocessor
2191 * tests/parser/Makefile.am (check-local): Silent diff and skip
2192 -U__GNUC__ which is always defined now
2194 2007-12-10 Johan Dahlin,,, <jdahlin@plasttroll>
2196 reviewed by: <delete if not using a buddy>
2198 * src/scanner.c: (g_igenerator_start_preprocessor), (main):
2199 * tests/parser/Makefile.am:
2201 2007-12-09 Johan Dahlin <johan@gnome.org>
2204 Use GOption for command line options.
2205 (g_igenerator_new, main): Simplify constructor and they way
2206 parameters are passed into it.
2212 * src/gen-introspect.c:
2213 * src/gen-introspect.h:
2215 Rename gen-introspect.[ch] to scanner.[ch]
2217 2007-12-09 Johan Dahlin <johan@gnome.org>
2221 * src/Makefile.am: Rename gen-introspect to g-idl-scanner,
2222 don't make the repository library and the other utilites link against
2225 * src/gen-introspect.c: (g_igenerator_create_object),
2226 (g_igenerator_create_interface), (g_igenerator_create_boxed),
2227 (g_igenerator_create_enum), (g_igenerator_create_flags),
2228 (g_igenerator_process_module_symbol),
2229 (g_igenerator_process_module), (g_igenerator_generate), (main):
2230 * src/gen-introspect.h:
2231 Refactor g_igenerator_process_types into smaller pieces.
2233 * tests/parser/Makefile.am:
2234 Depend on the gen-introspect binary
2236 2007-12-09 Johan Dahlin <johan@gnome.org>
2238 * src/gen-introspect.c (g_igenerator_process_types):
2239 Break into smaller pieces, one for each generated node type.
2241 2007-12-08 Johan Dahlin <johan@gnome.org>
2243 * src/gen-introspect.c: (g_igenerator_process_types),
2244 (g_igenerator_add_module):
2245 * tests/parser/Foo-expected.gidl:
2246 * tests/parser/foo-object.h:
2247 * tests/parser/foo.c: (foo_subobject_class_init),
2248 (foo_subobject_init):
2250 Add a subobject test and make sure to register defined classes
2251 in the lookup symbol hash table.
2253 2007-12-08 Johan Dahlin <johan@gnome.org>
2257 * src/gen-introspect.c: (g_igenerator_new), (lookup_symbol),
2258 (g_igenerator_process_types), (g_igenerator_add_module),
2259 (g_igenerator_add_include_idl), (main):
2260 * src/gen-introspect.h:
2261 * tests/parser/Makefile.am:
2262 * tests/parser/Foo-expected.gidl:
2264 Change the gen-introspect to generate namespaced module names,
2265 such as GLib.Object instead of GObject.
2266 Add a GLib.gidl which introduces GLib.Object and GLib.InitiallyUnowned,
2267 add a --include-idl parameter to gen-introspect,
2268 and update the parser test.
2270 2007-12-08 Johan Dahlin <johan@gnome.org>
2272 * src/gen-introspect.c:
2273 Move main to the end of the file and attempt to make it valid
2276 * tests/parser/Makefile.am (BUILT_SOURCES): Remove .repo here,
2277 we're not quite ready to generate metadata yet.
2282 Add a simple gen-introspect parser test
2284 2007-12-06 Gustavo J. A. M. Carneiro <gjc@gnome.org>
2286 reviewed by: Johan Dahlin <johan@gnome.org>
2289 * gobject-introspection.pc.in:
2291 * src/compiler.c: (format_output), (write_out_metadata), (main):
2292 * src/gen-introspect.c: (main):
2293 * src/gen-introspect.h:
2294 * src/generate.c: (write_callable_info), (write_repository),
2295 (load_metadata), (main):
2296 * src/gidlmodule.c: (g_idl_module_new),
2297 (g_idl_module_build_metadata):
2299 * src/gidlparser.c: (start_element_handler):
2300 * src/ginfo.c: (g_info_new), (g_info_from_entry),
2301 (g_base_info_get_name), (g_base_info_get_namespace),
2302 (g_base_info_is_deprecated), (g_base_info_get_annotation),
2303 (g_base_info_get_metadata), (g_function_info_get_symbol),
2304 (g_function_info_get_flags), (g_function_info_get_property),
2305 (g_function_info_get_vfunc), (signature_offset), (g_type_info_new),
2306 (g_callable_info_may_return_null),
2307 (g_callable_info_get_caller_owns), (g_callable_info_get_n_args),
2308 (g_callable_info_get_arg), (g_arg_info_get_direction),
2309 (g_arg_info_is_return_value), (g_arg_info_is_dipper),
2310 (g_arg_info_is_optional), (g_arg_info_may_be_null),
2311 (g_arg_info_get_ownership_transfer), (g_type_info_is_pointer),
2312 (g_type_info_get_tag), (g_type_info_get_param_type),
2313 (g_type_info_get_interface), (g_type_info_get_array_length),
2314 (g_type_info_is_zero_terminated),
2315 (g_type_info_get_n_error_domains), (g_type_info_get_error_domain),
2316 (g_error_domain_info_get_quark), (g_error_domain_info_get_codes),
2317 (g_value_info_get_value), (g_field_info_get_flags),
2318 (g_field_info_get_size), (g_field_info_get_offset),
2319 (g_registered_type_info_get_type_name),
2320 (g_registered_type_info_get_type_init),
2321 (g_struct_info_get_n_fields), (g_struct_info_get_field),
2322 (g_struct_info_get_n_methods), (g_struct_info_get_method),
2323 (find_method), (g_struct_info_find_method),
2324 (g_enum_info_get_n_values), (g_enum_info_get_value),
2325 (g_object_info_get_parent), (g_object_info_get_type_name),
2326 (g_object_info_get_type_init), (g_object_info_get_n_interfaces),
2327 (g_object_info_get_interface), (g_object_info_get_n_fields),
2328 (g_object_info_get_field), (g_object_info_get_n_properties),
2329 (g_object_info_get_property), (g_object_info_get_n_methods),
2330 (g_object_info_get_method), (g_object_info_find_method),
2331 (g_object_info_get_n_signals), (g_object_info_get_signal),
2332 (g_object_info_get_n_vfuncs), (g_object_info_get_vfunc),
2333 (g_object_info_get_n_constants), (g_object_info_get_constant),
2334 (g_interface_info_get_n_prerequisites),
2335 (g_interface_info_get_prerequisite),
2336 (g_interface_info_get_n_properties),
2337 (g_interface_info_get_property), (g_interface_info_get_n_methods),
2338 (g_interface_info_get_method), (g_interface_info_find_method),
2339 (g_interface_info_get_n_signals), (g_interface_info_get_signal),
2340 (g_interface_info_get_n_vfuncs), (g_interface_info_get_vfunc),
2341 (g_interface_info_get_n_constants),
2342 (g_interface_info_get_constant), (g_property_info_get_flags),
2343 (g_signal_info_get_flags), (g_signal_info_get_class_closure),
2344 (g_signal_info_true_stops_emit), (g_vfunc_info_get_flags),
2345 (g_vfunc_info_get_offset), (g_vfunc_info_get_signal),
2346 (g_constant_info_get_value), (g_union_info_get_n_fields),
2347 (g_union_info_get_field), (g_union_info_get_n_methods),
2348 (g_union_info_get_method), (g_union_info_is_discriminated),
2349 (g_union_info_get_discriminator_offset),
2350 (g_union_info_get_discriminator):
2351 * src/ginvoke.c: (g_function_info_invoke):
2352 * src/girepository.c: (g_irepository_register),
2353 (g_irepository_unregister), (g_irepository_get_default),
2354 (count_interfaces), (g_irepository_get_n_infos), (find_interface),
2355 (g_irepository_get_info), (g_irepository_find_by_name),
2356 (g_irepository_get_shared_library),
2357 (g_irepository_build_search_path), (g_irepository_register_file),
2358 (g_irepository_error_quark):
2359 * src/girepository.h:
2360 * src/gmetadata.c: (g_metadata_get_dir_entry),
2361 (g_metadata_check_sanity), (validate_header),
2362 (validate_array_type_blob), (validate_iface_type_blob),
2363 (validate_param_type_blob), (validate_error_type_blob),
2364 (validate_type_blob), (validate_arg_blob),
2365 (validate_signature_blob), (validate_function_blob),
2366 (validate_callback_blob), (validate_constant_blob),
2367 (validate_value_blob), (validate_field_blob),
2368 (validate_property_blob), (validate_signal_blob),
2369 (validate_vfunc_blob), (validate_struct_blob),
2370 (validate_enum_blob), (validate_object_blob),
2371 (validate_interface_blob), (validate_errordomain_blob),
2372 (validate_union_blob), (validate_blob), (validate_directory),
2373 (validate_annotations), (g_metadata_validate), (_g_metadata_init),
2374 (g_metadata_new_from_memory), (g_metadata_new_from_const_memory),
2375 (g_metadata_new_from_mapped_file), (g_metadata_free),
2376 (g_metadata_set_module), (g_metadata_get_namespace):
2378 * tests/Makefile.am:
2379 * tests/invoke/Makefile.am:
2380 * tests/invoke/invoke-namespace-find.sh:
2381 * tests/invoke/invoke.c: (main):
2383 Add a namespace/shared library mapping. fixes #313268.
2385 2007-12-03 Johan Dahlin <johan@gnome.org>
2387 * src/gidlparser.c (parse_type_internal): Disable char/gchar and
2390 2007-11-30 Jürg Billeter <j@bitron.ch>
2396 * src/gen-introspect.c: (g_idl_node_cmp), (g_igenerator_new),
2397 (g_igenerator_write_inline), (g_igenerator_write),
2398 (g_igenerator_write_indent), (g_igenerator_write_unindent),
2399 (field_generate), (value_generate), (constant_generate),
2400 (property_generate), (function_generate), (vfunc_generate),
2401 (signal_generate), (interface_generate), (struct_generate),
2402 (union_generate), (boxed_generate), (enum_generate),
2403 (node_generate), (module_generate), (get_type_from_type_id),
2404 (str_replace), (g_igenerator_process_properties),
2405 (g_igenerator_process_signals), (g_igenerator_process_types),
2406 (get_type_from_ctype), (g_igenerator_process_function_symbol),
2407 (g_igenerator_process_unregistered_struct_typedef),
2408 (g_igenerator_process_struct_typedef),
2409 (g_igenerator_process_union_typedef),
2410 (g_igenerator_process_enum_typedef),
2411 (g_igenerator_process_function_typedef),
2412 (g_igenerator_process_constant), (g_igenerator_process_symbols),
2413 (g_igenerator_add_symbol), (g_igenerator_is_typedef),
2414 (g_igenerator_generate), (main), (csymbol_new),
2415 (csymbol_get_const_boolean), (ctype_new), (ctype_copy),
2416 (cbasic_type_new), (ctypedef_new), (cstruct_new), (cunion_new),
2417 (cenum_new), (cpointer_new), (carray_new), (cfunction_new),
2418 (eat_hspace), (eat_line), (read_identifier),
2419 (g_igenerator_parse_macros):
2420 * src/gen-introspect.h:
2422 Import gen-introspect to generate introspection information by
2425 2007-11-30 Jürg Billeter <j@bitron.ch>
2427 * src/gidlnode.c: (g_idl_node_new): support creating callback nodes
2429 2007-11-30 Jürg Billeter <j@bitron.ch>
2431 * src/gidlparser.c: (end_element_handler): Don't leave requires
2434 2007-11-29 Johan Dahlin <johan@gnome.org>
2436 * src/gidlparser.c (parse_type_internal): Add char,
2437 gchar and guchar to the builtin types.
2439 2007-11-26 Johan Dahlin <johan@gnome.org>
2441 * src/ginfo.c: (g_object_info_get_type_name),
2442 (g_object_info_get_type_init):
2443 * src/girepository.c: (g_irepository_is_registered):
2444 * src/girepository.h:
2446 Add g_object_info_get_type_name, g_object_info_get_type_init and
2447 g_irepository_is_registered.
2449 2006-08-14 Jürg Billeter <j@bitron.ch>
2451 * src/gidlparser.c: (end_element_handler): Don't leave
2452 namespace and implements states too early.
2455 2007-11-26 Johan Dahlin <johan@gnome.org>
2457 * src/gmetadata.c (validate_struct_blob):
2458 pass blob_type to validate_function_blob instead of
2459 hard-coding BLOB_TYPE_STRUCT.
2461 Patch by Torsten Schoenfeld, fixes #314190
2463 2006-10-03 Torsten Schoenfeld <tsch@cvs.gnome.org>
2465 * src/compiler.c, src/generate.c, src/gidlnode.c,
2466 src/gidlparser.c, src/ginfo.c, src/girepository.c,
2467 tests/invoke/invoke.c, test/invoke/testfns.c: Hush compiler
2468 warnings about return values, signedness mismatches, unused
2469 variables, and unhandles enum values in switch statements.
2471 * tests/invoke/Makefile.am: Don't install the invoke test program.
2472 Add -I ../../src to the cflags used for the test functions files.
2474 2005-08-31 Torsten Schoenfeld <tsch@cvs.gnome.org>
2476 * src/girepository.h: Export g_invoke_error_quark.
2478 2005-08-31 Torsten Schoenfeld <tsch@cvs.gnome.org>
2480 * src/ginvoke.c: Remove the fallback implementation of
2481 g_function_info_invoke since we now formally depend on libffi.
2483 2005-07-25 Matthias Clasen <mclasen@redhat.com>
2485 * src/Makefile, tests/Makefile, tests/invoke/Makefile:
2486 Remove these files from cvs, as they are now generated.
2488 * src/gmetadata.c (validate_iface_type_blob): Don't
2489 complain if blob->pointer is not set, since that
2490 happens for enum and flag types. (#308935, Gustavo
2493 * Commit an autoconf-conversion patch by
2494 Gustavo Carneiro (#308708)
2496 2005-05-24 Matthias Clasen <mclasen@redhat.com>
2498 * src/compiler.c (main): Use it here to validate
2499 the generated metadata.
2501 * src/gmetadata.[hc]: Add code to validate a
2504 * metadata-format.txt: Updates
2506 2005-05-22 Matthias Clasen <mclasen@redhat.com>
2508 * tests/*: Add struct offsets to field and vfunc
2511 * src/generate.c (write_vfunc_info): Write offset
2512 information for vfuncs.
2514 * src/gidlnode.c (g_idl_node_build_metadata): Write
2515 the struct offsets into the metadata.
2517 * src/gidlparser.c: Parse the offset attributes of
2518 field and vfunc elements.
2520 * src/gidlnode.h: Add offset members to field and
2523 2005-05-21 Matthias Clasen <mclasen@redhat.com>
2527 * gidl.dtd: Updates.
2529 * src/g-idl-offsets.pl: A perl script which reads a .gidl
2530 file, creates, compiles and runs a C file, and folds the
2531 resulting struct offsets back into the .gidl file.
2533 2005-05-20 Matthias Clasen <mclasen@redhat.com>
2535 * src/gidlparser.c (start_field): Make fields in objects
2538 * src/gidlmodule.c: Include string.h
2543 * metadata-format.txt: Cleanup basic types.
2544 * src/*: Adapt to the changes.
2545 * tests/*: Adapt to the changes.
2546 * examples/gdk-pixbuf.gidl: Adapt to the changes.
2548 * src/gidlnode.c (g_idl_node_get_size): Report the correct
2549 size for enum blobs.
2550 (g_idl_node_get_full_size): Report the correct size for
2553 * src/gidlmodule.c (g_idl_module_build_metadata): Add some
2554 error checking for blob sizes.
2556 2005-05-19 Matthias Clasen <mclasen@redhat.com>
2558 * src/gidlnode.c (g_idl_node_build_metadata): Correctly handle
2559 interface types for which is_pointer is FALSE, e.g. enums.
2561 * src/gidlnode.c (g_idl_node_get_full_size)
2562 * src/gidlparser.c (parse_type_internal):
2563 * src/generate.c (write_type_info): Support unspecialized
2564 lists, hashtables and errors. Also emit a '*' after these.
2568 2005-05-17 Matthias Clasen <mclasen@redhat.com>
2572 * metadata-format.txt: Cleanups by Maciej Katafiasz.
2574 2005-05-15 Matthias Clasen <mclasen@redhat.com>
2576 * src/*.c: Change the directory to be addressed by
2577 1-based indexes, and use an index of zero to mean
2580 2005-05-15 Matthias Clasen <mclasen@redhat.com>
2582 * tests/roundtrips.sh (SIMPLE_TESTS): Add union.test.
2584 * tests/union.test: Add a union test.
2586 * src/generate.c: Handle unions.
2588 * src/girepository.h:
2589 * src/ginfo.c: Add GIUnionInfo and functions to access it.
2591 * src/gidlnode.c: Handle GIdlNodeUnion nodes.
2593 * src/gidlparser.c (start_union): Parse <union> elements.
2595 * src/gidlnode.h: Add a GIdlNodeUnion.
2597 * gidl.dtd: Add a <union> element.
2599 * src/gmetadata.c (g_metadata_check_sanity): Check
2602 * src/gmetadata.h: Add union_blob_size to Header,
2605 * metadata-format.txt: Add a UnionBlob.
2607 2005-05-13 Matthias Clasen <mclasen@redhat.com>
2609 * tests/*: Update testcases.
2611 * src/generate.c (write_callable_info): Don't forget to
2612 write transfer and null-ok attributes for return types
2615 * src/girepository.h:
2616 * src/ginfo.c (g_callable_info_may_return_null):
2617 New function to find out if a function may return NULL.
2619 * src/compiler.c (format_output): Make the generated
2622 * README: Point to a recent libffi snapshot.
2624 * tests/invoke/*: Some invoke tests.
2626 * src/Makefile: Add ginvoke.c and the necessary
2629 * src/girepository.h (g_function_info_invoke): Add
2632 * src/ginvoke.c (g_function_info_invoke): Initial
2633 implementation of invoke functionality based on libffi.
2635 * src/gidlnode.c (g_idl_node_build_metadata): Pass the
2636 strings and types hash tables in the right order when
2638 (find_entry_node): Free the name parts.
2640 2005-05-12 Johan Dahlin <johan@gnome.org>
2642 * src/generate.c: Generate consistent end tags.
2646 2005-05-12 Matthias Clasen <mclasen@redhat.com>
2650 * src/gidlparser.c (start_function): Actually add
2651 methods to objects. (Steven Walter)
2653 * src/girepository.h:
2654 * src/ginfo.c: Rename Transfer and Direction to
2655 GITransfer and GIDirection. (Torsten Schoenfeld)
2657 * tests/*: Make tests work with the changes in name
2660 * src/gidlnode.c (find_entry_node): Parse qualified
2661 names and generate xref nodes for them if needed. Don't
2662 require all modules to be loaded any more.
2664 * src/gidlmodule.c (g_idl_module_build_metadata): Choke
2667 * src/ginfo.c (g_object_info_get_parent): Return NULL
2668 if blob->parent is 0. Still need to make sure index
2671 * src/generate.c: Generate qualified names when
2672 referring to non-local types. Emit transfer attribute
2675 * src/compiler.c (format_output): Put the function
2676 attributes where gcc accepts them.
2678 2005-05-11 Matthias Clasen <mclasen@redhat.com>
2680 * src/compiler.c (main): Add a --verbose cmdline option
2681 and only log messages if it is specified.
2684 * src/gidlnode.c (init_stats, dump_stats): Collect some
2685 statistics on string and type sharing.
2687 * src/gidlmodule.c (g_idl_module_build_metadata): Use
2688 g_message() instead of fprintf().
2690 * src/gidlnode.c (g_idl_node_free): Make this more robust.
2691 (g_idl_node_get_size): Implement for structs.
2692 (g_idl_node_get_full_size): Handle parent being NULL.
2693 (serialize_type): Handle lookup failures more gracefully.
2695 2005-05-10 Matthias Clasen <mclasen@redhat.com>
2697 * src/gidlnode.c (g_idl_node_get_full_size): Correct the
2698 size calculation for 2-parameter types and for objects.
2700 * src/compiler.c: Add a cmdline option for debug output
2701 and install a log handler to implement it.
2702 * src/gidlnode.c: Add some debug spew.
2706 * src/gidlmodule.c (g_idl_module_build_metadata): Don't
2707 forget to count the module name when calculating the
2708 required size for the metadata.
2711 * src/gidlparser.c: Fix compiler warnings.
2713 2005-05-09 Matthias Clasen <mclasen@redhat.com>
2715 * src/compiler.c (main): Free the option context.
2717 * gidl.dtd: Clean up handling of names. All elements
2718 have a "name", only the elements corresponding to
2719 actual callable functions (function, method, constructor),
2720 have an additional "symbol" attribute holding the
2721 dlsym()-able function name.
2723 * src/generate.c: Adapt to generate xml matching the
2727 * src/gidlnode.c: Adapt to parse the new dtd.
2729 * tests/*.test: Adjust to the new dtd.
2731 * metadata-format.txt:
2732 * src/gmetadata.h: Remove the short_name field
2734 * src/gmetadata.c: Shrink size of ValueBlob to 12.
2735 * src/girepository.h:
2736 * src/ginfo.c (g_value_info_get_short_name): Removed
2738 2005-05-09 Matthias Clasen <mclasen@redhat.com>
2740 * gidl.dtd: Allow constructors for boxed types,
2741 patch by Jonathan Blandford.
2744 2005-05-09 Matthias Clasen <mclasen@redhat.com>
2746 * --- Initial import ---