Fix unref sequence.
[platform/upstream/gobject-introspection.git] / ChangeLog
1 2008-08-22  Colin Walters  <walters@verbum.org>
2
3         * tools/generate.c (write_callable_info): Fix unref
4         sequence.
5
6 2008-08-22  Colin Walters  <walters@verbum.org>
7
8         * gobject-introspection-1.0.pc.in: Add g-ir-generate.
9         * tests/Makefile.am: Support $(DEBUG)
10         * tools/generate.c: Do immediate close tags if no
11         sub-elements.
12
13 2008-08-21  Colin Walters  <walters@verbum.org>
14
15         * tests/scanner/drawable-expected.gir,
16         * tests/scanner/drawable.c,
17         * tests/scanner/drawable.h:
18         Add a method.
19
20 2008-08-21  Colin Walters  <walters@verbum.org>
21
22         * giscanner/glibtransformer.py: Compute prefix
23         by searching through the symbol for bits
24         rather than going directly from ctype; this fixes
25         webkit_ namespace.
26
27 2008-08-21  Colin Walters  <walters@verbum.org>
28
29         * giscanner/glibtransformer.py: Also try squashing
30         underscores from namespace, fixes webkit_web_view_new.
31
32 2008-08-21  Colin Walters  <walters@verbum.org>
33
34         * giscanner/glibtransformer.py: More ctor work,
35         avoid having gtk_window_group_new end up under
36         GtkWindow.
37
38 2008-08-21  Colin Walters  <walters@verbum.org>
39
40         * giscanner/glibtransformer.py: Much simpler approach
41         of mapping uscored names to classes.
42         * giscanner/utils.py: Remove unnecessary function.
43
44 2008-08-21  Johan Dahlin  <johan@gnome.org>
45
46         * girepository/girepository.c (g_irepository_require):
47         Plug memory leak and avoid using freed memory.
48         Resolve the whole module path, here as well.
49
50 2008-08-21  Colin Walters  <walters@verbum.org>
51
52         * giscanner/glibtransformer.py: Look up all permutations
53         of class names when scanning methods/ctors based on
54         the prefix instead of using the return value.  This
55         associates gtk_window_new with the right class.
56
57 2008-08-21  Colin Walters  <walters@verbum.org>
58
59         * girepository/girmodule.c (g_ir_module_build_typelib): 
60         Revert change to increment header_size; we do that in
61         write_string.
62
63 2008-08-21  Colin Walters  <walters@verbum.org>
64
65         * girepository/girnode.c (write_string): Tweak to
66         use UINT instead of INT.  Not likely to matter.
67         * girepository/girmodule.c (g_ir_module_build_typelib):
68         Add to header_offset as well for header strings
69         to match what write_string does.
70         * girepository/gtypelib.c: Replace is_name with
71         validate_name, which more strongly validates and
72         handles errors in a better way.  Update all callers.
73         * giscanner/glibtransformer.py: Handle constructors
74         better.
75
76 2008-08-21  Johan Dahlin  <johan@gnome.org>
77
78         * gir/Makefile.am (typelibs_DATA): Build and 
79         install the Gio.typelib too
80
81         * girepository/gtypelib.c (_g_typelib_init):
82         Use g_module_build_path to resolve the shlib name
83
84 2008-08-21  Colin Walters  <walters@verbum.org>
85
86         * gir/Makefile.am: CLEANFILES typelibs too.
87
88 2008-08-21  Johan Dahlin  <johan@gnome.org>
89
90         * giscanner/glibtransformer.py:
91         Do not send .la files through find_library.
92
93 2008-08-21  Colin Walters  <walters@verbum.org>
94
95         * girepository/girparser.c (g_irepository_require):
96         Fix one small leak in error case.
97
98 2008-08-21  Johan Dahlin  <johan@gnome.org>
99
100         * gir/Makefile.am:
101         Parse glibconfig.h as well and install the compiled
102         typelib
103
104 2008-08-21  Johan Dahlin  <johan@gnome.org>
105
106         * gir/Makefile.am:
107         * giscanner/glibtransformer.py:
108         * tools/g-ir-scanner:
109         Do not hard-core library names in the Makefile, reuse
110         ctypes find_library instead.
111
112 2008-08-21  Johan Dahlin  <johan@gnome.org>
113
114         * girepository/girparser.c (resolve_aliases):
115         Remove compilation warnings
116
117 2008-08-21  Johan Dahlin  <johan@gnome.org>
118
119         * girepository/girepository.c (g_irepository_require):
120         Rewrap and fix double free bug by leaking a bit.
121
122 2008-08-20  Colin Walters  <walters@verbum.org>
123
124         * girepository/girepository.c: Add new function
125         g_irepository_get_typelib_path which tells
126         us from where we loaded a namespace.
127
128 2008-08-20  Colin Walters  <walters@verbum.org>
129
130         * tests/scanner/*-expected.gir: Adjust for
131         added shared-library.
132         * giscanner/giwriter.py: Make pylint happy.
133
134 2008-08-20  Colin Walters  <walters@verbum.org>
135
136         * girepository/girmodule.c (g_ir_module_build_typelib):
137         Calculate size correctly, avoid use-after-free.
138
139 2008-08-20  Colin Walters  <walters@verbum.org>
140
141         * girepository/girepository.c: Remove
142         g_irepository_register_file in favor of
143         g_irepository_require.  There are two
144         possible deployment scenarios for typelibs:
145         First, separate in $DATADIR/gitypelibs/.  Second,
146         they may be embedded in shlibs.  However since
147         the first is now the normal case, the API is
148         optimized around it.
149
150         Refactor internals to look up typelibs for
151         namespaces just-in-time, but we expect
152         consumers to call g_irepository_require.
153
154         Also, add some docs.  No one has died from that
155         before.
156         * gir/Makefile.am: Need --library for glib.
157         * giscanner/girwriter.py: Write out shared-library.
158         * tools/g-ir-writer: Take the first --library
159         argument as the target of shared-library.  In
160         the future we should make this nicer with pkg-config
161         probably.
162
163 2008-08-20  Colin Walters  <walters@verbum.org>
164
165         * girepository/girparser.py: And parse them.
166
167 2008-08-20  Johan Dahlin  <johan@gnome.org>
168
169         * giscanner/glibast.py: Add gshort/gushort types
170
171 2008-08-20  Colin Walters  <walters@verbum.org>
172
173         * gir/Makefile.am: Rename .gir files using GI namespace.
174         * girepository/girepository.c: Use XDG_DATA_DIRS for
175         looking up typelibs.  Also typelibs are now suffixed
176         with .typelib.
177         * tests/invoke/Makefile.am: Only use metadata.
178         * girepository/Makefile.am: Remove unnecessary include.
179         * tests/scanner/Makefile.am: Update using GI namespaces
180         for scanner includes.
181
182 2008-08-20  Colin Walters  <walters@verbum.org>
183
184         * girepository/transformer.py: Suppress aliases whose
185         name is a builtin.
186         * girepository/ast.py: Define some more aliases.
187
188 2008-08-20  Colin Walters  <walters@verbum.org>
189
190         * girepository/girparser.c: Avoid alias infloops.
191
192 2008-08-20  Colin Walters  <walters@verbum.org>
193
194         * tests/scanner/foo-expected.gir: Fix expected list type.
195
196 2008-08-20  Johan Dahlin  <johan@gnome.org>
197
198         * giscanner/glibtransformer.py (GLibTransformer._resolve_type_name): 
199         Add a workaround for #548689.
200         We can now compile gtk!
201
202 2008-08-20  Colin Walters  <walters@verbum.org>
203
204         * giscanner/glibtransformer.py: Try to look up
205         aliases using the c:type too.
206
207 2008-08-20  Colin Walters  <walters@verbum.org>
208
209         * girepository/girparser.c: Parse union fields.
210
211 2008-08-20  Johan Dahlin  <johan@gnome.org>
212
213         * giscanner/ast.py: Make time_t an alias for long
214
215         * gir/gio-2.0-good.gir:
216         * gir/glib-2.0-good.gir:
217         * gir/gobject-2.0-good.gir:
218         Regnerate
219         * giscanner/glibtransformer.py:
220         Do not delete Class structures, we need them in gdk/gtk.
221         * tests/scanner/drawable-expected.gir:
222         * tests/scanner/foo-expected.gir:
223         * tests/scanner/utility-expected.gir:
224         Update tests.
225
226 2008-08-20  Johan Dahlin  <johan@gnome.org>
227
228         * tests/scanner/Makefile.am:
229         * tests/scanner/annotation-expected.gir:
230         * tests/scanner/annotation.c (annotation_object_class_init),
231         (annotation_object_init), (annotation_object_method),
232         (annotation_object_in), (annotation_object_out),
233         (annotation_object_inout), (annotation_object_inout2),
234         (annotation_object_inout3), (annotation_object_calleeowns),
235         (annotation_object_calleesowns), (annotation_object_get_strings),
236         (annotation_object_with_voidp), (annotation_object_get_objects),
237         (annotation_object_create_object), (annotation_object_allow_none):
238         * tests/scanner/annotation.h:
239         * tests/scanner/foo-expected.gir:
240         * tests/scanner/foo.c:
241         * tests/scanner/foo.h:
242         Split out annotation tests out of foo
243
244 2008-08-20  Johan Dahlin  <johan@gnome.org>
245
246         * tests/scanner/Foo-expected.gir:
247         * tests/scanner/Makefile.am:
248         * tests/scanner/foo-expected.gir:
249         * tests/scanner/foo-object.h:
250         * tests/scanner/foo.c:
251         Foo->foo, foo-object.h -> foo.h
252
253 2008-08-20  Johan Dahlin  <johan@gnome.org>
254
255         * tests/scanner/Foo-expected.gir:
256         * tests/scanner/Makefile.am:
257         * tests/scanner/drawable-expected.gir:
258         * tests/scanner/drawable.c (test_drawable_class_init),
259         (test_drawable_init):
260         * tests/scanner/drawable.h:
261         * tests/scanner/foo-object.h:
262         * tests/scanner/foo.c (foo_boxed_method):
263         Move the drawable parts out of Foo to its own test.
264
265 2008-08-20  Johan Dahlin  <johan@gnome.org>
266
267         * tests/scanner/Foo-expected.gir:
268         * tests/scanner/foo-object.h:
269         * tests/scanner/foo.c (foo_drawable_class_init),
270         (foo_drawable_init):
271         Add a based on GdkDrawable which generates
272         a broken gir.
273
274 2008-08-19  Colin Walters  <walters@verbum.org>
275
276         * giscanner/transformer.py: Don't try
277         to strip prefix before namespace.
278
279 2008-08-19  Johan Dahlin  <johan@gnome.org>
280
281         * giscanner/transformer.py:
282         * tests/scanner/Foo-expected.gir:
283         * tests/scanner/foo-object.h:
284         Add support for typedef void foo type of
285         aliases.
286
287 2008-08-19  Johan Dahlin  <johan@gnome.org>
288
289         * giscanner/ast.py:
290         * giscanner/girwriter.py:
291         * giscanner/glibtransformer.py:
292         * giscanner/transformer.py:
293         * tests/scanner/Foo-expected.gir:
294         Add basic support for union, base the code much
295         on Struct. Add a testcase.
296
297 2008-08-19  Johan Dahlin  <johan@gnome.org>
298
299         * tests/scanner/Foo-expected.gir:
300         * tests/scanner/foo-object.h:
301         Add a union testcase which the compiler currently
302         barfs at.
303
304 2008-08-19  Johan Dahlin  <johan@gnome.org>
305
306         * gobject-introspection-1.0.pc.in:
307         Add a g_ir_compiler variable
308
309 2008-08-19  Colin Walters  <walters@verbum.org>
310
311         * giscanner/ast.py: Rework types to be more closely
312         based on GITypeTag.
313         * giscanner/girparser.py: Parse more bits.
314         * giscanner/girwriter.py: Write sequences in a new
315         way that specifies container type.
316         * giscanner/glibast.py: Adjust for ast.py changes,
317         add 'ctype' property to GLibObject and GLibInterface
318         so we can look things up by it later.
319         * gicanner/transformer.py: Names is new class holding
320         the various namespaces we manage.  Do not confuse
321         with Namespace which is toplevel XML node effectively.
322         Rework all type resolution to go through
323         _resolve_type_name_1.
324         * giscanner/glibtransformer.py: Raise UnknownTypeError
325         instead of ValueError for cleanliness.  Add Unresolved
326         class to mark types whose parent we haven't seen yet.
327         Use new Names object from transformer.py.
328         Correctly look up parent=.
329         Fix type validation to handle sequences.
330         * tests/scanner/Foo-expected.gir: Update for sequence
331         work, int instead of int32.
332         * tools/g-ir-scanner: Add --noclosure option
333         * gir/Makefile.am: Use --noclosure by default for
334         GLib/GObject.
335
336 2008-08-18  Johan Dahlin  <johan@gnome.org>
337
338         * gir/gio-2.0-good.gir:
339         * gir/glib-2.0-good.gir:
340         * gir/gobject-2.0-good.gir:
341         Regenerate.
342
343 2008-08-18  Johan Dahlin  <johan@gnome.org>
344
345         * giscanner/ast.py:
346         * giscanner/girparser.py:
347         * giscanner/girwriter.py:
348         * giscanner/glibast.py:
349         * giscanner/glibtransformer.py:
350         * giscanner/transformer.py:
351         * tests/scanner/Foo-expected.gir:
352         * tests/scanner/foo-object.h:
353         * tests/scanner/utility-expected.gir:
354         * tests/scanner/utility.h:
355         Redo type resolving and validation.
356         Add a couple of new tests.
357         Patch mostly written by Colin.
358
359 2008-08-18  Johan Dahlin  <johan@gnome.org>
360
361         * gir/Makefile.am:
362         * giscanner/girparser.py:
363         Set ctype of enums
364         * giscanner/transformer.py:
365         Improve enum parsing for enums without a GType.
366         Make flags/enum references to other girs work
367         * giscanner/utils.py:
368         Simplify this a bit
369         * tests/scanner/Makefile.am:
370         * tests/scanner/foo-object.h:
371         * tests/scanner/utility-expected.gir:
372         * tests/scanner/utility.h:
373         Add a new test for external enum references
374
375 2008-08-18  Johan Dahlin  <johan@gnome.org>
376
377         * docs/global-module-registry.txt: Update
378
379         * tests/array.gir: Update with new type proposal
380
381         * girepository/girepository.c (g_type_tag_to_string):
382         * girepository/girepository.h:
383         * girepository/girnode.c (g_ir_node_get_full_size_internal),
384         (find_entry_node):
385         * girepository/girnode.h:
386         Make enum serializing functions public. Clean up some whitespace.
387
388 2008-08-17  Johan Dahlin  <johan@gnome.org>
389
390         * docs/global-module-registry.txt:
391         Add a document for an on disk module registry format
392
393 2008-08-17  Johan Dahlin  <johan@gnome.org>
394
395         * gir/Makefile.am:
396         * gir/gio-2.0-good.gir:
397         Add a gio gir.
398
399 2008-08-17  Johan Dahlin  <johan@gnome.org>
400
401         * gir/Makefile.am:
402         * gir/glib-2.0-good.gir:
403         * gir/gobject-2.0-good.gir:
404         * giscanner/cgobject.py:
405         * giscanner/glibtransformer.py:
406         Regenerate GObject & GType.
407         Avoid warnings when generating gobject-2.0.gir.
408         Introspect a little more, and skip *_get_type functions.
409
410 2008-08-17  Colin Walters  <walters@verbum.org>
411
412         * gir/glib-2.0.gir, gir/gobject-2.0.gir:
413         Rename to -good, always generate during build.
414         * gir/Makefile.am: Ensure .gir files dep on
415         all scanner sources.
416         * Makefile.am: Switch build order to ensure
417         the scanner is ready before we do gir/.
418         * tools/g-ir-scanner: Look for .git too.
419
420 2008-08-17  Johan Dahlin  <johan@gnome.org>
421
422         * girepository/gtypelib.c (validate_enum_blob):
423         * giscanner/glibtransformer.py:
424         * giscanner/transformer.py:
425         Remove resolve_possible_typedefs, it was unused.
426         Allow multiple enum values of the sample value in an enum,
427         since it's actually pretty common.
428         Register enums so they can be resolved too.
429
430 2008-08-16  Johan Dahlin  <johan@gnome.org>
431
432         * giscanner/girparser.py:
433         Parse enumeration/bitfield.
434
435 2008-08-16  Johan Dahlin  <johan@gnome.org>
436
437         * giscanner/girparser.py:
438         Parse boxed types.
439
440 2008-08-16  Johan Dahlin  <johan@gnome.org>
441
442         * giscanner/glibtransformer.py:
443         Resolve type names for alias targets
444         * giscanner/transformer.py:
445         Skip FILE* parameters fow now
446
447 2008-08-16  Johan Dahlin  <johan@gnome.org>
448
449         * gir/glib-2.0.gir:
450         * gir/gobject-2.0.gir:
451         Regenerate
452
453         * tests/scanner/Makefile.am:
454         parser -> scanner
455
456 2008-08-15  Colin Walters  <walters@verbum.org>
457
458         * giscanner/glibtransformer.py: Explicitly construct
459         new list, since we're deleting as we iterate.
460         Don't delete all structures which end in Class; just
461         ones which have a paired GObject.
462         Fix printing of type warning.
463         * giscanner/transformer.py: Make strip_namespace_object
464         be the identity function if it doesn't match the 
465         namespace.
466
467 2008-08-15  Colin Walters  <walters@verbum.org>
468
469         * giscanner/cgobject.py: Define yet more argument
470         prototypes; fix prototype for g_type_fundamental.
471
472 2008-08-14  Johan Dahlin  <johan@gnome.org>
473
474         * tests/Makefile.am:
475         * tests/constant.gir:
476         * tests/gobject.gir:
477         * tests/struct.gir:
478         * tools/generate.c (write_struct_info):
479         Fix generator for constant/gobject/struct
480
481 2008-08-14  Johan Dahlin  <johan@gnome.org>
482
483         * tests/Makefile.am:
484         * tests/enum.gir:
485         * tools/generate.c (write_enum_info):
486         Fix generation of enum/bitfields
487
488 2008-08-14  Johan Dahlin  <johan@gnome.org>
489
490         * girepository/girparser.c (start_field), (start_constant),
491         (start_type), (end_element_handler):
492         Clear up constant parsing
493
494         * tests/object.gir:
495         Update
496
497         * tools/generate.c (write_callable_info), (write_function_info),
498         (write_callback_info), (write_constant_info), (write_signal_info),
499         (write_vfunc_info), (write_property_info), (write_object_info),
500         (write_interface_info):
501         Constants/Signals are handled now.
502
503 2008-08-14  Johan Dahlin  <johan@gnome.org>
504
505         * girepository/girparser.c (start_type):
506         Don't require c:type.
507         * tests/Makefile.am:
508         Test boxed.gir
509         * tests/boxed.gir:
510         Update, remove parts we don't support yet
511         * tests/roundtrips.sh:
512         Remove
513         * tools/generate.c (write_type_info), (write_field_info),
514         (write_callable_info), (write_struct_info):
515         Make it emit proper gir.
516
517 2008-08-14  Johan Dahlin  <johan@gnome.org>
518
519         * giscanner/transformer.py:
520         New internal function for adding a new node.
521
522 2008-08-14  Johan Dahlin  <johan@gnome.org>
523
524         * gir/Makefile.am:
525         Define an internal _H_ variable so we skip parsing both
526         i18n headers, only one is needed.
527         * gir/glib-2.0.gir:
528         Add the glib-2.0.gir too.
529         * giscanner/glibast.py:
530         Add gconstpointer as an alias for ANY
531         * giscanner/transformer.py:
532         Do not lower case enumeration names per se.
533         Skip functions which has parameters called 'va_list'
534
535 2008-08-14  Colin Walters  <walters@verbum.org>
536
537         * giscanner/transformer.py: Comment data structures.
538         Also squash pointers in resolve_type_name to correspond
539         with what we do for params.
540         * giscanner/glibtransformer.py: Print warnings in more
541         situations.  Rework checks for method/constructor to
542         look up in our GType database instead of just checking
543         for *.   Avoid generating <record> for GObject which
544         duplicate the <class>.
545         * gir/Makefile.am: Generate glib-2.0.gir and gobject-2.0.gir
546         in here.
547
548 2008-08-14  Johan Dahlin  <johan@gnome.org>
549
550         * giscanner/girwriter.py:
551         * giscanner/glibast.py:
552         * giscanner/glibtransformer.py:
553         * giscanner/transformer.py:
554         * misc/pyflakes.py:
555         * tests/Makefile.am:
556         Add pyflakes.py and run it in make check.
557         Update the source code to fix the errors reported by
558         pyflakes.
559
560 2008-08-14  Johan Dahlin  <johan@gnome.org>
561
562         * giscanner/ast.py:
563         * giscanner/girparser.py:
564         * giscanner/glibast.py:
565         * giscanner/glibtransformer.py:
566         Refactor the parser a bit.
567         Add parent type to interfaces and update callsites.
568
569 2008-08-14  Johan Dahlin  <johan@gnome.org>
570
571         * giscanner/glibtransformer.py:
572         * giscanner/utils.py:
573         Refactor a bit, avoid isinstance and add a method
574         for each type we parse.
575
576 2008-08-14  Johan Dahlin  <johan@gnome.org>
577
578         * giscanner/ast.py:
579         * giscanner/girparser.py:
580         * giscanner/glibtransformer.py:
581         * tests/Makefile.am:
582         Run pep8.py in make check, fix old errors.
583
584 2008-08-13  Colin Walters  <walters@verbum.org>
585
586         * giscanner/girparser.py: Parse records.
587
588 2008-08-13  Colin Walters  <walters@verbum.org>
589
590         * gir/Makefile.am: Install again.
591         * gir/gobject-2.0.gir: Add some more bits.
592
593 2008-08-13  Colin Walters  <walters@verbum.org>
594
595         * gir/gobject-2.0.gir: Use correct namespace, add GType.
596         * giscanner/girparser.py: Handle aliases.
597         * giscanner/transformer.py: Record aliases.  Make resolver
598         functions public; we now call into these explicitly from
599         glibtransformer.  Handle resolving aliases.
600         * giscanner/glibtransformer.py: Separate our internal namespace
601         from included ones.  Call up into transformer's resolver functions.
602
603 2008-08-13  Johan Dahlin  <johan@gnome.org>
604
605         * girepository/girnode.c (g_ir_node_get_full_size_internal):
606         * girepository/girparser.c (start_class):
607         * giscanner/glibtransformer.py:
608         Allow get_type to be None, set a get_type for GInitiallyUnowned too.
609
610 2008-08-13  Johan Dahlin  <johan@gnome.org>
611
612         * giscanner/cgobject.py:
613         Register GInitiallyUnowned
614         * giscanner/girwriter.py:
615         * giscanner/glibtransformer.py:
616         Special case GObject/GInitially owned as they are a bit special to use.
617
618 2008-08-13  Colin Walters  <walters@verbum.org>
619
620         * tests/scanner/Foo-expected.gir, tests/scanner/utility-expected.gir:
621         Object is in GObject namespace.
622
623 2008-08-13  Colin Walters  <walters@verbum.org>
624
625         * giscanner/girparser.py: Fix processing of functions
626         from last commit.
627
628 2008-08-13  Colin Walters  <walters@verbum.org>
629
630         * giscanner/girparser.py: Parse more than just <class.
631         * giscanner/glibtransformer.py: Put aliases in a separate
632         data structure since their name is not canonicall.
633         * giscanner/transformer.py: Handle resolving type names
634         from includes.
635
636 2008-08-13  Johan Dahlin  <johan@gnome.org>
637
638         * tools/g-ir-scanner:
639         Allow multiple libraries
640         * giscanner/glibtransformer.py:
641         Rename load_library to add_library, traverse over all libraries
642         when trying to resolve a function
643
644 2008-08-12  Colin Walters  <walters@verbum.org>
645
646         * giscanner/transformer.py: Record typedefs as <alias> elements.
647           Also attempt to look up types in external namespaces.
648         * giscanner/girwriter.py: Write them.
649         * giscanner/glibtransformer.py: Rework resolver using real instanceof
650         checks.  Resolve interface methods and properties.
651         * tests/scanner/foo-object.h: Add a method with typedef.
652         * tests/scanner/Foo-expected.gir: Update.
653         * girepository/girnode.c: Debug tweaks.
654         * girepository/girparser.c: Make a first pass through the XML where we
655         record all the aliases.  This lets us resolve them as we go through the
656         second pass.
657         * gir/Makefile.am: Don't install gobject-2.0.gir; we want that to come
658         from gir-repository.
659
660 2008-08-12  Colin Walters  <walters@verbum.org>
661
662         * giscanner/glibtransformer.py: Resolve typedefs (e.g. AtkAttributeSet -> GSList).
663         Correctly do subclasseing in 2nd pass resolution.  Handle callbacks in structure
664         fields.
665         * giscanner/transformer.py: Record typedefs and expose public API for resolving
666         them.
667         * tests/scanner/Foo-expected.gir: Fix expected callback types.
668
669 2008-08-12  Colin Walters  <walters@verbum.org>
670
671         * giscanner/glibtransformer.py: Also transform object properties.
672
673 2008-08-12  Colin Walters  <walters@verbum.org>
674
675         * giscanner/glibtransformer.py: Also transform callbacks
676         and structure field types.
677         * tests/scanner/Fooe-expected.gir: Update to expect correct
678         names for callbacks and structs.
679
680 2008-08-12  Colin Walters  <walters@verbum.org>
681
682         * girepository/girparser.c: Handle 'any'.
683         * tests/scanner/Foo-expected.gir, tests/scanner/foo-object.h:
684         Add test for void *.
685
686 2008-08-12  Colin Walters  <walters@verbum.org>
687
688         * giscanner/glibtransformer.py: We need to do type
689         resolution in a second pass after we've seen all the
690         enums, records, etc.
691
692 2008-08-12  Colin Walters  <walters@verbum.org>
693
694         * tests/scanner/Foo-expected.gir, tests/scanner/foo-object.h:
695         Add enum return value.
696         * giscanner/glibtransformer.py: Transform function return types
697         too.
698
699 2008-08-12  Colin Walters  <walters@verbum.org>
700
701         * tests/scanner/Makefile.am: Dep .gir files on scanner
702         sources too.  Also remove @ so we see scanner invocations.
703
704 2008-08-12  Colin Walters  <walters@verbum.org>
705
706         * girepository/girparser.c, girepository/gtypelib.c,
707         girepository/gtypelib.h, girepository/girnode.c:
708         Remove usage of (GAPI-oriented) TypeTag in favor of
709         GITypeTag from girepository.h.
710
711 2008-08-10  Colin Walters  <walters@verbum.org>
712
713         * tests/roundtrips.sh: Use the correct tests.
714
715 2008-08-10  Colin Walters  <walters@verbum.org>
716
717         * giscanner/cgobject.py: Declare/wrap a few more functions.
718         Fix parameter types for g_object_new and g_type_fundamental.
719
720 2008-08-10  Colin Walters  <walters@verbum.org>
721
722         * giscanner/cgobject.py: Add new decorator @gwrap which forces
723         us to declare types for both return value and parameters.  The
724         ctypes default of 'int' is bad because it hides 32/64 bit
725         problems.  Convert all existing functions to use it.
726
727 2008-08-09  Johan Dahlin  <johan@gnome.org>
728
729         * giscanner/__init__.py:
730         * giscanner/ast.py:
731         * giscanner/cgobject.py:
732         * giscanner/gidlparser.py:
733         * giscanner/gidlwriter.py:
734         * giscanner/girparser.py:
735         * giscanner/girwriter.py:
736         * giscanner/glibast.py:
737         * giscanner/glibtransformer.py:
738         * giscanner/odict.py:
739         * giscanner/sourcescanner.py:
740         * giscanner/transformer.py:
741         * giscanner/utils.py:
742         * giscanner/xmlwriter.py:
743         * tools/g-ir-scanner:
744
745         PEP8ify
746
747 2008-08-09  Johan Dahlin  <johan@gnome.org>
748
749         * relaxng/api.xml:
750         * relaxng/c-types.xml:
751         * relaxng/g-types.xml:
752         * relaxng/relaxng.rng:
753         * relaxng/util.xml:
754         Remove outdated relaxng schemas.
755
756 2008-08-09  Johan Dahlin  <johan@gnome.org>
757
758         * *.[ch]:
759         Rename metadata to typelib in variable names,
760         comments and apis.
761
762 2008-08-09  Johan Dahlin  <johan@gnome.org>
763
764         * tools/scanner.c:
765         * tools/scanner.h:
766         Remove old C scanner, which got rewritten in python.
767
768 2008-08-09  Johan Dahlin  <johan@gnome.org>
769
770         * girepository/Makefile.am:
771         * tools/Makefile.am:
772         * tools/girmodule.c:
773         * tools/girmodule.h:
774         * tools/girnode.c:
775         * tools/girnode.h:
776         * tools/girparser.c:
777         * tools/girparser.h:
778         * tools/girwriter.c:
779         * tools/girwriter.h:
780         Move shared *.[ch] files to girepository from tools
781
782 2008-08-09  Johan Dahlin  <johan@gnome.org>
783
784         * tests/Makefile.am:
785         * tests/array.test:
786         * tests/boxed.test:
787         * tests/constant.test:
788         * tests/enum.test:
789         * tests/errors.test:
790         * tests/function.test:
791         * tests/gobject.test:
792         * tests/interface.test:
793         * tests/object.test:
794         * tests/struct.test:
795         * tests/types.test:
796         * tests/union.test:
797         * tests/xref1.test:
798         * tests/xref2.test:
799         Rename *.test to *.gir
800
801 2008-08-09  Johan Dahlin  <johan@gnome.org>
802
803         * configure.ac:
804         * tests/Makefile.am:
805         * tests/parser/Foo-expected.gir:
806         * tests/parser/Makefile.am:
807         * tests/parser/foo-object.h:
808         * tests/parser/foo.c:
809         * tests/parser/utility-expected.gir:
810         * tests/parser/utility.c:
811         * tests/parser/utility.h:
812         * tests/scanner/Makefile.am:
813         Rename tests/parser to test/scanner
814
815 2008-08-08  Colin Walters  <walters@verbum.org>
816
817         * tests/roundtrips.sh: Use local .gir files again.
818
819 2008-08-08  Colin Walters  <walters@verbum.org>
820
821         * tests/invoke/Makefile.am: .gir file depends on libtool
822         library.
823
824 2008-08-08  Colin Walters  <walters@verbum.org>
825
826         * tools/girnode.c: Pass through parent node so we can
827         print the node whose child is NULL, if that occurs.
828
829 2008-08-08  Johan Dahlin  <johan@gnome.org>
830
831         * tests/Makefile.am:
832         Disable roundtrip tests which are not yet working
833         * tests/invoke/testfns.gir:
834         Rewrite as gir.
835
836 2008-08-08  Johan Dahlin  <johan@gnome.org>
837
838         * giscanner/girwriter.py:
839         type -> ntype
840         * giscanner/glibast.py:
841         * giscanner/glibtransformer.py:
842         Swap order of members, to keep it consistent with
843         base enum class
844
845 2008-08-08  Johan Dahlin  <johan@gnome.org>
846
847         * girepository/gtypelib.c (validate_header):
848         * girepository/gtypelib.h:
849         * giscanner/ast.py:
850         * giscanner/girwriter.py:
851         * giscanner/sourcescanner.c (gi_source_symbol_ref),
852         (gi_source_symbol_unref):
853         * tests/array.test:
854         * tests/boxed.test:
855         * tests/constant.test:
856         * tests/enum.test:
857         * tests/errors.test:
858         * tests/function.test:
859         * tests/gobject.test:
860         * tests/interface.test:
861         * tests/invoke/Makefile.am:
862         * tests/invoke/testfns.xml:
863         * tests/object.test:
864         * tests/parser/Makefile.am:
865         * tests/roundtrips.sh:
866         * tests/struct.test:
867         * tests/types.test:
868         * tests/union.test:
869         * tests/xref1.test:
870         * tests/xref2.test:
871         * tools/Makefile.am:
872         * tools/compiler.c (main):
873         * tools/generate.c (write_callable_info), (write_function_info),
874         (write_repository):
875         * tools/gidlmodule.c:
876         * tools/gidlmodule.h:
877         * tools/gidlnode.c:
878         * tools/gidlnode.h:
879         * tools/gidlparser.c:
880         * tools/gidlparser.h:
881         * tools/gidlwriter.c:
882         * tools/gidlwriter.h:
883         * tools/scanner.c (create_node_from_gtype),
884         (create_node_from_ctype), (g_igenerator_process_properties),
885         (g_igenerator_process_signals), (g_igenerator_create_object),
886         (g_igenerator_create_interface), (g_igenerator_create_boxed),
887         (g_igenerator_create_enum), (g_igenerator_create_flags),
888         (g_igenerator_process_function_symbol),
889         (g_igenerator_process_unregistered_struct_typedef),
890         (g_igenerator_process_struct_typedef),
891         (g_igenerator_process_union_typedef),
892         (g_igenerator_process_enum_typedef),
893         (g_igenerator_process_function_typedef),
894         (g_igenerator_process_constant), (g_igenerator_process_symbols),
895         (g_igenerator_add_module), (g_igenerator_add_include_idl):
896         Merge in the gir-compiler branch.
897         Thanks to Philip and Colin for their help.
898
899 2008-07-26  Colin Walters  <walters@verbum.org>
900
901         * tools/Makefile.am (bin_PROGRAMS): Install g-idl-compiler
902         and g-idl-generate to go along with how we're changing this
903         module to be installed.
904         * gobject-introspection-1.0.pc.in: Set up Cflags and Libs.
905
906 2008-07-24  Colin Walters  <walters@verbum.org>
907
908         * girepository/girepository.c (g_irepository_register): Add
909         environment variable G_IREPOSITORY_VERBOSE so we can print
910         out what we're doing.
911         * girepository/girepository.c (g_irepository_register_file): 
912         Add GError error message to g_debug call.
913
914 2008-07-08  Jürg Billeter  <j@bitron.ch>
915
916         * giscanner/glibast.py:
917
918         Fix typo
919
920 2008-06-21  Johan Dahlin  <jdahlin@async.com.br>
921
922         * giscanner/girparser.py (GIRParser._parse_api): Ignore a few
923         more tags
924
925 2008-06-20  Johan Dahlin  <jdahlin@async.com.br>
926
927         * giscanner/ast.py:
928         * giscanner/girwriter.py:
929         * giscanner/transformer.py:
930         * tests/parser/Foo-expected.gir:
931         * tests/parser/foo-object.h:
932         * tests/parser/foo.c (foo_object_allow_none):
933         Add support for gtk-doc annotations for allow-none.
934         Add test case.
935
936 2008-06-19  Johan Dahlin  <jdahlin@async.com.br>
937
938         * giscanner/ast.py:
939         * giscanner/girwriter.py:
940         * giscanner/glibast.py:
941         * giscanner/glibtransformer.py:
942         * giscanner/transformer.py:
943         * tests/parser/Foo-expected.gir:
944         Start using abstract type instead of the raw C types.
945         Register a bunch of glib types we care about.
946
947 2008-06-19  Rob Taylor  <rob.taylor@codethink.co.uk>
948
949         * AUTHORS:
950         Update authors
951
952 2008-06-08  Philip Van Hoof  <pvanhoof@gnome.org>
953
954         * girepository/girepository.c:
955         * girepository/gtypelib.c:
956         * girepository/ginfo.c:
957         * girepository/ginvoke.c:
958         * girepository/girepository.h:
959         * girepository/gtypelib.h:
960         * girepository/gmetadata.c:
961         * girepository/Makefile.am:
962         * girepository/gmetadata.h:
963         * tools/compiler.c:
964         * tools/gidlmodule.c:
965         * tools/gidlnode.c
966         * tools/generate.c:
967         * tools/gidlmodule.h:
968         * tools/gidlparser.c:
969
970         Renamed GMetadata to GTypelib
971
972 2008-06-07  Johan Dahlin  <jdahlin@async.com.br>
973
974         * giscanner/xmlwriter.py:
975         Improve line wrapping when > 79 charaters
976
977 2008-06-05  Jürg Billeter  <j@bitron.ch>
978
979         * giscanner/ast.py:
980         * giscanner/girwriter.py:
981         * giscanner/transformer.py:
982         Use <type> element for field types
983         * tests/parser/Foo-expected.gir:
984         Update testcase
985
986 2008-06-04  Johan Dahlin  <jdahlin@async.com.br>
987
988         * giscanner/glibtransformer.py:
989         Fix a bug which prevented GdkEvent from being generated
990
991 2008-06-03  Johan Dahlin  <jdahlin@async.com.br>
992
993         * giscanner/Makefile.am:
994         * giscanner/ast.py:
995         * giscanner/girwriter.py:
996         * giscanner/glibast.py:
997         * giscanner/glibtransformer.py:
998         * giscanner/transformer.py:
999         * giscanner/utils.py:
1000         * tests/parser/Foo-expected.gir:
1001         Improve enum member parsing and introspection
1002
1003 2008-05-31  Johan Dahlin  <jdahlin@async.com.br>
1004
1005         * giscanner/scannerparser.y:
1006         * giscanner/sourcescanner.h:
1007         * giscanner/sourcescanner.py:
1008         Add a new source type enum for member.
1009         Use __repr__ for improved debugging
1010         * giscanner/girparser.py:
1011         Ignore some more
1012         * giscanner/transformer.py:
1013         Improve parsing of struct members.
1014         * tests/parser/foo-object.h:
1015         Add a new testcase
1016
1017 2008-05-31  Johan Dahlin  <jdahlin@async.com.br>
1018
1019         * giscanner/xmlwriter.py:
1020         Improve error reporting when trying to quote None.
1021         * giscanner/girparser.py:
1022         Do not print warnings when including more complete .gir files
1023         * giscanner/girwriter.py:
1024         Do not require a name for parameters, add a todo for singletons
1025         * giscanner/glibtransformer.py:
1026         Refactor the way structs are done, add a couple of hacks to allow
1027         us to get further.
1028         * giscanner/transformer.py:
1029         Add enough hacks so cairo, atk and pango.gir can be parsed properly
1030         * gobject-introspection-1.0.pc.in:
1031         Export girdir, so we can access gobject-2.0.gir from outside
1032
1033 2008-05-31  Johan Dahlin  <jdahlin@async.com.br>
1034
1035         * tools/g-ir-scanner:
1036         * tests/parser/Makefile.am:
1037         Update sys.path before running the parser so we don't have
1038         to setup PYTHONPATH ourselves.
1039
1040         * Makefile.am:
1041         * configure.ac:
1042         * girepository/Makefile.am:
1043         * giscanner/transformer.py:
1044         * gobject-introspection-1.0.pc.in:
1045         * gobject-introspection.pc.in:
1046         * tools/Makefile.am:
1047
1048         Rename pkg-config name to gobject-introspection-1.0,
1049         Do not installed anything which is not using the gir format.
1050         Disable compililation the old C scanner, but still keep the source
1051         until all the remaning functionallity has been ported.
1052
1053 2008-05-31  Johan Dahlin  <jdahlin@async.com.br>
1054
1055         * giscanner/giscannermodule.c (symbol_get_ident): Prevent
1056         a crash when symbol->indent is NULL.
1057
1058         * giscanner/sourcescanner.py (ctype_name): Add ctype_name,
1059         a function to convert a CTYPE symbol to a string
1060
1061 2008-05-24  Johan Dahlin  <jdahlin@async.com.br>
1062
1063         * giscanner/ast.py:
1064         * giscanner/girwriter.py:
1065         * giscanner/giscannermodule.c
1066         (pygi_source_scanner_append_filename),
1067         (pygi_source_scanner_parse_file):
1068         * giscanner/glibtransformer.py:
1069         * giscanner/sourcescanner.py:
1070         Revert back to using temporary files to send in headers.
1071         Allow Functions to be passed in as callbacks, add a couple
1072         of try/excepts missing features.
1073         We can now scan pango
1074
1075 2008-05-08  Johan Dahlin  <johan@gnome.org>
1076
1077         * giscanner/glibtransformer.py:
1078         * giscanner/transformer.py:
1079         Move namespace stripping glibtransformer->transformer
1080
1081 2008-05-08  Johan Dahlin  <johan@gnome.org>
1082
1083         * giscanner/ast.py:
1084         * giscanner/girwriter.py:
1085         * giscanner/glibtransformer.py:
1086         * giscanner/transformer.py:
1087         * tools/g-ir-scanner:
1088         Introduce a namespace ast node
1089
1090 2008-05-05  Johan Dahlin  <johan@gnome.org>
1091
1092         * giscanner/__init__.py:
1093         * giscanner/sourcescanner.py:
1094         * giscanner/transformer.py:
1095         Move sourcescanner symbols to the sourcescanner module, instead
1096         of in the global __init__ namespace.
1097
1098 2008-05-03  Johan Dahlin  <johan@gnome.org>
1099
1100         * giscanner/glibtransformer.py:
1101         * tools/g-ir-scanner:
1102         Handle missing parameters better, allow - and + in .la dlname
1103         filenames.
1104
1105 2008-05-03  Johan Dahlin  <johan@gnome.org>
1106
1107         * giscanner/__init__.py:
1108         * giscanner/ast.py:
1109         * giscanner/girwriter.py:
1110         * giscanner/glibtransformer.py:
1111         * giscanner/transformer.py:
1112         Parse struct fields properly, improve debugging.
1113
1114 2008-04-29  Johan Dahlin  <johan@gnome.org>
1115
1116         * giscanner/ast.py:
1117         * giscanner/girwriter.py:
1118         * giscanner/transformer.py:
1119         * tests/parser/Foo-expected.gir:
1120         * TODO:
1121         Use transfer-ownership everywhere, to mark ownership/calle/caller etc.
1122
1123 2008-04-29  Johan Dahlin  <jdahlin@async.com.br>
1124
1125         * Makefile.am:
1126         * docs/g-ir-scanner.1:
1127         * metadata-annotations-proposal.txt:
1128         * metadata-format.txt:
1129         Add a basic, unfinshed man page for g-ir-scanner, move documents into .txt
1130
1131 2008-04-29  Johan Dahlin  <jdahlin@async.com.br>
1132
1133         * giscanner/girwriter.py:
1134         * giscanner/glibtransformer.py:
1135         * giscanner/transformer.py:
1136         * giscanner/xmlwriter.py:
1137         * tests/parser/Foo-expected.gir:
1138         * tests/parser/foo-object.h:
1139         Write record/structs to gir file too. Add a couple of tests,
1140         fix an off by one error in xmlwriter.py.
1141
1142 2008-04-28  Johan Dahlin  <johan@gnome.org>
1143
1144         * giscanner/xmlwriter.py: Calculate the line length properly,
1145         include the provided extra indentation in the calculation, really.
1146
1147 2008-04-28  Johan Dahlin  <jdahlin@async.com.br>
1148
1149         * giscanner/ast.py:
1150         * giscanner/glibast.py:
1151         * giscanner/glibtransformer.py:
1152         * giscanner/transformer.py:
1153         * tools/g-ir-scanner:
1154         Add a --strip-prefix and sort out confusion between names and symbols
1155         for functions and struct + derivaties.
1156         Refactor bootstrap of g-ir-scanner, so we can set options on
1157         Transformer() before parsing everything.
1158
1159 2008-04-28  Johan Dahlin  <johan@gnome.org>
1160
1161         * giscanner/transformer.py (Transformer._traverse_one): Avoid recursion
1162         when scanning girepository.h
1163
1164         * giscanner/sourcescanner.py (SourceScanner._preprocess): Define
1165         a __GI_SCANNER__ when we run.
1166
1167 2008-04-28  Johan Dahlin  <jdahlin@async.com.br>
1168
1169         * giscanner/ast.py:
1170         * giscanner/girwriter.py:
1171         * giscanner/glibast.py:
1172         * giscanner/glibtransformer.py:
1173         * tests/parser/Foo-expected.gir:
1174         * tests/parser/utility-expected.gir:
1175         Rename most c:identifier to c:type. Add new ones to
1176         class/interface/enum/boxed.
1177
1178 2008-04-28  Johan Dahlin  <jdahlin@async.com.br>
1179
1180         * giscanner/ast.py:
1181         * giscanner/girwriter.py:
1182         * giscanner/glibtransformer.py:
1183         * tests/parser/Foo-expected.gidl:
1184         * tests/parser/Makefile.am:
1185         Move c:identifier from return-value to subchild type,
1186         as per Jürgs suggestion
1187
1188 2008-04-28  Johan Dahlin  <johan@gnome.org>
1189
1190         * giscanner/girwriter.py:
1191         * tests/parser/Foo-expected.gir:
1192         Write property.type as a child node.
1193
1194 2008-04-27  Johan Dahlin  <johan@gnome.org>
1195
1196         * Makefile.am:
1197         * configure.ac:
1198         * gidl/Makefile.am:
1199         * gidl/gobject-2.0.gidl:
1200         * gir/Makefile.am:
1201         * gir/gobject-2.0.gir:
1202         * tests/parser/Makefile.am:
1203         Replace the GObject gidl with a GObject gir.
1204
1205 2008-04-27  Johan Dahlin  <johan@gnome.org>
1206
1207         * tools/Makefile.am (bin_SCRIPTS): g-ir-scanner is a script,
1208         not a program.
1209
1210         * giscanner/xmlwriter.py:
1211         * tests/parser/Foo-expected.gir:
1212         Include indentation in line length calculation
1213
1214 2008-04-27  Johan Dahlin  <johan@gnome.org>
1215
1216         * giscanner/girparser.py:
1217         Prettify NS parsing using elementtree.
1218
1219 2008-04-27  Johan Dahlin  <johan@gnome.org>
1220
1221         * configure.ac:
1222         * giscanner/Makefile.am:
1223         * giscanner/girparser.py:
1224         * giscanner/glibtransformer.py:
1225         * tests/parser/Foo-expected.gidl:
1226         * tests/parser/Foo-expected.gir:
1227         * tests/parser/Makefile.am:
1228         * tests/parser/utility-expected.gidl:
1229         * tests/parser/utility-expected.gir:
1230         * tools/g-ir-scanner:
1231         Switch over to GIR as the default format. Add a simple GIDL
1232         parser.
1233         Update tests and fix simplify makefiles by depending
1234         on GNU make extensions.
1235
1236 2008-04-27  Johan Dahlin  <johan@gnome.org>
1237
1238         * giscanner/xmlwriter.py:
1239         Wrap attributes for lines which are wider than 79 characters
1240
1241         * giscanner/scannerlexer.l:
1242         Allow parenthesis in annotations
1243
1244         * giscanner/ast.py:
1245         * giscanner/gidlwriter.py:
1246         * giscanner/girwriter.py:
1247         * giscanner/glibtransformer.py:
1248         * giscanner/transformer.py:
1249         Add initial sequence support, including annotation.
1250         Refactor type handling a bit.
1251
1252 2008-04-27  Johan Dahlin  <johan@gnome.org>
1253
1254         * tests/parser/Foo-expected.gidl:
1255         * tests/parser/foo-object.h:
1256         * tests/parser/foo.c (foo_object_class_init),
1257         (foo_object_get_strings), (foo_object_get_objects):
1258         Add two new functions to check sequence return values.
1259         Also fixes a compilation warning.
1260
1261 2008-04-27  Johan Dahlin  <johan@gnome.org>
1262
1263         * giscanner/giscannermodule.c (]): Cast the getter, avoids
1264         a compilation warning.
1265
1266         * tools/Makefile.am (g_ir_scanner_SOURCES):
1267         g-ir-scanner has no sources.
1268
1269 2008-04-25  Johan Dahlin  <johan@gnome.org>
1270
1271         * giscanner/Makefile.am:
1272         * giscanner/ast.py:
1273         * giscanner/gidlparser.py:
1274         * giscanner/gidlwriter.py:
1275         * giscanner/girwriter.py:
1276         * giscanner/glibast.py:
1277         * giscanner/glibtransformer.py:
1278         * giscanner/transformer.py:
1279         Split out nodes to ast.py and glibast.py
1280
1281 2008-04-25  Johan Dahlin  <jdahlin@async.com.br>
1282
1283         * giscanner/Makefile.am:
1284         * giscanner/gidlparser.py:
1285         * giscanner/gidlwriter.py:
1286         * giscanner/girwriter.py:
1287         * giscanner/glibtransformer.py:
1288         * giscanner/gobjecttreebuilder.py:
1289         * giscanner/transformer.py:
1290         * giscanner/treebuilder.py:
1291         * tools/g-ir-scanner:
1292         Rename treebuilder to transformer and
1293         gobjectreebuilder to glibtransformer.
1294
1295 2008-04-25  Johan Dahlin  <jdahlin@async.com.br>
1296
1297         * giscanner/Makefile.am:
1298         * giscanner/__init__.py:
1299         * giscanner/cgobject.py:
1300         * giscanner/gidlparser.py:
1301         * giscanner/gidlwriter.py:
1302         * giscanner/girwriter.py:
1303         * giscanner/gobjecttreebuilder.py:
1304         * giscanner/odict.py:
1305         * giscanner/sourcescanner.py:
1306         * giscanner/treebuilder.py:
1307         * giscanner/xmlwriter.py:
1308         * tools/Makefile.am:
1309         * tools/g-ir-scanner:
1310         Add LGPLv2 license header and install all python files
1311
1312 2008-04-25  Johan Dahlin  <jdahlin@async.com.br>
1313
1314         * TODO:
1315         * giscanner/gidlwriter.py:
1316         * giscanner/giscannermodule.c (pygi_source_directive_new),
1317         (directive_get_options), (pygi_source_symbol_new),
1318         (symbol_get_base_type), (pygi_source_type_new),
1319         (type_get_base_type), (type_get_child_list),
1320         (pygi_source_scanner_get_symbols),
1321         (pygi_source_scanner_get_directives):
1322         * giscanner/gobjecttreebuilder.py:
1323         * giscanner/sourcescanner.py:
1324         * giscanner/treebuilder.py:
1325         * tests/parser/foo-object.h:
1326         Add support for virtual methods.
1327         Pair struct FooClass with struct Foo.
1328         Clean up the SourceScanner bindings a bit.
1329         Add a testcase for virtual methods.
1330
1331 2008-04-25  Johan Dahlin  <jdahlin@async.com.br>
1332
1333         * giscanner/cgobject.py:
1334         * giscanner/gidlwriter.py:
1335         * giscanner/gobjecttreebuilder.py:
1336         Add support for signals
1337
1338         * tests/parser/foo.c (foo_object_class_init):
1339         * Foo-expected.gidl:
1340         Add a signal and update the expected output.
1341
1342 2008-04-24  Johan Dahlin  <jdahlin@async.com.br>
1343
1344         * giscanner/gidlwriter.py:
1345         * giscanner/girwriter.py:
1346         * giscanner/giscannermodule.c (directive_get_name),
1347         (directive_get_value), (directive_get_options),
1348         (symbol_get_directives), (symbol_set_directives),
1349         (pygi_source_scanner_parse_file),
1350         (pygi_source_scanner_lex_filename),
1351         (pygi_source_scanner_get_directives), (init_giscanner):
1352         * giscanner/sourcescanner.c (gi_source_scanner_get_directives):
1353         * giscanner/sourcescanner.h:
1354         * giscanner/sourcescanner.py:
1355         * giscanner/treebuilder.py:
1356         * tools/g-ir-scanner:
1357         Add support for source/header annotations.
1358
1359 2008-04-22  Johan Dahlin  <jdahlin@async.com.br>
1360
1361         * giscanner/gidlwriter.py:
1362         * giscanner/girwriter.py:
1363         * giscanner/gobjecttreebuilder.py:
1364         * giscanner/treebuilder.py:
1365         Add support for Callbacks
1366
1367 2008-04-22  Havoc Pennington  <hp@pobox.com>
1368
1369         * girepository/ginvoke.c (g_function_info_invoke): If a symbol is
1370         not in metadata->module, look for it in the global module, in case
1371         some other object or the app itself provides the symbol.
1372
1373 2008-04-22  Havoc Pennington  <hp@pobox.com>
1374
1375         * girepository/gmetadata.c (_g_metadata_init): hack to avoid
1376         dlopening a library that is already in the main app, by checking
1377         whether one of the lib's symbols is already loaded.
1378
1379 2008-04-22  Johan Dahlin  <jdahlin@async.com.br>
1380
1381         * tests/parser/Foo-expected.gidl:
1382         * tests/parser/foo-object.h:
1383         Add a callback test
1384
1385 2008-04-22  Havoc Pennington  <hp@pobox.com>
1386
1387         * girepository/ginfo.c (g_interface_info_find_method):
1388         Use interface_blob_size not object_blob_size to compute offset.
1389
1390 2008-04-22  Havoc Pennington  <hp@pobox.com>
1391
1392         * girepository/gmetadata.c (_g_metadata_init): remove
1393         G_MODULE_BIND_LOCAL flag when loading libraries, since some libs
1394         (Glade and Clutter for example) rely on being loaded globally.
1395
1396 2008-04-22  Havoc Pennington  <hp@pobox.com>
1397
1398         * girepository/ginfo.c (g_registered_type_info_get_g_type): new
1399         function to get the GType given a RegisteredTypeInfo
1400
1401 2008-04-22  Johan Dahlin  <johan@gnome.org>
1402
1403         * COPYING: Add a LGPL license, to prevent automake to
1404         put in a copy of GPL here. Pointed out by Havoc.
1405
1406         * girepository/ginfo.c (g_info_from_entry), (g_type_info_new),
1407         (g_type_info_is_pointer), (g_type_info_get_tag),
1408         (g_type_info_get_param_type), (g_type_info_get_interface),
1409         (g_type_info_get_array_length), (g_type_info_is_zero_terminated),
1410         (g_type_info_get_n_error_domains), (g_type_info_get_error_domain),
1411         (g_error_domain_info_get_codes), (g_enum_info_get_value),
1412         (g_object_info_get_interface), (g_object_info_get_field),
1413         (g_interface_info_get_prerequisite),
1414         (g_signal_info_get_class_closure), (g_constant_info_get_value):
1415         * girepository/ginvoke.c (get_ffi_type):
1416         * girepository/girepository.h:
1417         * girepository/gmetadata.c (g_metadata_get_dir_entry),
1418         (g_metadata_check_sanity), (validate_header),
1419         (validate_array_type_blob), (validate_iface_type_blob),
1420         (validate_param_type_blob), (validate_error_type_blob),
1421         (validate_type_blob), (validate_constant_blob),
1422         (validate_struct_blob), (validate_enum_blob):
1423         * girepository/gmetadata.h:
1424         * tests/Makefile.am:
1425         * tests/invoke/Makefile.am:
1426         * tests/invoke/invoke.c (main):
1427         * tests/roundtrips.sh:
1428         * tools/Makefile.am:
1429         * tools/compiler.c (format_output), (write_out_metadata), (main):
1430         * tools/generate.c (write_type_name), (write_type_info),
1431         (write_constant_value), (write_enum_info), (load_metadata), (main):
1432         * tools/gidlcompilercontext.c:
1433         * tools/gidlcompilercontext.h:
1434         * tools/gidlcompilerentrynode.c:
1435         * tools/gidlcompilerentrynode.h:
1436         * tools/gidlcompilertypenode.c:
1437         * tools/gidlcompilertypenode.h:
1438         * tools/gidlmodule.c (g_idl_module_build_metadata):
1439         * tools/gidlmodule.h:
1440         * tools/gidlnode.c (init_stats), (dump_stats),
1441         (g_idl_node_get_size), (g_idl_node_get_full_size),
1442         (g_idl_node_cmp), (g_idl_node_can_have_member),
1443         (g_idl_node_add_member), (g_idl_node_param_direction_string),
1444         (parse_int_value), (parse_uint_value), (parse_float_value),
1445         (parse_boolean_value), (find_entry_node), (find_entry),
1446         (serialize_type), (g_idl_node_build_metadata), (write_string):
1447         * tools/gidlnode.h:
1448         * tools/gidlparser.c (parse_type_internal):
1449         * tools/quote-file.sh:
1450         Revert revisions 157,149-148,136-129 and 120.
1451         Move back to using g-idl-generate to generate the metadata and
1452         avoids dependency on a c compiler.
1453
1454 2008-04-22  Johan Dahlin  <jdahlin@async.com.br>
1455
1456         * giscanner/girwriter.py:
1457         * tools/g-ir-scanner:
1458         Add an initial GIR writer and a --format option to g-ir-scanner
1459
1460 2008-04-21  Johan Dahlin  <johan@gnome.org>
1461
1462         * giscanner/cgobject.py: Use ctypes.util.find_library to locate
1463         gobject-2.0 and raise ImportError if not found.
1464
1465         * giscanner/gidlparser.py:
1466         * giscanner/gidlwriter.py:
1467         * giscanner/gobjecttreebuilder.py:
1468         * tools/g-ir-scanner:
1469         Add a --include argument to include types from other idls.
1470         Add a minimalistic GIDL parser (just objects for now)
1471         Implement resolving of external type references and use it to
1472         resolve parent types, argument types and return types.
1473
1474 2008-04-21  Johan Dahlin  <johan@gnome.org>
1475
1476         * giscanner/gidlwriter.py:
1477         * giscanner/gobjecttreebuilder.py:
1478         * giscanner/treebuilder.py:
1479         Add support for properties.
1480         Refactor Class/Interface support a bit, to share more code and
1481         always initialize their method attribute to an empty list.
1482
1483 2008-04-21  Johan Dahlin  <johan@gnome.org>
1484
1485         * giscanner/cgobject.py:
1486         Add a workaround for a glib bug interface introspection bug
1487         (object_interface_list_properties, object_class_list_properties):
1488         Cast the return value to GParamSpec.
1489
1490         * tests/parser/Foo-expected.gidl: Update
1491         * tests/parser/foo.c: Add a string property
1492
1493         * giscanner/gobjecttreebuilder.py:
1494         After stripping namespaces, remove the original
1495         item to avoid duplication (GtkButton struct and Button object)
1496
1497 2008-04-21  Johan Dahlin  <johan@gnome.org>
1498
1499         * giscanner/gobjecttreebuilder.py:
1500         * giscanner/treebuilder.py:
1501         Strip namespaces before objects, so we'll export
1502         GtkButton as Button in the gtk namespace
1503
1504 2008-04-21  Johan Dahlin  <johan@gnome.org>
1505
1506         * giscanner/gidlwriter.py:
1507         * giscanner/gobjecttreebuilder.py:
1508         * giscanner/treebuilder.py:
1509         Add constructors for object/boxed types.
1510
1511 2008-04-21  Johan Dahlin  <johan@gnome.org>
1512
1513         * giscanner/gidlwriter.py:
1514         * giscanner/gobjecttreebuilder.py:
1515         Add support for boxed types
1516
1517 2008-04-21  Johan Dahlin  <johan@gnome.org>
1518
1519         * giscanner/giscannermodule.c: Mark structures as const,
1520         wrap SourceType.const_string.
1521
1522         * tests/parser/foo-object.h: Add a couple of constants.
1523
1524         * giscanner/gidlwriter.py:
1525         * giscanner/gobjecttreebuilder.py:
1526         * giscanner/treebuilder.py:
1527         Add basic support for interfaces
1528
1529         * tools/g-ir-scanner:
1530         Add -o/--output for writing to a file
1531
1532 2008-04-21  Havoc Pennington  <hp@redhat.com>
1533
1534         * TODO: add some C API wishlist items I could think of quickly
1535
1536 2008-04-21  Johan Dahlin  <jdahlin@async.com.br>
1537
1538         * giscanner/gidlwriter.py:
1539         * giscanner/xmlwriter.py:
1540         Add a simple api for writing tags which can be used 
1541         with the new 'with statement' in python 2.5
1542
1543 2008-04-21  Johan Dahlin  <johan@gnome.org>
1544
1545         * giscanner/gobjecttreebuilder.py:
1546         Strip namespace and object prefix from method names.
1547
1548 2008-04-21  Johan Dahlin  <johan@gnome.org>
1549
1550         * tools/g-ir-scanner (main): Add --pkg option to pass in
1551         pkg-config modules to get cflags from.
1552
1553         * giscanner/gidlwriter.py (GIDLWriter._write_method): 
1554         Avoid duplication, reuse function writer for methods.
1555
1556 2008-04-21  Johan Dahlin  <jdahlin@async.com.br>
1557
1558         * giscanner/gidlwriter.py:
1559         * giscanner/gobjecttreebuilder.py:
1560         * giscanner/treebuilder.py:
1561         * tools/g-ir-scanner:
1562         Resolve libtool .la files.
1563         Strip name spaces for methods.
1564         Add function symbols
1565
1566 2008-04-20  Johan Dahlin  <jdahlin@async.com.br>
1567
1568         * giscanner/cgobject.py:
1569         * giscanner/gidlwriter.py:
1570         * giscanner/gobjecttreebuilder.py:
1571         * giscanner/treebuilder.py:
1572         Add support for classes and methods
1573
1574 2008-04-20  Johan Dahlin  <johan@gnome.org>
1575
1576         * giscanner/gidlwriter.py:
1577         * giscanner/gobjecttreebuilder.py:
1578         * giscanner/odict.py:
1579         Avoid conflicts, keep the output ordered similar to
1580         the order of the input.
1581         Add a simple ordered dictionary implemenation
1582
1583 2008-04-19  Johan Dahlin  <johan@gnome.org>
1584
1585         * giscanner/cgobject.py:
1586         * giscanner/gidlwriter.py:
1587         * giscanner/gobjecttreebuilder.py:
1588         * tools/g-ir-scanner:
1589         Start introspecting get-type functions.
1590         Implement support for GLib/GFlags GTypes.
1591         Add a ctype based GObject binding.
1592
1593 2008-04-18  Johan Dahlin  <jdahlin@async.com.br>
1594
1595         * giscanner/gidlwriter.py:
1596         * giscanner/xmlwriter.py:
1597         * tools/g-ir-scanner:
1598         Add a simplistic gidl writer, which can't do too much.
1599
1600 2008-04-18  Johan Dahlin  <johan@gnome.org>
1601
1602         * giscanner/sourcescanner.py:
1603         * giscanner/treebuilder.py:
1604         * tools/g-ir-scanner:
1605         split tree building and source scanning interface to separate files.
1606
1607 2008-04-18  Johan Dahlin  <johan@gnome.org>
1608
1609         * tools/g-ir-scanner (Parameter.__init__): Start constructing
1610         a real node tree.
1611         - Add support for struct/parameter/return, start parsing of ctypes
1612
1613         * giscanner/giscannermodule.c: wrap GISourceType.child_list and
1614         fix the style
1615
1616 2008-03-31  Johan Dahlin  <johan@gnome.org>
1617
1618         * tools/g-ir-scanner:
1619         Start to build abstract syntax node of scanned sources.
1620         Add support for cpp options.
1621
1622 2008-03-27  Johan Dahlin  <johan@gnome.org>
1623
1624         * giscanner/giscannermodule.c:
1625         * giscanner/scannerlexer.l:
1626         * giscanner/sourcescanner.c:
1627         * tools/g-ir-scanner:
1628
1629         Add simple pre-processor using subprocess and a PIPE.
1630         Change the parse_file apis to accept a file descriptor.
1631
1632 2008-03-25  Johan Dahlin  <johan@gnome.org>
1633
1634         * giscanner/__init__.py:
1635         * tools/g-ir-scanner:
1636         Fix a typo and add an example python test program.
1637
1638 2008-03-25  Johan Dahlin  <johan@gnome.org>
1639         
1640         * giscanner/__init__.py:
1641         * giscanner/giscannermodule.c:
1642         * giscanner/sourcescanner.c:
1643         * giscanner/sourcescanner.h:
1644         Add constants and wrap a few more SymbolType fields
1645
1646 2008-03-25  Johan Dahlin  <johan@gnome.org>
1647         
1648         * configure.ac:
1649         * giscanner:
1650         * giscanner/__init__.py:
1651         * giscanner/giscannermodule.c:
1652         * giscanner/Makefile.am:
1653
1654         Add initial python bindings for the scanner and 
1655         depend on python 2.5.
1656
1657 2008-03-25  Johan Dahlin  <johan@gnome.org>
1658
1659         * Makefile.am:
1660         * configure.ac:
1661         * giscanner/Makefile.am:
1662         * giscanner/sourcescanner.c:
1663         * giscanner/sourcescanner.h:
1664         * tools/Makefile.am:
1665         * tools/grealpath.h:
1666         * tools/sourcescanner.c:
1667         * tools/sourcescanner.h:
1668
1669         Move the scanner to a separate library.
1670         
1671 2008-03-23  Johan Dahlin  <johan@gnome.org>
1672
1673         * tools/Makefile.am:
1674         * tools/scanner.c:
1675         * tools/scanner.h:
1676         * tools/scannerlexer.l:
1677         * tools/scannerparser.y:
1678         * tools/sourcescanner.c:
1679         * tools/sourcescanner.h:
1680         Split out the source scanner from the generator.
1681         Rename the symbols used in the scanner to use the gi_ prefix.
1682         This should make it possible to use the raw C parser from
1683         other programs.
1684
1685 2008-03-23  Johan Dahlin  <johan@gnome.org>
1686
1687         * tests/parser/Makefile.am (utility.gidl): 
1688         * tests/parser/utility-expected.gidl: 
1689         Pass in the gobject.gidl since we're defining a GObject.
1690
1691 2008-03-12  Johan Dahlin  <johan@gnome.org>
1692
1693         * relaxng/relaxng.rng:
1694         Add a releaxng in relaxng we can use to validate the relaxngs
1695         schemas
1696
1697 2008-03-12  Jürg Billeter  <j@bitron.ch>
1698
1699         * tools/scanner.c: (g_igenerator_new):
1700         * tools/scannerparser.y:
1701         Fix compiler warnings.
1702
1703 2008-03-12  Jürg Billeter  <j@bitron.ch>
1704
1705         * tools/scanner.c:
1706         * tools/scanner.h:
1707         * tools/scannerparser.y:
1708         Start fixing memory management in g-idl-scanner.
1709
1710 2008-03-12  Rob Taylor  <rob.taylor@codethink.co.uk>
1711
1712         * tools/gidlcompilercontext.c: (write_compiled):
1713         Fix critical warning when no shlib passed to g-idl-compiler.
1714
1715 2008-03-12  Johan Dahlin  <johan@gnome.org>
1716
1717         * tests/parser/utility-expected.gidl:
1718         * tests/parser/utility.h:
1719         Add a get_type-function, so the scanner actually
1720         parses it as an object.
1721         
1722 2008-03-12  Johan Dahlin  <johan@gnome.org>
1723
1724         * tools/gidlwriter.c (function_generate): Add missing trailing quote.
1725         Bad Philip!
1726
1727         * tests/parser/Foo-expected.gidl:
1728         * tests/parser/Makefile.am:
1729         * tests/parser/foo-object.h:
1730         * tests/parser/foo.c:
1731         * tests/parser/utility-expected.gidl:
1732         * tests/parser/utility.c:
1733         * tests/parser/utility.h:
1734
1735         Add a new gidl test. 'utility.gidl', which is used to be able
1736         to test external type references. Add a reference to UtilityObject*
1737         in the idl file.
1738
1739 2008-03-11  Johan Dahlin  <johan@gnome.org>
1740
1741         * tools/compiler.c:
1742         * tools/generate.c:
1743         Remove most global variables
1744
1745 2008-03-11  Philip Van Hoof  <me@pvanhoof.be>
1746  
1747         * tools/scannerlexer.l:
1748         * tools/scanner.c:
1749         * tests/parser/Foo-expected.gidl:
1750         * tests/parser/foo.c:
1751         * tests/parser/Makefile.am:
1752         * tests/parser/foo-object.h:
1753  
1754         Added a few extra tests. Which resulted in finding a few
1755         bugs. Which resulted in me fixing those bugs
1756
1757 2008-03-11  Rob Taylor  <rob.taylor@codethink.co.uk>
1758
1759         * tools/gidlcompilercontext.c: (g_idl_compiler_write_dir_entry),
1760         (g_idl_compiler_write_xref_entry), (g_idl_compiler_add_xref):
1761         Add some comments for strings into generated output for
1762         easier debugging.
1763
1764 2008-03-11  Rob Taylor  <rob.taylor@codethink.co.uk>
1765
1766         * tools/gidlcompilercontext.c: (write_compiled):
1767         Write out the shlibs variable before writing out the strings
1768         length. Fixes compiler warning when using '-l' flag with
1769         g-idl-compiler
1770
1771 2008-03-11  Johan Dahlin  <johan@gnome.org>
1772
1773         * tests/parser/Foo-expected.gidl:
1774         * tests/parser/foo-object.h:
1775         * tools/scanner.c:
1776         * tools/scanner.h:
1777         * tools/scannerlexer.l:
1778         Add support for parsing return arguments. Add support for
1779         caller-owns return types.
1780         Patch by Philip Van Hoof.
1781         
1782         * tools/scannerparser.y:
1783         Remove parsing of the @deprecated syntax used in headers.
1784         We will support gtk-doc deprecation in the future instead.
1785
1786 2008-03-11  Johan Dahlin  <johan@gnome.org>
1787
1788         * tools/compiler.c (main): Coding style fixes
1789
1790 2008-03-10  Johan Dahlin  <johan@gnome.org>
1791
1792         * configure.ac:
1793         Add GCOV_LIBS to GILIBS
1794
1795 2008-03-10  Johan Dahlin  <johan@gnome.org>
1796
1797         * tests/parser/Foo-expected.gidl:
1798         * tests/parser/foo.c:
1799         Rename null-ok to direction=out
1800
1801 2008-03-10  Philip Van Hoof  <me@pvanhoof.be>
1802
1803         reviewed and extensively tested by Johan
1804
1805         * tests/parser/Foo-expected.gidl:
1806         * tests/parser/foo-object.h:
1807         * tests/parser/foo.c:
1808         * tools/gidlnode.c:
1809         * tools/gidlnode.h:
1810         * tools/gidlwriter.c:
1811         * tools/scanner.c:
1812         * tools/scanner.h:
1813         * tools/scannerlexer.l:
1814         * tools/scannerparser.y:
1815
1816         Add support for scanning for gtk-doc comments inside
1817         C source files. Add tests
1818
1819 2008-03-10  Johan Dahlin  <johan@gnome.org>
1820
1821         * tests/parser/Makefile.am:
1822         * tests/parser/foo.c:
1823         * tools/scanner.c:
1824         * tools/scanner.h:
1825         * tools/scannerparser.y:
1826         Add an api to lex filenames.
1827         Lex all source .c files passed in on the command line.
1828         Scan sources in a test and a couple of private structures
1829         which should not be included in the generated gidl
1830
1831 2008-03-10  Johan Dahlin  <johan@gnome.org>
1832
1833         * tests/invoke/Makefile.am: Make the generated metadata 
1834         depend on the g-idl-compiler
1835
1836 2008-02-21  Mark Doffman  <mark.doffman@codethink.co.uk>
1837
1838         * tools/gidlmodule.c
1839         * tools/gidlmodule.h
1840         * tools/gidlnode.c
1841         * tools/gidlnode.h
1842         Remove the old g-idl-compiler code.
1843
1844
1845 2008-02-22  Mark Doffman  <mark.doffman@codethink.co.uk>
1846
1847         * tools/quote-file.sh
1848         * tools/compiler.c
1849         * tools/generate.c
1850         Move to using the 'C' struct compiler code.
1851
1852 2008-02-21  Mark Doffman  <mark.doffman@codethink.co.uk>
1853
1854         * girepository/ginfo.c
1855         * tools/generate.c
1856         Change the way that external references with no namespace
1857         are dealt with. External references with no namespace
1858         are placed into the XML as-if they are a local reference.
1859         This is temporary, but helps with roundtrip tests.
1860
1861 2008-02-21  Mark Doffman  <mark.doffman@codethink.co.uk>
1862
1863         * girepository/ginfo.c
1864         Add the ability to get the value of a constant of
1865         type TYPE_TAG_SYMBOL. In the case of a symbol the value
1866         is provided as a string.
1867
1868         This would deal properly with:
1869         typedef char* random;
1870         const random = "A string";
1871
1872 2008-02-21  Mark Doffman  <mark.doffman@codethink.co.uk>
1873
1874         * girepository/ginfo.c
1875         * girepository/girepository.h
1876         * tools/generate.c
1877         Add a function to check if an enum is registered or not.
1878         Previously anything testing this relied on the g-type
1879         string offset having a value of 0.
1880
1881         * girepository/gmetadata.c
1882         * girepository/gmetadata.h
1883         * tools/generate.c
1884         Remove unneccesary or erroneous checks. There were two
1885         metadata validation checks which made sure that the blob
1886         sizes were the same as some magic numbers compiled into the code.
1887         This is wrong as it breaks any forwards compatibility that may
1888         be possible.
1889
1890         Checks were also present that made sure that unregistered type
1891         blobs had a value of 0 in the g-type offset field. This is
1892         unneccessary. If a type blob is unregistered then any value
1893         in its g-type field is simply invalid.
1894
1895 2008-02-21  Mark Doffman  <mark.doffman@codethink.co.uk>
1896
1897         * girepository/ginfo.c
1898         * girepository/gmetadata.c
1899         * girepository/gmetadata.h
1900
1901           Change the metadata format to have a standard header
1902           for all the type blobs. Merge the SimpleTypeBlob
1903           and InterfaceTypeBlob into a union. A union of these
1904           two blobs existed previously but was not explicit
1905           in the metadata format.
1906
1907 2008-02-21  Mark Doffman  <mark.doffman@codethink.co.uk>
1908
1909         * tools/gidlcompilercontext.c
1910         * tools/gidlcompilercontext.h
1911         * tools/gidlcompilerentrynode.c
1912         * tools/gidlcompilerentrynode.h
1913         * tools/gidlcompilertypenode.c
1914         * tools/gidlcompilertypenode.h
1915
1916         Add code to compile a tree of GIdlNodes to
1917         a 'C' struct representing the metadata.
1918         This is to aid cross-compiling. Previously
1919         the g-idl-compiler created a binary blob with
1920         data written in the byte order and alignment
1921         of the tool rather than the intended target.
1922
1923         Cleaned up and improved by Johan and Robert :-)
1924
1925 2008-02-21  Mark Doffman  <mark.doffman@codethink.co.uk>
1926
1927         * girepository/ginvoke.c
1928         * girepository/girepository.h
1929         * girepository/gmetadata.c
1930         * girepository/gmetadata.h
1931         * tools/generate.c
1932         * tools/gidlparser.c
1933         Modify TYPE_TAG_INTERFACE to TYPE_TAG_SYMBOL
1934         to avoid confusion with the interface blob.
1935
1936         * tools/generate.c
1937         * tools/gidlparser.c
1938         Remove magic numbers and replace with type-tag
1939         enumeration symbols.
1940
1941         * girepository/gmetadata.c
1942         Add validate declaration.
1943
1944 2008-03-10  Jürg Billeter  <j@bitron.ch>
1945
1946         * tools/gidlparser.c: (parse_type_internal):
1947         * tools/scannerlexer.l:
1948         * tools/scannerparser.y:
1949         Support C99 _Bool type in scanner.
1950
1951 2008-03-10  Jürg Billeter  <j@bitron.ch>
1952
1953         * tests/parser/Foo-expected.gidl:
1954         * tests/parser/foo-object.h:
1955         * tests/parser/foo.c: (foo_enum_method):
1956         * tools/scanner.c: (g_igenerator_process_function_symbol):
1957         Don't skip functions that are defined in the namespace of a type
1958         that doesn't support methods, as for example enums.
1959
1960 2008-03-10  Johan Dahlin  <johan@gnome.org>
1961
1962         * gidl.dtd: Remove, we're using relaxng for now
1963
1964         * tests/parser/Foo-expected.gidl:
1965         * tests/parser/foo-object.h:
1966         * tests/parser/foo.c:
1967         Rename the enum/flags get_type functions to include the whole type.
1968
1969 2008-03-08  Marc-Andre Lureau  <marcandre.lureau@gmail.com>
1970
1971         * tools/gidlwriter.c (enum_generate): added "type-name",
1972         "get-type" and "deprecated" missing arguments.
1973         * tests/parser/Foo-expected.gidl:
1974         * tests/parser/foo-object.h: test enum type, and no type.
1975
1976 2008-03-06  Johan Dahlin  <jdahlin@async.com.br>
1977
1978         * configure.ac:
1979         Consistent checks, add missing 'test'
1980
1981 2008-03-05  Havoc Pennington  <hp@redhat.com>
1982
1983         * configure.ac: Take advantage of a libffi.pc if one exists, as it
1984         does on Fedora 8. Make libffi a hard requirement, since it was in
1985         practice anyway (was not really conditional in the code or
1986         makefile, only in configure).
1987
1988 2008-02-21  Mark Doffman  <mark.doffman@codethink.co.uk>
1989
1990         reviewed by: Rob Taylor  <rob.taylor@codethink.co.uk>
1991         reviewed by: Johan Dahlin  <johan@gnome.org>
1992
1993         * tests/Makefile.am:
1994         * tests/roundtrips.sh:
1995         Modify the roundtrips test so that they do not use the
1996         --raw option of the gidl compiler but instead compile a
1997         shared library to use with g_module.
1998
1999         * tests/invoke/Makefile.am:
2000         * tests/invoke/invoke.c:
2001         Modify the invoke tests to build a shared library rather
2002         than use the --raw option.
2003
2004         * tests/invoke/invoke-namespace-find.sh: Removed:
2005         Noone knows why this was here, so removed.
2006
2007 2008-02-19  Rob Taylor  <rob.taylor@codethink.co.uk>
2008
2009         * tools/scanner.c: (g_igenerator_process_function_symbol):
2010         Move g_idl_node_can_have_member test later, as it broke spotting
2011         get_type's for nodes that can't have members.
2012
2013 2008-02-18  Rob Taylor  <rob.taylor@codethink.co.uk>
2014
2015         * tools/gidlnode.h:
2016         * tools/gidlnode.c: (g_idl_node_can_have_member):
2017         Add g_idl_node_can_have_member.
2018
2019         * tools/scanner.c: (g_igenerator_process_function_symbol):
2020         Use g_idl_node_can_have_member to test if we should add a function
2021         as a member of the type node.
2022
2023 2008-02-18  Rob Taylor  <rob.taylor@codethink.co.uk>
2024
2025         * gidl/GLib.gidl: Renamed to gidl/gobject-2.0.gidl:
2026         * gidl/Makefile.am:
2027         * tests/parser/Makefile.am:
2028         Rename GLib.gidl to gobject-2.0.gidl and install in /usr/share/gidl.
2029
2030 2008-02-18  Rob Taylor  <rob.taylor@codethink.co.uk>
2031
2032         * tools/scanner.c: (main):
2033         Ignore -pthread when passed to g-idl-scanner.
2034
2035 2008-02-18  Rob Taylor  <rob.taylor@codethink.co.uk>
2036
2037         * tools/grealpath.h: Added:
2038         * tools/scanner.c: (main):
2039         * tools/scannerlexer.l:
2040         * tools/Makefile.am:
2041         Always use absolute paths with symbolic links resolved when
2042         comparing filenames.
2043
2044 2008-02-18  Rob Taylor  <rob.taylor@codethink.co.uk>
2045
2046         * gobject-introspection.pc.in:
2047         Provide variables for g-idl-parser, scanner and compiler in the
2048         pkgconfig file.
2049
2050 2008-02-13  Rob Taylor  <rob.taylor@codethink.co.uk>
2051
2052         * gcov.mak:
2053         * girepository/Makefile.am:
2054         * tools/Makefile.am:
2055         Rename GCOV_SOURCES to GCOVSOURCES to top automake complaining.
2056
2057 2008-02-10  Johan Dahlin  <johan@gnome.org>
2058
2059         * tests/parser/Foo-expected.gidl:
2060         * tests/parser/foo-object.h:
2061         * tests/parser/foo.c: (foo_boxed_copy), (foo_boxed_free),
2062         (foo_boxed_get_type), (foo_boxed_new), (foo_boxed_method):
2063         Add boxed test.
2064
2065 2008-02-10  Johan Dahlin  <johan@gnome.org>
2066
2067         * tests/parser/Foo-expected.gidl:
2068         * tests/parser/foo-object.h:
2069         * tests/parser/foo.c: (foo_enum_get_type), (foo_flags_get_type):
2070         Add enum and flags test.
2071
2072 2008-02-10  Johan Dahlin  <johan@gnome.org>
2073
2074         * Makefile.am:
2075         * configure.ac:
2076         * girepository/Makefile.am:
2077         Make 'make distcheck' work again.
2078
2079 2008-02-10  Johan Dahlin  <johan@gnome.org>
2080
2081         * m4/Makefile.am (EXTRA_DIST): its called as-compiler-flag.m4,
2082         not as-compiler.m4.
2083
2084         * tests/parser/Makefile.am: Only create Foo.gidl when running make
2085         check, eg exclude it from BUILT_SOURCES.
2086
2087 2008-02-08  Rob Taylor  <rob.taylor@codethink.co.uk>
2088
2089         * Makefile.am:
2090         * configure.ac:
2091         * gcov.mak: Added:
2092         * girepository/Makefile.am:
2093         * m4/Makefile.am: Added:
2094         * m4/as-compiler-flag.m4: Added:
2095         * m4/gcov.m4: Added:
2096         * tools/Makefile.am:
2097         Add ability to generate a coverage report.
2098         Adds configure option --enable-gcov and make rule 'check-coverage'.
2099
2100 2008-02-08  Rob Taylor  <rob.taylor@codethink.co.uk>
2101
2102         * Makefile.am:
2103         * configure.ac:
2104         * gidl/Makefile.am: Added:
2105         * girepository/Makefile.am: Added:
2106         * src/Makefile.am: Renamed to tools/Makefile.am:
2107         * src/compiler.c: Renamed to tools/compiler.c:
2108         * src/g-idl-offsets.pl: Renamed to tools/g-idl-offsets.pl:
2109         * src/generate.c: Renamed to tools/generate.c:
2110         * src/gidlmodule.c: Renamed to tools/gidlmodule.c:
2111         * src/gidlmodule.h: Renamed to tools/gidlmodule.h:
2112         * src/gidlnode.c: Renamed to tools/gidlnode.c:
2113         * src/gidlnode.h: Renamed to tools/gidlnode.h:
2114         * src/gidlparser.c: Renamed to tools/gidlparser.c:
2115         * src/gidlparser.h: Renamed to tools/gidlparser.h:
2116         * src/gidlwriter.c: Renamed to tools/gidlwriter.c:
2117         * src/gidlwriter.h: Renamed to tools/gidlwriter.h:
2118         * src/ginfo.c: Renamed to girepository/ginfo.c:
2119         * src/ginvoke.c: Renamed to girepository/ginvoke.c:
2120         * src/girepository.c: Renamed to girepository/girepository.c:
2121         * src/girepository.h: Renamed to girepository/girepository.h:
2122         * src/gmetadata.c: Renamed to girepository/gmetadata.c:
2123         * src/gmetadata.h: Renamed to girepository/gmetadata.h:
2124         * src/scanner.c: Renamed to tools/scanner.c:
2125         * src/scanner.h: Renamed to tools/scanner.h:
2126         * src/scannerlexer.l: Renamed to tools/scannerlexer.l:
2127         * src/scannerparser.y: Renamed to tools/scannerparser.y:
2128         * tests/invoke/Makefile.am:
2129         Split src/ into girepository/ and tools/
2130
2131         * Makefile.am:
2132         * configure.ac:
2133         * girepository/Makefile.am:
2134         * tests/Makefile.am:
2135         * tests/invoke/Makefile.am:
2136         * tests/parser/Makefile.am:
2137         * tests/roundtrips.sh:
2138         * tools/Makefile.am:
2139         Make distcheck work.
2140
2141 2008-02-04  Rob Taylor  <rob.taylor@codethink.co.uk>
2142
2143         * tests/invoke/invoke.c: (main):
2144         * tests/invoke/testfns.c: (test6), (test7):
2145         * tests/invoke/testfns.xml:
2146         Add tests for invokation with a GList argument.
2147         Also tests caller-owns return values.
2148
2149 2008-02-04  Rob Taylor  <robtaylor@floopily.org>
2150
2151         * src/ginfo.c:
2152         Add some documentation for GICallableInfo
2153
2154 2008-02-01  Mark Doffman  <mark.doffman@codethink.co.uk>
2155
2156         * gidl.dtd:
2157         Correct syntax errors in the DTD file.
2158         * relaxng/api.xml:
2159         * relaxng/c-types.xml:
2160         * relaxng/g-types.xml:
2161         * relaxng/util.xml:
2162         Add a RelaxNG specification for the GObject Introspection XML data.
2163         The Specification has validated all of the test files.
2164
2165 2008-01-25  Rob Taylor  <robtaylor@floopily.org>
2166
2167         * tests/roundtrips.sh:
2168         * tests/struct.test:
2169         Add roundtrip tests for structs.
2170
2171 2008-01-11  Johan Dahlin  <johan@gnome.org>
2172
2173         * src/scanner.c (g_igenerator_process_function_symbol):
2174         Refactor out g_idle_node_add_member.
2175         (create_node_from_gtype, create_node_from_ctype):
2176         Use case instead of if...else
2177         (get_type_from_type_id):
2178         Rename to create_node_from_gtype
2179         (get_type_from_ctype):
2180         Rename to create_node_from_ctype
2181
2182         Rename ginode -> node, gitype -> type, gifunc -> func.
2183
2184         * src/gidlnode.c (g_idl_node_add_member, g_idl_node_cmp):
2185         Two new functions, refactor out of scanner.c
2186
2187         * src/scanner.c: (g_igenerator_process_function_symbol):
2188         * src/scannerlexer.l:
2189         Do not save the content of the deprecated variable, only
2190         if it's set or not.
2191
2192 2008-01-11  Johan Dahlin  <johan@gnome.org>
2193
2194         * tests/parser/foo-object.h: Add a couple of comment parser tests.
2195
2196 2008-01-11  Jürg Billeter  <j@bitron.ch>
2197
2198         * src/scannerlexer.l:
2199         Fix GTK-Doc parsing.
2200
2201 2008-01-11  Jürg Billeter  <j@bitron.ch>
2202
2203         * src/scannerlexer.l:
2204         Fix GTK-Doc parsing.
2205
2206 2008-01-11  Jürg Billeter  <j@bitron.ch>
2207
2208         * src/scanner.c: (lookup_symbol):
2209         Return unresolved name if we find unknown symbol.
2210
2211 2008-01-11  Jürg Billeter  <j@bitron.ch>
2212
2213         * src/scanner.c: (g_igenerator_generate):
2214         Initialize GObject to fix scanning interface properties.
2215
2216         * tests/parser/Foo-expected.gidl:
2217         * tests/parser/foo-object.h:
2218         * tests/parser/foo.c: (foo_interface_get_type):
2219         Test interfaces with GObject prerequisite.
2220
2221         * tests/parser/Makefile.am:
2222         Set G_DEBUG=fatal_warnings to abort test on warnings and criticals.
2223
2224 2007-12-27  Johan Dahlin  <johan@gnome.org>
2225
2226         * src/scannerlexer.l:
2227         Parse gtk-doc comments.
2228
2229         * src/gidlwriter.c: (function_generate):
2230         Reorganize, avoid duplication and add support for
2231         writing deprecated functions.
2232
2233         * src/scannerparser.y:
2234         * src/scanner.h:
2235         Add new structure CDirective and functions to create/free them.
2236
2237         * src/scanner.c: (g_igenerator_process_function_symbol),
2238         (g_igenerator_process_unregistered_struct_typedef),
2239         (g_igenerator_process_struct_typedef),
2240         (g_igenerator_process_union_typedef),
2241         (g_igenerator_process_enum_typedef),
2242         (g_igenerator_process_function_typedef), (g_igenerator_add_symbol),
2243         (g_igenerator_start_preprocessor):
2244         Parse @deprecated directive for functions.
2245         Remove some more C99isms.
2246         Send in -C to cpp to avoid stripping comments.
2247
2248         * tests/parser/foo-object.h:
2249         * tests/parser/Foo-expected.gidl:
2250         Add deprecated directive
2251
2252 2007-12-27  Johan Dahlin  <johan@gnome.org>
2253
2254         * src/scannerlexer.l (intsuffix): Add emacs mode line and
2255         escape ' and " so it looks more like C.
2256
2257         * src/scanner.c:
2258         Unlink temporary file used.
2259
2260 2007-12-27  Johan Dahlin  <johan@gnome.org>
2261
2262         * src/scanner.c: (g_igenerator_new), (g_igenerator_free),
2263         (g_igenerator_start_preprocessor), (main):
2264         * src/scanner.h:
2265         * src/scannerparser.y:
2266         Plug a couple of simple memory leaks.
2267
2268 2007-12-27  Johan Dahlin  <johan@gnome.org>
2269
2270         * src/scanner.c: (g_igenerator_parse_macros),
2271         (g_igenerator_start_preprocessor), (g_igenerator_set_verbose),
2272         (main):
2273         * src/scanner.h:
2274         * src/scannerparser.y:
2275         * tests/parser/Makefile.am:
2276
2277         Improve error reporting, return when the preprocessor fails.
2278         Add a verbose parameter, to aid debugging.
2279         Revert to using a temporary file to communicate between the
2280         preprocessor and the parser, because we need to wait for
2281         the exit code from the pre-processor before starting to parse.
2282
2283 2007-12-16  Johan Dahlin  <jdahlin@async.com.br>
2284
2285         * src/Makefile.am: Rename clexer.l to scannerlexer.l and
2286         cparser.y to scannerparser.y
2287
2288 2007-12-11  Johan Dahlin  <johan@gnome.org>
2289
2290         * src/clexer.l:
2291         * src/cparser.y:
2292         * src/scanner.c: (g_igenerator_new):
2293         * src/scanner.h:
2294         Get rid of the global the_generator variable.
2295
2296 2007-12-10  Johan Dahlin  <johan@gnome.org>
2297
2298         * src/scanner.c (main): Add an output option,
2299         add checks for required parameters
2300
2301         * src/Makefile.am:
2302         set BUILD_SOURCES and CLEANFILES properly
2303
2304         * src/gidlwriter.c: (g_writer_write_inline), (g_writer_write),
2305         (g_writer_write_indent), (g_writer_write_unindent),
2306         (field_generate), (value_generate), (constant_generate),
2307         (property_generate), (function_generate), (vfunc_generate),
2308         (signal_generate), (interface_generate), (struct_generate),
2309         (union_generate), (boxed_generate), (enum_generate),
2310         (node_generate), (g_writer_write_module), (g_idl_writer_save_file):
2311         * src/gidlwriter.h:
2312         * src/scanner.c: (g_igenerator_generate):
2313         * src/scanner.h:
2314         * src/scannerwriter.c:
2315
2316         Refactor scannerwriter to only be tied to a GIdlModule and move
2317         it (again!) to gidlwriter.c. Change the writer function to take
2318         a filename.
2319
2320 2007-12-10  Johan Dahlin  <johan@gnome.org>
2321
2322         * src/Makefile.am:
2323         * src/scanner.c: (g_igenerator_generate):
2324         * src/scanner.h:
2325         * src/scannerwriter.c: (g_igenerator_write_inline),
2326         (g_igenerator_write), (g_igenerator_write_indent),
2327         (g_igenerator_write_unindent), (field_generate), (value_generate),
2328         (constant_generate), (property_generate), (function_generate),
2329         (vfunc_generate), (signal_generate), (interface_generate),
2330         (struct_generate), (union_generate), (boxed_generate),
2331         (enum_generate), (node_generate), (module_generate),
2332         (g_scanner_write_file):
2333
2334         Move the scanner gidl writing to a separate source file.
2335
2336 2007-12-10  Johan Dahlin  <johan@gnome.org>
2337
2338         * src/cparser.y:
2339         * src/scanner.c:
2340         * src/scanner.h:
2341         Move over all CType construction functions.
2342
2343         * tests/parser/Makefile.am:
2344         Be verbose when printing parsing tests results.
2345
2346 2007-12-10  Johan Dahlin  <johan@gnome.org>
2347
2348         * src/scanner.c (g_igenerator_start_preprocessor): Refactor
2349         preprocessor handling to here. Start cpp insteado of cc -E,
2350         always include -U__GNUC__, since it's specific to the preprocessor
2351         we use.
2352
2353         * tests/parser/Makefile.am (check-local): Silent diff and skip
2354         -U__GNUC__ which is always defined now
2355
2356 2007-12-10  Johan Dahlin,,,  <jdahlin@plasttroll>
2357
2358         reviewed by: <delete if not using a buddy>
2359
2360         * src/scanner.c: (g_igenerator_start_preprocessor), (main):
2361         * tests/parser/Makefile.am:
2362
2363 2007-12-09  Johan Dahlin  <johan@gnome.org>
2364
2365         * src/scanner.c:
2366         Use GOption for command line options.
2367         (g_igenerator_new, main): Simplify constructor and they way
2368         parameters are passed into it.
2369
2370         * src/cparser.y:
2371         * src/Makefile.am:
2372         * src/clexer.l:
2373         * src/cparser.y:
2374         * src/gen-introspect.c:
2375         * src/gen-introspect.h:
2376         * src/scanner.c:
2377         Rename gen-introspect.[ch] to scanner.[ch]
2378
2379 2007-12-09  Johan Dahlin  <johan@gnome.org>
2380
2381         * TODO: Update
2382
2383         * src/Makefile.am: Rename gen-introspect to g-idl-scanner,
2384         don't make the repository library and the other utilites link against
2385         gthread-2.0
2386
2387         * src/gen-introspect.c: (g_igenerator_create_object),
2388         (g_igenerator_create_interface), (g_igenerator_create_boxed),
2389         (g_igenerator_create_enum), (g_igenerator_create_flags),
2390         (g_igenerator_process_module_symbol),
2391         (g_igenerator_process_module), (g_igenerator_generate), (main):
2392         * src/gen-introspect.h:
2393         Refactor g_igenerator_process_types into smaller pieces.
2394
2395         * tests/parser/Makefile.am:
2396         Depend on the gen-introspect binary
2397
2398 2007-12-09  Johan Dahlin  <johan@gnome.org>
2399
2400         * src/gen-introspect.c (g_igenerator_process_types):
2401         Break into smaller pieces, one for each generated node type.
2402
2403 2007-12-08  Johan Dahlin  <johan@gnome.org>
2404
2405         * src/gen-introspect.c: (g_igenerator_process_types),
2406         (g_igenerator_add_module):
2407         * tests/parser/Foo-expected.gidl:
2408         * tests/parser/foo-object.h:
2409         * tests/parser/foo.c: (foo_subobject_class_init),
2410         (foo_subobject_init):
2411
2412         Add a subobject test and make sure to register defined classes
2413         in the lookup symbol hash table.
2414
2415 2007-12-08  Johan Dahlin  <johan@gnome.org>
2416
2417         * gidl/GLib.gidl:
2418         * src/Makefile.am:
2419         * src/gen-introspect.c: (g_igenerator_new), (lookup_symbol),
2420         (g_igenerator_process_types), (g_igenerator_add_module),
2421         (g_igenerator_add_include_idl), (main):
2422         * src/gen-introspect.h:
2423         * tests/parser/Makefile.am:
2424         * tests/parser/Foo-expected.gidl:
2425
2426         Change the gen-introspect to generate namespaced module names,
2427         such as GLib.Object instead of GObject.
2428         Add a GLib.gidl which introduces GLib.Object and GLib.InitiallyUnowned,
2429         add a --include-idl parameter to gen-introspect,
2430         and update the parser test.
2431
2432 2007-12-08  Johan Dahlin  <johan@gnome.org>
2433
2434         * src/gen-introspect.c:
2435         Move main to the end of the file and attempt to make it valid
2436         ansi c.
2437
2438         * tests/parser/Makefile.am (BUILT_SOURCES): Remove .repo here,
2439         we're not quite ready to generate metadata yet.
2440
2441         * tests/parser/:
2442         * configure.ac:
2443
2444         Add a simple gen-introspect parser test
2445
2446 2007-12-06  Gustavo J. A. M. Carneiro  <gjc@gnome.org>
2447
2448         reviewed by: Johan Dahlin  <johan@gnome.org>
2449
2450         * configure.ac:
2451         * gobject-introspection.pc.in:
2452         * src/Makefile.am:
2453         * src/compiler.c: (format_output), (write_out_metadata), (main):
2454         * src/gen-introspect.c: (main):
2455         * src/gen-introspect.h:
2456         * src/generate.c: (write_callable_info), (write_repository),
2457         (load_metadata), (main):
2458         * src/gidlmodule.c: (g_idl_module_new),
2459         (g_idl_module_build_metadata):
2460         * src/gidlmodule.h:
2461         * src/gidlparser.c: (start_element_handler):
2462         * src/ginfo.c: (g_info_new), (g_info_from_entry),
2463         (g_base_info_get_name), (g_base_info_get_namespace),
2464         (g_base_info_is_deprecated), (g_base_info_get_annotation),
2465         (g_base_info_get_metadata), (g_function_info_get_symbol),
2466         (g_function_info_get_flags), (g_function_info_get_property),
2467         (g_function_info_get_vfunc), (signature_offset), (g_type_info_new),
2468         (g_callable_info_may_return_null),
2469         (g_callable_info_get_caller_owns), (g_callable_info_get_n_args),
2470         (g_callable_info_get_arg), (g_arg_info_get_direction),
2471         (g_arg_info_is_return_value), (g_arg_info_is_dipper),
2472         (g_arg_info_is_optional), (g_arg_info_may_be_null),
2473         (g_arg_info_get_ownership_transfer), (g_type_info_is_pointer),
2474         (g_type_info_get_tag), (g_type_info_get_param_type),
2475         (g_type_info_get_interface), (g_type_info_get_array_length),
2476         (g_type_info_is_zero_terminated),
2477         (g_type_info_get_n_error_domains), (g_type_info_get_error_domain),
2478         (g_error_domain_info_get_quark), (g_error_domain_info_get_codes),
2479         (g_value_info_get_value), (g_field_info_get_flags),
2480         (g_field_info_get_size), (g_field_info_get_offset),
2481         (g_registered_type_info_get_type_name),
2482         (g_registered_type_info_get_type_init),
2483         (g_struct_info_get_n_fields), (g_struct_info_get_field),
2484         (g_struct_info_get_n_methods), (g_struct_info_get_method),
2485         (find_method), (g_struct_info_find_method),
2486         (g_enum_info_get_n_values), (g_enum_info_get_value),
2487         (g_object_info_get_parent), (g_object_info_get_type_name),
2488         (g_object_info_get_type_init), (g_object_info_get_n_interfaces),
2489         (g_object_info_get_interface), (g_object_info_get_n_fields),
2490         (g_object_info_get_field), (g_object_info_get_n_properties),
2491         (g_object_info_get_property), (g_object_info_get_n_methods),
2492         (g_object_info_get_method), (g_object_info_find_method),
2493         (g_object_info_get_n_signals), (g_object_info_get_signal),
2494         (g_object_info_get_n_vfuncs), (g_object_info_get_vfunc),
2495         (g_object_info_get_n_constants), (g_object_info_get_constant),
2496         (g_interface_info_get_n_prerequisites),
2497         (g_interface_info_get_prerequisite),
2498         (g_interface_info_get_n_properties),
2499         (g_interface_info_get_property), (g_interface_info_get_n_methods),
2500         (g_interface_info_get_method), (g_interface_info_find_method),
2501         (g_interface_info_get_n_signals), (g_interface_info_get_signal),
2502         (g_interface_info_get_n_vfuncs), (g_interface_info_get_vfunc),
2503         (g_interface_info_get_n_constants),
2504         (g_interface_info_get_constant), (g_property_info_get_flags),
2505         (g_signal_info_get_flags), (g_signal_info_get_class_closure),
2506         (g_signal_info_true_stops_emit), (g_vfunc_info_get_flags),
2507         (g_vfunc_info_get_offset), (g_vfunc_info_get_signal),
2508         (g_constant_info_get_value), (g_union_info_get_n_fields),
2509         (g_union_info_get_field), (g_union_info_get_n_methods),
2510         (g_union_info_get_method), (g_union_info_is_discriminated),
2511         (g_union_info_get_discriminator_offset),
2512         (g_union_info_get_discriminator):
2513         * src/ginvoke.c: (g_function_info_invoke):
2514         * src/girepository.c: (g_irepository_register),
2515         (g_irepository_unregister), (g_irepository_get_default),
2516         (count_interfaces), (g_irepository_get_n_infos), (find_interface),
2517         (g_irepository_get_info), (g_irepository_find_by_name),
2518         (g_irepository_get_shared_library),
2519         (g_irepository_build_search_path), (g_irepository_register_file),
2520         (g_irepository_error_quark):
2521         * src/girepository.h:
2522         * src/gmetadata.c: (g_metadata_get_dir_entry),
2523         (g_metadata_check_sanity), (validate_header),
2524         (validate_array_type_blob), (validate_iface_type_blob),
2525         (validate_param_type_blob), (validate_error_type_blob),
2526         (validate_type_blob), (validate_arg_blob),
2527         (validate_signature_blob), (validate_function_blob),
2528         (validate_callback_blob), (validate_constant_blob),
2529         (validate_value_blob), (validate_field_blob),
2530         (validate_property_blob), (validate_signal_blob),
2531         (validate_vfunc_blob), (validate_struct_blob),
2532         (validate_enum_blob), (validate_object_blob),
2533         (validate_interface_blob), (validate_errordomain_blob),
2534         (validate_union_blob), (validate_blob), (validate_directory),
2535         (validate_annotations), (g_metadata_validate), (_g_metadata_init),
2536         (g_metadata_new_from_memory), (g_metadata_new_from_const_memory),
2537         (g_metadata_new_from_mapped_file), (g_metadata_free),
2538         (g_metadata_set_module), (g_metadata_get_namespace):
2539         * src/gmetadata.h:
2540         * tests/Makefile.am:
2541         * tests/invoke/Makefile.am:
2542         * tests/invoke/invoke-namespace-find.sh:
2543         * tests/invoke/invoke.c: (main):
2544
2545         Add a namespace/shared library mapping. fixes #313268.
2546
2547 2007-12-03  Johan Dahlin  <johan@gnome.org>
2548
2549         * src/gidlparser.c (parse_type_internal): Disable char/gchar and
2550         guchar for now.
2551
2552 2007-11-30  Jürg Billeter  <j@bitron.ch>
2553
2554         * configure.ac:
2555         * src/Makefile.am:
2556         * src/clexer.l:
2557         * src/cparser.y:
2558         * src/gen-introspect.c: (g_idl_node_cmp), (g_igenerator_new),
2559         (g_igenerator_write_inline), (g_igenerator_write),
2560         (g_igenerator_write_indent), (g_igenerator_write_unindent),
2561         (field_generate), (value_generate), (constant_generate),
2562         (property_generate), (function_generate), (vfunc_generate),
2563         (signal_generate), (interface_generate), (struct_generate),
2564         (union_generate), (boxed_generate), (enum_generate),
2565         (node_generate), (module_generate), (get_type_from_type_id),
2566         (str_replace), (g_igenerator_process_properties),
2567         (g_igenerator_process_signals), (g_igenerator_process_types),
2568         (get_type_from_ctype), (g_igenerator_process_function_symbol),
2569         (g_igenerator_process_unregistered_struct_typedef),
2570         (g_igenerator_process_struct_typedef),
2571         (g_igenerator_process_union_typedef),
2572         (g_igenerator_process_enum_typedef),
2573         (g_igenerator_process_function_typedef),
2574         (g_igenerator_process_constant), (g_igenerator_process_symbols),
2575         (g_igenerator_add_symbol), (g_igenerator_is_typedef),
2576         (g_igenerator_generate), (main), (csymbol_new),
2577         (csymbol_get_const_boolean), (ctype_new), (ctype_copy),
2578         (cbasic_type_new), (ctypedef_new), (cstruct_new), (cunion_new),
2579         (cenum_new), (cpointer_new), (carray_new), (cfunction_new),
2580         (eat_hspace), (eat_line), (read_identifier),
2581         (g_igenerator_parse_macros):
2582         * src/gen-introspect.h:
2583
2584         Import gen-introspect to generate introspection information by
2585         parsing C headers.
2586
2587 2007-11-30  Jürg Billeter  <j@bitron.ch>
2588
2589         * src/gidlnode.c: (g_idl_node_new): support creating callback nodes
2590
2591 2007-11-30  Jürg Billeter  <j@bitron.ch>
2592
2593         * src/gidlparser.c: (end_element_handler): Don't leave requires
2594         state too early.
2595
2596 2007-11-29  Johan Dahlin  <johan@gnome.org>
2597
2598         * src/gidlparser.c (parse_type_internal): Add char,
2599         gchar and guchar to the builtin types.
2600
2601 2007-11-26  Johan Dahlin  <johan@gnome.org>
2602
2603         * src/ginfo.c: (g_object_info_get_type_name),
2604         (g_object_info_get_type_init):
2605         * src/girepository.c: (g_irepository_is_registered):
2606         * src/girepository.h:
2607
2608         Add g_object_info_get_type_name, g_object_info_get_type_init and
2609         g_irepository_is_registered.
2610
2611 2006-08-14  Jürg Billeter  <j@bitron.ch>
2612
2613       * src/gidlparser.c: (end_element_handler): Don't leave
2614         namespace and implements states too early.
2615         Fixes #351264
2616
2617 2007-11-26  Johan Dahlin  <johan@gnome.org>
2618
2619         * src/gmetadata.c (validate_struct_blob):
2620         pass blob_type to validate_function_blob instead of
2621         hard-coding BLOB_TYPE_STRUCT.
2622
2623         Patch by Torsten Schoenfeld, fixes #314190
2624
2625 2006-10-03  Torsten Schoenfeld  <tsch@cvs.gnome.org>
2626
2627         * src/compiler.c, src/generate.c, src/gidlnode.c,
2628         src/gidlparser.c, src/ginfo.c, src/girepository.c,
2629         tests/invoke/invoke.c, test/invoke/testfns.c: Hush compiler
2630         warnings about return values, signedness mismatches, unused
2631         variables, and unhandles enum values in switch statements.
2632
2633         * tests/invoke/Makefile.am: Don't install the invoke test program.
2634         Add -I ../../src to the cflags used for the test functions files.
2635
2636 2005-08-31  Torsten Schoenfeld  <tsch@cvs.gnome.org>
2637
2638         * src/girepository.h: Export g_invoke_error_quark.
2639
2640 2005-08-31  Torsten Schoenfeld  <tsch@cvs.gnome.org>
2641
2642         * src/ginvoke.c: Remove the fallback implementation of
2643         g_function_info_invoke since we now formally depend on libffi.
2644
2645 2005-07-25  Matthias Clasen  <mclasen@redhat.com>
2646
2647         * src/Makefile, tests/Makefile, tests/invoke/Makefile:
2648         Remove these files from cvs, as they are now generated.
2649
2650         * src/gmetadata.c (validate_iface_type_blob): Don't
2651         complain if blob->pointer is not set, since that
2652         happens for enum and flag types.  (#308935, Gustavo
2653         Carneiro)
2654
2655         * Commit an autoconf-conversion patch by
2656         Gustavo Carneiro (#308708)
2657
2658 2005-05-24  Matthias Clasen  <mclasen@redhat.com>
2659
2660         * src/compiler.c (main): Use it here to validate
2661         the generated metadata.
2662
2663         * src/gmetadata.[hc]: Add code to validate a
2664         metadata blob.
2665
2666         * metadata-format.txt: Updates
2667
2668 2005-05-22  Matthias Clasen  <mclasen@redhat.com>
2669
2670         * tests/*: Add struct offsets to field and vfunc
2671         elements.
2672
2673         * src/generate.c (write_vfunc_info): Write offset
2674         information for vfuncs.
2675
2676         * src/gidlnode.c (g_idl_node_build_metadata): Write
2677         the struct offsets into the metadata.
2678
2679         * src/gidlparser.c: Parse the offset attributes of
2680         field and vfunc elements.
2681
2682         * src/gidlnode.h: Add offset members to field and
2683         vfunc nodes.
2684
2685 2005-05-21  Matthias Clasen  <mclasen@redhat.com>
2686
2687         * TODO: Updates.
2688
2689         * gidl.dtd: Updates.
2690
2691         * src/g-idl-offsets.pl: A perl script which reads a .gidl
2692         file, creates, compiles and runs a C file, and folds the
2693         resulting struct offsets back into the .gidl file.
2694
2695 2005-05-20  Matthias Clasen  <mclasen@redhat.com>
2696
2697         * src/gidlparser.c (start_field): Make fields in objects
2698         work.
2699
2700         * src/gidlmodule.c: Include string.h
2701
2702         * TODO: Updates.
2703         :
2704
2705         * metadata-format.txt: Cleanup basic types.
2706         * src/*: Adapt to the changes.
2707         * tests/*: Adapt to the changes.
2708         * examples/gdk-pixbuf.gidl: Adapt to the changes.
2709
2710         * src/gidlnode.c (g_idl_node_get_size): Report the correct
2711         size for enum blobs.
2712         (g_idl_node_get_full_size): Report the correct size for
2713         function blobs.
2714
2715         * src/gidlmodule.c (g_idl_module_build_metadata): Add some
2716         error checking for blob sizes.
2717
2718 2005-05-19  Matthias Clasen  <mclasen@redhat.com>
2719
2720         * src/gidlnode.c (g_idl_node_build_metadata): Correctly handle
2721         interface types for which is_pointer is FALSE, e.g. enums.
2722
2723         * src/gidlnode.c (g_idl_node_get_full_size)
2724         * src/gidlparser.c (parse_type_internal):
2725         * src/generate.c (write_type_info): Support unspecialized
2726         lists, hashtables and errors. Also emit a '*' after these.
2727
2728         * TODO: Updates
2729
2730 2005-05-17  Matthias Clasen  <mclasen@redhat.com>
2731
2732         * TODO: Updates
2733
2734         * metadata-format.txt: Cleanups by Maciej Katafiasz.
2735
2736 2005-05-15  Matthias Clasen  <mclasen@redhat.com>
2737
2738         * src/*.c: Change the directory to be addressed by
2739         1-based indexes, and use an index of zero to mean
2740         'no object'.
2741
2742 2005-05-15  Matthias Clasen  <mclasen@redhat.com>
2743
2744         * tests/roundtrips.sh (SIMPLE_TESTS): Add union.test.
2745
2746         * tests/union.test: Add a union test.
2747
2748         * src/generate.c: Handle unions.
2749
2750         * src/girepository.h:
2751         * src/ginfo.c: Add GIUnionInfo and functions to access it.
2752
2753         * src/gidlnode.c: Handle GIdlNodeUnion nodes.
2754
2755         * src/gidlparser.c (start_union): Parse <union> elements.
2756
2757         * src/gidlnode.h: Add a GIdlNodeUnion.
2758
2759         * gidl.dtd: Add a <union> element.
2760
2761         * src/gmetadata.c (g_metadata_check_sanity): Check
2762         union_blob_size.
2763
2764         * src/gmetadata.h: Add union_blob_size to Header,
2765         add a UnionBlob.
2766
2767         * metadata-format.txt: Add a UnionBlob.
2768
2769 2005-05-13  Matthias Clasen  <mclasen@redhat.com>
2770
2771         * tests/*: Update testcases.
2772
2773         * src/generate.c (write_callable_info): Don't forget to
2774         write transfer and null-ok attributes for return types
2775         and parameters.
2776
2777         * src/girepository.h:
2778         * src/ginfo.c (g_callable_info_may_return_null):
2779         New function to find out if a function may return NULL.
2780
2781         * src/compiler.c (format_output): Make the generated
2782         C code compile.
2783
2784         * README: Point to a recent libffi snapshot.
2785
2786         * tests/invoke/*: Some invoke tests.
2787
2788         * src/Makefile: Add ginvoke.c and the necessary
2789         libffi information.
2790
2791         * src/girepository.h (g_function_info_invoke): Add
2792         a GError argument.
2793
2794         * src/ginvoke.c (g_function_info_invoke): Initial
2795         implementation of invoke functionality based on libffi.
2796
2797         * src/gidlnode.c (g_idl_node_build_metadata): Pass the
2798         strings and types hash tables in the right order when
2799         recursing.
2800         (find_entry_node): Free the name parts.
2801
2802 2005-05-12  Johan Dahlin  <johan@gnome.org>
2803
2804         * src/generate.c: Generate consistent end tags.
2805
2806         * tests/*: Update
2807
2808 2005-05-12  Matthias Clasen  <mclasen@redhat.com>
2809
2810         * TODO: Updates
2811
2812         * src/gidlparser.c (start_function): Actually add
2813         methods to objects.  (Steven Walter)
2814
2815         * src/girepository.h:
2816         * src/ginfo.c: Rename Transfer and Direction to
2817         GITransfer and GIDirection. (Torsten Schoenfeld)
2818
2819         * tests/*: Make tests work with the changes in name
2820         handling.
2821
2822         * src/gidlnode.c (find_entry_node): Parse qualified
2823         names and generate xref nodes for them if needed. Don't
2824         require all modules to be loaded any more.
2825
2826         * src/gidlmodule.c (g_idl_module_build_metadata): Choke
2827         on '.' in names.
2828
2829         * src/ginfo.c (g_object_info_get_parent): Return NULL
2830         if blob->parent is 0. Still need to make sure index
2831         0 is not used.
2832
2833         * src/generate.c: Generate qualified names when
2834         referring to non-local types. Emit transfer attribute
2835         for return types.
2836
2837         * src/compiler.c (format_output): Put the function
2838         attributes where gcc accepts them.
2839
2840 2005-05-11  Matthias Clasen  <mclasen@redhat.com>
2841
2842         * src/compiler.c (main): Add a --verbose cmdline option
2843         and only log messages if it is specified.
2844
2845         * src/gidlnode.h:
2846         * src/gidlnode.c (init_stats, dump_stats): Collect some
2847         statistics on string and type sharing.
2848
2849         * src/gidlmodule.c (g_idl_module_build_metadata): Use
2850         g_message() instead of fprintf().
2851
2852         * src/gidlnode.c (g_idl_node_free): Make this more robust.
2853         (g_idl_node_get_size): Implement for structs.
2854         (g_idl_node_get_full_size): Handle parent being NULL.
2855         (serialize_type): Handle lookup failures more gracefully.
2856
2857 2005-05-10  Matthias Clasen  <mclasen@redhat.com>
2858
2859         * src/gidlnode.c (g_idl_node_get_full_size): Correct the
2860         size calculation for 2-parameter types and for objects.
2861
2862         * src/compiler.c: Add a cmdline option for debug output
2863         and install a log handler to implement it.
2864         * src/gidlnode.c: Add some debug spew.
2865
2866         * TODO: Updates
2867
2868         * src/gidlmodule.c (g_idl_module_build_metadata): Don't
2869         forget to count the module name when calculating the
2870         required size for the metadata.
2871
2872         * src/gidlnode.c:
2873         * src/gidlparser.c: Fix compiler warnings.
2874
2875 2005-05-09  Matthias Clasen  <mclasen@redhat.com>
2876
2877         * src/compiler.c (main): Free the option context.
2878
2879         * gidl.dtd: Clean up handling of names. All elements
2880         have a "name", only the elements corresponding to
2881         actual callable functions (function, method, constructor),
2882         have an additional "symbol" attribute holding the
2883         dlsym()-able function name.
2884
2885         * src/generate.c: Adapt to generate xml matching the
2886         new dtd.
2887
2888         * src/gidlparser.c:
2889         * src/gidlnode.c: Adapt to parse the new dtd.
2890
2891         * tests/*.test: Adjust to the new dtd.
2892
2893         * metadata-format.txt:
2894         * src/gmetadata.h: Remove the short_name field
2895         from the ValueBlob.
2896         * src/gmetadata.c: Shrink size of ValueBlob to 12.
2897         * src/girepository.h:
2898         * src/ginfo.c (g_value_info_get_short_name): Removed
2899
2900 2005-05-09  Matthias Clasen  <mclasen@redhat.com>
2901
2902         * gidl.dtd: Allow constructors for boxed types,
2903         patch by Jonathan Blandford.
2904
2905
2906 2005-05-09  Matthias Clasen  <mclasen@redhat.com>
2907
2908         * --- Initial import ---