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