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