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