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