1 2008-08-22 Colin Walters <walters@verbum.org>
3 * girepository/girnode.c: Don't hardcode integers,
6 2008-08-22 Johan Dahlin <johan@gnome.org>
8 * giscanner/sourcescanner.py:
9 Check for ../gobject-introspection-1.0.pc.in to determine
10 if we run installed or uninstalled.
12 2008-08-22 Johan Dahlin <johan@gnome.org>
15 * giscanner/sourcescanner.py:
16 Send in undefs/defines via writing it directly to stdin
17 of cpp instead of via arguments.
19 2008-08-22 Colin Walters <walters@verbum.org>
21 * tools/generate.c, tools/compiler.c: Default
23 * all Makefile.am: Update.
25 2008-08-22 Colin Walters <walters@verbum.org>
27 * girepository/girparser.c: Pass through
28 recursive types. Avoid overwriting errors.
29 * giscanner/xmlwriter.py: Always write the
31 * tests/*.gir: Adjust.
32 * tests/scanner/Makefile.am: Build typelibs,
33 and generate XML from those. Once we
34 have a good diff mechanism...
35 * tests/scanner/*-expected.gir: Add XML
37 * tools/g-ir-scanner: Accept --typelib-xml
39 * tools/generate.c: Better defaults for transfer.
41 2008-08-22 Johan Dahlin <johan@gnome.org>
45 * giscanner/Makefile.am:
46 * giscanner/config.py.in:
47 * giscanner/sourcescanner.py:
48 Use the generated glibconfig.h for all scanner invokations.
49 Rename it to glibconfig-scanner.h and install it.
50 Add a config.py which so far contains the include dir.
52 2008-08-22 Johan Dahlin <johan@gnome.org>
55 Replace glibconfig.h with our own, do some replacement
56 for CPP/C features we do not support
58 2008-08-22 Colin Walters <walters@verbum.org>
60 * tools/generate.c (write_callable_info): Fix unref
63 2008-08-22 Colin Walters <walters@verbum.org>
65 * gobject-introspection-1.0.pc.in: Add g-ir-generate.
66 * tests/Makefile.am: Support $(DEBUG)
67 * tools/generate.c: Do immediate close tags if no
70 2008-08-21 Colin Walters <walters@verbum.org>
72 * tests/scanner/drawable-expected.gir,
73 * tests/scanner/drawable.c,
74 * tests/scanner/drawable.h:
77 2008-08-21 Colin Walters <walters@verbum.org>
79 * giscanner/glibtransformer.py: Compute prefix
80 by searching through the symbol for bits
81 rather than going directly from ctype; this fixes
84 2008-08-21 Colin Walters <walters@verbum.org>
86 * giscanner/glibtransformer.py: Also try squashing
87 underscores from namespace, fixes webkit_web_view_new.
89 2008-08-21 Colin Walters <walters@verbum.org>
91 * giscanner/glibtransformer.py: More ctor work,
92 avoid having gtk_window_group_new end up under
95 2008-08-21 Colin Walters <walters@verbum.org>
97 * giscanner/glibtransformer.py: Much simpler approach
98 of mapping uscored names to classes.
99 * giscanner/utils.py: Remove unnecessary function.
101 2008-08-21 Johan Dahlin <johan@gnome.org>
103 * girepository/girepository.c (g_irepository_require):
104 Plug memory leak and avoid using freed memory.
105 Resolve the whole module path, here as well.
107 2008-08-21 Colin Walters <walters@verbum.org>
109 * giscanner/glibtransformer.py: Look up all permutations
110 of class names when scanning methods/ctors based on
111 the prefix instead of using the return value. This
112 associates gtk_window_new with the right class.
114 2008-08-21 Colin Walters <walters@verbum.org>
116 * girepository/girmodule.c (g_ir_module_build_typelib):
117 Revert change to increment header_size; we do that in
120 2008-08-21 Colin Walters <walters@verbum.org>
122 * girepository/girnode.c (write_string): Tweak to
123 use UINT instead of INT. Not likely to matter.
124 * girepository/girmodule.c (g_ir_module_build_typelib):
125 Add to header_offset as well for header strings
126 to match what write_string does.
127 * girepository/gtypelib.c: Replace is_name with
128 validate_name, which more strongly validates and
129 handles errors in a better way. Update all callers.
130 * giscanner/glibtransformer.py: Handle constructors
133 2008-08-21 Johan Dahlin <johan@gnome.org>
135 * gir/Makefile.am (typelibs_DATA): Build and
136 install the Gio.typelib too
138 * girepository/gtypelib.c (_g_typelib_init):
139 Use g_module_build_path to resolve the shlib name
141 2008-08-21 Colin Walters <walters@verbum.org>
143 * gir/Makefile.am: CLEANFILES typelibs too.
145 2008-08-21 Johan Dahlin <johan@gnome.org>
147 * giscanner/glibtransformer.py:
148 Do not send .la files through find_library.
150 2008-08-21 Colin Walters <walters@verbum.org>
152 * girepository/girparser.c (g_irepository_require):
153 Fix one small leak in error case.
155 2008-08-21 Johan Dahlin <johan@gnome.org>
158 Parse glibconfig.h as well and install the compiled
161 2008-08-21 Johan Dahlin <johan@gnome.org>
164 * giscanner/glibtransformer.py:
165 * tools/g-ir-scanner:
166 Do not hard-core library names in the Makefile, reuse
167 ctypes find_library instead.
169 2008-08-21 Johan Dahlin <johan@gnome.org>
171 * girepository/girparser.c (resolve_aliases):
172 Remove compilation warnings
174 2008-08-21 Johan Dahlin <johan@gnome.org>
176 * girepository/girepository.c (g_irepository_require):
177 Rewrap and fix double free bug by leaking a bit.
179 2008-08-20 Colin Walters <walters@verbum.org>
181 * girepository/girepository.c: Add new function
182 g_irepository_get_typelib_path which tells
183 us from where we loaded a namespace.
185 2008-08-20 Colin Walters <walters@verbum.org>
187 * tests/scanner/*-expected.gir: Adjust for
188 added shared-library.
189 * giscanner/giwriter.py: Make pylint happy.
191 2008-08-20 Colin Walters <walters@verbum.org>
193 * girepository/girmodule.c (g_ir_module_build_typelib):
194 Calculate size correctly, avoid use-after-free.
196 2008-08-20 Colin Walters <walters@verbum.org>
198 * girepository/girepository.c: Remove
199 g_irepository_register_file in favor of
200 g_irepository_require. There are two
201 possible deployment scenarios for typelibs:
202 First, separate in $DATADIR/gitypelibs/. Second,
203 they may be embedded in shlibs. However since
204 the first is now the normal case, the API is
207 Refactor internals to look up typelibs for
208 namespaces just-in-time, but we expect
209 consumers to call g_irepository_require.
211 Also, add some docs. No one has died from that
213 * gir/Makefile.am: Need --library for glib.
214 * giscanner/girwriter.py: Write out shared-library.
215 * tools/g-ir-writer: Take the first --library
216 argument as the target of shared-library. In
217 the future we should make this nicer with pkg-config
220 2008-08-20 Colin Walters <walters@verbum.org>
222 * girepository/girparser.py: And parse them.
224 2008-08-20 Johan Dahlin <johan@gnome.org>
226 * giscanner/glibast.py: Add gshort/gushort types
228 2008-08-20 Colin Walters <walters@verbum.org>
230 * gir/Makefile.am: Rename .gir files using GI namespace.
231 * girepository/girepository.c: Use XDG_DATA_DIRS for
232 looking up typelibs. Also typelibs are now suffixed
234 * tests/invoke/Makefile.am: Only use metadata.
235 * girepository/Makefile.am: Remove unnecessary include.
236 * tests/scanner/Makefile.am: Update using GI namespaces
237 for scanner includes.
239 2008-08-20 Colin Walters <walters@verbum.org>
241 * girepository/transformer.py: Suppress aliases whose
243 * girepository/ast.py: Define some more aliases.
245 2008-08-20 Colin Walters <walters@verbum.org>
247 * girepository/girparser.c: Avoid alias infloops.
249 2008-08-20 Colin Walters <walters@verbum.org>
251 * tests/scanner/foo-expected.gir: Fix expected list type.
253 2008-08-20 Johan Dahlin <johan@gnome.org>
255 * giscanner/glibtransformer.py (GLibTransformer._resolve_type_name):
256 Add a workaround for #548689.
257 We can now compile gtk!
259 2008-08-20 Colin Walters <walters@verbum.org>
261 * giscanner/glibtransformer.py: Try to look up
262 aliases using the c:type too.
264 2008-08-20 Colin Walters <walters@verbum.org>
266 * girepository/girparser.c: Parse union fields.
268 2008-08-20 Johan Dahlin <johan@gnome.org>
270 * giscanner/ast.py: Make time_t an alias for long
272 * gir/gio-2.0-good.gir:
273 * gir/glib-2.0-good.gir:
274 * gir/gobject-2.0-good.gir:
276 * giscanner/glibtransformer.py:
277 Do not delete Class structures, we need them in gdk/gtk.
278 * tests/scanner/drawable-expected.gir:
279 * tests/scanner/foo-expected.gir:
280 * tests/scanner/utility-expected.gir:
283 2008-08-20 Johan Dahlin <johan@gnome.org>
285 * tests/scanner/Makefile.am:
286 * tests/scanner/annotation-expected.gir:
287 * tests/scanner/annotation.c (annotation_object_class_init),
288 (annotation_object_init), (annotation_object_method),
289 (annotation_object_in), (annotation_object_out),
290 (annotation_object_inout), (annotation_object_inout2),
291 (annotation_object_inout3), (annotation_object_calleeowns),
292 (annotation_object_calleesowns), (annotation_object_get_strings),
293 (annotation_object_with_voidp), (annotation_object_get_objects),
294 (annotation_object_create_object), (annotation_object_allow_none):
295 * tests/scanner/annotation.h:
296 * tests/scanner/foo-expected.gir:
297 * tests/scanner/foo.c:
298 * tests/scanner/foo.h:
299 Split out annotation tests out of foo
301 2008-08-20 Johan Dahlin <johan@gnome.org>
303 * tests/scanner/Foo-expected.gir:
304 * tests/scanner/Makefile.am:
305 * tests/scanner/foo-expected.gir:
306 * tests/scanner/foo-object.h:
307 * tests/scanner/foo.c:
308 Foo->foo, foo-object.h -> foo.h
310 2008-08-20 Johan Dahlin <johan@gnome.org>
312 * tests/scanner/Foo-expected.gir:
313 * tests/scanner/Makefile.am:
314 * tests/scanner/drawable-expected.gir:
315 * tests/scanner/drawable.c (test_drawable_class_init),
316 (test_drawable_init):
317 * tests/scanner/drawable.h:
318 * tests/scanner/foo-object.h:
319 * tests/scanner/foo.c (foo_boxed_method):
320 Move the drawable parts out of Foo to its own test.
322 2008-08-20 Johan Dahlin <johan@gnome.org>
324 * tests/scanner/Foo-expected.gir:
325 * tests/scanner/foo-object.h:
326 * tests/scanner/foo.c (foo_drawable_class_init),
328 Add a based on GdkDrawable which generates
331 2008-08-19 Colin Walters <walters@verbum.org>
333 * giscanner/transformer.py: Don't try
334 to strip prefix before namespace.
336 2008-08-19 Johan Dahlin <johan@gnome.org>
338 * giscanner/transformer.py:
339 * tests/scanner/Foo-expected.gir:
340 * tests/scanner/foo-object.h:
341 Add support for typedef void foo type of
344 2008-08-19 Johan Dahlin <johan@gnome.org>
347 * giscanner/girwriter.py:
348 * giscanner/glibtransformer.py:
349 * giscanner/transformer.py:
350 * tests/scanner/Foo-expected.gir:
351 Add basic support for union, base the code much
352 on Struct. Add a testcase.
354 2008-08-19 Johan Dahlin <johan@gnome.org>
356 * tests/scanner/Foo-expected.gir:
357 * tests/scanner/foo-object.h:
358 Add a union testcase which the compiler currently
361 2008-08-19 Johan Dahlin <johan@gnome.org>
363 * gobject-introspection-1.0.pc.in:
364 Add a g_ir_compiler variable
366 2008-08-19 Colin Walters <walters@verbum.org>
368 * giscanner/ast.py: Rework types to be more closely
370 * giscanner/girparser.py: Parse more bits.
371 * giscanner/girwriter.py: Write sequences in a new
372 way that specifies container type.
373 * giscanner/glibast.py: Adjust for ast.py changes,
374 add 'ctype' property to GLibObject and GLibInterface
375 so we can look things up by it later.
376 * gicanner/transformer.py: Names is new class holding
377 the various namespaces we manage. Do not confuse
378 with Namespace which is toplevel XML node effectively.
379 Rework all type resolution to go through
380 _resolve_type_name_1.
381 * giscanner/glibtransformer.py: Raise UnknownTypeError
382 instead of ValueError for cleanliness. Add Unresolved
383 class to mark types whose parent we haven't seen yet.
384 Use new Names object from transformer.py.
385 Correctly look up parent=.
386 Fix type validation to handle sequences.
387 * tests/scanner/Foo-expected.gir: Update for sequence
388 work, int instead of int32.
389 * tools/g-ir-scanner: Add --noclosure option
390 * gir/Makefile.am: Use --noclosure by default for
393 2008-08-18 Johan Dahlin <johan@gnome.org>
395 * gir/gio-2.0-good.gir:
396 * gir/glib-2.0-good.gir:
397 * gir/gobject-2.0-good.gir:
400 2008-08-18 Johan Dahlin <johan@gnome.org>
403 * giscanner/girparser.py:
404 * giscanner/girwriter.py:
405 * giscanner/glibast.py:
406 * giscanner/glibtransformer.py:
407 * giscanner/transformer.py:
408 * tests/scanner/Foo-expected.gir:
409 * tests/scanner/foo-object.h:
410 * tests/scanner/utility-expected.gir:
411 * tests/scanner/utility.h:
412 Redo type resolving and validation.
413 Add a couple of new tests.
414 Patch mostly written by Colin.
416 2008-08-18 Johan Dahlin <johan@gnome.org>
419 * giscanner/girparser.py:
421 * giscanner/transformer.py:
422 Improve enum parsing for enums without a GType.
423 Make flags/enum references to other girs work
424 * giscanner/utils.py:
426 * tests/scanner/Makefile.am:
427 * tests/scanner/foo-object.h:
428 * tests/scanner/utility-expected.gir:
429 * tests/scanner/utility.h:
430 Add a new test for external enum references
432 2008-08-18 Johan Dahlin <johan@gnome.org>
434 * docs/global-module-registry.txt: Update
436 * tests/array.gir: Update with new type proposal
438 * girepository/girepository.c (g_type_tag_to_string):
439 * girepository/girepository.h:
440 * girepository/girnode.c (g_ir_node_get_full_size_internal),
442 * girepository/girnode.h:
443 Make enum serializing functions public. Clean up some whitespace.
445 2008-08-17 Johan Dahlin <johan@gnome.org>
447 * docs/global-module-registry.txt:
448 Add a document for an on disk module registry format
450 2008-08-17 Johan Dahlin <johan@gnome.org>
453 * gir/gio-2.0-good.gir:
456 2008-08-17 Johan Dahlin <johan@gnome.org>
459 * gir/glib-2.0-good.gir:
460 * gir/gobject-2.0-good.gir:
461 * giscanner/cgobject.py:
462 * giscanner/glibtransformer.py:
463 Regenerate GObject & GType.
464 Avoid warnings when generating gobject-2.0.gir.
465 Introspect a little more, and skip *_get_type functions.
467 2008-08-17 Colin Walters <walters@verbum.org>
469 * gir/glib-2.0.gir, gir/gobject-2.0.gir:
470 Rename to -good, always generate during build.
471 * gir/Makefile.am: Ensure .gir files dep on
473 * Makefile.am: Switch build order to ensure
474 the scanner is ready before we do gir/.
475 * tools/g-ir-scanner: Look for .git too.
477 2008-08-17 Johan Dahlin <johan@gnome.org>
479 * girepository/gtypelib.c (validate_enum_blob):
480 * giscanner/glibtransformer.py:
481 * giscanner/transformer.py:
482 Remove resolve_possible_typedefs, it was unused.
483 Allow multiple enum values of the sample value in an enum,
484 since it's actually pretty common.
485 Register enums so they can be resolved too.
487 2008-08-16 Johan Dahlin <johan@gnome.org>
489 * giscanner/girparser.py:
490 Parse enumeration/bitfield.
492 2008-08-16 Johan Dahlin <johan@gnome.org>
494 * giscanner/girparser.py:
497 2008-08-16 Johan Dahlin <johan@gnome.org>
499 * giscanner/glibtransformer.py:
500 Resolve type names for alias targets
501 * giscanner/transformer.py:
502 Skip FILE* parameters fow now
504 2008-08-16 Johan Dahlin <johan@gnome.org>
507 * gir/gobject-2.0.gir:
510 * tests/scanner/Makefile.am:
513 2008-08-15 Colin Walters <walters@verbum.org>
515 * giscanner/glibtransformer.py: Explicitly construct
516 new list, since we're deleting as we iterate.
517 Don't delete all structures which end in Class; just
518 ones which have a paired GObject.
519 Fix printing of type warning.
520 * giscanner/transformer.py: Make strip_namespace_object
521 be the identity function if it doesn't match the
524 2008-08-15 Colin Walters <walters@verbum.org>
526 * giscanner/cgobject.py: Define yet more argument
527 prototypes; fix prototype for g_type_fundamental.
529 2008-08-14 Johan Dahlin <johan@gnome.org>
532 * tests/constant.gir:
535 * tools/generate.c (write_struct_info):
536 Fix generator for constant/gobject/struct
538 2008-08-14 Johan Dahlin <johan@gnome.org>
542 * tools/generate.c (write_enum_info):
543 Fix generation of enum/bitfields
545 2008-08-14 Johan Dahlin <johan@gnome.org>
547 * girepository/girparser.c (start_field), (start_constant),
548 (start_type), (end_element_handler):
549 Clear up constant parsing
554 * tools/generate.c (write_callable_info), (write_function_info),
555 (write_callback_info), (write_constant_info), (write_signal_info),
556 (write_vfunc_info), (write_property_info), (write_object_info),
557 (write_interface_info):
558 Constants/Signals are handled now.
560 2008-08-14 Johan Dahlin <johan@gnome.org>
562 * girepository/girparser.c (start_type):
563 Don't require c:type.
567 Update, remove parts we don't support yet
568 * tests/roundtrips.sh:
570 * tools/generate.c (write_type_info), (write_field_info),
571 (write_callable_info), (write_struct_info):
572 Make it emit proper gir.
574 2008-08-14 Johan Dahlin <johan@gnome.org>
576 * giscanner/transformer.py:
577 New internal function for adding a new node.
579 2008-08-14 Johan Dahlin <johan@gnome.org>
582 Define an internal _H_ variable so we skip parsing both
583 i18n headers, only one is needed.
585 Add the glib-2.0.gir too.
586 * giscanner/glibast.py:
587 Add gconstpointer as an alias for ANY
588 * giscanner/transformer.py:
589 Do not lower case enumeration names per se.
590 Skip functions which has parameters called 'va_list'
592 2008-08-14 Colin Walters <walters@verbum.org>
594 * giscanner/transformer.py: Comment data structures.
595 Also squash pointers in resolve_type_name to correspond
596 with what we do for params.
597 * giscanner/glibtransformer.py: Print warnings in more
598 situations. Rework checks for method/constructor to
599 look up in our GType database instead of just checking
600 for *. Avoid generating <record> for GObject which
601 duplicate the <class>.
602 * gir/Makefile.am: Generate glib-2.0.gir and gobject-2.0.gir
605 2008-08-14 Johan Dahlin <johan@gnome.org>
607 * giscanner/girwriter.py:
608 * giscanner/glibast.py:
609 * giscanner/glibtransformer.py:
610 * giscanner/transformer.py:
613 Add pyflakes.py and run it in make check.
614 Update the source code to fix the errors reported by
617 2008-08-14 Johan Dahlin <johan@gnome.org>
620 * giscanner/girparser.py:
621 * giscanner/glibast.py:
622 * giscanner/glibtransformer.py:
623 Refactor the parser a bit.
624 Add parent type to interfaces and update callsites.
626 2008-08-14 Johan Dahlin <johan@gnome.org>
628 * giscanner/glibtransformer.py:
629 * giscanner/utils.py:
630 Refactor a bit, avoid isinstance and add a method
631 for each type we parse.
633 2008-08-14 Johan Dahlin <johan@gnome.org>
636 * giscanner/girparser.py:
637 * giscanner/glibtransformer.py:
639 Run pep8.py in make check, fix old errors.
641 2008-08-13 Colin Walters <walters@verbum.org>
643 * giscanner/girparser.py: Parse records.
645 2008-08-13 Colin Walters <walters@verbum.org>
647 * gir/Makefile.am: Install again.
648 * gir/gobject-2.0.gir: Add some more bits.
650 2008-08-13 Colin Walters <walters@verbum.org>
652 * gir/gobject-2.0.gir: Use correct namespace, add GType.
653 * giscanner/girparser.py: Handle aliases.
654 * giscanner/transformer.py: Record aliases. Make resolver
655 functions public; we now call into these explicitly from
656 glibtransformer. Handle resolving aliases.
657 * giscanner/glibtransformer.py: Separate our internal namespace
658 from included ones. Call up into transformer's resolver functions.
660 2008-08-13 Johan Dahlin <johan@gnome.org>
662 * girepository/girnode.c (g_ir_node_get_full_size_internal):
663 * girepository/girparser.c (start_class):
664 * giscanner/glibtransformer.py:
665 Allow get_type to be None, set a get_type for GInitiallyUnowned too.
667 2008-08-13 Johan Dahlin <johan@gnome.org>
669 * giscanner/cgobject.py:
670 Register GInitiallyUnowned
671 * giscanner/girwriter.py:
672 * giscanner/glibtransformer.py:
673 Special case GObject/GInitially owned as they are a bit special to use.
675 2008-08-13 Colin Walters <walters@verbum.org>
677 * tests/scanner/Foo-expected.gir, tests/scanner/utility-expected.gir:
678 Object is in GObject namespace.
680 2008-08-13 Colin Walters <walters@verbum.org>
682 * giscanner/girparser.py: Fix processing of functions
685 2008-08-13 Colin Walters <walters@verbum.org>
687 * giscanner/girparser.py: Parse more than just <class.
688 * giscanner/glibtransformer.py: Put aliases in a separate
689 data structure since their name is not canonicall.
690 * giscanner/transformer.py: Handle resolving type names
693 2008-08-13 Johan Dahlin <johan@gnome.org>
695 * tools/g-ir-scanner:
696 Allow multiple libraries
697 * giscanner/glibtransformer.py:
698 Rename load_library to add_library, traverse over all libraries
699 when trying to resolve a function
701 2008-08-12 Colin Walters <walters@verbum.org>
703 * giscanner/transformer.py: Record typedefs as <alias> elements.
704 Also attempt to look up types in external namespaces.
705 * giscanner/girwriter.py: Write them.
706 * giscanner/glibtransformer.py: Rework resolver using real instanceof
707 checks. Resolve interface methods and properties.
708 * tests/scanner/foo-object.h: Add a method with typedef.
709 * tests/scanner/Foo-expected.gir: Update.
710 * girepository/girnode.c: Debug tweaks.
711 * girepository/girparser.c: Make a first pass through the XML where we
712 record all the aliases. This lets us resolve them as we go through the
714 * gir/Makefile.am: Don't install gobject-2.0.gir; we want that to come
717 2008-08-12 Colin Walters <walters@verbum.org>
719 * giscanner/glibtransformer.py: Resolve typedefs (e.g. AtkAttributeSet -> GSList).
720 Correctly do subclasseing in 2nd pass resolution. Handle callbacks in structure
722 * giscanner/transformer.py: Record typedefs and expose public API for resolving
724 * tests/scanner/Foo-expected.gir: Fix expected callback types.
726 2008-08-12 Colin Walters <walters@verbum.org>
728 * giscanner/glibtransformer.py: Also transform object properties.
730 2008-08-12 Colin Walters <walters@verbum.org>
732 * giscanner/glibtransformer.py: Also transform callbacks
733 and structure field types.
734 * tests/scanner/Fooe-expected.gir: Update to expect correct
735 names for callbacks and structs.
737 2008-08-12 Colin Walters <walters@verbum.org>
739 * girepository/girparser.c: Handle 'any'.
740 * tests/scanner/Foo-expected.gir, tests/scanner/foo-object.h:
743 2008-08-12 Colin Walters <walters@verbum.org>
745 * giscanner/glibtransformer.py: We need to do type
746 resolution in a second pass after we've seen all the
749 2008-08-12 Colin Walters <walters@verbum.org>
751 * tests/scanner/Foo-expected.gir, tests/scanner/foo-object.h:
752 Add enum return value.
753 * giscanner/glibtransformer.py: Transform function return types
756 2008-08-12 Colin Walters <walters@verbum.org>
758 * tests/scanner/Makefile.am: Dep .gir files on scanner
759 sources too. Also remove @ so we see scanner invocations.
761 2008-08-12 Colin Walters <walters@verbum.org>
763 * girepository/girparser.c, girepository/gtypelib.c,
764 girepository/gtypelib.h, girepository/girnode.c:
765 Remove usage of (GAPI-oriented) TypeTag in favor of
766 GITypeTag from girepository.h.
768 2008-08-10 Colin Walters <walters@verbum.org>
770 * tests/roundtrips.sh: Use the correct tests.
772 2008-08-10 Colin Walters <walters@verbum.org>
774 * giscanner/cgobject.py: Declare/wrap a few more functions.
775 Fix parameter types for g_object_new and g_type_fundamental.
777 2008-08-10 Colin Walters <walters@verbum.org>
779 * giscanner/cgobject.py: Add new decorator @gwrap which forces
780 us to declare types for both return value and parameters. The
781 ctypes default of 'int' is bad because it hides 32/64 bit
782 problems. Convert all existing functions to use it.
784 2008-08-09 Johan Dahlin <johan@gnome.org>
786 * giscanner/__init__.py:
788 * giscanner/cgobject.py:
789 * giscanner/gidlparser.py:
790 * giscanner/gidlwriter.py:
791 * giscanner/girparser.py:
792 * giscanner/girwriter.py:
793 * giscanner/glibast.py:
794 * giscanner/glibtransformer.py:
795 * giscanner/odict.py:
796 * giscanner/sourcescanner.py:
797 * giscanner/transformer.py:
798 * giscanner/utils.py:
799 * giscanner/xmlwriter.py:
800 * tools/g-ir-scanner:
804 2008-08-09 Johan Dahlin <johan@gnome.org>
807 * relaxng/c-types.xml:
808 * relaxng/g-types.xml:
809 * relaxng/relaxng.rng:
811 Remove outdated relaxng schemas.
813 2008-08-09 Johan Dahlin <johan@gnome.org>
816 Rename metadata to typelib in variable names,
819 2008-08-09 Johan Dahlin <johan@gnome.org>
823 Remove old C scanner, which got rewritten in python.
825 2008-08-09 Johan Dahlin <johan@gnome.org>
827 * girepository/Makefile.am:
837 Move shared *.[ch] files to girepository from tools
839 2008-08-09 Johan Dahlin <johan@gnome.org>
844 * tests/constant.test:
847 * tests/function.test:
848 * tests/gobject.test:
849 * tests/interface.test:
856 Rename *.test to *.gir
858 2008-08-09 Johan Dahlin <johan@gnome.org>
862 * tests/parser/Foo-expected.gir:
863 * tests/parser/Makefile.am:
864 * tests/parser/foo-object.h:
865 * tests/parser/foo.c:
866 * tests/parser/utility-expected.gir:
867 * tests/parser/utility.c:
868 * tests/parser/utility.h:
869 * tests/scanner/Makefile.am:
870 Rename tests/parser to test/scanner
872 2008-08-08 Colin Walters <walters@verbum.org>
874 * tests/roundtrips.sh: Use local .gir files again.
876 2008-08-08 Colin Walters <walters@verbum.org>
878 * tests/invoke/Makefile.am: .gir file depends on libtool
881 2008-08-08 Colin Walters <walters@verbum.org>
883 * tools/girnode.c: Pass through parent node so we can
884 print the node whose child is NULL, if that occurs.
886 2008-08-08 Johan Dahlin <johan@gnome.org>
889 Disable roundtrip tests which are not yet working
890 * tests/invoke/testfns.gir:
893 2008-08-08 Johan Dahlin <johan@gnome.org>
895 * giscanner/girwriter.py:
897 * giscanner/glibast.py:
898 * giscanner/glibtransformer.py:
899 Swap order of members, to keep it consistent with
902 2008-08-08 Johan Dahlin <johan@gnome.org>
904 * girepository/gtypelib.c (validate_header):
905 * girepository/gtypelib.h:
907 * giscanner/girwriter.py:
908 * giscanner/sourcescanner.c (gi_source_symbol_ref),
909 (gi_source_symbol_unref):
912 * tests/constant.test:
915 * tests/function.test:
916 * tests/gobject.test:
917 * tests/interface.test:
918 * tests/invoke/Makefile.am:
919 * tests/invoke/testfns.xml:
921 * tests/parser/Makefile.am:
922 * tests/roundtrips.sh:
929 * tools/compiler.c (main):
930 * tools/generate.c (write_callable_info), (write_function_info),
932 * tools/gidlmodule.c:
933 * tools/gidlmodule.h:
936 * tools/gidlparser.c:
937 * tools/gidlparser.h:
938 * tools/gidlwriter.c:
939 * tools/gidlwriter.h:
940 * tools/scanner.c (create_node_from_gtype),
941 (create_node_from_ctype), (g_igenerator_process_properties),
942 (g_igenerator_process_signals), (g_igenerator_create_object),
943 (g_igenerator_create_interface), (g_igenerator_create_boxed),
944 (g_igenerator_create_enum), (g_igenerator_create_flags),
945 (g_igenerator_process_function_symbol),
946 (g_igenerator_process_unregistered_struct_typedef),
947 (g_igenerator_process_struct_typedef),
948 (g_igenerator_process_union_typedef),
949 (g_igenerator_process_enum_typedef),
950 (g_igenerator_process_function_typedef),
951 (g_igenerator_process_constant), (g_igenerator_process_symbols),
952 (g_igenerator_add_module), (g_igenerator_add_include_idl):
953 Merge in the gir-compiler branch.
954 Thanks to Philip and Colin for their help.
956 2008-07-26 Colin Walters <walters@verbum.org>
958 * tools/Makefile.am (bin_PROGRAMS): Install g-idl-compiler
959 and g-idl-generate to go along with how we're changing this
960 module to be installed.
961 * gobject-introspection-1.0.pc.in: Set up Cflags and Libs.
963 2008-07-24 Colin Walters <walters@verbum.org>
965 * girepository/girepository.c (g_irepository_register): Add
966 environment variable G_IREPOSITORY_VERBOSE so we can print
967 out what we're doing.
968 * girepository/girepository.c (g_irepository_register_file):
969 Add GError error message to g_debug call.
971 2008-07-08 Jürg Billeter <j@bitron.ch>
973 * giscanner/glibast.py:
977 2008-06-21 Johan Dahlin <jdahlin@async.com.br>
979 * giscanner/girparser.py (GIRParser._parse_api): Ignore a few
982 2008-06-20 Johan Dahlin <jdahlin@async.com.br>
985 * giscanner/girwriter.py:
986 * giscanner/transformer.py:
987 * tests/parser/Foo-expected.gir:
988 * tests/parser/foo-object.h:
989 * tests/parser/foo.c (foo_object_allow_none):
990 Add support for gtk-doc annotations for allow-none.
993 2008-06-19 Johan Dahlin <jdahlin@async.com.br>
996 * giscanner/girwriter.py:
997 * giscanner/glibast.py:
998 * giscanner/glibtransformer.py:
999 * giscanner/transformer.py:
1000 * tests/parser/Foo-expected.gir:
1001 Start using abstract type instead of the raw C types.
1002 Register a bunch of glib types we care about.
1004 2008-06-19 Rob Taylor <rob.taylor@codethink.co.uk>
1009 2008-06-08 Philip Van Hoof <pvanhoof@gnome.org>
1011 * girepository/girepository.c:
1012 * girepository/gtypelib.c:
1013 * girepository/ginfo.c:
1014 * girepository/ginvoke.c:
1015 * girepository/girepository.h:
1016 * girepository/gtypelib.h:
1017 * girepository/gmetadata.c:
1018 * girepository/Makefile.am:
1019 * girepository/gmetadata.h:
1021 * tools/gidlmodule.c:
1024 * tools/gidlmodule.h:
1025 * tools/gidlparser.c:
1027 Renamed GMetadata to GTypelib
1029 2008-06-07 Johan Dahlin <jdahlin@async.com.br>
1031 * giscanner/xmlwriter.py:
1032 Improve line wrapping when > 79 charaters
1034 2008-06-05 Jürg Billeter <j@bitron.ch>
1037 * giscanner/girwriter.py:
1038 * giscanner/transformer.py:
1039 Use <type> element for field types
1040 * tests/parser/Foo-expected.gir:
1043 2008-06-04 Johan Dahlin <jdahlin@async.com.br>
1045 * giscanner/glibtransformer.py:
1046 Fix a bug which prevented GdkEvent from being generated
1048 2008-06-03 Johan Dahlin <jdahlin@async.com.br>
1050 * giscanner/Makefile.am:
1052 * giscanner/girwriter.py:
1053 * giscanner/glibast.py:
1054 * giscanner/glibtransformer.py:
1055 * giscanner/transformer.py:
1056 * giscanner/utils.py:
1057 * tests/parser/Foo-expected.gir:
1058 Improve enum member parsing and introspection
1060 2008-05-31 Johan Dahlin <jdahlin@async.com.br>
1062 * giscanner/scannerparser.y:
1063 * giscanner/sourcescanner.h:
1064 * giscanner/sourcescanner.py:
1065 Add a new source type enum for member.
1066 Use __repr__ for improved debugging
1067 * giscanner/girparser.py:
1069 * giscanner/transformer.py:
1070 Improve parsing of struct members.
1071 * tests/parser/foo-object.h:
1074 2008-05-31 Johan Dahlin <jdahlin@async.com.br>
1076 * giscanner/xmlwriter.py:
1077 Improve error reporting when trying to quote None.
1078 * giscanner/girparser.py:
1079 Do not print warnings when including more complete .gir files
1080 * giscanner/girwriter.py:
1081 Do not require a name for parameters, add a todo for singletons
1082 * giscanner/glibtransformer.py:
1083 Refactor the way structs are done, add a couple of hacks to allow
1085 * giscanner/transformer.py:
1086 Add enough hacks so cairo, atk and pango.gir can be parsed properly
1087 * gobject-introspection-1.0.pc.in:
1088 Export girdir, so we can access gobject-2.0.gir from outside
1090 2008-05-31 Johan Dahlin <jdahlin@async.com.br>
1092 * tools/g-ir-scanner:
1093 * tests/parser/Makefile.am:
1094 Update sys.path before running the parser so we don't have
1095 to setup PYTHONPATH ourselves.
1099 * girepository/Makefile.am:
1100 * giscanner/transformer.py:
1101 * gobject-introspection-1.0.pc.in:
1102 * gobject-introspection.pc.in:
1103 * tools/Makefile.am:
1105 Rename pkg-config name to gobject-introspection-1.0,
1106 Do not installed anything which is not using the gir format.
1107 Disable compililation the old C scanner, but still keep the source
1108 until all the remaning functionallity has been ported.
1110 2008-05-31 Johan Dahlin <jdahlin@async.com.br>
1112 * giscanner/giscannermodule.c (symbol_get_ident): Prevent
1113 a crash when symbol->indent is NULL.
1115 * giscanner/sourcescanner.py (ctype_name): Add ctype_name,
1116 a function to convert a CTYPE symbol to a string
1118 2008-05-24 Johan Dahlin <jdahlin@async.com.br>
1121 * giscanner/girwriter.py:
1122 * giscanner/giscannermodule.c
1123 (pygi_source_scanner_append_filename),
1124 (pygi_source_scanner_parse_file):
1125 * giscanner/glibtransformer.py:
1126 * giscanner/sourcescanner.py:
1127 Revert back to using temporary files to send in headers.
1128 Allow Functions to be passed in as callbacks, add a couple
1129 of try/excepts missing features.
1130 We can now scan pango
1132 2008-05-08 Johan Dahlin <johan@gnome.org>
1134 * giscanner/glibtransformer.py:
1135 * giscanner/transformer.py:
1136 Move namespace stripping glibtransformer->transformer
1138 2008-05-08 Johan Dahlin <johan@gnome.org>
1141 * giscanner/girwriter.py:
1142 * giscanner/glibtransformer.py:
1143 * giscanner/transformer.py:
1144 * tools/g-ir-scanner:
1145 Introduce a namespace ast node
1147 2008-05-05 Johan Dahlin <johan@gnome.org>
1149 * giscanner/__init__.py:
1150 * giscanner/sourcescanner.py:
1151 * giscanner/transformer.py:
1152 Move sourcescanner symbols to the sourcescanner module, instead
1153 of in the global __init__ namespace.
1155 2008-05-03 Johan Dahlin <johan@gnome.org>
1157 * giscanner/glibtransformer.py:
1158 * tools/g-ir-scanner:
1159 Handle missing parameters better, allow - and + in .la dlname
1162 2008-05-03 Johan Dahlin <johan@gnome.org>
1164 * giscanner/__init__.py:
1166 * giscanner/girwriter.py:
1167 * giscanner/glibtransformer.py:
1168 * giscanner/transformer.py:
1169 Parse struct fields properly, improve debugging.
1171 2008-04-29 Johan Dahlin <johan@gnome.org>
1174 * giscanner/girwriter.py:
1175 * giscanner/transformer.py:
1176 * tests/parser/Foo-expected.gir:
1178 Use transfer-ownership everywhere, to mark ownership/calle/caller etc.
1180 2008-04-29 Johan Dahlin <jdahlin@async.com.br>
1183 * docs/g-ir-scanner.1:
1184 * metadata-annotations-proposal.txt:
1185 * metadata-format.txt:
1186 Add a basic, unfinshed man page for g-ir-scanner, move documents into .txt
1188 2008-04-29 Johan Dahlin <jdahlin@async.com.br>
1190 * giscanner/girwriter.py:
1191 * giscanner/glibtransformer.py:
1192 * giscanner/transformer.py:
1193 * giscanner/xmlwriter.py:
1194 * tests/parser/Foo-expected.gir:
1195 * tests/parser/foo-object.h:
1196 Write record/structs to gir file too. Add a couple of tests,
1197 fix an off by one error in xmlwriter.py.
1199 2008-04-28 Johan Dahlin <johan@gnome.org>
1201 * giscanner/xmlwriter.py: Calculate the line length properly,
1202 include the provided extra indentation in the calculation, really.
1204 2008-04-28 Johan Dahlin <jdahlin@async.com.br>
1207 * giscanner/glibast.py:
1208 * giscanner/glibtransformer.py:
1209 * giscanner/transformer.py:
1210 * tools/g-ir-scanner:
1211 Add a --strip-prefix and sort out confusion between names and symbols
1212 for functions and struct + derivaties.
1213 Refactor bootstrap of g-ir-scanner, so we can set options on
1214 Transformer() before parsing everything.
1216 2008-04-28 Johan Dahlin <johan@gnome.org>
1218 * giscanner/transformer.py (Transformer._traverse_one): Avoid recursion
1219 when scanning girepository.h
1221 * giscanner/sourcescanner.py (SourceScanner._preprocess): Define
1222 a __GI_SCANNER__ when we run.
1224 2008-04-28 Johan Dahlin <jdahlin@async.com.br>
1227 * giscanner/girwriter.py:
1228 * giscanner/glibast.py:
1229 * giscanner/glibtransformer.py:
1230 * tests/parser/Foo-expected.gir:
1231 * tests/parser/utility-expected.gir:
1232 Rename most c:identifier to c:type. Add new ones to
1233 class/interface/enum/boxed.
1235 2008-04-28 Johan Dahlin <jdahlin@async.com.br>
1238 * giscanner/girwriter.py:
1239 * giscanner/glibtransformer.py:
1240 * tests/parser/Foo-expected.gidl:
1241 * tests/parser/Makefile.am:
1242 Move c:identifier from return-value to subchild type,
1243 as per Jürgs suggestion
1245 2008-04-28 Johan Dahlin <johan@gnome.org>
1247 * giscanner/girwriter.py:
1248 * tests/parser/Foo-expected.gir:
1249 Write property.type as a child node.
1251 2008-04-27 Johan Dahlin <johan@gnome.org>
1256 * gidl/gobject-2.0.gidl:
1258 * gir/gobject-2.0.gir:
1259 * tests/parser/Makefile.am:
1260 Replace the GObject gidl with a GObject gir.
1262 2008-04-27 Johan Dahlin <johan@gnome.org>
1264 * tools/Makefile.am (bin_SCRIPTS): g-ir-scanner is a script,
1267 * giscanner/xmlwriter.py:
1268 * tests/parser/Foo-expected.gir:
1269 Include indentation in line length calculation
1271 2008-04-27 Johan Dahlin <johan@gnome.org>
1273 * giscanner/girparser.py:
1274 Prettify NS parsing using elementtree.
1276 2008-04-27 Johan Dahlin <johan@gnome.org>
1279 * giscanner/Makefile.am:
1280 * giscanner/girparser.py:
1281 * giscanner/glibtransformer.py:
1282 * tests/parser/Foo-expected.gidl:
1283 * tests/parser/Foo-expected.gir:
1284 * tests/parser/Makefile.am:
1285 * tests/parser/utility-expected.gidl:
1286 * tests/parser/utility-expected.gir:
1287 * tools/g-ir-scanner:
1288 Switch over to GIR as the default format. Add a simple GIDL
1290 Update tests and fix simplify makefiles by depending
1291 on GNU make extensions.
1293 2008-04-27 Johan Dahlin <johan@gnome.org>
1295 * giscanner/xmlwriter.py:
1296 Wrap attributes for lines which are wider than 79 characters
1298 * giscanner/scannerlexer.l:
1299 Allow parenthesis in annotations
1302 * giscanner/gidlwriter.py:
1303 * giscanner/girwriter.py:
1304 * giscanner/glibtransformer.py:
1305 * giscanner/transformer.py:
1306 Add initial sequence support, including annotation.
1307 Refactor type handling a bit.
1309 2008-04-27 Johan Dahlin <johan@gnome.org>
1311 * tests/parser/Foo-expected.gidl:
1312 * tests/parser/foo-object.h:
1313 * tests/parser/foo.c (foo_object_class_init),
1314 (foo_object_get_strings), (foo_object_get_objects):
1315 Add two new functions to check sequence return values.
1316 Also fixes a compilation warning.
1318 2008-04-27 Johan Dahlin <johan@gnome.org>
1320 * giscanner/giscannermodule.c (]): Cast the getter, avoids
1321 a compilation warning.
1323 * tools/Makefile.am (g_ir_scanner_SOURCES):
1324 g-ir-scanner has no sources.
1326 2008-04-25 Johan Dahlin <johan@gnome.org>
1328 * giscanner/Makefile.am:
1330 * giscanner/gidlparser.py:
1331 * giscanner/gidlwriter.py:
1332 * giscanner/girwriter.py:
1333 * giscanner/glibast.py:
1334 * giscanner/glibtransformer.py:
1335 * giscanner/transformer.py:
1336 Split out nodes to ast.py and glibast.py
1338 2008-04-25 Johan Dahlin <jdahlin@async.com.br>
1340 * giscanner/Makefile.am:
1341 * giscanner/gidlparser.py:
1342 * giscanner/gidlwriter.py:
1343 * giscanner/girwriter.py:
1344 * giscanner/glibtransformer.py:
1345 * giscanner/gobjecttreebuilder.py:
1346 * giscanner/transformer.py:
1347 * giscanner/treebuilder.py:
1348 * tools/g-ir-scanner:
1349 Rename treebuilder to transformer and
1350 gobjectreebuilder to glibtransformer.
1352 2008-04-25 Johan Dahlin <jdahlin@async.com.br>
1354 * giscanner/Makefile.am:
1355 * giscanner/__init__.py:
1356 * giscanner/cgobject.py:
1357 * giscanner/gidlparser.py:
1358 * giscanner/gidlwriter.py:
1359 * giscanner/girwriter.py:
1360 * giscanner/gobjecttreebuilder.py:
1361 * giscanner/odict.py:
1362 * giscanner/sourcescanner.py:
1363 * giscanner/treebuilder.py:
1364 * giscanner/xmlwriter.py:
1365 * tools/Makefile.am:
1366 * tools/g-ir-scanner:
1367 Add LGPLv2 license header and install all python files
1369 2008-04-25 Johan Dahlin <jdahlin@async.com.br>
1372 * giscanner/gidlwriter.py:
1373 * giscanner/giscannermodule.c (pygi_source_directive_new),
1374 (directive_get_options), (pygi_source_symbol_new),
1375 (symbol_get_base_type), (pygi_source_type_new),
1376 (type_get_base_type), (type_get_child_list),
1377 (pygi_source_scanner_get_symbols),
1378 (pygi_source_scanner_get_directives):
1379 * giscanner/gobjecttreebuilder.py:
1380 * giscanner/sourcescanner.py:
1381 * giscanner/treebuilder.py:
1382 * tests/parser/foo-object.h:
1383 Add support for virtual methods.
1384 Pair struct FooClass with struct Foo.
1385 Clean up the SourceScanner bindings a bit.
1386 Add a testcase for virtual methods.
1388 2008-04-25 Johan Dahlin <jdahlin@async.com.br>
1390 * giscanner/cgobject.py:
1391 * giscanner/gidlwriter.py:
1392 * giscanner/gobjecttreebuilder.py:
1393 Add support for signals
1395 * tests/parser/foo.c (foo_object_class_init):
1396 * Foo-expected.gidl:
1397 Add a signal and update the expected output.
1399 2008-04-24 Johan Dahlin <jdahlin@async.com.br>
1401 * giscanner/gidlwriter.py:
1402 * giscanner/girwriter.py:
1403 * giscanner/giscannermodule.c (directive_get_name),
1404 (directive_get_value), (directive_get_options),
1405 (symbol_get_directives), (symbol_set_directives),
1406 (pygi_source_scanner_parse_file),
1407 (pygi_source_scanner_lex_filename),
1408 (pygi_source_scanner_get_directives), (init_giscanner):
1409 * giscanner/sourcescanner.c (gi_source_scanner_get_directives):
1410 * giscanner/sourcescanner.h:
1411 * giscanner/sourcescanner.py:
1412 * giscanner/treebuilder.py:
1413 * tools/g-ir-scanner:
1414 Add support for source/header annotations.
1416 2008-04-22 Johan Dahlin <jdahlin@async.com.br>
1418 * giscanner/gidlwriter.py:
1419 * giscanner/girwriter.py:
1420 * giscanner/gobjecttreebuilder.py:
1421 * giscanner/treebuilder.py:
1422 Add support for Callbacks
1424 2008-04-22 Havoc Pennington <hp@pobox.com>
1426 * girepository/ginvoke.c (g_function_info_invoke): If a symbol is
1427 not in metadata->module, look for it in the global module, in case
1428 some other object or the app itself provides the symbol.
1430 2008-04-22 Havoc Pennington <hp@pobox.com>
1432 * girepository/gmetadata.c (_g_metadata_init): hack to avoid
1433 dlopening a library that is already in the main app, by checking
1434 whether one of the lib's symbols is already loaded.
1436 2008-04-22 Johan Dahlin <jdahlin@async.com.br>
1438 * tests/parser/Foo-expected.gidl:
1439 * tests/parser/foo-object.h:
1442 2008-04-22 Havoc Pennington <hp@pobox.com>
1444 * girepository/ginfo.c (g_interface_info_find_method):
1445 Use interface_blob_size not object_blob_size to compute offset.
1447 2008-04-22 Havoc Pennington <hp@pobox.com>
1449 * girepository/gmetadata.c (_g_metadata_init): remove
1450 G_MODULE_BIND_LOCAL flag when loading libraries, since some libs
1451 (Glade and Clutter for example) rely on being loaded globally.
1453 2008-04-22 Havoc Pennington <hp@pobox.com>
1455 * girepository/ginfo.c (g_registered_type_info_get_g_type): new
1456 function to get the GType given a RegisteredTypeInfo
1458 2008-04-22 Johan Dahlin <johan@gnome.org>
1460 * COPYING: Add a LGPL license, to prevent automake to
1461 put in a copy of GPL here. Pointed out by Havoc.
1463 * girepository/ginfo.c (g_info_from_entry), (g_type_info_new),
1464 (g_type_info_is_pointer), (g_type_info_get_tag),
1465 (g_type_info_get_param_type), (g_type_info_get_interface),
1466 (g_type_info_get_array_length), (g_type_info_is_zero_terminated),
1467 (g_type_info_get_n_error_domains), (g_type_info_get_error_domain),
1468 (g_error_domain_info_get_codes), (g_enum_info_get_value),
1469 (g_object_info_get_interface), (g_object_info_get_field),
1470 (g_interface_info_get_prerequisite),
1471 (g_signal_info_get_class_closure), (g_constant_info_get_value):
1472 * girepository/ginvoke.c (get_ffi_type):
1473 * girepository/girepository.h:
1474 * girepository/gmetadata.c (g_metadata_get_dir_entry),
1475 (g_metadata_check_sanity), (validate_header),
1476 (validate_array_type_blob), (validate_iface_type_blob),
1477 (validate_param_type_blob), (validate_error_type_blob),
1478 (validate_type_blob), (validate_constant_blob),
1479 (validate_struct_blob), (validate_enum_blob):
1480 * girepository/gmetadata.h:
1481 * tests/Makefile.am:
1482 * tests/invoke/Makefile.am:
1483 * tests/invoke/invoke.c (main):
1484 * tests/roundtrips.sh:
1485 * tools/Makefile.am:
1486 * tools/compiler.c (format_output), (write_out_metadata), (main):
1487 * tools/generate.c (write_type_name), (write_type_info),
1488 (write_constant_value), (write_enum_info), (load_metadata), (main):
1489 * tools/gidlcompilercontext.c:
1490 * tools/gidlcompilercontext.h:
1491 * tools/gidlcompilerentrynode.c:
1492 * tools/gidlcompilerentrynode.h:
1493 * tools/gidlcompilertypenode.c:
1494 * tools/gidlcompilertypenode.h:
1495 * tools/gidlmodule.c (g_idl_module_build_metadata):
1496 * tools/gidlmodule.h:
1497 * tools/gidlnode.c (init_stats), (dump_stats),
1498 (g_idl_node_get_size), (g_idl_node_get_full_size),
1499 (g_idl_node_cmp), (g_idl_node_can_have_member),
1500 (g_idl_node_add_member), (g_idl_node_param_direction_string),
1501 (parse_int_value), (parse_uint_value), (parse_float_value),
1502 (parse_boolean_value), (find_entry_node), (find_entry),
1503 (serialize_type), (g_idl_node_build_metadata), (write_string):
1505 * tools/gidlparser.c (parse_type_internal):
1506 * tools/quote-file.sh:
1507 Revert revisions 157,149-148,136-129 and 120.
1508 Move back to using g-idl-generate to generate the metadata and
1509 avoids dependency on a c compiler.
1511 2008-04-22 Johan Dahlin <jdahlin@async.com.br>
1513 * giscanner/girwriter.py:
1514 * tools/g-ir-scanner:
1515 Add an initial GIR writer and a --format option to g-ir-scanner
1517 2008-04-21 Johan Dahlin <johan@gnome.org>
1519 * giscanner/cgobject.py: Use ctypes.util.find_library to locate
1520 gobject-2.0 and raise ImportError if not found.
1522 * giscanner/gidlparser.py:
1523 * giscanner/gidlwriter.py:
1524 * giscanner/gobjecttreebuilder.py:
1525 * tools/g-ir-scanner:
1526 Add a --include argument to include types from other idls.
1527 Add a minimalistic GIDL parser (just objects for now)
1528 Implement resolving of external type references and use it to
1529 resolve parent types, argument types and return types.
1531 2008-04-21 Johan Dahlin <johan@gnome.org>
1533 * giscanner/gidlwriter.py:
1534 * giscanner/gobjecttreebuilder.py:
1535 * giscanner/treebuilder.py:
1536 Add support for properties.
1537 Refactor Class/Interface support a bit, to share more code and
1538 always initialize their method attribute to an empty list.
1540 2008-04-21 Johan Dahlin <johan@gnome.org>
1542 * giscanner/cgobject.py:
1543 Add a workaround for a glib bug interface introspection bug
1544 (object_interface_list_properties, object_class_list_properties):
1545 Cast the return value to GParamSpec.
1547 * tests/parser/Foo-expected.gidl: Update
1548 * tests/parser/foo.c: Add a string property
1550 * giscanner/gobjecttreebuilder.py:
1551 After stripping namespaces, remove the original
1552 item to avoid duplication (GtkButton struct and Button object)
1554 2008-04-21 Johan Dahlin <johan@gnome.org>
1556 * giscanner/gobjecttreebuilder.py:
1557 * giscanner/treebuilder.py:
1558 Strip namespaces before objects, so we'll export
1559 GtkButton as Button in the gtk namespace
1561 2008-04-21 Johan Dahlin <johan@gnome.org>
1563 * giscanner/gidlwriter.py:
1564 * giscanner/gobjecttreebuilder.py:
1565 * giscanner/treebuilder.py:
1566 Add constructors for object/boxed types.
1568 2008-04-21 Johan Dahlin <johan@gnome.org>
1570 * giscanner/gidlwriter.py:
1571 * giscanner/gobjecttreebuilder.py:
1572 Add support for boxed types
1574 2008-04-21 Johan Dahlin <johan@gnome.org>
1576 * giscanner/giscannermodule.c: Mark structures as const,
1577 wrap SourceType.const_string.
1579 * tests/parser/foo-object.h: Add a couple of constants.
1581 * giscanner/gidlwriter.py:
1582 * giscanner/gobjecttreebuilder.py:
1583 * giscanner/treebuilder.py:
1584 Add basic support for interfaces
1586 * tools/g-ir-scanner:
1587 Add -o/--output for writing to a file
1589 2008-04-21 Havoc Pennington <hp@redhat.com>
1591 * TODO: add some C API wishlist items I could think of quickly
1593 2008-04-21 Johan Dahlin <jdahlin@async.com.br>
1595 * giscanner/gidlwriter.py:
1596 * giscanner/xmlwriter.py:
1597 Add a simple api for writing tags which can be used
1598 with the new 'with statement' in python 2.5
1600 2008-04-21 Johan Dahlin <johan@gnome.org>
1602 * giscanner/gobjecttreebuilder.py:
1603 Strip namespace and object prefix from method names.
1605 2008-04-21 Johan Dahlin <johan@gnome.org>
1607 * tools/g-ir-scanner (main): Add --pkg option to pass in
1608 pkg-config modules to get cflags from.
1610 * giscanner/gidlwriter.py (GIDLWriter._write_method):
1611 Avoid duplication, reuse function writer for methods.
1613 2008-04-21 Johan Dahlin <jdahlin@async.com.br>
1615 * giscanner/gidlwriter.py:
1616 * giscanner/gobjecttreebuilder.py:
1617 * giscanner/treebuilder.py:
1618 * tools/g-ir-scanner:
1619 Resolve libtool .la files.
1620 Strip name spaces for methods.
1621 Add function symbols
1623 2008-04-20 Johan Dahlin <jdahlin@async.com.br>
1625 * giscanner/cgobject.py:
1626 * giscanner/gidlwriter.py:
1627 * giscanner/gobjecttreebuilder.py:
1628 * giscanner/treebuilder.py:
1629 Add support for classes and methods
1631 2008-04-20 Johan Dahlin <johan@gnome.org>
1633 * giscanner/gidlwriter.py:
1634 * giscanner/gobjecttreebuilder.py:
1635 * giscanner/odict.py:
1636 Avoid conflicts, keep the output ordered similar to
1637 the order of the input.
1638 Add a simple ordered dictionary implemenation
1640 2008-04-19 Johan Dahlin <johan@gnome.org>
1642 * giscanner/cgobject.py:
1643 * giscanner/gidlwriter.py:
1644 * giscanner/gobjecttreebuilder.py:
1645 * tools/g-ir-scanner:
1646 Start introspecting get-type functions.
1647 Implement support for GLib/GFlags GTypes.
1648 Add a ctype based GObject binding.
1650 2008-04-18 Johan Dahlin <jdahlin@async.com.br>
1652 * giscanner/gidlwriter.py:
1653 * giscanner/xmlwriter.py:
1654 * tools/g-ir-scanner:
1655 Add a simplistic gidl writer, which can't do too much.
1657 2008-04-18 Johan Dahlin <johan@gnome.org>
1659 * giscanner/sourcescanner.py:
1660 * giscanner/treebuilder.py:
1661 * tools/g-ir-scanner:
1662 split tree building and source scanning interface to separate files.
1664 2008-04-18 Johan Dahlin <johan@gnome.org>
1666 * tools/g-ir-scanner (Parameter.__init__): Start constructing
1668 - Add support for struct/parameter/return, start parsing of ctypes
1670 * giscanner/giscannermodule.c: wrap GISourceType.child_list and
1673 2008-03-31 Johan Dahlin <johan@gnome.org>
1675 * tools/g-ir-scanner:
1676 Start to build abstract syntax node of scanned sources.
1677 Add support for cpp options.
1679 2008-03-27 Johan Dahlin <johan@gnome.org>
1681 * giscanner/giscannermodule.c:
1682 * giscanner/scannerlexer.l:
1683 * giscanner/sourcescanner.c:
1684 * tools/g-ir-scanner:
1686 Add simple pre-processor using subprocess and a PIPE.
1687 Change the parse_file apis to accept a file descriptor.
1689 2008-03-25 Johan Dahlin <johan@gnome.org>
1691 * giscanner/__init__.py:
1692 * tools/g-ir-scanner:
1693 Fix a typo and add an example python test program.
1695 2008-03-25 Johan Dahlin <johan@gnome.org>
1697 * giscanner/__init__.py:
1698 * giscanner/giscannermodule.c:
1699 * giscanner/sourcescanner.c:
1700 * giscanner/sourcescanner.h:
1701 Add constants and wrap a few more SymbolType fields
1703 2008-03-25 Johan Dahlin <johan@gnome.org>
1707 * giscanner/__init__.py:
1708 * giscanner/giscannermodule.c:
1709 * giscanner/Makefile.am:
1711 Add initial python bindings for the scanner and
1712 depend on python 2.5.
1714 2008-03-25 Johan Dahlin <johan@gnome.org>
1718 * giscanner/Makefile.am:
1719 * giscanner/sourcescanner.c:
1720 * giscanner/sourcescanner.h:
1721 * tools/Makefile.am:
1722 * tools/grealpath.h:
1723 * tools/sourcescanner.c:
1724 * tools/sourcescanner.h:
1726 Move the scanner to a separate library.
1728 2008-03-23 Johan Dahlin <johan@gnome.org>
1730 * tools/Makefile.am:
1733 * tools/scannerlexer.l:
1734 * tools/scannerparser.y:
1735 * tools/sourcescanner.c:
1736 * tools/sourcescanner.h:
1737 Split out the source scanner from the generator.
1738 Rename the symbols used in the scanner to use the gi_ prefix.
1739 This should make it possible to use the raw C parser from
1742 2008-03-23 Johan Dahlin <johan@gnome.org>
1744 * tests/parser/Makefile.am (utility.gidl):
1745 * tests/parser/utility-expected.gidl:
1746 Pass in the gobject.gidl since we're defining a GObject.
1748 2008-03-12 Johan Dahlin <johan@gnome.org>
1750 * relaxng/relaxng.rng:
1751 Add a releaxng in relaxng we can use to validate the relaxngs
1754 2008-03-12 Jürg Billeter <j@bitron.ch>
1756 * tools/scanner.c: (g_igenerator_new):
1757 * tools/scannerparser.y:
1758 Fix compiler warnings.
1760 2008-03-12 Jürg Billeter <j@bitron.ch>
1764 * tools/scannerparser.y:
1765 Start fixing memory management in g-idl-scanner.
1767 2008-03-12 Rob Taylor <rob.taylor@codethink.co.uk>
1769 * tools/gidlcompilercontext.c: (write_compiled):
1770 Fix critical warning when no shlib passed to g-idl-compiler.
1772 2008-03-12 Johan Dahlin <johan@gnome.org>
1774 * tests/parser/utility-expected.gidl:
1775 * tests/parser/utility.h:
1776 Add a get_type-function, so the scanner actually
1777 parses it as an object.
1779 2008-03-12 Johan Dahlin <johan@gnome.org>
1781 * tools/gidlwriter.c (function_generate): Add missing trailing quote.
1784 * tests/parser/Foo-expected.gidl:
1785 * tests/parser/Makefile.am:
1786 * tests/parser/foo-object.h:
1787 * tests/parser/foo.c:
1788 * tests/parser/utility-expected.gidl:
1789 * tests/parser/utility.c:
1790 * tests/parser/utility.h:
1792 Add a new gidl test. 'utility.gidl', which is used to be able
1793 to test external type references. Add a reference to UtilityObject*
1796 2008-03-11 Johan Dahlin <johan@gnome.org>
1800 Remove most global variables
1802 2008-03-11 Philip Van Hoof <me@pvanhoof.be>
1804 * tools/scannerlexer.l:
1806 * tests/parser/Foo-expected.gidl:
1807 * tests/parser/foo.c:
1808 * tests/parser/Makefile.am:
1809 * tests/parser/foo-object.h:
1811 Added a few extra tests. Which resulted in finding a few
1812 bugs. Which resulted in me fixing those bugs
1814 2008-03-11 Rob Taylor <rob.taylor@codethink.co.uk>
1816 * tools/gidlcompilercontext.c: (g_idl_compiler_write_dir_entry),
1817 (g_idl_compiler_write_xref_entry), (g_idl_compiler_add_xref):
1818 Add some comments for strings into generated output for
1821 2008-03-11 Rob Taylor <rob.taylor@codethink.co.uk>
1823 * tools/gidlcompilercontext.c: (write_compiled):
1824 Write out the shlibs variable before writing out the strings
1825 length. Fixes compiler warning when using '-l' flag with
1828 2008-03-11 Johan Dahlin <johan@gnome.org>
1830 * tests/parser/Foo-expected.gidl:
1831 * tests/parser/foo-object.h:
1834 * tools/scannerlexer.l:
1835 Add support for parsing return arguments. Add support for
1836 caller-owns return types.
1837 Patch by Philip Van Hoof.
1839 * tools/scannerparser.y:
1840 Remove parsing of the @deprecated syntax used in headers.
1841 We will support gtk-doc deprecation in the future instead.
1843 2008-03-11 Johan Dahlin <johan@gnome.org>
1845 * tools/compiler.c (main): Coding style fixes
1847 2008-03-10 Johan Dahlin <johan@gnome.org>
1850 Add GCOV_LIBS to GILIBS
1852 2008-03-10 Johan Dahlin <johan@gnome.org>
1854 * tests/parser/Foo-expected.gidl:
1855 * tests/parser/foo.c:
1856 Rename null-ok to direction=out
1858 2008-03-10 Philip Van Hoof <me@pvanhoof.be>
1860 reviewed and extensively tested by Johan
1862 * tests/parser/Foo-expected.gidl:
1863 * tests/parser/foo-object.h:
1864 * tests/parser/foo.c:
1867 * tools/gidlwriter.c:
1870 * tools/scannerlexer.l:
1871 * tools/scannerparser.y:
1873 Add support for scanning for gtk-doc comments inside
1874 C source files. Add tests
1876 2008-03-10 Johan Dahlin <johan@gnome.org>
1878 * tests/parser/Makefile.am:
1879 * tests/parser/foo.c:
1882 * tools/scannerparser.y:
1883 Add an api to lex filenames.
1884 Lex all source .c files passed in on the command line.
1885 Scan sources in a test and a couple of private structures
1886 which should not be included in the generated gidl
1888 2008-03-10 Johan Dahlin <johan@gnome.org>
1890 * tests/invoke/Makefile.am: Make the generated metadata
1891 depend on the g-idl-compiler
1893 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1895 * tools/gidlmodule.c
1896 * tools/gidlmodule.h
1899 Remove the old g-idl-compiler code.
1902 2008-02-22 Mark Doffman <mark.doffman@codethink.co.uk>
1904 * tools/quote-file.sh
1907 Move to using the 'C' struct compiler code.
1909 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1911 * girepository/ginfo.c
1913 Change the way that external references with no namespace
1914 are dealt with. External references with no namespace
1915 are placed into the XML as-if they are a local reference.
1916 This is temporary, but helps with roundtrip tests.
1918 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1920 * girepository/ginfo.c
1921 Add the ability to get the value of a constant of
1922 type TYPE_TAG_SYMBOL. In the case of a symbol the value
1923 is provided as a string.
1925 This would deal properly with:
1926 typedef char* random;
1927 const random = "A string";
1929 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1931 * girepository/ginfo.c
1932 * girepository/girepository.h
1934 Add a function to check if an enum is registered or not.
1935 Previously anything testing this relied on the g-type
1936 string offset having a value of 0.
1938 * girepository/gmetadata.c
1939 * girepository/gmetadata.h
1941 Remove unneccesary or erroneous checks. There were two
1942 metadata validation checks which made sure that the blob
1943 sizes were the same as some magic numbers compiled into the code.
1944 This is wrong as it breaks any forwards compatibility that may
1947 Checks were also present that made sure that unregistered type
1948 blobs had a value of 0 in the g-type offset field. This is
1949 unneccessary. If a type blob is unregistered then any value
1950 in its g-type field is simply invalid.
1952 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1954 * girepository/ginfo.c
1955 * girepository/gmetadata.c
1956 * girepository/gmetadata.h
1958 Change the metadata format to have a standard header
1959 for all the type blobs. Merge the SimpleTypeBlob
1960 and InterfaceTypeBlob into a union. A union of these
1961 two blobs existed previously but was not explicit
1962 in the metadata format.
1964 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1966 * tools/gidlcompilercontext.c
1967 * tools/gidlcompilercontext.h
1968 * tools/gidlcompilerentrynode.c
1969 * tools/gidlcompilerentrynode.h
1970 * tools/gidlcompilertypenode.c
1971 * tools/gidlcompilertypenode.h
1973 Add code to compile a tree of GIdlNodes to
1974 a 'C' struct representing the metadata.
1975 This is to aid cross-compiling. Previously
1976 the g-idl-compiler created a binary blob with
1977 data written in the byte order and alignment
1978 of the tool rather than the intended target.
1980 Cleaned up and improved by Johan and Robert :-)
1982 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
1984 * girepository/ginvoke.c
1985 * girepository/girepository.h
1986 * girepository/gmetadata.c
1987 * girepository/gmetadata.h
1989 * tools/gidlparser.c
1990 Modify TYPE_TAG_INTERFACE to TYPE_TAG_SYMBOL
1991 to avoid confusion with the interface blob.
1994 * tools/gidlparser.c
1995 Remove magic numbers and replace with type-tag
1996 enumeration symbols.
1998 * girepository/gmetadata.c
1999 Add validate declaration.
2001 2008-03-10 Jürg Billeter <j@bitron.ch>
2003 * tools/gidlparser.c: (parse_type_internal):
2004 * tools/scannerlexer.l:
2005 * tools/scannerparser.y:
2006 Support C99 _Bool type in scanner.
2008 2008-03-10 Jürg Billeter <j@bitron.ch>
2010 * tests/parser/Foo-expected.gidl:
2011 * tests/parser/foo-object.h:
2012 * tests/parser/foo.c: (foo_enum_method):
2013 * tools/scanner.c: (g_igenerator_process_function_symbol):
2014 Don't skip functions that are defined in the namespace of a type
2015 that doesn't support methods, as for example enums.
2017 2008-03-10 Johan Dahlin <johan@gnome.org>
2019 * gidl.dtd: Remove, we're using relaxng for now
2021 * tests/parser/Foo-expected.gidl:
2022 * tests/parser/foo-object.h:
2023 * tests/parser/foo.c:
2024 Rename the enum/flags get_type functions to include the whole type.
2026 2008-03-08 Marc-Andre Lureau <marcandre.lureau@gmail.com>
2028 * tools/gidlwriter.c (enum_generate): added "type-name",
2029 "get-type" and "deprecated" missing arguments.
2030 * tests/parser/Foo-expected.gidl:
2031 * tests/parser/foo-object.h: test enum type, and no type.
2033 2008-03-06 Johan Dahlin <jdahlin@async.com.br>
2036 Consistent checks, add missing 'test'
2038 2008-03-05 Havoc Pennington <hp@redhat.com>
2040 * configure.ac: Take advantage of a libffi.pc if one exists, as it
2041 does on Fedora 8. Make libffi a hard requirement, since it was in
2042 practice anyway (was not really conditional in the code or
2043 makefile, only in configure).
2045 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
2047 reviewed by: Rob Taylor <rob.taylor@codethink.co.uk>
2048 reviewed by: Johan Dahlin <johan@gnome.org>
2050 * tests/Makefile.am:
2051 * tests/roundtrips.sh:
2052 Modify the roundtrips test so that they do not use the
2053 --raw option of the gidl compiler but instead compile a
2054 shared library to use with g_module.
2056 * tests/invoke/Makefile.am:
2057 * tests/invoke/invoke.c:
2058 Modify the invoke tests to build a shared library rather
2059 than use the --raw option.
2061 * tests/invoke/invoke-namespace-find.sh: Removed:
2062 Noone knows why this was here, so removed.
2064 2008-02-19 Rob Taylor <rob.taylor@codethink.co.uk>
2066 * tools/scanner.c: (g_igenerator_process_function_symbol):
2067 Move g_idl_node_can_have_member test later, as it broke spotting
2068 get_type's for nodes that can't have members.
2070 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
2073 * tools/gidlnode.c: (g_idl_node_can_have_member):
2074 Add g_idl_node_can_have_member.
2076 * tools/scanner.c: (g_igenerator_process_function_symbol):
2077 Use g_idl_node_can_have_member to test if we should add a function
2078 as a member of the type node.
2080 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
2082 * gidl/GLib.gidl: Renamed to gidl/gobject-2.0.gidl:
2084 * tests/parser/Makefile.am:
2085 Rename GLib.gidl to gobject-2.0.gidl and install in /usr/share/gidl.
2087 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
2089 * tools/scanner.c: (main):
2090 Ignore -pthread when passed to g-idl-scanner.
2092 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
2094 * tools/grealpath.h: Added:
2095 * tools/scanner.c: (main):
2096 * tools/scannerlexer.l:
2097 * tools/Makefile.am:
2098 Always use absolute paths with symbolic links resolved when
2099 comparing filenames.
2101 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
2103 * gobject-introspection.pc.in:
2104 Provide variables for g-idl-parser, scanner and compiler in the
2107 2008-02-13 Rob Taylor <rob.taylor@codethink.co.uk>
2110 * girepository/Makefile.am:
2111 * tools/Makefile.am:
2112 Rename GCOV_SOURCES to GCOVSOURCES to top automake complaining.
2114 2008-02-10 Johan Dahlin <johan@gnome.org>
2116 * tests/parser/Foo-expected.gidl:
2117 * tests/parser/foo-object.h:
2118 * tests/parser/foo.c: (foo_boxed_copy), (foo_boxed_free),
2119 (foo_boxed_get_type), (foo_boxed_new), (foo_boxed_method):
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_enum_get_type), (foo_flags_get_type):
2127 Add enum and flags test.
2129 2008-02-10 Johan Dahlin <johan@gnome.org>
2133 * girepository/Makefile.am:
2134 Make 'make distcheck' work again.
2136 2008-02-10 Johan Dahlin <johan@gnome.org>
2138 * m4/Makefile.am (EXTRA_DIST): its called as-compiler-flag.m4,
2141 * tests/parser/Makefile.am: Only create Foo.gidl when running make
2142 check, eg exclude it from BUILT_SOURCES.
2144 2008-02-08 Rob Taylor <rob.taylor@codethink.co.uk>
2149 * girepository/Makefile.am:
2150 * m4/Makefile.am: Added:
2151 * m4/as-compiler-flag.m4: Added:
2152 * m4/gcov.m4: Added:
2153 * tools/Makefile.am:
2154 Add ability to generate a coverage report.
2155 Adds configure option --enable-gcov and make rule 'check-coverage'.
2157 2008-02-08 Rob Taylor <rob.taylor@codethink.co.uk>
2161 * gidl/Makefile.am: Added:
2162 * girepository/Makefile.am: Added:
2163 * src/Makefile.am: Renamed to tools/Makefile.am:
2164 * src/compiler.c: Renamed to tools/compiler.c:
2165 * src/g-idl-offsets.pl: Renamed to tools/g-idl-offsets.pl:
2166 * src/generate.c: Renamed to tools/generate.c:
2167 * src/gidlmodule.c: Renamed to tools/gidlmodule.c:
2168 * src/gidlmodule.h: Renamed to tools/gidlmodule.h:
2169 * src/gidlnode.c: Renamed to tools/gidlnode.c:
2170 * src/gidlnode.h: Renamed to tools/gidlnode.h:
2171 * src/gidlparser.c: Renamed to tools/gidlparser.c:
2172 * src/gidlparser.h: Renamed to tools/gidlparser.h:
2173 * src/gidlwriter.c: Renamed to tools/gidlwriter.c:
2174 * src/gidlwriter.h: Renamed to tools/gidlwriter.h:
2175 * src/ginfo.c: Renamed to girepository/ginfo.c:
2176 * src/ginvoke.c: Renamed to girepository/ginvoke.c:
2177 * src/girepository.c: Renamed to girepository/girepository.c:
2178 * src/girepository.h: Renamed to girepository/girepository.h:
2179 * src/gmetadata.c: Renamed to girepository/gmetadata.c:
2180 * src/gmetadata.h: Renamed to girepository/gmetadata.h:
2181 * src/scanner.c: Renamed to tools/scanner.c:
2182 * src/scanner.h: Renamed to tools/scanner.h:
2183 * src/scannerlexer.l: Renamed to tools/scannerlexer.l:
2184 * src/scannerparser.y: Renamed to tools/scannerparser.y:
2185 * tests/invoke/Makefile.am:
2186 Split src/ into girepository/ and tools/
2190 * girepository/Makefile.am:
2191 * tests/Makefile.am:
2192 * tests/invoke/Makefile.am:
2193 * tests/parser/Makefile.am:
2194 * tests/roundtrips.sh:
2195 * tools/Makefile.am:
2196 Make distcheck work.
2198 2008-02-04 Rob Taylor <rob.taylor@codethink.co.uk>
2200 * tests/invoke/invoke.c: (main):
2201 * tests/invoke/testfns.c: (test6), (test7):
2202 * tests/invoke/testfns.xml:
2203 Add tests for invokation with a GList argument.
2204 Also tests caller-owns return values.
2206 2008-02-04 Rob Taylor <robtaylor@floopily.org>
2209 Add some documentation for GICallableInfo
2211 2008-02-01 Mark Doffman <mark.doffman@codethink.co.uk>
2214 Correct syntax errors in the DTD file.
2216 * relaxng/c-types.xml:
2217 * relaxng/g-types.xml:
2219 Add a RelaxNG specification for the GObject Introspection XML data.
2220 The Specification has validated all of the test files.
2222 2008-01-25 Rob Taylor <robtaylor@floopily.org>
2224 * tests/roundtrips.sh:
2225 * tests/struct.test:
2226 Add roundtrip tests for structs.
2228 2008-01-11 Johan Dahlin <johan@gnome.org>
2230 * src/scanner.c (g_igenerator_process_function_symbol):
2231 Refactor out g_idle_node_add_member.
2232 (create_node_from_gtype, create_node_from_ctype):
2233 Use case instead of if...else
2234 (get_type_from_type_id):
2235 Rename to create_node_from_gtype
2236 (get_type_from_ctype):
2237 Rename to create_node_from_ctype
2239 Rename ginode -> node, gitype -> type, gifunc -> func.
2241 * src/gidlnode.c (g_idl_node_add_member, g_idl_node_cmp):
2242 Two new functions, refactor out of scanner.c
2244 * src/scanner.c: (g_igenerator_process_function_symbol):
2245 * src/scannerlexer.l:
2246 Do not save the content of the deprecated variable, only
2249 2008-01-11 Johan Dahlin <johan@gnome.org>
2251 * tests/parser/foo-object.h: Add a couple of comment parser tests.
2253 2008-01-11 Jürg Billeter <j@bitron.ch>
2255 * src/scannerlexer.l:
2256 Fix GTK-Doc parsing.
2258 2008-01-11 Jürg Billeter <j@bitron.ch>
2260 * src/scannerlexer.l:
2261 Fix GTK-Doc parsing.
2263 2008-01-11 Jürg Billeter <j@bitron.ch>
2265 * src/scanner.c: (lookup_symbol):
2266 Return unresolved name if we find unknown symbol.
2268 2008-01-11 Jürg Billeter <j@bitron.ch>
2270 * src/scanner.c: (g_igenerator_generate):
2271 Initialize GObject to fix scanning interface properties.
2273 * tests/parser/Foo-expected.gidl:
2274 * tests/parser/foo-object.h:
2275 * tests/parser/foo.c: (foo_interface_get_type):
2276 Test interfaces with GObject prerequisite.
2278 * tests/parser/Makefile.am:
2279 Set G_DEBUG=fatal_warnings to abort test on warnings and criticals.
2281 2007-12-27 Johan Dahlin <johan@gnome.org>
2283 * src/scannerlexer.l:
2284 Parse gtk-doc comments.
2286 * src/gidlwriter.c: (function_generate):
2287 Reorganize, avoid duplication and add support for
2288 writing deprecated functions.
2290 * src/scannerparser.y:
2292 Add new structure CDirective and functions to create/free them.
2294 * src/scanner.c: (g_igenerator_process_function_symbol),
2295 (g_igenerator_process_unregistered_struct_typedef),
2296 (g_igenerator_process_struct_typedef),
2297 (g_igenerator_process_union_typedef),
2298 (g_igenerator_process_enum_typedef),
2299 (g_igenerator_process_function_typedef), (g_igenerator_add_symbol),
2300 (g_igenerator_start_preprocessor):
2301 Parse @deprecated directive for functions.
2302 Remove some more C99isms.
2303 Send in -C to cpp to avoid stripping comments.
2305 * tests/parser/foo-object.h:
2306 * tests/parser/Foo-expected.gidl:
2307 Add deprecated directive
2309 2007-12-27 Johan Dahlin <johan@gnome.org>
2311 * src/scannerlexer.l (intsuffix): Add emacs mode line and
2312 escape ' and " so it looks more like C.
2315 Unlink temporary file used.
2317 2007-12-27 Johan Dahlin <johan@gnome.org>
2319 * src/scanner.c: (g_igenerator_new), (g_igenerator_free),
2320 (g_igenerator_start_preprocessor), (main):
2322 * src/scannerparser.y:
2323 Plug a couple of simple memory leaks.
2325 2007-12-27 Johan Dahlin <johan@gnome.org>
2327 * src/scanner.c: (g_igenerator_parse_macros),
2328 (g_igenerator_start_preprocessor), (g_igenerator_set_verbose),
2331 * src/scannerparser.y:
2332 * tests/parser/Makefile.am:
2334 Improve error reporting, return when the preprocessor fails.
2335 Add a verbose parameter, to aid debugging.
2336 Revert to using a temporary file to communicate between the
2337 preprocessor and the parser, because we need to wait for
2338 the exit code from the pre-processor before starting to parse.
2340 2007-12-16 Johan Dahlin <jdahlin@async.com.br>
2342 * src/Makefile.am: Rename clexer.l to scannerlexer.l and
2343 cparser.y to scannerparser.y
2345 2007-12-11 Johan Dahlin <johan@gnome.org>
2349 * src/scanner.c: (g_igenerator_new):
2351 Get rid of the global the_generator variable.
2353 2007-12-10 Johan Dahlin <johan@gnome.org>
2355 * src/scanner.c (main): Add an output option,
2356 add checks for required parameters
2359 set BUILD_SOURCES and CLEANFILES properly
2361 * src/gidlwriter.c: (g_writer_write_inline), (g_writer_write),
2362 (g_writer_write_indent), (g_writer_write_unindent),
2363 (field_generate), (value_generate), (constant_generate),
2364 (property_generate), (function_generate), (vfunc_generate),
2365 (signal_generate), (interface_generate), (struct_generate),
2366 (union_generate), (boxed_generate), (enum_generate),
2367 (node_generate), (g_writer_write_module), (g_idl_writer_save_file):
2369 * src/scanner.c: (g_igenerator_generate):
2371 * src/scannerwriter.c:
2373 Refactor scannerwriter to only be tied to a GIdlModule and move
2374 it (again!) to gidlwriter.c. Change the writer function to take
2377 2007-12-10 Johan Dahlin <johan@gnome.org>
2380 * src/scanner.c: (g_igenerator_generate):
2382 * src/scannerwriter.c: (g_igenerator_write_inline),
2383 (g_igenerator_write), (g_igenerator_write_indent),
2384 (g_igenerator_write_unindent), (field_generate), (value_generate),
2385 (constant_generate), (property_generate), (function_generate),
2386 (vfunc_generate), (signal_generate), (interface_generate),
2387 (struct_generate), (union_generate), (boxed_generate),
2388 (enum_generate), (node_generate), (module_generate),
2389 (g_scanner_write_file):
2391 Move the scanner gidl writing to a separate source file.
2393 2007-12-10 Johan Dahlin <johan@gnome.org>
2398 Move over all CType construction functions.
2400 * tests/parser/Makefile.am:
2401 Be verbose when printing parsing tests results.
2403 2007-12-10 Johan Dahlin <johan@gnome.org>
2405 * src/scanner.c (g_igenerator_start_preprocessor): Refactor
2406 preprocessor handling to here. Start cpp insteado of cc -E,
2407 always include -U__GNUC__, since it's specific to the preprocessor
2410 * tests/parser/Makefile.am (check-local): Silent diff and skip
2411 -U__GNUC__ which is always defined now
2413 2007-12-10 Johan Dahlin,,, <jdahlin@plasttroll>
2415 reviewed by: <delete if not using a buddy>
2417 * src/scanner.c: (g_igenerator_start_preprocessor), (main):
2418 * tests/parser/Makefile.am:
2420 2007-12-09 Johan Dahlin <johan@gnome.org>
2423 Use GOption for command line options.
2424 (g_igenerator_new, main): Simplify constructor and they way
2425 parameters are passed into it.
2431 * src/gen-introspect.c:
2432 * src/gen-introspect.h:
2434 Rename gen-introspect.[ch] to scanner.[ch]
2436 2007-12-09 Johan Dahlin <johan@gnome.org>
2440 * src/Makefile.am: Rename gen-introspect to g-idl-scanner,
2441 don't make the repository library and the other utilites link against
2444 * src/gen-introspect.c: (g_igenerator_create_object),
2445 (g_igenerator_create_interface), (g_igenerator_create_boxed),
2446 (g_igenerator_create_enum), (g_igenerator_create_flags),
2447 (g_igenerator_process_module_symbol),
2448 (g_igenerator_process_module), (g_igenerator_generate), (main):
2449 * src/gen-introspect.h:
2450 Refactor g_igenerator_process_types into smaller pieces.
2452 * tests/parser/Makefile.am:
2453 Depend on the gen-introspect binary
2455 2007-12-09 Johan Dahlin <johan@gnome.org>
2457 * src/gen-introspect.c (g_igenerator_process_types):
2458 Break into smaller pieces, one for each generated node type.
2460 2007-12-08 Johan Dahlin <johan@gnome.org>
2462 * src/gen-introspect.c: (g_igenerator_process_types),
2463 (g_igenerator_add_module):
2464 * tests/parser/Foo-expected.gidl:
2465 * tests/parser/foo-object.h:
2466 * tests/parser/foo.c: (foo_subobject_class_init),
2467 (foo_subobject_init):
2469 Add a subobject test and make sure to register defined classes
2470 in the lookup symbol hash table.
2472 2007-12-08 Johan Dahlin <johan@gnome.org>
2476 * src/gen-introspect.c: (g_igenerator_new), (lookup_symbol),
2477 (g_igenerator_process_types), (g_igenerator_add_module),
2478 (g_igenerator_add_include_idl), (main):
2479 * src/gen-introspect.h:
2480 * tests/parser/Makefile.am:
2481 * tests/parser/Foo-expected.gidl:
2483 Change the gen-introspect to generate namespaced module names,
2484 such as GLib.Object instead of GObject.
2485 Add a GLib.gidl which introduces GLib.Object and GLib.InitiallyUnowned,
2486 add a --include-idl parameter to gen-introspect,
2487 and update the parser test.
2489 2007-12-08 Johan Dahlin <johan@gnome.org>
2491 * src/gen-introspect.c:
2492 Move main to the end of the file and attempt to make it valid
2495 * tests/parser/Makefile.am (BUILT_SOURCES): Remove .repo here,
2496 we're not quite ready to generate metadata yet.
2501 Add a simple gen-introspect parser test
2503 2007-12-06 Gustavo J. A. M. Carneiro <gjc@gnome.org>
2505 reviewed by: Johan Dahlin <johan@gnome.org>
2508 * gobject-introspection.pc.in:
2510 * src/compiler.c: (format_output), (write_out_metadata), (main):
2511 * src/gen-introspect.c: (main):
2512 * src/gen-introspect.h:
2513 * src/generate.c: (write_callable_info), (write_repository),
2514 (load_metadata), (main):
2515 * src/gidlmodule.c: (g_idl_module_new),
2516 (g_idl_module_build_metadata):
2518 * src/gidlparser.c: (start_element_handler):
2519 * src/ginfo.c: (g_info_new), (g_info_from_entry),
2520 (g_base_info_get_name), (g_base_info_get_namespace),
2521 (g_base_info_is_deprecated), (g_base_info_get_annotation),
2522 (g_base_info_get_metadata), (g_function_info_get_symbol),
2523 (g_function_info_get_flags), (g_function_info_get_property),
2524 (g_function_info_get_vfunc), (signature_offset), (g_type_info_new),
2525 (g_callable_info_may_return_null),
2526 (g_callable_info_get_caller_owns), (g_callable_info_get_n_args),
2527 (g_callable_info_get_arg), (g_arg_info_get_direction),
2528 (g_arg_info_is_return_value), (g_arg_info_is_dipper),
2529 (g_arg_info_is_optional), (g_arg_info_may_be_null),
2530 (g_arg_info_get_ownership_transfer), (g_type_info_is_pointer),
2531 (g_type_info_get_tag), (g_type_info_get_param_type),
2532 (g_type_info_get_interface), (g_type_info_get_array_length),
2533 (g_type_info_is_zero_terminated),
2534 (g_type_info_get_n_error_domains), (g_type_info_get_error_domain),
2535 (g_error_domain_info_get_quark), (g_error_domain_info_get_codes),
2536 (g_value_info_get_value), (g_field_info_get_flags),
2537 (g_field_info_get_size), (g_field_info_get_offset),
2538 (g_registered_type_info_get_type_name),
2539 (g_registered_type_info_get_type_init),
2540 (g_struct_info_get_n_fields), (g_struct_info_get_field),
2541 (g_struct_info_get_n_methods), (g_struct_info_get_method),
2542 (find_method), (g_struct_info_find_method),
2543 (g_enum_info_get_n_values), (g_enum_info_get_value),
2544 (g_object_info_get_parent), (g_object_info_get_type_name),
2545 (g_object_info_get_type_init), (g_object_info_get_n_interfaces),
2546 (g_object_info_get_interface), (g_object_info_get_n_fields),
2547 (g_object_info_get_field), (g_object_info_get_n_properties),
2548 (g_object_info_get_property), (g_object_info_get_n_methods),
2549 (g_object_info_get_method), (g_object_info_find_method),
2550 (g_object_info_get_n_signals), (g_object_info_get_signal),
2551 (g_object_info_get_n_vfuncs), (g_object_info_get_vfunc),
2552 (g_object_info_get_n_constants), (g_object_info_get_constant),
2553 (g_interface_info_get_n_prerequisites),
2554 (g_interface_info_get_prerequisite),
2555 (g_interface_info_get_n_properties),
2556 (g_interface_info_get_property), (g_interface_info_get_n_methods),
2557 (g_interface_info_get_method), (g_interface_info_find_method),
2558 (g_interface_info_get_n_signals), (g_interface_info_get_signal),
2559 (g_interface_info_get_n_vfuncs), (g_interface_info_get_vfunc),
2560 (g_interface_info_get_n_constants),
2561 (g_interface_info_get_constant), (g_property_info_get_flags),
2562 (g_signal_info_get_flags), (g_signal_info_get_class_closure),
2563 (g_signal_info_true_stops_emit), (g_vfunc_info_get_flags),
2564 (g_vfunc_info_get_offset), (g_vfunc_info_get_signal),
2565 (g_constant_info_get_value), (g_union_info_get_n_fields),
2566 (g_union_info_get_field), (g_union_info_get_n_methods),
2567 (g_union_info_get_method), (g_union_info_is_discriminated),
2568 (g_union_info_get_discriminator_offset),
2569 (g_union_info_get_discriminator):
2570 * src/ginvoke.c: (g_function_info_invoke):
2571 * src/girepository.c: (g_irepository_register),
2572 (g_irepository_unregister), (g_irepository_get_default),
2573 (count_interfaces), (g_irepository_get_n_infos), (find_interface),
2574 (g_irepository_get_info), (g_irepository_find_by_name),
2575 (g_irepository_get_shared_library),
2576 (g_irepository_build_search_path), (g_irepository_register_file),
2577 (g_irepository_error_quark):
2578 * src/girepository.h:
2579 * src/gmetadata.c: (g_metadata_get_dir_entry),
2580 (g_metadata_check_sanity), (validate_header),
2581 (validate_array_type_blob), (validate_iface_type_blob),
2582 (validate_param_type_blob), (validate_error_type_blob),
2583 (validate_type_blob), (validate_arg_blob),
2584 (validate_signature_blob), (validate_function_blob),
2585 (validate_callback_blob), (validate_constant_blob),
2586 (validate_value_blob), (validate_field_blob),
2587 (validate_property_blob), (validate_signal_blob),
2588 (validate_vfunc_blob), (validate_struct_blob),
2589 (validate_enum_blob), (validate_object_blob),
2590 (validate_interface_blob), (validate_errordomain_blob),
2591 (validate_union_blob), (validate_blob), (validate_directory),
2592 (validate_annotations), (g_metadata_validate), (_g_metadata_init),
2593 (g_metadata_new_from_memory), (g_metadata_new_from_const_memory),
2594 (g_metadata_new_from_mapped_file), (g_metadata_free),
2595 (g_metadata_set_module), (g_metadata_get_namespace):
2597 * tests/Makefile.am:
2598 * tests/invoke/Makefile.am:
2599 * tests/invoke/invoke-namespace-find.sh:
2600 * tests/invoke/invoke.c: (main):
2602 Add a namespace/shared library mapping. fixes #313268.
2604 2007-12-03 Johan Dahlin <johan@gnome.org>
2606 * src/gidlparser.c (parse_type_internal): Disable char/gchar and
2609 2007-11-30 Jürg Billeter <j@bitron.ch>
2615 * src/gen-introspect.c: (g_idl_node_cmp), (g_igenerator_new),
2616 (g_igenerator_write_inline), (g_igenerator_write),
2617 (g_igenerator_write_indent), (g_igenerator_write_unindent),
2618 (field_generate), (value_generate), (constant_generate),
2619 (property_generate), (function_generate), (vfunc_generate),
2620 (signal_generate), (interface_generate), (struct_generate),
2621 (union_generate), (boxed_generate), (enum_generate),
2622 (node_generate), (module_generate), (get_type_from_type_id),
2623 (str_replace), (g_igenerator_process_properties),
2624 (g_igenerator_process_signals), (g_igenerator_process_types),
2625 (get_type_from_ctype), (g_igenerator_process_function_symbol),
2626 (g_igenerator_process_unregistered_struct_typedef),
2627 (g_igenerator_process_struct_typedef),
2628 (g_igenerator_process_union_typedef),
2629 (g_igenerator_process_enum_typedef),
2630 (g_igenerator_process_function_typedef),
2631 (g_igenerator_process_constant), (g_igenerator_process_symbols),
2632 (g_igenerator_add_symbol), (g_igenerator_is_typedef),
2633 (g_igenerator_generate), (main), (csymbol_new),
2634 (csymbol_get_const_boolean), (ctype_new), (ctype_copy),
2635 (cbasic_type_new), (ctypedef_new), (cstruct_new), (cunion_new),
2636 (cenum_new), (cpointer_new), (carray_new), (cfunction_new),
2637 (eat_hspace), (eat_line), (read_identifier),
2638 (g_igenerator_parse_macros):
2639 * src/gen-introspect.h:
2641 Import gen-introspect to generate introspection information by
2644 2007-11-30 Jürg Billeter <j@bitron.ch>
2646 * src/gidlnode.c: (g_idl_node_new): support creating callback nodes
2648 2007-11-30 Jürg Billeter <j@bitron.ch>
2650 * src/gidlparser.c: (end_element_handler): Don't leave requires
2653 2007-11-29 Johan Dahlin <johan@gnome.org>
2655 * src/gidlparser.c (parse_type_internal): Add char,
2656 gchar and guchar to the builtin types.
2658 2007-11-26 Johan Dahlin <johan@gnome.org>
2660 * src/ginfo.c: (g_object_info_get_type_name),
2661 (g_object_info_get_type_init):
2662 * src/girepository.c: (g_irepository_is_registered):
2663 * src/girepository.h:
2665 Add g_object_info_get_type_name, g_object_info_get_type_init and
2666 g_irepository_is_registered.
2668 2006-08-14 Jürg Billeter <j@bitron.ch>
2670 * src/gidlparser.c: (end_element_handler): Don't leave
2671 namespace and implements states too early.
2674 2007-11-26 Johan Dahlin <johan@gnome.org>
2676 * src/gmetadata.c (validate_struct_blob):
2677 pass blob_type to validate_function_blob instead of
2678 hard-coding BLOB_TYPE_STRUCT.
2680 Patch by Torsten Schoenfeld, fixes #314190
2682 2006-10-03 Torsten Schoenfeld <tsch@cvs.gnome.org>
2684 * src/compiler.c, src/generate.c, src/gidlnode.c,
2685 src/gidlparser.c, src/ginfo.c, src/girepository.c,
2686 tests/invoke/invoke.c, test/invoke/testfns.c: Hush compiler
2687 warnings about return values, signedness mismatches, unused
2688 variables, and unhandles enum values in switch statements.
2690 * tests/invoke/Makefile.am: Don't install the invoke test program.
2691 Add -I ../../src to the cflags used for the test functions files.
2693 2005-08-31 Torsten Schoenfeld <tsch@cvs.gnome.org>
2695 * src/girepository.h: Export g_invoke_error_quark.
2697 2005-08-31 Torsten Schoenfeld <tsch@cvs.gnome.org>
2699 * src/ginvoke.c: Remove the fallback implementation of
2700 g_function_info_invoke since we now formally depend on libffi.
2702 2005-07-25 Matthias Clasen <mclasen@redhat.com>
2704 * src/Makefile, tests/Makefile, tests/invoke/Makefile:
2705 Remove these files from cvs, as they are now generated.
2707 * src/gmetadata.c (validate_iface_type_blob): Don't
2708 complain if blob->pointer is not set, since that
2709 happens for enum and flag types. (#308935, Gustavo
2712 * Commit an autoconf-conversion patch by
2713 Gustavo Carneiro (#308708)
2715 2005-05-24 Matthias Clasen <mclasen@redhat.com>
2717 * src/compiler.c (main): Use it here to validate
2718 the generated metadata.
2720 * src/gmetadata.[hc]: Add code to validate a
2723 * metadata-format.txt: Updates
2725 2005-05-22 Matthias Clasen <mclasen@redhat.com>
2727 * tests/*: Add struct offsets to field and vfunc
2730 * src/generate.c (write_vfunc_info): Write offset
2731 information for vfuncs.
2733 * src/gidlnode.c (g_idl_node_build_metadata): Write
2734 the struct offsets into the metadata.
2736 * src/gidlparser.c: Parse the offset attributes of
2737 field and vfunc elements.
2739 * src/gidlnode.h: Add offset members to field and
2742 2005-05-21 Matthias Clasen <mclasen@redhat.com>
2746 * gidl.dtd: Updates.
2748 * src/g-idl-offsets.pl: A perl script which reads a .gidl
2749 file, creates, compiles and runs a C file, and folds the
2750 resulting struct offsets back into the .gidl file.
2752 2005-05-20 Matthias Clasen <mclasen@redhat.com>
2754 * src/gidlparser.c (start_field): Make fields in objects
2757 * src/gidlmodule.c: Include string.h
2762 * metadata-format.txt: Cleanup basic types.
2763 * src/*: Adapt to the changes.
2764 * tests/*: Adapt to the changes.
2765 * examples/gdk-pixbuf.gidl: Adapt to the changes.
2767 * src/gidlnode.c (g_idl_node_get_size): Report the correct
2768 size for enum blobs.
2769 (g_idl_node_get_full_size): Report the correct size for
2772 * src/gidlmodule.c (g_idl_module_build_metadata): Add some
2773 error checking for blob sizes.
2775 2005-05-19 Matthias Clasen <mclasen@redhat.com>
2777 * src/gidlnode.c (g_idl_node_build_metadata): Correctly handle
2778 interface types for which is_pointer is FALSE, e.g. enums.
2780 * src/gidlnode.c (g_idl_node_get_full_size)
2781 * src/gidlparser.c (parse_type_internal):
2782 * src/generate.c (write_type_info): Support unspecialized
2783 lists, hashtables and errors. Also emit a '*' after these.
2787 2005-05-17 Matthias Clasen <mclasen@redhat.com>
2791 * metadata-format.txt: Cleanups by Maciej Katafiasz.
2793 2005-05-15 Matthias Clasen <mclasen@redhat.com>
2795 * src/*.c: Change the directory to be addressed by
2796 1-based indexes, and use an index of zero to mean
2799 2005-05-15 Matthias Clasen <mclasen@redhat.com>
2801 * tests/roundtrips.sh (SIMPLE_TESTS): Add union.test.
2803 * tests/union.test: Add a union test.
2805 * src/generate.c: Handle unions.
2807 * src/girepository.h:
2808 * src/ginfo.c: Add GIUnionInfo and functions to access it.
2810 * src/gidlnode.c: Handle GIdlNodeUnion nodes.
2812 * src/gidlparser.c (start_union): Parse <union> elements.
2814 * src/gidlnode.h: Add a GIdlNodeUnion.
2816 * gidl.dtd: Add a <union> element.
2818 * src/gmetadata.c (g_metadata_check_sanity): Check
2821 * src/gmetadata.h: Add union_blob_size to Header,
2824 * metadata-format.txt: Add a UnionBlob.
2826 2005-05-13 Matthias Clasen <mclasen@redhat.com>
2828 * tests/*: Update testcases.
2830 * src/generate.c (write_callable_info): Don't forget to
2831 write transfer and null-ok attributes for return types
2834 * src/girepository.h:
2835 * src/ginfo.c (g_callable_info_may_return_null):
2836 New function to find out if a function may return NULL.
2838 * src/compiler.c (format_output): Make the generated
2841 * README: Point to a recent libffi snapshot.
2843 * tests/invoke/*: Some invoke tests.
2845 * src/Makefile: Add ginvoke.c and the necessary
2848 * src/girepository.h (g_function_info_invoke): Add
2851 * src/ginvoke.c (g_function_info_invoke): Initial
2852 implementation of invoke functionality based on libffi.
2854 * src/gidlnode.c (g_idl_node_build_metadata): Pass the
2855 strings and types hash tables in the right order when
2857 (find_entry_node): Free the name parts.
2859 2005-05-12 Johan Dahlin <johan@gnome.org>
2861 * src/generate.c: Generate consistent end tags.
2865 2005-05-12 Matthias Clasen <mclasen@redhat.com>
2869 * src/gidlparser.c (start_function): Actually add
2870 methods to objects. (Steven Walter)
2872 * src/girepository.h:
2873 * src/ginfo.c: Rename Transfer and Direction to
2874 GITransfer and GIDirection. (Torsten Schoenfeld)
2876 * tests/*: Make tests work with the changes in name
2879 * src/gidlnode.c (find_entry_node): Parse qualified
2880 names and generate xref nodes for them if needed. Don't
2881 require all modules to be loaded any more.
2883 * src/gidlmodule.c (g_idl_module_build_metadata): Choke
2886 * src/ginfo.c (g_object_info_get_parent): Return NULL
2887 if blob->parent is 0. Still need to make sure index
2890 * src/generate.c: Generate qualified names when
2891 referring to non-local types. Emit transfer attribute
2894 * src/compiler.c (format_output): Put the function
2895 attributes where gcc accepts them.
2897 2005-05-11 Matthias Clasen <mclasen@redhat.com>
2899 * src/compiler.c (main): Add a --verbose cmdline option
2900 and only log messages if it is specified.
2903 * src/gidlnode.c (init_stats, dump_stats): Collect some
2904 statistics on string and type sharing.
2906 * src/gidlmodule.c (g_idl_module_build_metadata): Use
2907 g_message() instead of fprintf().
2909 * src/gidlnode.c (g_idl_node_free): Make this more robust.
2910 (g_idl_node_get_size): Implement for structs.
2911 (g_idl_node_get_full_size): Handle parent being NULL.
2912 (serialize_type): Handle lookup failures more gracefully.
2914 2005-05-10 Matthias Clasen <mclasen@redhat.com>
2916 * src/gidlnode.c (g_idl_node_get_full_size): Correct the
2917 size calculation for 2-parameter types and for objects.
2919 * src/compiler.c: Add a cmdline option for debug output
2920 and install a log handler to implement it.
2921 * src/gidlnode.c: Add some debug spew.
2925 * src/gidlmodule.c (g_idl_module_build_metadata): Don't
2926 forget to count the module name when calculating the
2927 required size for the metadata.
2930 * src/gidlparser.c: Fix compiler warnings.
2932 2005-05-09 Matthias Clasen <mclasen@redhat.com>
2934 * src/compiler.c (main): Free the option context.
2936 * gidl.dtd: Clean up handling of names. All elements
2937 have a "name", only the elements corresponding to
2938 actual callable functions (function, method, constructor),
2939 have an additional "symbol" attribute holding the
2940 dlsym()-able function name.
2942 * src/generate.c: Adapt to generate xml matching the
2946 * src/gidlnode.c: Adapt to parse the new dtd.
2948 * tests/*.test: Adjust to the new dtd.
2950 * metadata-format.txt:
2951 * src/gmetadata.h: Remove the short_name field
2953 * src/gmetadata.c: Shrink size of ValueBlob to 12.
2954 * src/girepository.h:
2955 * src/ginfo.c (g_value_info_get_short_name): Removed
2957 2005-05-09 Matthias Clasen <mclasen@redhat.com>
2959 * gidl.dtd: Allow constructors for boxed types,
2960 patch by Jonathan Blandford.
2963 2005-05-09 Matthias Clasen <mclasen@redhat.com>
2965 * --- Initial import ---