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