1 2008-08-23 Johan Dahlin <johan@gnome.org>
3 * tests/scanner/Makefile.am:
4 * tests/scanner/annotation-expected.gir:
5 * tests/scanner/drawable-expected.gir:
6 Avoid duplication in the Makefile, regenerate with new
7 namespaces (same as the filename)
9 2008-08-22 Colin Walters <walters@verbum.org>
11 * girepository/girnode.c: Don't hardcode integers,
14 2008-08-22 Johan Dahlin <johan@gnome.org>
16 * giscanner/sourcescanner.py:
17 Check for ../gobject-introspection-1.0.pc.in to determine
18 if we run installed or uninstalled.
20 2008-08-22 Johan Dahlin <johan@gnome.org>
23 * giscanner/sourcescanner.py:
24 Send in undefs/defines via writing it directly to stdin
25 of cpp instead of via arguments.
27 2008-08-22 Colin Walters <walters@verbum.org>
29 * tools/generate.c, tools/compiler.c: Default
31 * all Makefile.am: Update.
33 2008-08-22 Colin Walters <walters@verbum.org>
35 * girepository/girparser.c: Pass through
36 recursive types. Avoid overwriting errors.
37 * giscanner/xmlwriter.py: Always write the
39 * tests/*.gir: Adjust.
40 * tests/scanner/Makefile.am: Build typelibs,
41 and generate XML from those. Once we
42 have a good diff mechanism...
43 * tests/scanner/*-expected.gir: Add XML
45 * tools/g-ir-scanner: Accept --typelib-xml
47 * tools/generate.c: Better defaults for transfer.
49 2008-08-22 Johan Dahlin <johan@gnome.org>
53 * giscanner/Makefile.am:
54 * giscanner/config.py.in:
55 * giscanner/sourcescanner.py:
56 Use the generated glibconfig.h for all scanner invokations.
57 Rename it to glibconfig-scanner.h and install it.
58 Add a config.py which so far contains the include dir.
60 2008-08-22 Johan Dahlin <johan@gnome.org>
63 Replace glibconfig.h with our own, do some replacement
64 for CPP/C features we do not support
66 2008-08-22 Colin Walters <walters@verbum.org>
68 * tools/generate.c (write_callable_info): Fix unref
71 2008-08-22 Colin Walters <walters@verbum.org>
73 * gobject-introspection-1.0.pc.in: Add g-ir-generate.
74 * tests/Makefile.am: Support $(DEBUG)
75 * tools/generate.c: Do immediate close tags if no
78 2008-08-21 Colin Walters <walters@verbum.org>
80 * tests/scanner/drawable-expected.gir,
81 * tests/scanner/drawable.c,
82 * tests/scanner/drawable.h:
85 2008-08-21 Colin Walters <walters@verbum.org>
87 * giscanner/glibtransformer.py: Compute prefix
88 by searching through the symbol for bits
89 rather than going directly from ctype; this fixes
92 2008-08-21 Colin Walters <walters@verbum.org>
94 * giscanner/glibtransformer.py: Also try squashing
95 underscores from namespace, fixes webkit_web_view_new.
97 2008-08-21 Colin Walters <walters@verbum.org>
99 * giscanner/glibtransformer.py: More ctor work,
100 avoid having gtk_window_group_new end up under
103 2008-08-21 Colin Walters <walters@verbum.org>
105 * giscanner/glibtransformer.py: Much simpler approach
106 of mapping uscored names to classes.
107 * giscanner/utils.py: Remove unnecessary function.
109 2008-08-21 Johan Dahlin <johan@gnome.org>
111 * girepository/girepository.c (g_irepository_require):
112 Plug memory leak and avoid using freed memory.
113 Resolve the whole module path, here as well.
115 2008-08-21 Colin Walters <walters@verbum.org>
117 * giscanner/glibtransformer.py: Look up all permutations
118 of class names when scanning methods/ctors based on
119 the prefix instead of using the return value. This
120 associates gtk_window_new with the right class.
122 2008-08-21 Colin Walters <walters@verbum.org>
124 * girepository/girmodule.c (g_ir_module_build_typelib):
125 Revert change to increment header_size; we do that in
128 2008-08-21 Colin Walters <walters@verbum.org>
130 * girepository/girnode.c (write_string): Tweak to
131 use UINT instead of INT. Not likely to matter.
132 * girepository/girmodule.c (g_ir_module_build_typelib):
133 Add to header_offset as well for header strings
134 to match what write_string does.
135 * girepository/gtypelib.c: Replace is_name with
136 validate_name, which more strongly validates and
137 handles errors in a better way. Update all callers.
138 * giscanner/glibtransformer.py: Handle constructors
141 2008-08-21 Johan Dahlin <johan@gnome.org>
143 * gir/Makefile.am (typelibs_DATA): Build and
144 install the Gio.typelib too
146 * girepository/gtypelib.c (_g_typelib_init):
147 Use g_module_build_path to resolve the shlib name
149 2008-08-21 Colin Walters <walters@verbum.org>
151 * gir/Makefile.am: CLEANFILES typelibs too.
153 2008-08-21 Johan Dahlin <johan@gnome.org>
155 * giscanner/glibtransformer.py:
156 Do not send .la files through find_library.
158 2008-08-21 Colin Walters <walters@verbum.org>
160 * girepository/girparser.c (g_irepository_require):
161 Fix one small leak in error case.
163 2008-08-21 Johan Dahlin <johan@gnome.org>
166 Parse glibconfig.h as well and install the compiled
169 2008-08-21 Johan Dahlin <johan@gnome.org>
172 * giscanner/glibtransformer.py:
173 * tools/g-ir-scanner:
174 Do not hard-core library names in the Makefile, reuse
175 ctypes find_library instead.
177 2008-08-21 Johan Dahlin <johan@gnome.org>
179 * girepository/girparser.c (resolve_aliases):
180 Remove compilation warnings
182 2008-08-21 Johan Dahlin <johan@gnome.org>
184 * girepository/girepository.c (g_irepository_require):
185 Rewrap and fix double free bug by leaking a bit.
187 2008-08-20 Colin Walters <walters@verbum.org>
189 * girepository/girepository.c: Add new function
190 g_irepository_get_typelib_path which tells
191 us from where we loaded a namespace.
193 2008-08-20 Colin Walters <walters@verbum.org>
195 * tests/scanner/*-expected.gir: Adjust for
196 added shared-library.
197 * giscanner/giwriter.py: Make pylint happy.
199 2008-08-20 Colin Walters <walters@verbum.org>
201 * girepository/girmodule.c (g_ir_module_build_typelib):
202 Calculate size correctly, avoid use-after-free.
204 2008-08-20 Colin Walters <walters@verbum.org>
206 * girepository/girepository.c: Remove
207 g_irepository_register_file in favor of
208 g_irepository_require. There are two
209 possible deployment scenarios for typelibs:
210 First, separate in $DATADIR/gitypelibs/. Second,
211 they may be embedded in shlibs. However since
212 the first is now the normal case, the API is
215 Refactor internals to look up typelibs for
216 namespaces just-in-time, but we expect
217 consumers to call g_irepository_require.
219 Also, add some docs. No one has died from that
221 * gir/Makefile.am: Need --library for glib.
222 * giscanner/girwriter.py: Write out shared-library.
223 * tools/g-ir-writer: Take the first --library
224 argument as the target of shared-library. In
225 the future we should make this nicer with pkg-config
228 2008-08-20 Colin Walters <walters@verbum.org>
230 * girepository/girparser.py: And parse them.
232 2008-08-20 Johan Dahlin <johan@gnome.org>
234 * giscanner/glibast.py: Add gshort/gushort types
236 2008-08-20 Colin Walters <walters@verbum.org>
238 * gir/Makefile.am: Rename .gir files using GI namespace.
239 * girepository/girepository.c: Use XDG_DATA_DIRS for
240 looking up typelibs. Also typelibs are now suffixed
242 * tests/invoke/Makefile.am: Only use metadata.
243 * girepository/Makefile.am: Remove unnecessary include.
244 * tests/scanner/Makefile.am: Update using GI namespaces
245 for scanner includes.
247 2008-08-20 Colin Walters <walters@verbum.org>
249 * girepository/transformer.py: Suppress aliases whose
251 * girepository/ast.py: Define some more aliases.
253 2008-08-20 Colin Walters <walters@verbum.org>
255 * girepository/girparser.c: Avoid alias infloops.
257 2008-08-20 Colin Walters <walters@verbum.org>
259 * tests/scanner/foo-expected.gir: Fix expected list type.
261 2008-08-20 Johan Dahlin <johan@gnome.org>
263 * giscanner/glibtransformer.py (GLibTransformer._resolve_type_name):
264 Add a workaround for #548689.
265 We can now compile gtk!
267 2008-08-20 Colin Walters <walters@verbum.org>
269 * giscanner/glibtransformer.py: Try to look up
270 aliases using the c:type too.
272 2008-08-20 Colin Walters <walters@verbum.org>
274 * girepository/girparser.c: Parse union fields.
276 2008-08-20 Johan Dahlin <johan@gnome.org>
278 * giscanner/ast.py: Make time_t an alias for long
280 * gir/gio-2.0-good.gir:
281 * gir/glib-2.0-good.gir:
282 * gir/gobject-2.0-good.gir:
284 * giscanner/glibtransformer.py:
285 Do not delete Class structures, we need them in gdk/gtk.
286 * tests/scanner/drawable-expected.gir:
287 * tests/scanner/foo-expected.gir:
288 * tests/scanner/utility-expected.gir:
291 2008-08-20 Johan Dahlin <johan@gnome.org>
293 * tests/scanner/Makefile.am:
294 * tests/scanner/annotation-expected.gir:
295 * tests/scanner/annotation.c (annotation_object_class_init),
296 (annotation_object_init), (annotation_object_method),
297 (annotation_object_in), (annotation_object_out),
298 (annotation_object_inout), (annotation_object_inout2),
299 (annotation_object_inout3), (annotation_object_calleeowns),
300 (annotation_object_calleesowns), (annotation_object_get_strings),
301 (annotation_object_with_voidp), (annotation_object_get_objects),
302 (annotation_object_create_object), (annotation_object_allow_none):
303 * tests/scanner/annotation.h:
304 * tests/scanner/foo-expected.gir:
305 * tests/scanner/foo.c:
306 * tests/scanner/foo.h:
307 Split out annotation tests out of foo
309 2008-08-20 Johan Dahlin <johan@gnome.org>
311 * tests/scanner/Foo-expected.gir:
312 * tests/scanner/Makefile.am:
313 * tests/scanner/foo-expected.gir:
314 * tests/scanner/foo-object.h:
315 * tests/scanner/foo.c:
316 Foo->foo, foo-object.h -> foo.h
318 2008-08-20 Johan Dahlin <johan@gnome.org>
320 * tests/scanner/Foo-expected.gir:
321 * tests/scanner/Makefile.am:
322 * tests/scanner/drawable-expected.gir:
323 * tests/scanner/drawable.c (test_drawable_class_init),
324 (test_drawable_init):
325 * tests/scanner/drawable.h:
326 * tests/scanner/foo-object.h:
327 * tests/scanner/foo.c (foo_boxed_method):
328 Move the drawable parts out of Foo to its own test.
330 2008-08-20 Johan Dahlin <johan@gnome.org>
332 * tests/scanner/Foo-expected.gir:
333 * tests/scanner/foo-object.h:
334 * tests/scanner/foo.c (foo_drawable_class_init),
336 Add a based on GdkDrawable which generates
339 2008-08-19 Colin Walters <walters@verbum.org>
341 * giscanner/transformer.py: Don't try
342 to strip prefix before namespace.
344 2008-08-19 Johan Dahlin <johan@gnome.org>
346 * giscanner/transformer.py:
347 * tests/scanner/Foo-expected.gir:
348 * tests/scanner/foo-object.h:
349 Add support for typedef void foo type of
352 2008-08-19 Johan Dahlin <johan@gnome.org>
355 * giscanner/girwriter.py:
356 * giscanner/glibtransformer.py:
357 * giscanner/transformer.py:
358 * tests/scanner/Foo-expected.gir:
359 Add basic support for union, base the code much
360 on Struct. Add a testcase.
362 2008-08-19 Johan Dahlin <johan@gnome.org>
364 * tests/scanner/Foo-expected.gir:
365 * tests/scanner/foo-object.h:
366 Add a union testcase which the compiler currently
369 2008-08-19 Johan Dahlin <johan@gnome.org>
371 * gobject-introspection-1.0.pc.in:
372 Add a g_ir_compiler variable
374 2008-08-19 Colin Walters <walters@verbum.org>
376 * giscanner/ast.py: Rework types to be more closely
378 * giscanner/girparser.py: Parse more bits.
379 * giscanner/girwriter.py: Write sequences in a new
380 way that specifies container type.
381 * giscanner/glibast.py: Adjust for ast.py changes,
382 add 'ctype' property to GLibObject and GLibInterface
383 so we can look things up by it later.
384 * gicanner/transformer.py: Names is new class holding
385 the various namespaces we manage. Do not confuse
386 with Namespace which is toplevel XML node effectively.
387 Rework all type resolution to go through
388 _resolve_type_name_1.
389 * giscanner/glibtransformer.py: Raise UnknownTypeError
390 instead of ValueError for cleanliness. Add Unresolved
391 class to mark types whose parent we haven't seen yet.
392 Use new Names object from transformer.py.
393 Correctly look up parent=.
394 Fix type validation to handle sequences.
395 * tests/scanner/Foo-expected.gir: Update for sequence
396 work, int instead of int32.
397 * tools/g-ir-scanner: Add --noclosure option
398 * gir/Makefile.am: Use --noclosure by default for
401 2008-08-18 Johan Dahlin <johan@gnome.org>
403 * gir/gio-2.0-good.gir:
404 * gir/glib-2.0-good.gir:
405 * gir/gobject-2.0-good.gir:
408 2008-08-18 Johan Dahlin <johan@gnome.org>
411 * giscanner/girparser.py:
412 * giscanner/girwriter.py:
413 * giscanner/glibast.py:
414 * giscanner/glibtransformer.py:
415 * giscanner/transformer.py:
416 * tests/scanner/Foo-expected.gir:
417 * tests/scanner/foo-object.h:
418 * tests/scanner/utility-expected.gir:
419 * tests/scanner/utility.h:
420 Redo type resolving and validation.
421 Add a couple of new tests.
422 Patch mostly written by Colin.
424 2008-08-18 Johan Dahlin <johan@gnome.org>
427 * giscanner/girparser.py:
429 * giscanner/transformer.py:
430 Improve enum parsing for enums without a GType.
431 Make flags/enum references to other girs work
432 * giscanner/utils.py:
434 * tests/scanner/Makefile.am:
435 * tests/scanner/foo-object.h:
436 * tests/scanner/utility-expected.gir:
437 * tests/scanner/utility.h:
438 Add a new test for external enum references
440 2008-08-18 Johan Dahlin <johan@gnome.org>
442 * docs/global-module-registry.txt: Update
444 * tests/array.gir: Update with new type proposal
446 * girepository/girepository.c (g_type_tag_to_string):
447 * girepository/girepository.h:
448 * girepository/girnode.c (g_ir_node_get_full_size_internal),
450 * girepository/girnode.h:
451 Make enum serializing functions public. Clean up some whitespace.
453 2008-08-17 Johan Dahlin <johan@gnome.org>
455 * docs/global-module-registry.txt:
456 Add a document for an on disk module registry format
458 2008-08-17 Johan Dahlin <johan@gnome.org>
461 * gir/gio-2.0-good.gir:
464 2008-08-17 Johan Dahlin <johan@gnome.org>
467 * gir/glib-2.0-good.gir:
468 * gir/gobject-2.0-good.gir:
469 * giscanner/cgobject.py:
470 * giscanner/glibtransformer.py:
471 Regenerate GObject & GType.
472 Avoid warnings when generating gobject-2.0.gir.
473 Introspect a little more, and skip *_get_type functions.
475 2008-08-17 Colin Walters <walters@verbum.org>
477 * gir/glib-2.0.gir, gir/gobject-2.0.gir:
478 Rename to -good, always generate during build.
479 * gir/Makefile.am: Ensure .gir files dep on
481 * Makefile.am: Switch build order to ensure
482 the scanner is ready before we do gir/.
483 * tools/g-ir-scanner: Look for .git too.
485 2008-08-17 Johan Dahlin <johan@gnome.org>
487 * girepository/gtypelib.c (validate_enum_blob):
488 * giscanner/glibtransformer.py:
489 * giscanner/transformer.py:
490 Remove resolve_possible_typedefs, it was unused.
491 Allow multiple enum values of the sample value in an enum,
492 since it's actually pretty common.
493 Register enums so they can be resolved too.
495 2008-08-16 Johan Dahlin <johan@gnome.org>
497 * giscanner/girparser.py:
498 Parse enumeration/bitfield.
500 2008-08-16 Johan Dahlin <johan@gnome.org>
502 * giscanner/girparser.py:
505 2008-08-16 Johan Dahlin <johan@gnome.org>
507 * giscanner/glibtransformer.py:
508 Resolve type names for alias targets
509 * giscanner/transformer.py:
510 Skip FILE* parameters fow now
512 2008-08-16 Johan Dahlin <johan@gnome.org>
515 * gir/gobject-2.0.gir:
518 * tests/scanner/Makefile.am:
521 2008-08-15 Colin Walters <walters@verbum.org>
523 * giscanner/glibtransformer.py: Explicitly construct
524 new list, since we're deleting as we iterate.
525 Don't delete all structures which end in Class; just
526 ones which have a paired GObject.
527 Fix printing of type warning.
528 * giscanner/transformer.py: Make strip_namespace_object
529 be the identity function if it doesn't match the
532 2008-08-15 Colin Walters <walters@verbum.org>
534 * giscanner/cgobject.py: Define yet more argument
535 prototypes; fix prototype for g_type_fundamental.
537 2008-08-14 Johan Dahlin <johan@gnome.org>
540 * tests/constant.gir:
543 * tools/generate.c (write_struct_info):
544 Fix generator for constant/gobject/struct
546 2008-08-14 Johan Dahlin <johan@gnome.org>
550 * tools/generate.c (write_enum_info):
551 Fix generation of enum/bitfields
553 2008-08-14 Johan Dahlin <johan@gnome.org>
555 * girepository/girparser.c (start_field), (start_constant),
556 (start_type), (end_element_handler):
557 Clear up constant parsing
562 * tools/generate.c (write_callable_info), (write_function_info),
563 (write_callback_info), (write_constant_info), (write_signal_info),
564 (write_vfunc_info), (write_property_info), (write_object_info),
565 (write_interface_info):
566 Constants/Signals are handled now.
568 2008-08-14 Johan Dahlin <johan@gnome.org>
570 * girepository/girparser.c (start_type):
571 Don't require c:type.
575 Update, remove parts we don't support yet
576 * tests/roundtrips.sh:
578 * tools/generate.c (write_type_info), (write_field_info),
579 (write_callable_info), (write_struct_info):
580 Make it emit proper gir.
582 2008-08-14 Johan Dahlin <johan@gnome.org>
584 * giscanner/transformer.py:
585 New internal function for adding a new node.
587 2008-08-14 Johan Dahlin <johan@gnome.org>
590 Define an internal _H_ variable so we skip parsing both
591 i18n headers, only one is needed.
593 Add the glib-2.0.gir too.
594 * giscanner/glibast.py:
595 Add gconstpointer as an alias for ANY
596 * giscanner/transformer.py:
597 Do not lower case enumeration names per se.
598 Skip functions which has parameters called 'va_list'
600 2008-08-14 Colin Walters <walters@verbum.org>
602 * giscanner/transformer.py: Comment data structures.
603 Also squash pointers in resolve_type_name to correspond
604 with what we do for params.
605 * giscanner/glibtransformer.py: Print warnings in more
606 situations. Rework checks for method/constructor to
607 look up in our GType database instead of just checking
608 for *. Avoid generating <record> for GObject which
609 duplicate the <class>.
610 * gir/Makefile.am: Generate glib-2.0.gir and gobject-2.0.gir
613 2008-08-14 Johan Dahlin <johan@gnome.org>
615 * giscanner/girwriter.py:
616 * giscanner/glibast.py:
617 * giscanner/glibtransformer.py:
618 * giscanner/transformer.py:
621 Add pyflakes.py and run it in make check.
622 Update the source code to fix the errors reported by
625 2008-08-14 Johan Dahlin <johan@gnome.org>
628 * giscanner/girparser.py:
629 * giscanner/glibast.py:
630 * giscanner/glibtransformer.py:
631 Refactor the parser a bit.
632 Add parent type to interfaces and update callsites.
634 2008-08-14 Johan Dahlin <johan@gnome.org>
636 * giscanner/glibtransformer.py:
637 * giscanner/utils.py:
638 Refactor a bit, avoid isinstance and add a method
639 for each type we parse.
641 2008-08-14 Johan Dahlin <johan@gnome.org>
644 * giscanner/girparser.py:
645 * giscanner/glibtransformer.py:
647 Run pep8.py in make check, fix old errors.
649 2008-08-13 Colin Walters <walters@verbum.org>
651 * giscanner/girparser.py: Parse records.
653 2008-08-13 Colin Walters <walters@verbum.org>
655 * gir/Makefile.am: Install again.
656 * gir/gobject-2.0.gir: Add some more bits.
658 2008-08-13 Colin Walters <walters@verbum.org>
660 * gir/gobject-2.0.gir: Use correct namespace, add GType.
661 * giscanner/girparser.py: Handle aliases.
662 * giscanner/transformer.py: Record aliases. Make resolver
663 functions public; we now call into these explicitly from
664 glibtransformer. Handle resolving aliases.
665 * giscanner/glibtransformer.py: Separate our internal namespace
666 from included ones. Call up into transformer's resolver functions.
668 2008-08-13 Johan Dahlin <johan@gnome.org>
670 * girepository/girnode.c (g_ir_node_get_full_size_internal):
671 * girepository/girparser.c (start_class):
672 * giscanner/glibtransformer.py:
673 Allow get_type to be None, set a get_type for GInitiallyUnowned too.
675 2008-08-13 Johan Dahlin <johan@gnome.org>
677 * giscanner/cgobject.py:
678 Register GInitiallyUnowned
679 * giscanner/girwriter.py:
680 * giscanner/glibtransformer.py:
681 Special case GObject/GInitially owned as they are a bit special to use.
683 2008-08-13 Colin Walters <walters@verbum.org>
685 * tests/scanner/Foo-expected.gir, tests/scanner/utility-expected.gir:
686 Object is in GObject namespace.
688 2008-08-13 Colin Walters <walters@verbum.org>
690 * giscanner/girparser.py: Fix processing of functions
693 2008-08-13 Colin Walters <walters@verbum.org>
695 * giscanner/girparser.py: Parse more than just <class.
696 * giscanner/glibtransformer.py: Put aliases in a separate
697 data structure since their name is not canonicall.
698 * giscanner/transformer.py: Handle resolving type names
701 2008-08-13 Johan Dahlin <johan@gnome.org>
703 * tools/g-ir-scanner:
704 Allow multiple libraries
705 * giscanner/glibtransformer.py:
706 Rename load_library to add_library, traverse over all libraries
707 when trying to resolve a function
709 2008-08-12 Colin Walters <walters@verbum.org>
711 * giscanner/transformer.py: Record typedefs as <alias> elements.
712 Also attempt to look up types in external namespaces.
713 * giscanner/girwriter.py: Write them.
714 * giscanner/glibtransformer.py: Rework resolver using real instanceof
715 checks. Resolve interface methods and properties.
716 * tests/scanner/foo-object.h: Add a method with typedef.
717 * tests/scanner/Foo-expected.gir: Update.
718 * girepository/girnode.c: Debug tweaks.
719 * girepository/girparser.c: Make a first pass through the XML where we
720 record all the aliases. This lets us resolve them as we go through the
722 * gir/Makefile.am: Don't install gobject-2.0.gir; we want that to come
725 2008-08-12 Colin Walters <walters@verbum.org>
727 * giscanner/glibtransformer.py: Resolve typedefs (e.g. AtkAttributeSet -> GSList).
728 Correctly do subclasseing in 2nd pass resolution. Handle callbacks in structure
730 * giscanner/transformer.py: Record typedefs and expose public API for resolving
732 * tests/scanner/Foo-expected.gir: Fix expected callback types.
734 2008-08-12 Colin Walters <walters@verbum.org>
736 * giscanner/glibtransformer.py: Also transform object properties.
738 2008-08-12 Colin Walters <walters@verbum.org>
740 * giscanner/glibtransformer.py: Also transform callbacks
741 and structure field types.
742 * tests/scanner/Fooe-expected.gir: Update to expect correct
743 names for callbacks and structs.
745 2008-08-12 Colin Walters <walters@verbum.org>
747 * girepository/girparser.c: Handle 'any'.
748 * tests/scanner/Foo-expected.gir, tests/scanner/foo-object.h:
751 2008-08-12 Colin Walters <walters@verbum.org>
753 * giscanner/glibtransformer.py: We need to do type
754 resolution in a second pass after we've seen all the
757 2008-08-12 Colin Walters <walters@verbum.org>
759 * tests/scanner/Foo-expected.gir, tests/scanner/foo-object.h:
760 Add enum return value.
761 * giscanner/glibtransformer.py: Transform function return types
764 2008-08-12 Colin Walters <walters@verbum.org>
766 * tests/scanner/Makefile.am: Dep .gir files on scanner
767 sources too. Also remove @ so we see scanner invocations.
769 2008-08-12 Colin Walters <walters@verbum.org>
771 * girepository/girparser.c, girepository/gtypelib.c,
772 girepository/gtypelib.h, girepository/girnode.c:
773 Remove usage of (GAPI-oriented) TypeTag in favor of
774 GITypeTag from girepository.h.
776 2008-08-10 Colin Walters <walters@verbum.org>
778 * tests/roundtrips.sh: Use the correct tests.
780 2008-08-10 Colin Walters <walters@verbum.org>
782 * giscanner/cgobject.py: Declare/wrap a few more functions.
783 Fix parameter types for g_object_new and g_type_fundamental.
785 2008-08-10 Colin Walters <walters@verbum.org>
787 * giscanner/cgobject.py: Add new decorator @gwrap which forces
788 us to declare types for both return value and parameters. The
789 ctypes default of 'int' is bad because it hides 32/64 bit
790 problems. Convert all existing functions to use it.
792 2008-08-09 Johan Dahlin <johan@gnome.org>
794 * giscanner/__init__.py:
796 * giscanner/cgobject.py:
797 * giscanner/gidlparser.py:
798 * giscanner/gidlwriter.py:
799 * giscanner/girparser.py:
800 * giscanner/girwriter.py:
801 * giscanner/glibast.py:
802 * giscanner/glibtransformer.py:
803 * giscanner/odict.py:
804 * giscanner/sourcescanner.py:
805 * giscanner/transformer.py:
806 * giscanner/utils.py:
807 * giscanner/xmlwriter.py:
808 * tools/g-ir-scanner:
812 2008-08-09 Johan Dahlin <johan@gnome.org>
815 * relaxng/c-types.xml:
816 * relaxng/g-types.xml:
817 * relaxng/relaxng.rng:
819 Remove outdated relaxng schemas.
821 2008-08-09 Johan Dahlin <johan@gnome.org>
824 Rename metadata to typelib in variable names,
827 2008-08-09 Johan Dahlin <johan@gnome.org>
831 Remove old C scanner, which got rewritten in python.
833 2008-08-09 Johan Dahlin <johan@gnome.org>
835 * girepository/Makefile.am:
845 Move shared *.[ch] files to girepository from tools
847 2008-08-09 Johan Dahlin <johan@gnome.org>
852 * tests/constant.test:
855 * tests/function.test:
856 * tests/gobject.test:
857 * tests/interface.test:
864 Rename *.test to *.gir
866 2008-08-09 Johan Dahlin <johan@gnome.org>
870 * tests/parser/Foo-expected.gir:
871 * tests/parser/Makefile.am:
872 * tests/parser/foo-object.h:
873 * tests/parser/foo.c:
874 * tests/parser/utility-expected.gir:
875 * tests/parser/utility.c:
876 * tests/parser/utility.h:
877 * tests/scanner/Makefile.am:
878 Rename tests/parser to test/scanner
880 2008-08-08 Colin Walters <walters@verbum.org>
882 * tests/roundtrips.sh: Use local .gir files again.
884 2008-08-08 Colin Walters <walters@verbum.org>
886 * tests/invoke/Makefile.am: .gir file depends on libtool
889 2008-08-08 Colin Walters <walters@verbum.org>
891 * tools/girnode.c: Pass through parent node so we can
892 print the node whose child is NULL, if that occurs.
894 2008-08-08 Johan Dahlin <johan@gnome.org>
897 Disable roundtrip tests which are not yet working
898 * tests/invoke/testfns.gir:
901 2008-08-08 Johan Dahlin <johan@gnome.org>
903 * giscanner/girwriter.py:
905 * giscanner/glibast.py:
906 * giscanner/glibtransformer.py:
907 Swap order of members, to keep it consistent with
910 2008-08-08 Johan Dahlin <johan@gnome.org>
912 * girepository/gtypelib.c (validate_header):
913 * girepository/gtypelib.h:
915 * giscanner/girwriter.py:
916 * giscanner/sourcescanner.c (gi_source_symbol_ref),
917 (gi_source_symbol_unref):
920 * tests/constant.test:
923 * tests/function.test:
924 * tests/gobject.test:
925 * tests/interface.test:
926 * tests/invoke/Makefile.am:
927 * tests/invoke/testfns.xml:
929 * tests/parser/Makefile.am:
930 * tests/roundtrips.sh:
937 * tools/compiler.c (main):
938 * tools/generate.c (write_callable_info), (write_function_info),
940 * tools/gidlmodule.c:
941 * tools/gidlmodule.h:
944 * tools/gidlparser.c:
945 * tools/gidlparser.h:
946 * tools/gidlwriter.c:
947 * tools/gidlwriter.h:
948 * tools/scanner.c (create_node_from_gtype),
949 (create_node_from_ctype), (g_igenerator_process_properties),
950 (g_igenerator_process_signals), (g_igenerator_create_object),
951 (g_igenerator_create_interface), (g_igenerator_create_boxed),
952 (g_igenerator_create_enum), (g_igenerator_create_flags),
953 (g_igenerator_process_function_symbol),
954 (g_igenerator_process_unregistered_struct_typedef),
955 (g_igenerator_process_struct_typedef),
956 (g_igenerator_process_union_typedef),
957 (g_igenerator_process_enum_typedef),
958 (g_igenerator_process_function_typedef),
959 (g_igenerator_process_constant), (g_igenerator_process_symbols),
960 (g_igenerator_add_module), (g_igenerator_add_include_idl):
961 Merge in the gir-compiler branch.
962 Thanks to Philip and Colin for their help.
964 2008-07-26 Colin Walters <walters@verbum.org>
966 * tools/Makefile.am (bin_PROGRAMS): Install g-idl-compiler
967 and g-idl-generate to go along with how we're changing this
968 module to be installed.
969 * gobject-introspection-1.0.pc.in: Set up Cflags and Libs.
971 2008-07-24 Colin Walters <walters@verbum.org>
973 * girepository/girepository.c (g_irepository_register): Add
974 environment variable G_IREPOSITORY_VERBOSE so we can print
975 out what we're doing.
976 * girepository/girepository.c (g_irepository_register_file):
977 Add GError error message to g_debug call.
979 2008-07-08 Jürg Billeter <j@bitron.ch>
981 * giscanner/glibast.py:
985 2008-06-21 Johan Dahlin <jdahlin@async.com.br>
987 * giscanner/girparser.py (GIRParser._parse_api): Ignore a few
990 2008-06-20 Johan Dahlin <jdahlin@async.com.br>
993 * giscanner/girwriter.py:
994 * giscanner/transformer.py:
995 * tests/parser/Foo-expected.gir:
996 * tests/parser/foo-object.h:
997 * tests/parser/foo.c (foo_object_allow_none):
998 Add support for gtk-doc annotations for allow-none.
1001 2008-06-19 Johan Dahlin <jdahlin@async.com.br>
1004 * giscanner/girwriter.py:
1005 * giscanner/glibast.py:
1006 * giscanner/glibtransformer.py:
1007 * giscanner/transformer.py:
1008 * tests/parser/Foo-expected.gir:
1009 Start using abstract type instead of the raw C types.
1010 Register a bunch of glib types we care about.
1012 2008-06-19 Rob Taylor <rob.taylor@codethink.co.uk>
1017 2008-06-08 Philip Van Hoof <pvanhoof@gnome.org>
1019 * girepository/girepository.c:
1020 * girepository/gtypelib.c:
1021 * girepository/ginfo.c:
1022 * girepository/ginvoke.c:
1023 * girepository/girepository.h:
1024 * girepository/gtypelib.h:
1025 * girepository/gmetadata.c:
1026 * girepository/Makefile.am:
1027 * girepository/gmetadata.h:
1029 * tools/gidlmodule.c:
1032 * tools/gidlmodule.h:
1033 * tools/gidlparser.c:
1035 Renamed GMetadata to GTypelib
1037 2008-06-07 Johan Dahlin <jdahlin@async.com.br>
1039 * giscanner/xmlwriter.py:
1040 Improve line wrapping when > 79 charaters
1042 2008-06-05 Jürg Billeter <j@bitron.ch>
1045 * giscanner/girwriter.py:
1046 * giscanner/transformer.py:
1047 Use <type> element for field types
1048 * tests/parser/Foo-expected.gir:
1051 2008-06-04 Johan Dahlin <jdahlin@async.com.br>
1053 * giscanner/glibtransformer.py:
1054 Fix a bug which prevented GdkEvent from being generated
1056 2008-06-03 Johan Dahlin <jdahlin@async.com.br>
1058 * giscanner/Makefile.am:
1060 * giscanner/girwriter.py:
1061 * giscanner/glibast.py:
1062 * giscanner/glibtransformer.py:
1063 * giscanner/transformer.py:
1064 * giscanner/utils.py:
1065 * tests/parser/Foo-expected.gir:
1066 Improve enum member parsing and introspection
1068 2008-05-31 Johan Dahlin <jdahlin@async.com.br>
1070 * giscanner/scannerparser.y:
1071 * giscanner/sourcescanner.h:
1072 * giscanner/sourcescanner.py:
1073 Add a new source type enum for member.
1074 Use __repr__ for improved debugging
1075 * giscanner/girparser.py:
1077 * giscanner/transformer.py:
1078 Improve parsing of struct members.
1079 * tests/parser/foo-object.h:
1082 2008-05-31 Johan Dahlin <jdahlin@async.com.br>
1084 * giscanner/xmlwriter.py:
1085 Improve error reporting when trying to quote None.
1086 * giscanner/girparser.py:
1087 Do not print warnings when including more complete .gir files
1088 * giscanner/girwriter.py:
1089 Do not require a name for parameters, add a todo for singletons
1090 * giscanner/glibtransformer.py:
1091 Refactor the way structs are done, add a couple of hacks to allow
1093 * giscanner/transformer.py:
1094 Add enough hacks so cairo, atk and pango.gir can be parsed properly
1095 * gobject-introspection-1.0.pc.in:
1096 Export girdir, so we can access gobject-2.0.gir from outside
1098 2008-05-31 Johan Dahlin <jdahlin@async.com.br>
1100 * tools/g-ir-scanner:
1101 * tests/parser/Makefile.am:
1102 Update sys.path before running the parser so we don't have
1103 to setup PYTHONPATH ourselves.
1107 * girepository/Makefile.am:
1108 * giscanner/transformer.py:
1109 * gobject-introspection-1.0.pc.in:
1110 * gobject-introspection.pc.in:
1111 * tools/Makefile.am:
1113 Rename pkg-config name to gobject-introspection-1.0,
1114 Do not installed anything which is not using the gir format.
1115 Disable compililation the old C scanner, but still keep the source
1116 until all the remaning functionallity has been ported.
1118 2008-05-31 Johan Dahlin <jdahlin@async.com.br>
1120 * giscanner/giscannermodule.c (symbol_get_ident): Prevent
1121 a crash when symbol->indent is NULL.
1123 * giscanner/sourcescanner.py (ctype_name): Add ctype_name,
1124 a function to convert a CTYPE symbol to a string
1126 2008-05-24 Johan Dahlin <jdahlin@async.com.br>
1129 * giscanner/girwriter.py:
1130 * giscanner/giscannermodule.c
1131 (pygi_source_scanner_append_filename),
1132 (pygi_source_scanner_parse_file):
1133 * giscanner/glibtransformer.py:
1134 * giscanner/sourcescanner.py:
1135 Revert back to using temporary files to send in headers.
1136 Allow Functions to be passed in as callbacks, add a couple
1137 of try/excepts missing features.
1138 We can now scan pango
1140 2008-05-08 Johan Dahlin <johan@gnome.org>
1142 * giscanner/glibtransformer.py:
1143 * giscanner/transformer.py:
1144 Move namespace stripping glibtransformer->transformer
1146 2008-05-08 Johan Dahlin <johan@gnome.org>
1149 * giscanner/girwriter.py:
1150 * giscanner/glibtransformer.py:
1151 * giscanner/transformer.py:
1152 * tools/g-ir-scanner:
1153 Introduce a namespace ast node
1155 2008-05-05 Johan Dahlin <johan@gnome.org>
1157 * giscanner/__init__.py:
1158 * giscanner/sourcescanner.py:
1159 * giscanner/transformer.py:
1160 Move sourcescanner symbols to the sourcescanner module, instead
1161 of in the global __init__ namespace.
1163 2008-05-03 Johan Dahlin <johan@gnome.org>
1165 * giscanner/glibtransformer.py:
1166 * tools/g-ir-scanner:
1167 Handle missing parameters better, allow - and + in .la dlname
1170 2008-05-03 Johan Dahlin <johan@gnome.org>
1172 * giscanner/__init__.py:
1174 * giscanner/girwriter.py:
1175 * giscanner/glibtransformer.py:
1176 * giscanner/transformer.py:
1177 Parse struct fields properly, improve debugging.
1179 2008-04-29 Johan Dahlin <johan@gnome.org>
1182 * giscanner/girwriter.py:
1183 * giscanner/transformer.py:
1184 * tests/parser/Foo-expected.gir:
1186 Use transfer-ownership everywhere, to mark ownership/calle/caller etc.
1188 2008-04-29 Johan Dahlin <jdahlin@async.com.br>
1191 * docs/g-ir-scanner.1:
1192 * metadata-annotations-proposal.txt:
1193 * metadata-format.txt:
1194 Add a basic, unfinshed man page for g-ir-scanner, move documents into .txt
1196 2008-04-29 Johan Dahlin <jdahlin@async.com.br>
1198 * giscanner/girwriter.py:
1199 * giscanner/glibtransformer.py:
1200 * giscanner/transformer.py:
1201 * giscanner/xmlwriter.py:
1202 * tests/parser/Foo-expected.gir:
1203 * tests/parser/foo-object.h:
1204 Write record/structs to gir file too. Add a couple of tests,
1205 fix an off by one error in xmlwriter.py.
1207 2008-04-28 Johan Dahlin <johan@gnome.org>
1209 * giscanner/xmlwriter.py: Calculate the line length properly,
1210 include the provided extra indentation in the calculation, really.
1212 2008-04-28 Johan Dahlin <jdahlin@async.com.br>
1215 * giscanner/glibast.py:
1216 * giscanner/glibtransformer.py:
1217 * giscanner/transformer.py:
1218 * tools/g-ir-scanner:
1219 Add a --strip-prefix and sort out confusion between names and symbols
1220 for functions and struct + derivaties.
1221 Refactor bootstrap of g-ir-scanner, so we can set options on
1222 Transformer() before parsing everything.
1224 2008-04-28 Johan Dahlin <johan@gnome.org>
1226 * giscanner/transformer.py (Transformer._traverse_one): Avoid recursion
1227 when scanning girepository.h
1229 * giscanner/sourcescanner.py (SourceScanner._preprocess): Define
1230 a __GI_SCANNER__ when we run.
1232 2008-04-28 Johan Dahlin <jdahlin@async.com.br>
1235 * giscanner/girwriter.py:
1236 * giscanner/glibast.py:
1237 * giscanner/glibtransformer.py:
1238 * tests/parser/Foo-expected.gir:
1239 * tests/parser/utility-expected.gir:
1240 Rename most c:identifier to c:type. Add new ones to
1241 class/interface/enum/boxed.
1243 2008-04-28 Johan Dahlin <jdahlin@async.com.br>
1246 * giscanner/girwriter.py:
1247 * giscanner/glibtransformer.py:
1248 * tests/parser/Foo-expected.gidl:
1249 * tests/parser/Makefile.am:
1250 Move c:identifier from return-value to subchild type,
1251 as per Jürgs suggestion
1253 2008-04-28 Johan Dahlin <johan@gnome.org>
1255 * giscanner/girwriter.py:
1256 * tests/parser/Foo-expected.gir:
1257 Write property.type as a child node.
1259 2008-04-27 Johan Dahlin <johan@gnome.org>
1264 * gidl/gobject-2.0.gidl:
1266 * gir/gobject-2.0.gir:
1267 * tests/parser/Makefile.am:
1268 Replace the GObject gidl with a GObject gir.
1270 2008-04-27 Johan Dahlin <johan@gnome.org>
1272 * tools/Makefile.am (bin_SCRIPTS): g-ir-scanner is a script,
1275 * giscanner/xmlwriter.py:
1276 * tests/parser/Foo-expected.gir:
1277 Include indentation in line length calculation
1279 2008-04-27 Johan Dahlin <johan@gnome.org>
1281 * giscanner/girparser.py:
1282 Prettify NS parsing using elementtree.
1284 2008-04-27 Johan Dahlin <johan@gnome.org>
1287 * giscanner/Makefile.am:
1288 * giscanner/girparser.py:
1289 * giscanner/glibtransformer.py:
1290 * tests/parser/Foo-expected.gidl:
1291 * tests/parser/Foo-expected.gir:
1292 * tests/parser/Makefile.am:
1293 * tests/parser/utility-expected.gidl:
1294 * tests/parser/utility-expected.gir:
1295 * tools/g-ir-scanner:
1296 Switch over to GIR as the default format. Add a simple GIDL
1298 Update tests and fix simplify makefiles by depending
1299 on GNU make extensions.
1301 2008-04-27 Johan Dahlin <johan@gnome.org>
1303 * giscanner/xmlwriter.py:
1304 Wrap attributes for lines which are wider than 79 characters
1306 * giscanner/scannerlexer.l:
1307 Allow parenthesis in annotations
1310 * giscanner/gidlwriter.py:
1311 * giscanner/girwriter.py:
1312 * giscanner/glibtransformer.py:
1313 * giscanner/transformer.py:
1314 Add initial sequence support, including annotation.
1315 Refactor type handling a bit.
1317 2008-04-27 Johan Dahlin <johan@gnome.org>
1319 * tests/parser/Foo-expected.gidl:
1320 * tests/parser/foo-object.h:
1321 * tests/parser/foo.c (foo_object_class_init),
1322 (foo_object_get_strings), (foo_object_get_objects):
1323 Add two new functions to check sequence return values.
1324 Also fixes a compilation warning.
1326 2008-04-27 Johan Dahlin <johan@gnome.org>
1328 * giscanner/giscannermodule.c (]): Cast the getter, avoids
1329 a compilation warning.
1331 * tools/Makefile.am (g_ir_scanner_SOURCES):
1332 g-ir-scanner has no sources.
1334 2008-04-25 Johan Dahlin <johan@gnome.org>
1336 * giscanner/Makefile.am:
1338 * giscanner/gidlparser.py:
1339 * giscanner/gidlwriter.py:
1340 * giscanner/girwriter.py:
1341 * giscanner/glibast.py:
1342 * giscanner/glibtransformer.py:
1343 * giscanner/transformer.py:
1344 Split out nodes to ast.py and glibast.py
1346 2008-04-25 Johan Dahlin <jdahlin@async.com.br>
1348 * giscanner/Makefile.am:
1349 * giscanner/gidlparser.py:
1350 * giscanner/gidlwriter.py:
1351 * giscanner/girwriter.py:
1352 * giscanner/glibtransformer.py:
1353 * giscanner/gobjecttreebuilder.py:
1354 * giscanner/transformer.py:
1355 * giscanner/treebuilder.py:
1356 * tools/g-ir-scanner:
1357 Rename treebuilder to transformer and
1358 gobjectreebuilder to glibtransformer.
1360 2008-04-25 Johan Dahlin <jdahlin@async.com.br>
1362 * giscanner/Makefile.am:
1363 * giscanner/__init__.py:
1364 * giscanner/cgobject.py:
1365 * giscanner/gidlparser.py:
1366 * giscanner/gidlwriter.py:
1367 * giscanner/girwriter.py:
1368 * giscanner/gobjecttreebuilder.py:
1369 * giscanner/odict.py:
1370 * giscanner/sourcescanner.py:
1371 * giscanner/treebuilder.py:
1372 * giscanner/xmlwriter.py:
1373 * tools/Makefile.am:
1374 * tools/g-ir-scanner:
1375 Add LGPLv2 license header and install all python files
1377 2008-04-25 Johan Dahlin <jdahlin@async.com.br>
1380 * giscanner/gidlwriter.py:
1381 * giscanner/giscannermodule.c (pygi_source_directive_new),
1382 (directive_get_options), (pygi_source_symbol_new),
1383 (symbol_get_base_type), (pygi_source_type_new),
1384 (type_get_base_type), (type_get_child_list),
1385 (pygi_source_scanner_get_symbols),
1386 (pygi_source_scanner_get_directives):
1387 * giscanner/gobjecttreebuilder.py:
1388 * giscanner/sourcescanner.py:
1389 * giscanner/treebuilder.py:
1390 * tests/parser/foo-object.h:
1391 Add support for virtual methods.
1392 Pair struct FooClass with struct Foo.
1393 Clean up the SourceScanner bindings a bit.
1394 Add a testcase for virtual methods.
1396 2008-04-25 Johan Dahlin <jdahlin@async.com.br>
1398 * giscanner/cgobject.py:
1399 * giscanner/gidlwriter.py:
1400 * giscanner/gobjecttreebuilder.py:
1401 Add support for signals
1403 * tests/parser/foo.c (foo_object_class_init):
1404 * Foo-expected.gidl:
1405 Add a signal and update the expected output.
1407 2008-04-24 Johan Dahlin <jdahlin@async.com.br>
1409 * giscanner/gidlwriter.py:
1410 * giscanner/girwriter.py:
1411 * giscanner/giscannermodule.c (directive_get_name),
1412 (directive_get_value), (directive_get_options),
1413 (symbol_get_directives), (symbol_set_directives),
1414 (pygi_source_scanner_parse_file),
1415 (pygi_source_scanner_lex_filename),
1416 (pygi_source_scanner_get_directives), (init_giscanner):
1417 * giscanner/sourcescanner.c (gi_source_scanner_get_directives):
1418 * giscanner/sourcescanner.h:
1419 * giscanner/sourcescanner.py:
1420 * giscanner/treebuilder.py:
1421 * tools/g-ir-scanner:
1422 Add support for source/header annotations.
1424 2008-04-22 Johan Dahlin <jdahlin@async.com.br>
1426 * giscanner/gidlwriter.py:
1427 * giscanner/girwriter.py:
1428 * giscanner/gobjecttreebuilder.py:
1429 * giscanner/treebuilder.py:
1430 Add support for Callbacks
1432 2008-04-22 Havoc Pennington <hp@pobox.com>
1434 * girepository/ginvoke.c (g_function_info_invoke): If a symbol is
1435 not in metadata->module, look for it in the global module, in case
1436 some other object or the app itself provides the symbol.
1438 2008-04-22 Havoc Pennington <hp@pobox.com>
1440 * girepository/gmetadata.c (_g_metadata_init): hack to avoid
1441 dlopening a library that is already in the main app, by checking
1442 whether one of the lib's symbols is already loaded.
1444 2008-04-22 Johan Dahlin <jdahlin@async.com.br>
1446 * tests/parser/Foo-expected.gidl:
1447 * tests/parser/foo-object.h:
1450 2008-04-22 Havoc Pennington <hp@pobox.com>
1452 * girepository/ginfo.c (g_interface_info_find_method):
1453 Use interface_blob_size not object_blob_size to compute offset.
1455 2008-04-22 Havoc Pennington <hp@pobox.com>
1457 * girepository/gmetadata.c (_g_metadata_init): remove
1458 G_MODULE_BIND_LOCAL flag when loading libraries, since some libs
1459 (Glade and Clutter for example) rely on being loaded globally.
1461 2008-04-22 Havoc Pennington <hp@pobox.com>
1463 * girepository/ginfo.c (g_registered_type_info_get_g_type): new
1464 function to get the GType given a RegisteredTypeInfo
1466 2008-04-22 Johan Dahlin <johan@gnome.org>
1468 * COPYING: Add a LGPL license, to prevent automake to
1469 put in a copy of GPL here. Pointed out by Havoc.
1471 * girepository/ginfo.c (g_info_from_entry), (g_type_info_new),
1472 (g_type_info_is_pointer), (g_type_info_get_tag),
1473 (g_type_info_get_param_type), (g_type_info_get_interface),
1474 (g_type_info_get_array_length), (g_type_info_is_zero_terminated),
1475 (g_type_info_get_n_error_domains), (g_type_info_get_error_domain),
1476 (g_error_domain_info_get_codes), (g_enum_info_get_value),
1477 (g_object_info_get_interface), (g_object_info_get_field),
1478 (g_interface_info_get_prerequisite),
1479 (g_signal_info_get_class_closure), (g_constant_info_get_value):
1480 * girepository/ginvoke.c (get_ffi_type):
1481 * girepository/girepository.h:
1482 * girepository/gmetadata.c (g_metadata_get_dir_entry),
1483 (g_metadata_check_sanity), (validate_header),
1484 (validate_array_type_blob), (validate_iface_type_blob),
1485 (validate_param_type_blob), (validate_error_type_blob),
1486 (validate_type_blob), (validate_constant_blob),
1487 (validate_struct_blob), (validate_enum_blob):
1488 * girepository/gmetadata.h:
1489 * tests/Makefile.am:
1490 * tests/invoke/Makefile.am:
1491 * tests/invoke/invoke.c (main):
1492 * tests/roundtrips.sh:
1493 * tools/Makefile.am:
1494 * tools/compiler.c (format_output), (write_out_metadata), (main):
1495 * tools/generate.c (write_type_name), (write_type_info),
1496 (write_constant_value), (write_enum_info), (load_metadata), (main):
1497 * tools/gidlcompilercontext.c:
1498 * tools/gidlcompilercontext.h:
1499 * tools/gidlcompilerentrynode.c:
1500 * tools/gidlcompilerentrynode.h:
1501 * tools/gidlcompilertypenode.c:
1502 * tools/gidlcompilertypenode.h:
1503 * tools/gidlmodule.c (g_idl_module_build_metadata):
1504 * tools/gidlmodule.h:
1505 * tools/gidlnode.c (init_stats), (dump_stats),
1506 (g_idl_node_get_size), (g_idl_node_get_full_size),
1507 (g_idl_node_cmp), (g_idl_node_can_have_member),
1508 (g_idl_node_add_member), (g_idl_node_param_direction_string),
1509 (parse_int_value), (parse_uint_value), (parse_float_value),
1510 (parse_boolean_value), (find_entry_node), (find_entry),
1511 (serialize_type), (g_idl_node_build_metadata), (write_string):
1513 * tools/gidlparser.c (parse_type_internal):
1514 * tools/quote-file.sh:
1515 Revert revisions 157,149-148,136-129 and 120.
1516 Move back to using g-idl-generate to generate the metadata and
1517 avoids dependency on a c compiler.
1519 2008-04-22 Johan Dahlin <jdahlin@async.com.br>
1521 * giscanner/girwriter.py:
1522 * tools/g-ir-scanner:
1523 Add an initial GIR writer and a --format option to g-ir-scanner
1525 2008-04-21 Johan Dahlin <johan@gnome.org>
1527 * giscanner/cgobject.py: Use ctypes.util.find_library to locate
1528 gobject-2.0 and raise ImportError if not found.
1530 * giscanner/gidlparser.py:
1531 * giscanner/gidlwriter.py:
1532 * giscanner/gobjecttreebuilder.py:
1533 * tools/g-ir-scanner:
1534 Add a --include argument to include types from other idls.
1535 Add a minimalistic GIDL parser (just objects for now)
1536 Implement resolving of external type references and use it to
1537 resolve parent types, argument types and return types.
1539 2008-04-21 Johan Dahlin <johan@gnome.org>
1541 * giscanner/gidlwriter.py:
1542 * giscanner/gobjecttreebuilder.py:
1543 * giscanner/treebuilder.py:
1544 Add support for properties.
1545 Refactor Class/Interface support a bit, to share more code and
1546 always initialize their method attribute to an empty list.
1548 2008-04-21 Johan Dahlin <johan@gnome.org>
1550 * giscanner/cgobject.py:
1551 Add a workaround for a glib bug interface introspection bug
1552 (object_interface_list_properties, object_class_list_properties):
1553 Cast the return value to GParamSpec.
1555 * tests/parser/Foo-expected.gidl: Update
1556 * tests/parser/foo.c: Add a string property
1558 * giscanner/gobjecttreebuilder.py:
1559 After stripping namespaces, remove the original
1560 item to avoid duplication (GtkButton struct and Button object)
1562 2008-04-21 Johan Dahlin <johan@gnome.org>
1564 * giscanner/gobjecttreebuilder.py:
1565 * giscanner/treebuilder.py:
1566 Strip namespaces before objects, so we'll export
1567 GtkButton as Button in the gtk namespace
1569 2008-04-21 Johan Dahlin <johan@gnome.org>
1571 * giscanner/gidlwriter.py:
1572 * giscanner/gobjecttreebuilder.py:
1573 * giscanner/treebuilder.py:
1574 Add constructors for object/boxed types.
1576 2008-04-21 Johan Dahlin <johan@gnome.org>
1578 * giscanner/gidlwriter.py:
1579 * giscanner/gobjecttreebuilder.py:
1580 Add support for boxed types
1582 2008-04-21 Johan Dahlin <johan@gnome.org>
1584 * giscanner/giscannermodule.c: Mark structures as const,
1585 wrap SourceType.const_string.
1587 * tests/parser/foo-object.h: Add a couple of constants.
1589 * giscanner/gidlwriter.py:
1590 * giscanner/gobjecttreebuilder.py:
1591 * giscanner/treebuilder.py:
1592 Add basic support for interfaces
1594 * tools/g-ir-scanner:
1595 Add -o/--output for writing to a file
1597 2008-04-21 Havoc Pennington <hp@redhat.com>
1599 * TODO: add some C API wishlist items I could think of quickly
1601 2008-04-21 Johan Dahlin <jdahlin@async.com.br>
1603 * giscanner/gidlwriter.py:
1604 * giscanner/xmlwriter.py:
1605 Add a simple api for writing tags which can be used
1606 with the new 'with statement' in python 2.5
1608 2008-04-21 Johan Dahlin <johan@gnome.org>
1610 * giscanner/gobjecttreebuilder.py:
1611 Strip namespace and object prefix from method names.
1613 2008-04-21 Johan Dahlin <johan@gnome.org>
1615 * tools/g-ir-scanner (main): Add --pkg option to pass in
1616 pkg-config modules to get cflags from.
1618 * giscanner/gidlwriter.py (GIDLWriter._write_method):
1619 Avoid duplication, reuse function writer for methods.
1621 2008-04-21 Johan Dahlin <jdahlin@async.com.br>
1623 * giscanner/gidlwriter.py:
1624 * giscanner/gobjecttreebuilder.py:
1625 * giscanner/treebuilder.py:
1626 * tools/g-ir-scanner:
1627 Resolve libtool .la files.
1628 Strip name spaces for methods.
1629 Add function symbols
1631 2008-04-20 Johan Dahlin <jdahlin@async.com.br>
1633 * giscanner/cgobject.py:
1634 * giscanner/gidlwriter.py:
1635 * giscanner/gobjecttreebuilder.py:
1636 * giscanner/treebuilder.py:
1637 Add support for classes and methods
1639 2008-04-20 Johan Dahlin <johan@gnome.org>
1641 * giscanner/gidlwriter.py:
1642 * giscanner/gobjecttreebuilder.py:
1643 * giscanner/odict.py:
1644 Avoid conflicts, keep the output ordered similar to
1645 the order of the input.
1646 Add a simple ordered dictionary implemenation
1648 2008-04-19 Johan Dahlin <johan@gnome.org>
1650 * giscanner/cgobject.py:
1651 * giscanner/gidlwriter.py:
1652 * giscanner/gobjecttreebuilder.py:
1653 * tools/g-ir-scanner:
1654 Start introspecting get-type functions.
1655 Implement support for GLib/GFlags GTypes.
1656 Add a ctype based GObject binding.
1658 2008-04-18 Johan Dahlin <jdahlin@async.com.br>
1660 * giscanner/gidlwriter.py:
1661 * giscanner/xmlwriter.py:
1662 * tools/g-ir-scanner:
1663 Add a simplistic gidl writer, which can't do too much.
1665 2008-04-18 Johan Dahlin <johan@gnome.org>
1667 * giscanner/sourcescanner.py:
1668 * giscanner/treebuilder.py:
1669 * tools/g-ir-scanner:
1670 split tree building and source scanning interface to separate files.
1672 2008-04-18 Johan Dahlin <johan@gnome.org>
1674 * tools/g-ir-scanner (Parameter.__init__): Start constructing
1676 - Add support for struct/parameter/return, start parsing of ctypes
1678 * giscanner/giscannermodule.c: wrap GISourceType.child_list and
1681 2008-03-31 Johan Dahlin <johan@gnome.org>
1683 * tools/g-ir-scanner:
1684 Start to build abstract syntax node of scanned sources.
1685 Add support for cpp options.
1687 2008-03-27 Johan Dahlin <johan@gnome.org>
1689 * giscanner/giscannermodule.c:
1690 * giscanner/scannerlexer.l:
1691 * giscanner/sourcescanner.c:
1692 * tools/g-ir-scanner:
1694 Add simple pre-processor using subprocess and a PIPE.
1695 Change the parse_file apis to accept a file descriptor.
1697 2008-03-25 Johan Dahlin <johan@gnome.org>
1699 * giscanner/__init__.py:
1700 * tools/g-ir-scanner:
1701 Fix a typo and add an example python test program.
1703 2008-03-25 Johan Dahlin <johan@gnome.org>
1705 * giscanner/__init__.py:
1706 * giscanner/giscannermodule.c:
1707 * giscanner/sourcescanner.c:
1708 * giscanner/sourcescanner.h:
1709 Add constants and wrap a few more SymbolType fields
1711 2008-03-25 Johan Dahlin <johan@gnome.org>
1715 * giscanner/__init__.py:
1716 * giscanner/giscannermodule.c:
1717 * giscanner/Makefile.am:
1719 Add initial python bindings for the scanner and
1720 depend on python 2.5.
1722 2008-03-25 Johan Dahlin <johan@gnome.org>
1726 * giscanner/Makefile.am:
1727 * giscanner/sourcescanner.c:
1728 * giscanner/sourcescanner.h:
1729 * tools/Makefile.am:
1730 * tools/grealpath.h:
1731 * tools/sourcescanner.c:
1732 * tools/sourcescanner.h:
1734 Move the scanner to a separate library.
1736 2008-03-23 Johan Dahlin <johan@gnome.org>
1738 * tools/Makefile.am:
1741 * tools/scannerlexer.l:
1742 * tools/scannerparser.y:
1743 * tools/sourcescanner.c:
1744 * tools/sourcescanner.h:
1745 Split out the source scanner from the generator.
1746 Rename the symbols used in the scanner to use the gi_ prefix.
1747 This should make it possible to use the raw C parser from
1750 2008-03-23 Johan Dahlin <johan@gnome.org>
1752 * tests/parser/Makefile.am (utility.gidl):
1753 * tests/parser/utility-expected.gidl:
1754 Pass in the gobject.gidl since we're defining a GObject.
1756 2008-03-12 Johan Dahlin <johan@gnome.org>
1758 * relaxng/relaxng.rng:
1759 Add a releaxng in relaxng we can use to validate the relaxngs
1762 2008-03-12 Jürg Billeter <j@bitron.ch>
1764 * tools/scanner.c: (g_igenerator_new):
1765 * tools/scannerparser.y:
1766 Fix compiler warnings.
1768 2008-03-12 Jürg Billeter <j@bitron.ch>
1772 * tools/scannerparser.y:
1773 Start fixing memory management in g-idl-scanner.
1775 2008-03-12 Rob Taylor <rob.taylor@codethink.co.uk>
1777 * tools/gidlcompilercontext.c: (write_compiled):
1778 Fix critical warning when no shlib passed to g-idl-compiler.
1780 2008-03-12 Johan Dahlin <johan@gnome.org>
1782 * tests/parser/utility-expected.gidl:
1783 * tests/parser/utility.h:
1784 Add a get_type-function, so the scanner actually
1785 parses it as an object.
1787 2008-03-12 Johan Dahlin <johan@gnome.org>
1789 * tools/gidlwriter.c (function_generate): Add missing trailing quote.
1792 * tests/parser/Foo-expected.gidl:
1793 * tests/parser/Makefile.am:
1794 * tests/parser/foo-object.h:
1795 * tests/parser/foo.c:
1796 * tests/parser/utility-expected.gidl:
1797 * tests/parser/utility.c:
1798 * tests/parser/utility.h:
1800 Add a new gidl test. 'utility.gidl', which is used to be able
1801 to test external type references. Add a reference to UtilityObject*
1804 2008-03-11 Johan Dahlin <johan@gnome.org>
1808 Remove most global variables
1810 2008-03-11 Philip Van Hoof <me@pvanhoof.be>
1812 * tools/scannerlexer.l:
1814 * tests/parser/Foo-expected.gidl:
1815 * tests/parser/foo.c:
1816 * tests/parser/Makefile.am:
1817 * tests/parser/foo-object.h:
1819 Added a few extra tests. Which resulted in finding a few
1820 bugs. Which resulted in me fixing those bugs
1822 2008-03-11 Rob Taylor <rob.taylor@codethink.co.uk>
1824 * tools/gidlcompilercontext.c: (g_idl_compiler_write_dir_entry),
1825 (g_idl_compiler_write_xref_entry), (g_idl_compiler_add_xref):
1826 Add some comments for strings into generated output for
1829 2008-03-11 Rob Taylor <rob.taylor@codethink.co.uk>
1831 * tools/gidlcompilercontext.c: (write_compiled):
1832 Write out the shlibs variable before writing out the strings
1833 length. Fixes compiler warning when using '-l' flag with
1836 2008-03-11 Johan Dahlin <johan@gnome.org>
1838 * tests/parser/Foo-expected.gidl:
1839 * tests/parser/foo-object.h:
1842 * tools/scannerlexer.l:
1843 Add support for parsing return arguments. Add support for
1844 caller-owns return types.
1845 Patch by Philip Van Hoof.
1847 * tools/scannerparser.y:
1848 Remove parsing of the @deprecated syntax used in headers.
1849 We will support gtk-doc deprecation in the future instead.
1851 2008-03-11 Johan Dahlin <johan@gnome.org>
1853 * tools/compiler.c (main): Coding style fixes
1855 2008-03-10 Johan Dahlin <johan@gnome.org>
1858 Add GCOV_LIBS to GILIBS
1860 2008-03-10 Johan Dahlin <johan@gnome.org>
1862 * tests/parser/Foo-expected.gidl:
1863 * tests/parser/foo.c:
1864 Rename null-ok to direction=out
1866 2008-03-10 Philip Van Hoof <me@pvanhoof.be>
1868 reviewed and extensively tested by Johan
1870 * tests/parser/Foo-expected.gidl:
1871 * tests/parser/foo-object.h:
1872 * tests/parser/foo.c:
1875 * tools/gidlwriter.c:
1878 * tools/scannerlexer.l:
1879 * tools/scannerparser.y:
1881 Add support for scanning for gtk-doc comments inside
1882 C source files. Add tests
1884 2008-03-10 Johan Dahlin <johan@gnome.org>
1886 * tests/parser/Makefile.am:
1887 * tests/parser/foo.c:
1890 * tools/scannerparser.y:
1891 Add an api to lex filenames.
1892 Lex all source .c files passed in on the command line.
1893 Scan sources in a test and a couple of private structures
1894 which should not be included in the generated gidl
1896 2008-03-10 Johan Dahlin <johan@gnome.org>
1898 * tests/invoke/Makefile.am: Make the generated metadata
1899 depend on the g-idl-compiler
1901 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1903 * tools/gidlmodule.c
1904 * tools/gidlmodule.h
1907 Remove the old g-idl-compiler code.
1910 2008-02-22 Mark Doffman <mark.doffman@codethink.co.uk>
1912 * tools/quote-file.sh
1915 Move to using the 'C' struct compiler code.
1917 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1919 * girepository/ginfo.c
1921 Change the way that external references with no namespace
1922 are dealt with. External references with no namespace
1923 are placed into the XML as-if they are a local reference.
1924 This is temporary, but helps with roundtrip tests.
1926 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1928 * girepository/ginfo.c
1929 Add the ability to get the value of a constant of
1930 type TYPE_TAG_SYMBOL. In the case of a symbol the value
1931 is provided as a string.
1933 This would deal properly with:
1934 typedef char* random;
1935 const random = "A string";
1937 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1939 * girepository/ginfo.c
1940 * girepository/girepository.h
1942 Add a function to check if an enum is registered or not.
1943 Previously anything testing this relied on the g-type
1944 string offset having a value of 0.
1946 * girepository/gmetadata.c
1947 * girepository/gmetadata.h
1949 Remove unneccesary or erroneous checks. There were two
1950 metadata validation checks which made sure that the blob
1951 sizes were the same as some magic numbers compiled into the code.
1952 This is wrong as it breaks any forwards compatibility that may
1955 Checks were also present that made sure that unregistered type
1956 blobs had a value of 0 in the g-type offset field. This is
1957 unneccessary. If a type blob is unregistered then any value
1958 in its g-type field is simply invalid.
1960 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1962 * girepository/ginfo.c
1963 * girepository/gmetadata.c
1964 * girepository/gmetadata.h
1966 Change the metadata format to have a standard header
1967 for all the type blobs. Merge the SimpleTypeBlob
1968 and InterfaceTypeBlob into a union. A union of these
1969 two blobs existed previously but was not explicit
1970 in the metadata format.
1972 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1974 * tools/gidlcompilercontext.c
1975 * tools/gidlcompilercontext.h
1976 * tools/gidlcompilerentrynode.c
1977 * tools/gidlcompilerentrynode.h
1978 * tools/gidlcompilertypenode.c
1979 * tools/gidlcompilertypenode.h
1981 Add code to compile a tree of GIdlNodes to
1982 a 'C' struct representing the metadata.
1983 This is to aid cross-compiling. Previously
1984 the g-idl-compiler created a binary blob with
1985 data written in the byte order and alignment
1986 of the tool rather than the intended target.
1988 Cleaned up and improved by Johan and Robert :-)
1990 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1992 * girepository/ginvoke.c
1993 * girepository/girepository.h
1994 * girepository/gmetadata.c
1995 * girepository/gmetadata.h
1997 * tools/gidlparser.c
1998 Modify TYPE_TAG_INTERFACE to TYPE_TAG_SYMBOL
1999 to avoid confusion with the interface blob.
2002 * tools/gidlparser.c
2003 Remove magic numbers and replace with type-tag
2004 enumeration symbols.
2006 * girepository/gmetadata.c
2007 Add validate declaration.
2009 2008-03-10 Jürg Billeter <j@bitron.ch>
2011 * tools/gidlparser.c: (parse_type_internal):
2012 * tools/scannerlexer.l:
2013 * tools/scannerparser.y:
2014 Support C99 _Bool type in scanner.
2016 2008-03-10 Jürg Billeter <j@bitron.ch>
2018 * tests/parser/Foo-expected.gidl:
2019 * tests/parser/foo-object.h:
2020 * tests/parser/foo.c: (foo_enum_method):
2021 * tools/scanner.c: (g_igenerator_process_function_symbol):
2022 Don't skip functions that are defined in the namespace of a type
2023 that doesn't support methods, as for example enums.
2025 2008-03-10 Johan Dahlin <johan@gnome.org>
2027 * gidl.dtd: Remove, we're using relaxng for now
2029 * tests/parser/Foo-expected.gidl:
2030 * tests/parser/foo-object.h:
2031 * tests/parser/foo.c:
2032 Rename the enum/flags get_type functions to include the whole type.
2034 2008-03-08 Marc-Andre Lureau <marcandre.lureau@gmail.com>
2036 * tools/gidlwriter.c (enum_generate): added "type-name",
2037 "get-type" and "deprecated" missing arguments.
2038 * tests/parser/Foo-expected.gidl:
2039 * tests/parser/foo-object.h: test enum type, and no type.
2041 2008-03-06 Johan Dahlin <jdahlin@async.com.br>
2044 Consistent checks, add missing 'test'
2046 2008-03-05 Havoc Pennington <hp@redhat.com>
2048 * configure.ac: Take advantage of a libffi.pc if one exists, as it
2049 does on Fedora 8. Make libffi a hard requirement, since it was in
2050 practice anyway (was not really conditional in the code or
2051 makefile, only in configure).
2053 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
2055 reviewed by: Rob Taylor <rob.taylor@codethink.co.uk>
2056 reviewed by: Johan Dahlin <johan@gnome.org>
2058 * tests/Makefile.am:
2059 * tests/roundtrips.sh:
2060 Modify the roundtrips test so that they do not use the
2061 --raw option of the gidl compiler but instead compile a
2062 shared library to use with g_module.
2064 * tests/invoke/Makefile.am:
2065 * tests/invoke/invoke.c:
2066 Modify the invoke tests to build a shared library rather
2067 than use the --raw option.
2069 * tests/invoke/invoke-namespace-find.sh: Removed:
2070 Noone knows why this was here, so removed.
2072 2008-02-19 Rob Taylor <rob.taylor@codethink.co.uk>
2074 * tools/scanner.c: (g_igenerator_process_function_symbol):
2075 Move g_idl_node_can_have_member test later, as it broke spotting
2076 get_type's for nodes that can't have members.
2078 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
2081 * tools/gidlnode.c: (g_idl_node_can_have_member):
2082 Add g_idl_node_can_have_member.
2084 * tools/scanner.c: (g_igenerator_process_function_symbol):
2085 Use g_idl_node_can_have_member to test if we should add a function
2086 as a member of the type node.
2088 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
2090 * gidl/GLib.gidl: Renamed to gidl/gobject-2.0.gidl:
2092 * tests/parser/Makefile.am:
2093 Rename GLib.gidl to gobject-2.0.gidl and install in /usr/share/gidl.
2095 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
2097 * tools/scanner.c: (main):
2098 Ignore -pthread when passed to g-idl-scanner.
2100 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
2102 * tools/grealpath.h: Added:
2103 * tools/scanner.c: (main):
2104 * tools/scannerlexer.l:
2105 * tools/Makefile.am:
2106 Always use absolute paths with symbolic links resolved when
2107 comparing filenames.
2109 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
2111 * gobject-introspection.pc.in:
2112 Provide variables for g-idl-parser, scanner and compiler in the
2115 2008-02-13 Rob Taylor <rob.taylor@codethink.co.uk>
2118 * girepository/Makefile.am:
2119 * tools/Makefile.am:
2120 Rename GCOV_SOURCES to GCOVSOURCES to top automake complaining.
2122 2008-02-10 Johan Dahlin <johan@gnome.org>
2124 * tests/parser/Foo-expected.gidl:
2125 * tests/parser/foo-object.h:
2126 * tests/parser/foo.c: (foo_boxed_copy), (foo_boxed_free),
2127 (foo_boxed_get_type), (foo_boxed_new), (foo_boxed_method):
2130 2008-02-10 Johan Dahlin <johan@gnome.org>
2132 * tests/parser/Foo-expected.gidl:
2133 * tests/parser/foo-object.h:
2134 * tests/parser/foo.c: (foo_enum_get_type), (foo_flags_get_type):
2135 Add enum and flags test.
2137 2008-02-10 Johan Dahlin <johan@gnome.org>
2141 * girepository/Makefile.am:
2142 Make 'make distcheck' work again.
2144 2008-02-10 Johan Dahlin <johan@gnome.org>
2146 * m4/Makefile.am (EXTRA_DIST): its called as-compiler-flag.m4,
2149 * tests/parser/Makefile.am: Only create Foo.gidl when running make
2150 check, eg exclude it from BUILT_SOURCES.
2152 2008-02-08 Rob Taylor <rob.taylor@codethink.co.uk>
2157 * girepository/Makefile.am:
2158 * m4/Makefile.am: Added:
2159 * m4/as-compiler-flag.m4: Added:
2160 * m4/gcov.m4: Added:
2161 * tools/Makefile.am:
2162 Add ability to generate a coverage report.
2163 Adds configure option --enable-gcov and make rule 'check-coverage'.
2165 2008-02-08 Rob Taylor <rob.taylor@codethink.co.uk>
2169 * gidl/Makefile.am: Added:
2170 * girepository/Makefile.am: Added:
2171 * src/Makefile.am: Renamed to tools/Makefile.am:
2172 * src/compiler.c: Renamed to tools/compiler.c:
2173 * src/g-idl-offsets.pl: Renamed to tools/g-idl-offsets.pl:
2174 * src/generate.c: Renamed to tools/generate.c:
2175 * src/gidlmodule.c: Renamed to tools/gidlmodule.c:
2176 * src/gidlmodule.h: Renamed to tools/gidlmodule.h:
2177 * src/gidlnode.c: Renamed to tools/gidlnode.c:
2178 * src/gidlnode.h: Renamed to tools/gidlnode.h:
2179 * src/gidlparser.c: Renamed to tools/gidlparser.c:
2180 * src/gidlparser.h: Renamed to tools/gidlparser.h:
2181 * src/gidlwriter.c: Renamed to tools/gidlwriter.c:
2182 * src/gidlwriter.h: Renamed to tools/gidlwriter.h:
2183 * src/ginfo.c: Renamed to girepository/ginfo.c:
2184 * src/ginvoke.c: Renamed to girepository/ginvoke.c:
2185 * src/girepository.c: Renamed to girepository/girepository.c:
2186 * src/girepository.h: Renamed to girepository/girepository.h:
2187 * src/gmetadata.c: Renamed to girepository/gmetadata.c:
2188 * src/gmetadata.h: Renamed to girepository/gmetadata.h:
2189 * src/scanner.c: Renamed to tools/scanner.c:
2190 * src/scanner.h: Renamed to tools/scanner.h:
2191 * src/scannerlexer.l: Renamed to tools/scannerlexer.l:
2192 * src/scannerparser.y: Renamed to tools/scannerparser.y:
2193 * tests/invoke/Makefile.am:
2194 Split src/ into girepository/ and tools/
2198 * girepository/Makefile.am:
2199 * tests/Makefile.am:
2200 * tests/invoke/Makefile.am:
2201 * tests/parser/Makefile.am:
2202 * tests/roundtrips.sh:
2203 * tools/Makefile.am:
2204 Make distcheck work.
2206 2008-02-04 Rob Taylor <rob.taylor@codethink.co.uk>
2208 * tests/invoke/invoke.c: (main):
2209 * tests/invoke/testfns.c: (test6), (test7):
2210 * tests/invoke/testfns.xml:
2211 Add tests for invokation with a GList argument.
2212 Also tests caller-owns return values.
2214 2008-02-04 Rob Taylor <robtaylor@floopily.org>
2217 Add some documentation for GICallableInfo
2219 2008-02-01 Mark Doffman <mark.doffman@codethink.co.uk>
2222 Correct syntax errors in the DTD file.
2224 * relaxng/c-types.xml:
2225 * relaxng/g-types.xml:
2227 Add a RelaxNG specification for the GObject Introspection XML data.
2228 The Specification has validated all of the test files.
2230 2008-01-25 Rob Taylor <robtaylor@floopily.org>
2232 * tests/roundtrips.sh:
2233 * tests/struct.test:
2234 Add roundtrip tests for structs.
2236 2008-01-11 Johan Dahlin <johan@gnome.org>
2238 * src/scanner.c (g_igenerator_process_function_symbol):
2239 Refactor out g_idle_node_add_member.
2240 (create_node_from_gtype, create_node_from_ctype):
2241 Use case instead of if...else
2242 (get_type_from_type_id):
2243 Rename to create_node_from_gtype
2244 (get_type_from_ctype):
2245 Rename to create_node_from_ctype
2247 Rename ginode -> node, gitype -> type, gifunc -> func.
2249 * src/gidlnode.c (g_idl_node_add_member, g_idl_node_cmp):
2250 Two new functions, refactor out of scanner.c
2252 * src/scanner.c: (g_igenerator_process_function_symbol):
2253 * src/scannerlexer.l:
2254 Do not save the content of the deprecated variable, only
2257 2008-01-11 Johan Dahlin <johan@gnome.org>
2259 * tests/parser/foo-object.h: Add a couple of comment parser tests.
2261 2008-01-11 Jürg Billeter <j@bitron.ch>
2263 * src/scannerlexer.l:
2264 Fix GTK-Doc parsing.
2266 2008-01-11 Jürg Billeter <j@bitron.ch>
2268 * src/scannerlexer.l:
2269 Fix GTK-Doc parsing.
2271 2008-01-11 Jürg Billeter <j@bitron.ch>
2273 * src/scanner.c: (lookup_symbol):
2274 Return unresolved name if we find unknown symbol.
2276 2008-01-11 Jürg Billeter <j@bitron.ch>
2278 * src/scanner.c: (g_igenerator_generate):
2279 Initialize GObject to fix scanning interface properties.
2281 * tests/parser/Foo-expected.gidl:
2282 * tests/parser/foo-object.h:
2283 * tests/parser/foo.c: (foo_interface_get_type):
2284 Test interfaces with GObject prerequisite.
2286 * tests/parser/Makefile.am:
2287 Set G_DEBUG=fatal_warnings to abort test on warnings and criticals.
2289 2007-12-27 Johan Dahlin <johan@gnome.org>
2291 * src/scannerlexer.l:
2292 Parse gtk-doc comments.
2294 * src/gidlwriter.c: (function_generate):
2295 Reorganize, avoid duplication and add support for
2296 writing deprecated functions.
2298 * src/scannerparser.y:
2300 Add new structure CDirective and functions to create/free them.
2302 * src/scanner.c: (g_igenerator_process_function_symbol),
2303 (g_igenerator_process_unregistered_struct_typedef),
2304 (g_igenerator_process_struct_typedef),
2305 (g_igenerator_process_union_typedef),
2306 (g_igenerator_process_enum_typedef),
2307 (g_igenerator_process_function_typedef), (g_igenerator_add_symbol),
2308 (g_igenerator_start_preprocessor):
2309 Parse @deprecated directive for functions.
2310 Remove some more C99isms.
2311 Send in -C to cpp to avoid stripping comments.
2313 * tests/parser/foo-object.h:
2314 * tests/parser/Foo-expected.gidl:
2315 Add deprecated directive
2317 2007-12-27 Johan Dahlin <johan@gnome.org>
2319 * src/scannerlexer.l (intsuffix): Add emacs mode line and
2320 escape ' and " so it looks more like C.
2323 Unlink temporary file used.
2325 2007-12-27 Johan Dahlin <johan@gnome.org>
2327 * src/scanner.c: (g_igenerator_new), (g_igenerator_free),
2328 (g_igenerator_start_preprocessor), (main):
2330 * src/scannerparser.y:
2331 Plug a couple of simple memory leaks.
2333 2007-12-27 Johan Dahlin <johan@gnome.org>
2335 * src/scanner.c: (g_igenerator_parse_macros),
2336 (g_igenerator_start_preprocessor), (g_igenerator_set_verbose),
2339 * src/scannerparser.y:
2340 * tests/parser/Makefile.am:
2342 Improve error reporting, return when the preprocessor fails.
2343 Add a verbose parameter, to aid debugging.
2344 Revert to using a temporary file to communicate between the
2345 preprocessor and the parser, because we need to wait for
2346 the exit code from the pre-processor before starting to parse.
2348 2007-12-16 Johan Dahlin <jdahlin@async.com.br>
2350 * src/Makefile.am: Rename clexer.l to scannerlexer.l and
2351 cparser.y to scannerparser.y
2353 2007-12-11 Johan Dahlin <johan@gnome.org>
2357 * src/scanner.c: (g_igenerator_new):
2359 Get rid of the global the_generator variable.
2361 2007-12-10 Johan Dahlin <johan@gnome.org>
2363 * src/scanner.c (main): Add an output option,
2364 add checks for required parameters
2367 set BUILD_SOURCES and CLEANFILES properly
2369 * src/gidlwriter.c: (g_writer_write_inline), (g_writer_write),
2370 (g_writer_write_indent), (g_writer_write_unindent),
2371 (field_generate), (value_generate), (constant_generate),
2372 (property_generate), (function_generate), (vfunc_generate),
2373 (signal_generate), (interface_generate), (struct_generate),
2374 (union_generate), (boxed_generate), (enum_generate),
2375 (node_generate), (g_writer_write_module), (g_idl_writer_save_file):
2377 * src/scanner.c: (g_igenerator_generate):
2379 * src/scannerwriter.c:
2381 Refactor scannerwriter to only be tied to a GIdlModule and move
2382 it (again!) to gidlwriter.c. Change the writer function to take
2385 2007-12-10 Johan Dahlin <johan@gnome.org>
2388 * src/scanner.c: (g_igenerator_generate):
2390 * src/scannerwriter.c: (g_igenerator_write_inline),
2391 (g_igenerator_write), (g_igenerator_write_indent),
2392 (g_igenerator_write_unindent), (field_generate), (value_generate),
2393 (constant_generate), (property_generate), (function_generate),
2394 (vfunc_generate), (signal_generate), (interface_generate),
2395 (struct_generate), (union_generate), (boxed_generate),
2396 (enum_generate), (node_generate), (module_generate),
2397 (g_scanner_write_file):
2399 Move the scanner gidl writing to a separate source file.
2401 2007-12-10 Johan Dahlin <johan@gnome.org>
2406 Move over all CType construction functions.
2408 * tests/parser/Makefile.am:
2409 Be verbose when printing parsing tests results.
2411 2007-12-10 Johan Dahlin <johan@gnome.org>
2413 * src/scanner.c (g_igenerator_start_preprocessor): Refactor
2414 preprocessor handling to here. Start cpp insteado of cc -E,
2415 always include -U__GNUC__, since it's specific to the preprocessor
2418 * tests/parser/Makefile.am (check-local): Silent diff and skip
2419 -U__GNUC__ which is always defined now
2421 2007-12-10 Johan Dahlin,,, <jdahlin@plasttroll>
2423 reviewed by: <delete if not using a buddy>
2425 * src/scanner.c: (g_igenerator_start_preprocessor), (main):
2426 * tests/parser/Makefile.am:
2428 2007-12-09 Johan Dahlin <johan@gnome.org>
2431 Use GOption for command line options.
2432 (g_igenerator_new, main): Simplify constructor and they way
2433 parameters are passed into it.
2439 * src/gen-introspect.c:
2440 * src/gen-introspect.h:
2442 Rename gen-introspect.[ch] to scanner.[ch]
2444 2007-12-09 Johan Dahlin <johan@gnome.org>
2448 * src/Makefile.am: Rename gen-introspect to g-idl-scanner,
2449 don't make the repository library and the other utilites link against
2452 * src/gen-introspect.c: (g_igenerator_create_object),
2453 (g_igenerator_create_interface), (g_igenerator_create_boxed),
2454 (g_igenerator_create_enum), (g_igenerator_create_flags),
2455 (g_igenerator_process_module_symbol),
2456 (g_igenerator_process_module), (g_igenerator_generate), (main):
2457 * src/gen-introspect.h:
2458 Refactor g_igenerator_process_types into smaller pieces.
2460 * tests/parser/Makefile.am:
2461 Depend on the gen-introspect binary
2463 2007-12-09 Johan Dahlin <johan@gnome.org>
2465 * src/gen-introspect.c (g_igenerator_process_types):
2466 Break into smaller pieces, one for each generated node type.
2468 2007-12-08 Johan Dahlin <johan@gnome.org>
2470 * src/gen-introspect.c: (g_igenerator_process_types),
2471 (g_igenerator_add_module):
2472 * tests/parser/Foo-expected.gidl:
2473 * tests/parser/foo-object.h:
2474 * tests/parser/foo.c: (foo_subobject_class_init),
2475 (foo_subobject_init):
2477 Add a subobject test and make sure to register defined classes
2478 in the lookup symbol hash table.
2480 2007-12-08 Johan Dahlin <johan@gnome.org>
2484 * src/gen-introspect.c: (g_igenerator_new), (lookup_symbol),
2485 (g_igenerator_process_types), (g_igenerator_add_module),
2486 (g_igenerator_add_include_idl), (main):
2487 * src/gen-introspect.h:
2488 * tests/parser/Makefile.am:
2489 * tests/parser/Foo-expected.gidl:
2491 Change the gen-introspect to generate namespaced module names,
2492 such as GLib.Object instead of GObject.
2493 Add a GLib.gidl which introduces GLib.Object and GLib.InitiallyUnowned,
2494 add a --include-idl parameter to gen-introspect,
2495 and update the parser test.
2497 2007-12-08 Johan Dahlin <johan@gnome.org>
2499 * src/gen-introspect.c:
2500 Move main to the end of the file and attempt to make it valid
2503 * tests/parser/Makefile.am (BUILT_SOURCES): Remove .repo here,
2504 we're not quite ready to generate metadata yet.
2509 Add a simple gen-introspect parser test
2511 2007-12-06 Gustavo J. A. M. Carneiro <gjc@gnome.org>
2513 reviewed by: Johan Dahlin <johan@gnome.org>
2516 * gobject-introspection.pc.in:
2518 * src/compiler.c: (format_output), (write_out_metadata), (main):
2519 * src/gen-introspect.c: (main):
2520 * src/gen-introspect.h:
2521 * src/generate.c: (write_callable_info), (write_repository),
2522 (load_metadata), (main):
2523 * src/gidlmodule.c: (g_idl_module_new),
2524 (g_idl_module_build_metadata):
2526 * src/gidlparser.c: (start_element_handler):
2527 * src/ginfo.c: (g_info_new), (g_info_from_entry),
2528 (g_base_info_get_name), (g_base_info_get_namespace),
2529 (g_base_info_is_deprecated), (g_base_info_get_annotation),
2530 (g_base_info_get_metadata), (g_function_info_get_symbol),
2531 (g_function_info_get_flags), (g_function_info_get_property),
2532 (g_function_info_get_vfunc), (signature_offset), (g_type_info_new),
2533 (g_callable_info_may_return_null),
2534 (g_callable_info_get_caller_owns), (g_callable_info_get_n_args),
2535 (g_callable_info_get_arg), (g_arg_info_get_direction),
2536 (g_arg_info_is_return_value), (g_arg_info_is_dipper),
2537 (g_arg_info_is_optional), (g_arg_info_may_be_null),
2538 (g_arg_info_get_ownership_transfer), (g_type_info_is_pointer),
2539 (g_type_info_get_tag), (g_type_info_get_param_type),
2540 (g_type_info_get_interface), (g_type_info_get_array_length),
2541 (g_type_info_is_zero_terminated),
2542 (g_type_info_get_n_error_domains), (g_type_info_get_error_domain),
2543 (g_error_domain_info_get_quark), (g_error_domain_info_get_codes),
2544 (g_value_info_get_value), (g_field_info_get_flags),
2545 (g_field_info_get_size), (g_field_info_get_offset),
2546 (g_registered_type_info_get_type_name),
2547 (g_registered_type_info_get_type_init),
2548 (g_struct_info_get_n_fields), (g_struct_info_get_field),
2549 (g_struct_info_get_n_methods), (g_struct_info_get_method),
2550 (find_method), (g_struct_info_find_method),
2551 (g_enum_info_get_n_values), (g_enum_info_get_value),
2552 (g_object_info_get_parent), (g_object_info_get_type_name),
2553 (g_object_info_get_type_init), (g_object_info_get_n_interfaces),
2554 (g_object_info_get_interface), (g_object_info_get_n_fields),
2555 (g_object_info_get_field), (g_object_info_get_n_properties),
2556 (g_object_info_get_property), (g_object_info_get_n_methods),
2557 (g_object_info_get_method), (g_object_info_find_method),
2558 (g_object_info_get_n_signals), (g_object_info_get_signal),
2559 (g_object_info_get_n_vfuncs), (g_object_info_get_vfunc),
2560 (g_object_info_get_n_constants), (g_object_info_get_constant),
2561 (g_interface_info_get_n_prerequisites),
2562 (g_interface_info_get_prerequisite),
2563 (g_interface_info_get_n_properties),
2564 (g_interface_info_get_property), (g_interface_info_get_n_methods),
2565 (g_interface_info_get_method), (g_interface_info_find_method),
2566 (g_interface_info_get_n_signals), (g_interface_info_get_signal),
2567 (g_interface_info_get_n_vfuncs), (g_interface_info_get_vfunc),
2568 (g_interface_info_get_n_constants),
2569 (g_interface_info_get_constant), (g_property_info_get_flags),
2570 (g_signal_info_get_flags), (g_signal_info_get_class_closure),
2571 (g_signal_info_true_stops_emit), (g_vfunc_info_get_flags),
2572 (g_vfunc_info_get_offset), (g_vfunc_info_get_signal),
2573 (g_constant_info_get_value), (g_union_info_get_n_fields),
2574 (g_union_info_get_field), (g_union_info_get_n_methods),
2575 (g_union_info_get_method), (g_union_info_is_discriminated),
2576 (g_union_info_get_discriminator_offset),
2577 (g_union_info_get_discriminator):
2578 * src/ginvoke.c: (g_function_info_invoke):
2579 * src/girepository.c: (g_irepository_register),
2580 (g_irepository_unregister), (g_irepository_get_default),
2581 (count_interfaces), (g_irepository_get_n_infos), (find_interface),
2582 (g_irepository_get_info), (g_irepository_find_by_name),
2583 (g_irepository_get_shared_library),
2584 (g_irepository_build_search_path), (g_irepository_register_file),
2585 (g_irepository_error_quark):
2586 * src/girepository.h:
2587 * src/gmetadata.c: (g_metadata_get_dir_entry),
2588 (g_metadata_check_sanity), (validate_header),
2589 (validate_array_type_blob), (validate_iface_type_blob),
2590 (validate_param_type_blob), (validate_error_type_blob),
2591 (validate_type_blob), (validate_arg_blob),
2592 (validate_signature_blob), (validate_function_blob),
2593 (validate_callback_blob), (validate_constant_blob),
2594 (validate_value_blob), (validate_field_blob),
2595 (validate_property_blob), (validate_signal_blob),
2596 (validate_vfunc_blob), (validate_struct_blob),
2597 (validate_enum_blob), (validate_object_blob),
2598 (validate_interface_blob), (validate_errordomain_blob),
2599 (validate_union_blob), (validate_blob), (validate_directory),
2600 (validate_annotations), (g_metadata_validate), (_g_metadata_init),
2601 (g_metadata_new_from_memory), (g_metadata_new_from_const_memory),
2602 (g_metadata_new_from_mapped_file), (g_metadata_free),
2603 (g_metadata_set_module), (g_metadata_get_namespace):
2605 * tests/Makefile.am:
2606 * tests/invoke/Makefile.am:
2607 * tests/invoke/invoke-namespace-find.sh:
2608 * tests/invoke/invoke.c: (main):
2610 Add a namespace/shared library mapping. fixes #313268.
2612 2007-12-03 Johan Dahlin <johan@gnome.org>
2614 * src/gidlparser.c (parse_type_internal): Disable char/gchar and
2617 2007-11-30 Jürg Billeter <j@bitron.ch>
2623 * src/gen-introspect.c: (g_idl_node_cmp), (g_igenerator_new),
2624 (g_igenerator_write_inline), (g_igenerator_write),
2625 (g_igenerator_write_indent), (g_igenerator_write_unindent),
2626 (field_generate), (value_generate), (constant_generate),
2627 (property_generate), (function_generate), (vfunc_generate),
2628 (signal_generate), (interface_generate), (struct_generate),
2629 (union_generate), (boxed_generate), (enum_generate),
2630 (node_generate), (module_generate), (get_type_from_type_id),
2631 (str_replace), (g_igenerator_process_properties),
2632 (g_igenerator_process_signals), (g_igenerator_process_types),
2633 (get_type_from_ctype), (g_igenerator_process_function_symbol),
2634 (g_igenerator_process_unregistered_struct_typedef),
2635 (g_igenerator_process_struct_typedef),
2636 (g_igenerator_process_union_typedef),
2637 (g_igenerator_process_enum_typedef),
2638 (g_igenerator_process_function_typedef),
2639 (g_igenerator_process_constant), (g_igenerator_process_symbols),
2640 (g_igenerator_add_symbol), (g_igenerator_is_typedef),
2641 (g_igenerator_generate), (main), (csymbol_new),
2642 (csymbol_get_const_boolean), (ctype_new), (ctype_copy),
2643 (cbasic_type_new), (ctypedef_new), (cstruct_new), (cunion_new),
2644 (cenum_new), (cpointer_new), (carray_new), (cfunction_new),
2645 (eat_hspace), (eat_line), (read_identifier),
2646 (g_igenerator_parse_macros):
2647 * src/gen-introspect.h:
2649 Import gen-introspect to generate introspection information by
2652 2007-11-30 Jürg Billeter <j@bitron.ch>
2654 * src/gidlnode.c: (g_idl_node_new): support creating callback nodes
2656 2007-11-30 Jürg Billeter <j@bitron.ch>
2658 * src/gidlparser.c: (end_element_handler): Don't leave requires
2661 2007-11-29 Johan Dahlin <johan@gnome.org>
2663 * src/gidlparser.c (parse_type_internal): Add char,
2664 gchar and guchar to the builtin types.
2666 2007-11-26 Johan Dahlin <johan@gnome.org>
2668 * src/ginfo.c: (g_object_info_get_type_name),
2669 (g_object_info_get_type_init):
2670 * src/girepository.c: (g_irepository_is_registered):
2671 * src/girepository.h:
2673 Add g_object_info_get_type_name, g_object_info_get_type_init and
2674 g_irepository_is_registered.
2676 2006-08-14 Jürg Billeter <j@bitron.ch>
2678 * src/gidlparser.c: (end_element_handler): Don't leave
2679 namespace and implements states too early.
2682 2007-11-26 Johan Dahlin <johan@gnome.org>
2684 * src/gmetadata.c (validate_struct_blob):
2685 pass blob_type to validate_function_blob instead of
2686 hard-coding BLOB_TYPE_STRUCT.
2688 Patch by Torsten Schoenfeld, fixes #314190
2690 2006-10-03 Torsten Schoenfeld <tsch@cvs.gnome.org>
2692 * src/compiler.c, src/generate.c, src/gidlnode.c,
2693 src/gidlparser.c, src/ginfo.c, src/girepository.c,
2694 tests/invoke/invoke.c, test/invoke/testfns.c: Hush compiler
2695 warnings about return values, signedness mismatches, unused
2696 variables, and unhandles enum values in switch statements.
2698 * tests/invoke/Makefile.am: Don't install the invoke test program.
2699 Add -I ../../src to the cflags used for the test functions files.
2701 2005-08-31 Torsten Schoenfeld <tsch@cvs.gnome.org>
2703 * src/girepository.h: Export g_invoke_error_quark.
2705 2005-08-31 Torsten Schoenfeld <tsch@cvs.gnome.org>
2707 * src/ginvoke.c: Remove the fallback implementation of
2708 g_function_info_invoke since we now formally depend on libffi.
2710 2005-07-25 Matthias Clasen <mclasen@redhat.com>
2712 * src/Makefile, tests/Makefile, tests/invoke/Makefile:
2713 Remove these files from cvs, as they are now generated.
2715 * src/gmetadata.c (validate_iface_type_blob): Don't
2716 complain if blob->pointer is not set, since that
2717 happens for enum and flag types. (#308935, Gustavo
2720 * Commit an autoconf-conversion patch by
2721 Gustavo Carneiro (#308708)
2723 2005-05-24 Matthias Clasen <mclasen@redhat.com>
2725 * src/compiler.c (main): Use it here to validate
2726 the generated metadata.
2728 * src/gmetadata.[hc]: Add code to validate a
2731 * metadata-format.txt: Updates
2733 2005-05-22 Matthias Clasen <mclasen@redhat.com>
2735 * tests/*: Add struct offsets to field and vfunc
2738 * src/generate.c (write_vfunc_info): Write offset
2739 information for vfuncs.
2741 * src/gidlnode.c (g_idl_node_build_metadata): Write
2742 the struct offsets into the metadata.
2744 * src/gidlparser.c: Parse the offset attributes of
2745 field and vfunc elements.
2747 * src/gidlnode.h: Add offset members to field and
2750 2005-05-21 Matthias Clasen <mclasen@redhat.com>
2754 * gidl.dtd: Updates.
2756 * src/g-idl-offsets.pl: A perl script which reads a .gidl
2757 file, creates, compiles and runs a C file, and folds the
2758 resulting struct offsets back into the .gidl file.
2760 2005-05-20 Matthias Clasen <mclasen@redhat.com>
2762 * src/gidlparser.c (start_field): Make fields in objects
2765 * src/gidlmodule.c: Include string.h
2770 * metadata-format.txt: Cleanup basic types.
2771 * src/*: Adapt to the changes.
2772 * tests/*: Adapt to the changes.
2773 * examples/gdk-pixbuf.gidl: Adapt to the changes.
2775 * src/gidlnode.c (g_idl_node_get_size): Report the correct
2776 size for enum blobs.
2777 (g_idl_node_get_full_size): Report the correct size for
2780 * src/gidlmodule.c (g_idl_module_build_metadata): Add some
2781 error checking for blob sizes.
2783 2005-05-19 Matthias Clasen <mclasen@redhat.com>
2785 * src/gidlnode.c (g_idl_node_build_metadata): Correctly handle
2786 interface types for which is_pointer is FALSE, e.g. enums.
2788 * src/gidlnode.c (g_idl_node_get_full_size)
2789 * src/gidlparser.c (parse_type_internal):
2790 * src/generate.c (write_type_info): Support unspecialized
2791 lists, hashtables and errors. Also emit a '*' after these.
2795 2005-05-17 Matthias Clasen <mclasen@redhat.com>
2799 * metadata-format.txt: Cleanups by Maciej Katafiasz.
2801 2005-05-15 Matthias Clasen <mclasen@redhat.com>
2803 * src/*.c: Change the directory to be addressed by
2804 1-based indexes, and use an index of zero to mean
2807 2005-05-15 Matthias Clasen <mclasen@redhat.com>
2809 * tests/roundtrips.sh (SIMPLE_TESTS): Add union.test.
2811 * tests/union.test: Add a union test.
2813 * src/generate.c: Handle unions.
2815 * src/girepository.h:
2816 * src/ginfo.c: Add GIUnionInfo and functions to access it.
2818 * src/gidlnode.c: Handle GIdlNodeUnion nodes.
2820 * src/gidlparser.c (start_union): Parse <union> elements.
2822 * src/gidlnode.h: Add a GIdlNodeUnion.
2824 * gidl.dtd: Add a <union> element.
2826 * src/gmetadata.c (g_metadata_check_sanity): Check
2829 * src/gmetadata.h: Add union_blob_size to Header,
2832 * metadata-format.txt: Add a UnionBlob.
2834 2005-05-13 Matthias Clasen <mclasen@redhat.com>
2836 * tests/*: Update testcases.
2838 * src/generate.c (write_callable_info): Don't forget to
2839 write transfer and null-ok attributes for return types
2842 * src/girepository.h:
2843 * src/ginfo.c (g_callable_info_may_return_null):
2844 New function to find out if a function may return NULL.
2846 * src/compiler.c (format_output): Make the generated
2849 * README: Point to a recent libffi snapshot.
2851 * tests/invoke/*: Some invoke tests.
2853 * src/Makefile: Add ginvoke.c and the necessary
2856 * src/girepository.h (g_function_info_invoke): Add
2859 * src/ginvoke.c (g_function_info_invoke): Initial
2860 implementation of invoke functionality based on libffi.
2862 * src/gidlnode.c (g_idl_node_build_metadata): Pass the
2863 strings and types hash tables in the right order when
2865 (find_entry_node): Free the name parts.
2867 2005-05-12 Johan Dahlin <johan@gnome.org>
2869 * src/generate.c: Generate consistent end tags.
2873 2005-05-12 Matthias Clasen <mclasen@redhat.com>
2877 * src/gidlparser.c (start_function): Actually add
2878 methods to objects. (Steven Walter)
2880 * src/girepository.h:
2881 * src/ginfo.c: Rename Transfer and Direction to
2882 GITransfer and GIDirection. (Torsten Schoenfeld)
2884 * tests/*: Make tests work with the changes in name
2887 * src/gidlnode.c (find_entry_node): Parse qualified
2888 names and generate xref nodes for them if needed. Don't
2889 require all modules to be loaded any more.
2891 * src/gidlmodule.c (g_idl_module_build_metadata): Choke
2894 * src/ginfo.c (g_object_info_get_parent): Return NULL
2895 if blob->parent is 0. Still need to make sure index
2898 * src/generate.c: Generate qualified names when
2899 referring to non-local types. Emit transfer attribute
2902 * src/compiler.c (format_output): Put the function
2903 attributes where gcc accepts them.
2905 2005-05-11 Matthias Clasen <mclasen@redhat.com>
2907 * src/compiler.c (main): Add a --verbose cmdline option
2908 and only log messages if it is specified.
2911 * src/gidlnode.c (init_stats, dump_stats): Collect some
2912 statistics on string and type sharing.
2914 * src/gidlmodule.c (g_idl_module_build_metadata): Use
2915 g_message() instead of fprintf().
2917 * src/gidlnode.c (g_idl_node_free): Make this more robust.
2918 (g_idl_node_get_size): Implement for structs.
2919 (g_idl_node_get_full_size): Handle parent being NULL.
2920 (serialize_type): Handle lookup failures more gracefully.
2922 2005-05-10 Matthias Clasen <mclasen@redhat.com>
2924 * src/gidlnode.c (g_idl_node_get_full_size): Correct the
2925 size calculation for 2-parameter types and for objects.
2927 * src/compiler.c: Add a cmdline option for debug output
2928 and install a log handler to implement it.
2929 * src/gidlnode.c: Add some debug spew.
2933 * src/gidlmodule.c (g_idl_module_build_metadata): Don't
2934 forget to count the module name when calculating the
2935 required size for the metadata.
2938 * src/gidlparser.c: Fix compiler warnings.
2940 2005-05-09 Matthias Clasen <mclasen@redhat.com>
2942 * src/compiler.c (main): Free the option context.
2944 * gidl.dtd: Clean up handling of names. All elements
2945 have a "name", only the elements corresponding to
2946 actual callable functions (function, method, constructor),
2947 have an additional "symbol" attribute holding the
2948 dlsym()-able function name.
2950 * src/generate.c: Adapt to generate xml matching the
2954 * src/gidlnode.c: Adapt to parse the new dtd.
2956 * tests/*.test: Adjust to the new dtd.
2958 * metadata-format.txt:
2959 * src/gmetadata.h: Remove the short_name field
2961 * src/gmetadata.c: Shrink size of ValueBlob to 12.
2962 * src/girepository.h:
2963 * src/ginfo.c (g_value_info_get_short_name): Removed
2965 2005-05-09 Matthias Clasen <mclasen@redhat.com>
2967 * gidl.dtd: Allow constructors for boxed types,
2968 patch by Jonathan Blandford.
2971 2005-05-09 Matthias Clasen <mclasen@redhat.com>
2973 * --- Initial import ---