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