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