Add utility functions for invocing closures given a GICallableInfo using
[platform/upstream/gobject-introspection.git] / ChangeLog
1 2009-02-04  Johan Dahlin  <jdahlin@async.com.br>
2
3         * girepository/Makefile.am:
4         * girepository/girffi.c (g_callable_info_get_ffi_arg_types),
5         (g_callable_info_get_ffi_return_type),
6         (g_callable_info_prepare_closure), (g_callable_info_free_closure):
7         * girepository/girffi.h:
8         Add utility functions for invocing closures given a GICallableInfo
9         using libffi.
10
11 2009-02-03  Andreas Rottmann  <a.rottmann@gmx.at>
12
13         * tests/scanner/utility.h (UtilityTaggedValue): Make the union
14         member anonymous.
15         (UtilityByte): New union typedef with an unnamed struct in it.
16
17         * giscanner/transformer.py (Transformer._create_struct): Create
18         unnamed structs for symbols with a None ident.
19         (Transformer._create_union): Likewise.
20
21         * giscanner/girwriter.py (GIRWriter._write_record): Allow name
22         being None.
23         (GIRWriter._write_union): Likewise.
24
25         * girepository/girparser.c (start_struct): Allow a NULL name for
26         non-toplevel structs.
27         (start_union): Likewise.
28
29         * tests/scanner/utility.h (UtilityTaggedValue): New struct
30         typedef, which has a nested union member.
31         * tests/scanner/utility-expected.gir: Adapted.
32
33         * giscanner/transformer.py (Transformer._create_member): Create
34         struct/union members if appropriate.
35         (Transformer._create_struct, Transformer._create_union): Allow for
36         structs/unions without a C type.
37
38         * giscanner/glibtransformer.py (GLibTransformer._resolve_field):
39         We don't need to resolve non-typef'd
40         (GLibTransformer._resolve_field): Add cases for non-typedef'd
41         struct/union "fields".
42
43         * giscanner/girwriter.py (GIRWriter._write_record): Allow for
44         records without a C type.
45         (GIRWriter._write_field): structs and unions may appear in places
46         where fields do.
47
48 2009-02-03  Andreas Rottmann  <a.rottmann@gmx.at>
49         
50         * girepository/girparser.c (ParseContext): Removed member
51         current_node, added node_stack instead.
52         (CURRENT_NODE): New macro, returns the current node (top of
53         node_stack).
54         (pop_node, push_node): New functions; pop or push a node from
55         node_stack.
56         Rest of the file adapted to these changes, which are necessary 
57         for supporting nested structs/and unions.
58
59 2009-02-02  Dan Winship  <danw@gnome.org>
60
61         * girepository/ginfo.c (g_registered_type_info_get_g_type): handle
62         the special case for GObject, whose glib:get-type is listed as
63         "intern".
64
65 2009-02-02  Andreas Rottmann  <a.rottmann@gmx.at>
66
67         Bug 569408 – Scanner doesn't handle arbitrary typedefs correctly
68
69         * giscanner/glibtransformer.py (GLibTransformer._create_gobject):
70         Treat GInitiallyUnowned specially.
71
72         Bug 568680 – Scanner misses fields (at least in GObject.Object)
73
74         * girepository/giroffsets.c (compute_struct_field_offsets): Fix
75         handling of callbacks (a callback member clobbered the size
76         computed so far).
77
78         * giscanner/transformer.py (Transformer._create_compound): Use
79         the (empty) compound created by a typedef if present; this means
80         that fields will no longer get lost.
81
82         * giscanner/transformer.py (Transformer._create_compound): New
83         method, contains logic common to _create_union and _create_struct.
84         (Transformer._create_struct, Transformer._create_union): Rewritten
85         in terms of _create_compound.
86
87         * gir/GObject-2.0.xpath: Some new assertations of the presence
88         GObject fields.
89         * tests/offsets/Makefile.am, tests/offsets/offsets.h: Added test
90         for object field offsets.
91
92   2009-02-02  Andreas Rottmann  <a.rottmann@gmx.at>
93
94         Bug 563469 – Arrays not treated correctly in struct offset calculation
95
96         * tests/offsets/offsets.h (OffsetsArray): New struct, containing a
97         bunch of arrays.
98
99         * tests/offsets/gen-gitestoffsets (FIELD_RE): Handle arrays.
100
101         * girepository/giroffsets.c (get_interface_size_alignment):
102         Refactored to make it more general, now takes a GIrNodeType*
103         instead of a GIrNodeField*, plus an additional 'who' parameter
104         that denotes what the size/alignment is calculated for.
105         (get_type_size_alignment): New function, refactored version of
106         get_field_size_alignment().
107         (get_field_size_alignment): Implemented in terms of
108         get_type_size_alignment().
109         (get_type_size_alignment): Handle array types correctly.
110
111   2009-01-28  Johan Bilien  <jobi@via.ecp.fr>
112
113         * tests/scanner/annotation-1.0-expected.gir: add missing
114         with_voidp
115
116 2009-01-27  Johan Dahlin  <jdahlin@async.com.br>
117
118         * gir/cairo-1.0.gir:
119         * gir/fontconfig-2.0.gir:
120         * gir/freetype2-2.0.gir:
121         * gir/libxml2-2.0.gir:
122         * gir/xfixes-4.0.gir:
123         * gir/xft-2.0.gir:
124         * gir/xlib-2.0.gir:
125         Remove shared-library tags for these too.
126
127 2009-01-27  Johan Dahlin  <jdahlin@async.com.br>
128
129         * gir/GL-1.0.gir:
130         Remove shared-library which removes the build
131         time dependency on mesa.
132
133 2009-01-27  Dan Winship  <danw@gnome.org>
134
135         Misc warning fixes
136
137         * giscanner/scannerparser.y: Fix the "Ignoring non-UTF-8 constant
138         string" error to print the right value.
139
140         * tests/scanner/annotation.c (backslash_parsing_tester)
141         (backslash_parsing_tester_2): make these non-static to avoid a
142         warning.
143         (annotation_object_string_out)
144         (annotation_string_zero_terminated): fix return values
145
146         * tests/scanner/annotation.h (annotation_object_with_voidp):
147         prototype this
148
149         * tests/scanner/gtkfrob.c:
150         * tests/scanner/gtkfrob.h (gtk_frob_language_manager_get_default):
151         fix prototype. (s/()/(void)/).
152
153         * tools/compiler.c (format_output): fix signed/unsigned warning.
154         Output a prototype for register_typelib() to avoid warnings later.
155
156 2009-01-26  Johan Dahlin  <jdahlin@async.com.br>
157
158         * tests/everything/everything.c (test_callback):
159         * tests/everything/everything.h:
160         Add a couple of callback tests.
161
162 2009-01-26  Johan Dahlin  <jdahlin@async.com.br>
163
164         * girepository/ginfo.c (g_base_info_unref):
165         Only unref the repository if it's actually set.
166
167 2009-01-23  Johan Dahlin  <jdahlin@async.com.br>
168
169         * tests/everything/everything.c (test_enum_param):
170         * tests/everything/everything.h:
171
172         Add an enum param test function
173
174 2009-01-21  Johan Dahlin  <jdahlin@async.com.br>
175
176         * configure.ac:
177         Post-release version bump
178
179 === 0.6.2 ===
180 2009-01-21  Johan Dahlin  <jdahlin@async.com.br>
181
182         * NEWS: Update
183
184 2009-01-21  Johan Dahlin  <jdahlin@async.com.br>
185
186         Bug 562622 – Errordomains missing
187
188         * giscanner/girwriter.py:
189         * giscanner/glibast.py:
190         * giscanner/glibtransformer.py:
191         * tests/scanner/Makefile.am:
192         * tests/scanner/foo-1.0-expected.gir:
193         * tests/scanner/foo-1.0-expected.tgir:
194         * tests/scanner/foo.c (foo_error_get_type), (foo_error_quark):
195         * tests/scanner/foo.h:
196
197 2009-01-20  Johan Dahlin  <jdahlin@async.com.br>
198
199         * giscanner/scannerlexer.l:
200         Increase the buffer size to 1M, so
201         gtkalias.h can be parsed.
202
203 2009-01-20  Johan Dahlin  <jdahlin@async.com.br>
204
205         * giscanner/glibtransformer.py:
206         When trying to map functions to structs, do
207         not require a public structure to exist, should
208         fix Gst gir generation in.
209
210 2009-01-20  Johan Dahlin  <jdahlin@async.com.br>
211
212         Bug 562615 – Struct methods missing
213
214         * giscanner/annotationparser.py:
215         * giscanner/ast.py:
216         * giscanner/girwriter.py:
217         * giscanner/glibast.py:
218         * giscanner/glibtransformer.py:
219         * tests/scanner/foo-1.0-expected.gir:
220         * tests/scanner/foo-1.0-expected.tgir:
221
222 2009-01-16  Dan Winship  <danw@gnome.org>
223
224         * gir/GL-1.0.gir: add back GLvoid, which got lost during the
225         gir-repository -> gobject-introspection migration
226
227 2009-01-15  Johan Dahlin  <jdahlin@async.com.br>
228
229         * gir/freetype2-2.0.gir: add FT_Int32
230         * gir/xft-2.0.gir: add XftFont
231         * girepository/gdump.c (g_irepository_dump):
232         Report errors when an invalid type is encountered
233         * giscanner/glibtransformer.py:
234         Make the error message a bit nicer.
235
236         Part of preparating for gir generating inside pango.
237
238 2009-01-15  Johan Dahlin  <jdahlin@async.com.br>
239
240         * gir/GL-1.0.gir:
241         * gir/Makefile.am:
242         * gir/cairo-1.0.gir:
243         * gir/fontconfig-2.0.gir:
244         * gir/freetype2-2.0.gir:
245         * gir/libxml2-2.0.gir:
246         * gir/xfixes-4.0.gir:
247         * gir/xft-2.0.gir:
248         * gir/xlib-2.0.gir:
249
250         Move over the hand-written girs from gir-repository
251         so upstream libraries depending on these can avoid
252         a gir-repository dependency.
253
254 2009-01-15  Johan Dahlin  <jdahlin@async.com.br>
255
256         Bug 567813 – Everything should be versioned
257
258         * gir/Makefile.am:
259         * girepository/Makefile.am:
260         * girepository/girepository.c (init_globals):
261         * girepository/girparser.c (locate_gir):
262         * giscanner/dumper.py:
263         * giscanner/transformer.py:
264         * gobject-introspection-1.0.pc.in:
265         * tests/everything/Makefile.am:
266         * tests/invoke/Makefile.am:
267         * tests/offsets/Makefile.am:
268         * tests/repository/Makefile.am:
269         * tests/scanner/Makefile.am:
270         * tools/Makefile.am:
271
272 2009-01-13  Johan Dahlin  <jdahlin@async.com.br>
273
274         Bug 555036 – put gtk-doc in GIR
275
276         * giscanner/annotationparser.py:
277         * giscanner/ast.py:
278         * giscanner/girwriter.py:
279         * giscanner/glibast.py:
280         * tests/scanner/annotation-1.0-expected.gir:
281         * tests/scanner/annotation.h:
282         * tests/scanner/foo-1.0-expected.gir:
283
284 2009-01-13  Johan Dahlin  <jdahlin@async.com.br>
285
286         * giscanner/cachestore.py (CacheStore.load): Catch AttributeError
287         which seems to be occasionally raised for Record.
288
289         * giscanner/annotationparser.py:
290         Fix a bug where \n was not present in a comment
291
292 2009-01-12  Johan Dahlin  <jdahlin@async.com.br>
293
294         Bug 562467 – Property annotation
295
296         * giscanner/annotationparser.py:
297         * tests/scanner/annotation-1.0-expected.gir:
298         * tests/scanner/annotation-1.0-expected.tgir:
299         * tests/scanner/annotation.c (annotation_object_set_property),
300         (annotation_object_get_property), (annotation_object_class_init):
301
302         Annotations are parsed for properties.
303
304 2009-01-12  Johan Dahlin  <jdahlin@async.com.br>
305
306         Bug 546739 – Introspection should know precise signal parameter types
307
308         * giscanner/annotationparser.py:
309         * tests/scanner/annotation-1.0-expected.gir:
310         * tests/scanner/annotation-1.0-expected.tgir:
311         * tests/scanner/annotation.c (annotation_object_class_init):
312
313         Annotations are parsed for signals, the (type) annotation is introduced.
314
315 2009-01-12  Johan Dahlin  <jdahlin@async.com.br>
316
317         Bug 563591 – Flags not recognized when there is no introspection data
318
319         * giscanner/ast.py:
320         * giscanner/girwriter.py:
321         * giscanner/giscannermodule.c (type_get_is_bitfield):
322         * giscanner/glibast.py:
323         * giscanner/glibtransformer.py:
324         * giscanner/scannerparser.y:
325         * giscanner/sourcescanner.c (gi_source_type_copy):
326         * giscanner/sourcescanner.h:
327         * giscanner/sourcescanner.py:
328         * giscanner/transformer.py:
329         * tests/scanner/foo-1.0-expected.gir:
330         * tests/scanner/foo-1.0-expected.tgir:
331         * tests/scanner/foo.h:
332
333         Large parts of this patch was done by Jürg Billeter.
334
335 2009-01-12  Havoc Pennington  <hp@pobox.com>
336
337         Bug 563386 – scanner ignores "const" on boxed return values
338
339         * tests/everything/everything.c (test_simple_boxed_a_const_return):
340         * tests/everything/everything.h:
341
342         This adds just the tests specified in the bug above, the fix itself
343         was included in Bug 563794
344
345 2009-01-03  Andreas Rottmann  <a.rottmann@gmx.at>
346
347         Bug 566404 – Annotations for GLib
348
349         * gir/glib-2.0.c: Added allow-none annotations for g_thread_init()
350         and g_main_loop_new().
351
352 2009-01-12  Johan Dahlin  <jdahlin@async.com.br>
353
354         Bug 566419 – Element type of arrays not properly handled in all cases
355
356         * giscanner/annotationparser.py:
357         * tests/scanner/annotation-1.0-expected.gir:
358         * tests/scanner/annotation-1.0-expected.tgir:
359         * tests/scanner/annotation.c (annotation_object_set_data),
360         (annotation_object_set_data2), (annotation_object_set_data3):
361         * tests/scanner/annotation.h:
362
363         Based on patch by Andreas Rottmann
364
365 2009-01-12  Johan Dahlin  <jdahlin@async.com.br>
366
367         Bug 566560 – giscanner.transformer.SkipError
368
369         * giscanner/transformer.py:
370
371         Catch SkipError for all nodes, not just functions.
372         Makes it possible to skip unsupported parameter types in 
373         callbacks.
374
375 2009-01-12  Johan Dahlin  <jdahlin@async.com.br>
376
377         Bug 563794 - Redo annotation parsing & applying
378         
379         Thanks to Colin for helping out considerably in landing this.
380
381         * giscanner/Makefile.am:
382         * giscanner/ast.py:
383         * giscanner/dumper.py:
384         * giscanner/girparser.py:
385         * giscanner/giscannermodule.c (pygi_source_scanner_get_comments),
386         (calc_attrs_length), (pygi_collect_attributes), (init_giscanner):
387         * giscanner/glibtransformer.py:
388         * giscanner/scannerlexer.l:
389         * giscanner/sourcescanner.c (gi_source_symbol_unref),
390         (gi_source_scanner_new), (gi_source_scanner_free),
391         (gi_source_scanner_get_comments):
392         * giscanner/sourcescanner.h:
393         * giscanner/sourcescanner.py:
394         * giscanner/transformer.py:
395         * giscanner/xmlwriter.py:
396         * tests/scanner/annotation-1.0-expected.gir:
397         * tests/scanner/annotation-1.0-expected.tgir:
398         * tests/scanner/annotation.c:
399         * tests/scanner/annotation.h:
400         * tests/scanner/foo-1.0-expected.gir:
401         * tests/scanner/foo-1.0-expected.tgir:
402         * tests/scanner/foo.h:
403         * tools/g-ir-scanner:
404
405         This commit merges the annotation parser rewrite branch.
406         It'll change the annotation parsing to be done completely in python
407         code which will make it easier to do further annotation parsing 
408         easier.
409
410 2009-01-03  Andreas Rottmann  <a.rottmann@gmx.at>
411  
412         Bug 563469 – Arrays not treated correctly in struct offset calculation
413         
414         * tests/scanner/foo.h (FooObject): Added field `some_int'.
415         * tests/scanner/foo-1.0-expected.gir,
416         * tests/scanner/foo-1.0-expected.tgir: Adapted.
417  
418         * giscanner/glibtransformer.py (GLibTransformer._create_gobject):
419         carry over object fields from original (struct) node.
420         (GLibTransformer._pair_class_struct): Don't add fields of the
421         class struct to to the node for the class, they should go under a
422         nested <record> element (see also Bug 551738). This is needed as
423         otherwise offset calculation would not work, as the instance
424         fields are mingled with the class fields without a way to
425         distinguish them.
426   
427 2009-01-03  Johan Dahlin  <jdahlin@async.com.br>
428
429         * misc/pep8.py:
430         Disable blank line check, it works differently under
431         Python 2.5 from 2.6 and was rather annoying from the start.
432
433 2008-01-03  Andreas Rottmann  <a.rottmann@gmx.at>
434
435         Bug 556489 – callback annotations
436         
437         * giscanner/transformer.py 
438
439         * tools/generate.c (write_callable_info): Write out the new scope,
440         closure and destroy attributes.
441
442         * giscanner/transformer.py (Transformer._type_is_callback): New
443         method, checking if a given type is a callback.
444         (Transformer._augment_callback_params): New method; adds
445         information (closure, destroy) to callback parameters.
446         (Transformer._handle_closure, Transformer._handle_destroy): New methods, 
447         auxiliary to _augment_callback_params.
448         (Transformer._create_function): Call _augment_callback_params().
449         (Transformer._create_parameter): Handle scope option.
450
451         (Transformer._create_typedef_callback): New method, creates a
452         callback, and registers it in the typedef namespace
453         (Transformer._create_typedef): Use _create_typedef_callback()
454         instead of the plain _create_callback().
455
456         * giscanner/ast.py (Parameter): Added callback-related fields.
457         * giscanner/girwriter.py: Write out new Parameter fields.
458
459         * girepository/girnode.h (GIrNodeParam): Added fields scope, 
460         closure and destroy.
461         * girepository/gtypelib.h (ArgBlob): Ditto.
462         * girepository/girparser.c (start_parameter): Handle new fields.
463
464         * girepository/girmodule.c (g_ir_module_build_typelib): Adjust
465         arg_blob_size, bump major version due to this change.
466         * girepository/girnode.c (g_ir_node_get_full_size_internal)
467         (g_ir_node_build_typelib)
468         * girepository/gtypelib.c (g_typelib_check_sanity): ArgBlob size
469         adjustments.
470         (g_ir_node_build_typelib): Fill in new ArgBlob flags from param. 
471
472         * girepository/girepository.h (GIScope): New enumeration, listing
473         the different possible scopes for callbacks.
474
475         * girepository/ginfo.c (g_arg_info_get_scope)
476         (g_arg_info_get_closure, g_arg_info_get_destroy): Accessors for
477         callback-related argument indices (callback scope, closure for a
478         callback, destroy notification for a callback).
479
480         * tests/scanner/: Added testcases for new features.
481         
482 2009-01-03  Jürg Billeter  <j@bitron.ch>
483
484         * giscanner/ast.py:
485         * giscanner/dumper.py:
486         * giscanner/girparser.py:
487         * giscanner/glibtransformer.py:
488         * giscanner/sourcescanner.py:
489         * giscanner/transformer.py:
490         * giscanner/xmlwriter.py:
491
492         Fix inconsistencies with PEP8
493
494 2008-12-21  Johan Dahlin  <jdahlin@async.com.br>
495
496         * gir/gio-2.0.c:
497         Annotate transfer, direction and allow none for
498         g_file_load_contents, g_file_load_contents_finish and
499         g_file_load_partial_contents_finish parameters.
500
501 2008-12-12  Owen Taylor  <otaylor@redhat.com>
502
503         Disable array auto-detection for out-annotated parameters (#563934)
504
505         If we have a parameter annotated as (out), then having a ctype of
506         'char **' (or similar) doesn't necessarily indicate an array.
507
508         * giscanner/transformer.py: Skip array-detection logic for
509         (out)-annotated parameters.
510         * tests/scanner/annotation.h tests/scanner/annotation.c
511         tests/scanner/annotation-1.0-expected.gir
512         tests/scanner/annotation-1.0-expected.tgir: Add a test for
513         an (out) string parameter.
514
515 2008-12-12  Johan Dahlin  <jdahlin@async.com.br>
516
517         * giscanner/dumper.py (DumpCompiler._link): Pass in
518         --tag=CC to libtool to avoid making libtool confused
519         when CC is different from gcc on some systems.
520
521 2008-12-10  Johan Bilien  <jobi@via.ecp.fr>
522
523         Bug 563998 – Cache the GIBaseInfo for GTypes
524
525         * girepository/girepository.c (g_irepository_find_by_gtype):
526         add a cache of GType -> GIBaseInfo.
527
528 2008-12-09  Johan Bilien  <jobi@via.ecp.fr>
529
530         Bug 562545 – Add function taking / returning GValue
531
532         * tests/everything/everything.[ch]: add a test of function taking and
533         returning "const GValue *"
534
535 2008-12-09  Johan Dahlin  <johan@async.com.br>
536
537         * giscanner/cachestore.py (CacheStore.store): Use
538         shutil.move instead of os.rename, since it will
539         automatically fall back to copying+remove if the
540         src directory is on a different partition from
541         the dst directory.
542
543 2008-12-08  Tristan Van Berkom  <tristan.van.berkom@gmail.com>
544
545         Bug 563742 – introspection should record the introduced version of
546                      symbols marked with the "Since:" tag
547
548         reviewed by: Johan
549
550         * giscanner/ast.py:
551         * giscanner/girwriter.py:
552         * giscanner/scannerlexer.l:
553         * giscanner/transformer.py:
554         * tests/scanner/annotation-1.0-expected.gir:
555         * tests/scanner/annotation-1.0-expected.tgir:
556         * tests/scanner/annotation.c (annotation_versioned):
557         * tests/scanner/annotation.h:
558
559 2008-12-08  Johan Dahlin  <johan@async.com.br>
560
561         * giscanner/cachestore.py (_get_cachedir): Don't require
562         HOME to be set and if it set, don't require the
563         directory to exist.
564
565 2008-12-08  Johan Dahlin  <johan@async.com.br>
566
567         * giscanner/cachestore.py (CacheStore.store): Dump the cache
568         file to a temporary file and rename it the expected filename
569         only when it's completely written.
570         This should make the cache more roboust when run in parallel,
571         and hopefully avoid triggering bugs in Python.
572
573 2008-12-03  Christophe Fergeau  <teuf@gnome.org>
574
575         Bug 562971 – g-ir-scanner failure on libgpod headers
576
577         * giscanner/scannerlexer.l: raise YY_BUF_SIZE to 65536 up from the
578         default 16384. Without it, the lexer was aborting with a cryptic
579         error message on source files containing really long comment
580         blocks.
581
582 2008-12-01  Colin Walters  <walters@verbum.org>
583
584         * girepository/gfield.c: Fix memory leak; unref type info we
585         created, not field info
586
587 2008-11-30  Johan Dahlin  <jdahlin@async.com.br>
588
589         Bug 562289 – Race when removing invalid cache
590
591         * giscanner/cachestore.py:
592         ENOENT is mapped to a OSError, not IOError.
593
594 2008-11-27  Johan Dahlin  <jdahlin@async.com.br>
595
596         * gir/glib-2.0.c: Add return value transfer annotation
597         for g_markup_escape_text.
598
599 2008-11-25  Colin Walters  <walters@verbum.org>
600
601         * tools/g-ir-scanner: Add --libtool option which we expect Automake-using
602         people to pass.
603         * giscanner/dumper.py: Implement it.
604         * gir/Makefile.am, tests/**/Makefile.am: Use it.
605
606 2008-11-25  Colin Walters  <walters@verbum.org>
607
608         * tests/scanner/Makefile.am: Remove hand-rolled generation of .tgir; easier
609         to just use a Makefile rule and dependencies.  This corresponds with a change
610         made to gir-repository to fix srcdir != builddir issues.
611
612 2008-11-25  Johan Dahlin  <jdahlin@async.com.br>
613
614         * configure.ac:
615         Post release version bump
616
617 === 0.6.1 ===
618 2008-11-25  Johan Dahlin  <jdahlin@async.com.br>
619
620         * NEWS:
621         Release 0.6.1
622
623 2008-11-25  Colin Walters  <walters@verbum.org>
624
625         Bug 559705 – Missing association between static methods and classes
626
627         * docs/typelib-format.txt:
628         * girepository/ginfo.c (g_function_info_get_flags):
629         * girepository/girmodule.c (g_ir_module_build_typelib):
630         * girepository/girnode.c (g_ir_node_get_size),
631         (g_ir_node_build_typelib):
632         * girepository/girparser.c (start_function):
633         * girepository/gtypelib.c (g_typelib_check_sanity),
634         (validate_header), (validate_function_blob):
635         * girepository/gtypelib.h:
636         * giscanner/ast.py:
637         * giscanner/girwriter.py:
638         * giscanner/glibtransformer.py:
639         * tests/scanner/foo-1.0-expected.gir:
640         * tests/scanner/foo-1.0-expected.tgir:
641         * tests/scanner/foo.h:
642
643 2008-11-25  Johan Dahlin  <jdahlin@async.com.br>
644
645         * giscanner/ast.py: Define socklen_t as an alias for int32.
646
647 2008-11-24  Johan Dahlin  <jdahlin@async.com.br>
648
649         * girepository/gdump.c (dump_type): Remove a warning,
650         be less verbose on error on fundamental types.
651
652 2008-11-23  Johan Dahlin  <jdahlin@async.com.br>
653
654         * giscanner/dumper.py: Add license headers,
655         refactor into a class, avoid some duplication and do some
656         extra pedantic checks.
657
658 2008-11-23  Johan Dahlin  <jdahlin@async.com.br>
659
660         Make it compilable with -Werror on my system by adding
661         a couple of prototypes and including headers.
662
663 2008-11-23  Johan Dahlin  <jdahlin@async.com.br>
664
665         Bug 562022 – gobject-introspection needs python headers
666
667         * configure.ac: fail without python headers present.
668         Patch by: Tom Parker
669
670 2008-11-21  Johan Dahlin  <jdahlin@async.com.br>
671
672         Bug 561617 – Return value array annotations
673
674         * giscanner/transformer.py:
675         * tests/scanner/annotation.c (annotation_return_array):
676         * tests/scanner/annotation.h:
677         Add support for (array) for return value annotations as well.
678
679 2008-11-20  Johan Bilien  <jobi@via.ecp.fr>
680
681         * tests/everything/everything.[ch]: add a test function which calls a
682         closure.
683
684 2008-11-19  Johan Dahlin  <jdahlin@async.com.br>
685
686         * giscanner/cachestore.py:
687         Catch ValueError exceptions.
688
689 2008-11-18  Tommi Komulainen  <tommi.komulainen@iki.fi>
690
691         * tests/scanner/Makefile.am (barapp_SOURCES): fix builddir != srcdir
692
693 2008-11-18  Andreas Rottmann  <a.rottmann@gmx.at>
694
695         * girepository/girnode.c (g_ir_node_build_typelib): Use sizeof()
696         instead of hard-coding struct sizes.
697
698 2008-11-18  Owen Taylor <otaylor@redhat.com>
699
700         Bug 561296 - Add "storage type" to the typelib data for enums
701
702         In order to set and get enum and flag fields in structures, we need
703         to know the integral type that the enumeration is stored as. We are already
704         computing that at compile time in order to compute struct offsets, so the
705         easiest thing to do is to save that in the typelib.
706
707         * docs/typelib-format.txt girepository/girnode.[ch] girepository/giroffsets.c
708         girepository/gtypelib.h: Add 'storage_type' to the typelib format for EnumBlob
709         and compute and save it at compile time.
710
711         * girepository/girepository.h girepository/ginfo.c:
712         Add g_enum_info_get_storage_type().
713
714         * girepository/gfield.c: Implement reading and writing enum and flags fields
715         based on the storage type.
716
717 2008-11-18  Owen Taylor <otaylor@redhat.com>
718
719         Add enums to the Everything test module
720
721         * tests/everything/everything.[ch]: Add TestEnum and TestFlags to the Everything
722         test module and register them as GTypes.
723
724         https://bugzilla.gnome.org/show_bug.cgi?id=561296
725
726 2008-11-18  Johan Dahlin  <jdahlin@async.com.br>
727
728         * giscanner/cachestore.py:
729         Catch BadPickleGet exceptions as well.  
730
731 2008-11-17  Owen Taylor  <otaylor@redhat.com>
732
733         * tests/everything/everything.c: Fix doc comment annotations
734         for test_struct_b_clone() to refer to the right function.
735
736 2008-11-17  Dan Winship  <danw@gnome.org>
737
738         * giscanner/glibtransformer.py (GLibTransformer.__init__): fix
739         spelling of GHashTable. #561135
740
741         * tests/scanner/annotation.c (annotation_object_get_hash):
742         * tests/scanner/annotation-1.0-expected.gir:
743         * tests/scanner/annotation-1.0-expected.tgir: add a test of
744         GHashTable annotations
745
746 2008-11-17  Andreas Rottmann  <a.rottmann@gmx.at>
747
748         * giscanner/ast.py: Change string array match type to be in terms
749         of canonicalized type.
750         * giscanner/transformer.py: Add canonicalize_ctype which gives us
751         a version of a c:type without aliases, so we can deep canonicalize
752         char** to utf8*.  Update parse_ctype to use it.
753         * tests/*: Add gtk_init like int*/char*** arg functions for testing.
754
755 2008-11-16  Colin Walters  <walters@verbum.org>
756
757         * girepository/girepository.c: Ensure we always call init_globals,
758         even if passed a non-default repository.
759
760 2008-11-16  Colin Walters  <walters@verbum.org>
761
762         Bug 559706 - Interface prerequisites
763
764         * common.mk: Dep on libgirepository.la for scanner libs so that
765         we rebuild things even if just gdump.c changes.
766         * girepository/gdump.c: Dump prerequisites.
767         * giscanner/ast.py: Add prerequisite list.
768         * giscanner/girparser.py: Parse them from gdump.
769         * giscanner/girwriter.py: Write them.
770         * giscanner/glibtransformer.py: Resolve them.
771         * tests/*: Test.
772
773 2008-11-16  Owen Taylor  <otaylor@redhat.com>
774
775         Bug 561087 - Respect is_pointer in serialize_type()
776
777         Add a '*' to the serialization for the cases where we set is_pointer
778         in the type blob we write out depending on node->is_pointer. Don't
779         add the '*' in the cases where is_pointer is set or not set in a
780         fixed fashion.
781
782         http://bugzilla.gnome.org/show_bug.cgi?id=561087
783
784 2008-11-16  Owen Taylor  <otaylor@redhat.com>
785
786         Bug 560825 – Add size and alignment to typelib
787
788         Include the size and alignment of structures and unions in the typelib,
789         and add getter methods to retrieve them from GIStructInfo/GIUnionInfo.
790
791         * docs/typelib-format.txt girepository/gtypelib.h girepository/girnode.c
792         girepository/girmodule.c girepository/gtypelib.c: Add size and alignment
793         to StructBlob and UnionBlob.
794
795         * girepository/ginfo.c girepository/girepository.h:
796         Add g_[struct|union]_get[size|alignment]().
797
798         * test/offsets/gen-gitestoffsets: Test overall structure size and alignment.
799
800 2008-11-16  Owen Taylor  <otaylor@redhat.com>
801
802         Bug 552371 – implement struct field get/set
803
804         * girepository/gfield.c girepository/girepository.h: Add
805         convenience functions g_field_info_set_field() and
806         g_field_info_get_field() to set and get fields based on the
807         offsets in GIFieldInfo.
808
809 2008-11-16  Andreas Rottmann  <a.rottmann@gmx.at>
810
811         Bug 560241 - Out-arguments should not be marked as being pointers
812         in all cases
813
814         * girepository/girparser.c: Improved logic for out arguments.
815
816 2008-11-16  Andreas Rottmann  <a.rottmann@gmx.at>
817
818         Bug 559601 - Pointers in structs/unions unduly treated as arrays
819
820         * giscanner/transformer.py: Differentiate type creation logic
821         between parameters and struct components.
822
823 2008-11-15  Colin Walters  <walters@verbum.org>
824
825         * giscanner/dumper.py: Check return code from pkg-config
826         invocations.
827
828 2008-11-14  Johan Dahlin  <jdahlin@async.com.br>
829
830         * tests/everything/everything.c (test_array_int_in),
831         (test_array_gtype_in):
832         * tests/everything/everything.h:
833         Rename the int/gtype array tests. Make the return value
834         useful, an aggregation of the array input values.
835
836 2008-11-14  Johan Dahlin  <jdahlin@async.com.br>
837
838         * tests/everything/Makefile.am:
839         * tests/everything/everything.c:
840         * tests/everything/everything.h:
841         * tests/everything/gitesttypes.c:
842         * tests/everything/gitesttypes.h:
843         Rename gitesttypes.[ch] to everything.[ch]
844
845 2008-11-13  Andreas Rottmann  <a.rottmann@gmx.at>
846
847         Bug 560708 – Don't treat arrays that have a length specified as
848         zero-terminated by default
849
850         * giscanner/transformer.py: Default to non zero terminated for
851         arrays with length.
852         * tests/*: Update, add test for zero vs not.
853
854 2008-11-13  Andreas Rottmann  <a.rottmann@gmx.at>
855
856         Bug 557788 - Return types for constructors in generated typelib bogus
857
858         * girepository/girnode.c: Namespace-qualify XREFs; not doing so is
859         obviously broken in the face of duplicate names in different
860         namespaces.
861         * tests/scanner/*expected.gir: Fix up.
862
863 2008-11-13  Owen Taylor  <otaylor@redhat.com>
864
865         * girepository/girffi.c: Fix  "Unexpected time for time_t"
866         message.
867
868 2008-11-13  Colin Walters  <walters@verbum.org>
869
870         Bug 558436 - avoid having scanner load app code
871
872         * giscanner/cgobject.py: Delete; we no longer load shared
873         libraries directly.
874         * giscanner/dumper.py: Support for linking a library to
875         a stub binary for introspection.
876         * giscanner/glibtransformer.py: Rewrite to use gdump XML
877         from invocation of child binary.
878         * giscanner/transformer.py: Fix up to use fully qualified
879         name in parse tree.  Make parse_ctype public so we can use
880         it inside glibtransformer.
881         * tests/scanner/barapp.c: New test, using --program arg
882         for g-ir-scanner.
883         * tests/*: Update to use common.mk for invoking scanner.
884         * tools/g-ir-scanner: Add options --program, --program-arg,
885         and --no-libtool.
886         * docs/g-ir-scanner.1: Update.
887
888 2008-11-13  Colin Walters  <walters@verbum.org>
889
890         * configure.ac: Depend on Gio, we use it in gdump.c.
891         * girepository/gdump.c: Code to dump GType data to XML.
892         * girepository/girepository.c: Add option group for dumping.
893         * girepository/girepository.h: Define API for the above.
894
895 2008-11-13  Colin Walters  <walters@verbum.org>
896
897         * common.mk: Add a file to include with Makefile fragments
898         useful for scanner invocation.
899
900 2008-11-13  Tommi Komulainen  <tommi.komulainen@iki.fi>
901
902         * tests/everything/gitesttypes.c (test_filename_return): Return
903         strings in filename encoding.
904
905 2008-11-13  Owen Taylor  <otaylor@redhat.com>
906
907         Bug 560253 – Add structure and boxed types to Everything test module
908
909         * tests/everything/gitesttypes.[ch]: Add examples of:
910
911           Plain old data structs
912           Plain old data structs with nested fields
913           Plain old data boxed
914           Plain old data boxed with nested fields
915           More complicated boxed types with internal state
916
917 2008-11-12  Johan Dahlin  <jdahlin@async.com.br>
918
919         * tests/everything/gitesttypes.c (test_gtype_in):
920         * tests/everything/gitesttypes.h:
921         Add a test of GType arrays, a la gtk_list_store_set_columns.
922
923 2008-11-12  Owen Taylor  <otaylor@redhat.com>
924
925         Bug 560419 – Cache includes when parsing
926
927         Keep track of all modules parsed within a GIrParser, and when a
928         module is referenced a second time, use the existing parsed copy
929         instead of reparsing.
930
931 2008-11-12  Owen Taylor  <otaylor@redhat.com>
932
933         Fix management of ParseContext.includes_modules (#560419)
934
935         * girepository/girparser.c: Fix some trivial bugs in managing the
936         list of include modules. (Add to module's list twice, not
937         initialized to NULL, not freed.)
938
939 2008-11-12  Owen Taylor  <otaylor@redhat.com>
940
941         Keep aliases and disguised_structures local to each module (#560419)
942
943         * girepository/girmodule.[ch]: When parsing, keep keep a separate
944         hash tables of aliases and 'disguised' flags for each module, and
945         store that on the module.
946
947         After parsing an include merge the aliases/disguised flags to the
948         including module.
949
950         * girepository/girparser.c: Remove 'prefix_aliases' flag and
951         always prefix aliases/disguised structure types when parsing; this
952         simplifies the code considerably.
953
954 2008-11-12  Owen Taylor  <otaylor@redhat.com>
955
956         Fix mismatches between .gir name and 'name' attribute (#560419)
957
958         * tests/boxed.gir tests/constant.gir tests/enum.gir tests/invoke/invoke.c
959         tests/invoke/testfns-1.0.gir tests/object.gir tests/struct.gir: Fix places
960         where the 'name' element of <namespace/> didn't match the filename of the
961         gir, an assumption that the compiler has always expected and now enforces.
962
963 2008-11-12  Owen Taylor  <otaylor@redhat.com>
964
965         Only allow one <namespace/> element per <repository/> (#560419)
966
967         * girepository/girparser.c: The logic in girparser.c didn't work
968         very well if there were multiple <namespace/> nodes within a
969         single <repository/> (context->namespace was always the overall
970         filename and not the the name specified in the <namespace/>
971         element for one thing; this would cause aliases to be mis-prefixed
972         in include modules.) Also check that the "name" in the
973         <namespace/> node matches the filename.
974
975 2008-11-12  Owen Taylor  <otaylor@redhat.com>
976
977         Add a GirParser object to hold the state of a compilation
978
979         * girepository/girparser.[ch] tools/compiler.c: Add a toplevel
980         GirParser object to hold state that is global across a
981         compilation. Currently just holds the include path, but will
982         eventually also keep a cached list of parsed modules.
983
984 2008-11-12  Tommi Komulainen  <tommi.komulainen@iki.fi>
985
986         * girepository/girepository.c (find_namespace_latest): Fix
987         minor memory leak.
988
989 2008-11-12  Tommi Komulainen  <tommi.komulainen@iki.fi>
990
991         * configure.ac: use 'introspection' component for bugs
992
993 2008-11-12  Johan Dahlin  <jdahlin@async.com.br>
994
995         * tests/everything/gitesttypes.c (test_filename_return):
996         * tests/everything/gitesttypes.h:
997         Add a filename return test.
998
999 2008-11-12  Tommi Komulainen  <tommi.komulainen@iki.fi>
1000
1001         * tests/offsets/Makefile.am (gitestoffsets.c): fix
1002         gen-gitestoffsets invocation with builddir != srcdir
1003
1004 2008-11-12  Johan Dahlin  <jdahlin@async.com.br>
1005
1006         * girepository/girepository.c:
1007         Change the element type from utf8 to filename
1008         * girepository/girnode.c (g_ir_node_build_typelib):
1009         Special case filename equally to utf8 here.
1010
1011 2008-11-12  Johan Dahlin  <jdahlin@async.com.br>
1012
1013         * gir/Makefile.am:
1014         Remove unused variables, add a dependency of girepository.ch, so when
1015         they change we rebuild the gir automatically.
1016
1017 2008-11-12  Johan Dahlin  <jdahlin@async.com.br>
1018
1019         * girepository/girepository.c (g_irepository_get_search_path):
1020         * girepository/girepository.h:
1021         Add a g_irepository_get_search_path, so we can access the search
1022         paths from runtime.
1023
1024 2008-11-12  Johan Bilien  <jobi@via.ecp.fr>
1025
1026         Bug 560474 – g-ir-compiler crashes when compiling the glib gir
1027
1028         * girepository/girparser.c: avoid freeing an uninitialized pointer
1029
1030 2008-11-12  Johan Dahlin  <jdahlin@async.com.br>
1031
1032         * gir/Makefile.am:
1033         * giscanner/glibtransformer.py:
1034         * tools/g-ir-scanner:
1035         Add a GIRepository-2.0.gir. Change the libtool lookup slightly
1036         so we can just pass in --library=foo/bar/baz.la and the scanner
1037         does the right thing.
1038         Don't warn for _get_type() functions if they don't take any
1039         parameters
1040
1041 2008-11-11  Owen Taylor  <otaylor@redhat.com>
1042
1043         Bug 560404 – Prefix types when resolving aliases in included modules
1044
1045         * girepository/girparser.c: When resolving aliases in an included
1046         module, prefix types before looking them up.
1047
1048 2008-11-11  Owen Taylor  <otaylor@redhat.com>
1049
1050         Compute field offsets and overall size for object structures
1051
1052         Bug 560326 – Fails to build Gtk-2.0.typelib with "Unexpected non-pointer
1053         field of type object in structure"
1054
1055         Do basic computation of field offsets for objects and interfaces;
1056         this doesn't attempt to address all of the "mess" for virtual
1057         functions described in Bug 560281.
1058
1059 2008-11-11  Tommi Komulainen  <tommi.komulainen@iki.fi>
1060
1061         Bug 560308 – g-ir-compiler goes in infinite loop on Gdk-2.0.gir
1062
1063         Based on patch by Johan Bilien.
1064
1065         * giscanner/transformer.py (_create_member, _create_parameter):
1066         Resolve types here as well.
1067         (_resolve_type_name_1): Try resolving using 'ctype' first since
1068         it's least ambiguous. Fixes struct member type resolution with
1069         similarly named types, e.g. Gdk.PangoRendererClass and
1070         Pango.RendererClass
1071         * tests/scanner/foo*: Add test.
1072
1073 2008-11-11  Owen Taylor  <otaylor@redhat.com>
1074
1075         * girepository/girparser.c: Search provided include dirs before
1076         the default directories.
1077
1078 2008-11-11  Owen Taylor  <otaylor@redhat.com>
1079
1080         * girepository/giroffsets.c: Include fully-qualified names in
1081         all error messages.
1082
1083 2008-11-11  Owen Taylor  <otaylor@redhat.com>
1084
1085         * girepository/giroffsets.c: Fail gracefully with an informative
1086         error message when recursion is encountered when computing a 
1087         structure size.
1088
1089 2008-11-11  Owen Taylor  <otaylor@redhat.com>
1090
1091         * girepository/girparser.c: Remove an unused variable.
1092
1093 2008-11-10  Owen Taylor <otaylor@redhat.com>
1094
1095         Add tests for field offset computations
1096
1097         * tests/offsets/offsets.h: Header file with structure definitions to test
1098
1099         * tests/offsets/gen-gitestoffsets: Generate a C program that computes
1100         field offsets for the structures in offsets.h two ways: using
1101         the information from a generated typelib, and as computed by the
1102         compiler.
1103
1104         We diff these two versions to test that everything is OK.
1105
1106 2008-11-10  Owen Taylor <otaylor@redhat.com>
1107
1108         Remove field offsets from g-ir-generate output and test inputs
1109
1110         Field offsets are a) architecture dependent so they shouldn't be part
1111         of the architecture-independent gir format which is installed in
1112         datadir. b) Are architecture-dependent so they shouldn't be in test
1113         expected output.
1114
1115         * girepository/girparser.c: Don't parse offset for fields
1116         * tools/generate.c: Don't parse offset for fields
1117         * tests/*.gir test/scanner/*.tgir: Remove offsets
1118
1119         (Virtual function and discriminator offsets are not removed, as they
1120         aren't fully hooked up to the field-offset computation machinery yet.)
1121
1122 2008-11-10  Owen Taylor <otaylor@redhat.com>
1123
1124         Bug 560252 - Compute field offsets before writing typelib
1125
1126         * girepository/girnode.h: Store the total size and alignment for
1127         GIrNodeStruct/Boxed/Union.
1128
1129         * girepository/giroffset.c: New file implementing computation of
1130         structure field offsets.
1131
1132         * girepository/girnode.c: Compute structure field offsets before
1133         writing types into the typelib.
1134
1135         * docs/typelib-format.txt: Document that a field offset of 0xFFFF
1136         means "unknown". Also fix description of the discriminator_offset
1137         field for unions.
1138
1139 2008-11-10  Owen Taylor <otaylor@redhat.com>
1140
1141         Bug 560250 - Fully parse included modules
1142
1143         For some things, like computing structure offsets to put into the typelib
1144         we need more than just the aliases from included modules. Do a completel
1145         parse of included modules and store in module->included_modules.
1146
1147         Also add g_ir_find_node() to find node information from within the
1148         active set of modules and their includes.
1149
1150 2008-11-10  Owen Taylor <otaylor@redhat.com>
1151
1152         Split g_ir_ffi_get_ffi_type() out from ginvoke.c
1153
1154         Extract a function to convert GITypeTag to ffi_type from the internals
1155         of ginvoke.c. This will be useful in figure out structure alignment.
1156
1157         Also fix handling of gsize and time_t to be portable. (Add a check
1158         to configure.ac to figure out the width of time_t.)
1159
1160 2008-11-10  Owen Taylor <otaylor@redhat.com>
1161
1162         Bug 560248 – "disguised structures"
1163
1164         Certain types like GIConv and GdkAtom are pointers internally but don't
1165         look like pointers when referenced. They have the form.
1166
1167           typedef struct _X *X;
1168
1169         Parse these as structures/records but mark them in the gir with a 'disguised'
1170         attribute so that we know that they need special handling.
1171
1172         In the typelib treat them like any other structure.
1173
1174 2008-11-09  Jürg Billeter  <j@bitron.ch>
1175
1176         * giscanner/ast.py:
1177         * giscanner/girwriter.py:
1178
1179         Write throws attribute for virtual functions, fixes bug 559703
1180
1181 2008-11-07  Johan Dahlin  <jdahlin@async.com.br>
1182
1183         * giscanner/libtoolimporter.py (LibtoolImporter.find_module): Clear
1184         up some confusion about the second argument to find_module, it's
1185         actually the packages __path__ attribute which we can safely ignore
1186         for our purposes.
1187         (LibtoolImporter.load_module): Set module.__loader__ as per PEP 302.
1188
1189 2008-11-07  Owen Taylor  <otaylor@redhat.com>
1190
1191         Bug 559737 – Deal with continuations in macros
1192
1193         * giscanner/giscannerlexer.l: Treat continuation lines the same
1194         as regular newlines. This makes the scanner not complain about
1195         #define foo(x) \ <stuff> inside a C file. There's no attempt
1196         however to handle parsing macro definitions split across lines.
1197
1198 2008-11-07  Johan Dahlin  <jdahlin@async.com.br>
1199
1200         * giscanner/cachestore.py:
1201         Handle broken cache entries, write only filesystems and
1202         running out of diskspace.
1203
1204 2008-11-07  Owen Taylor  <otaylor@redhat.com>
1205
1206         * giscanner/giscannermodule.c (pygi_source_scanner_lex_filename):
1207         Set current_filename before lexing the file so error messages
1208         are reported in the right file.
1209
1210 2008-11-06  Colin Walters  <walters@verbum.org>
1211
1212         * tests/everything/*: Add some tests for strv.
1213
1214 2008-11-05  Colin Walters  <walters@verbum.org>
1215
1216         * girepository/ginvoke.c (g_function_info_invoke): Don't use
1217         nested scope local variable for error which may go away after
1218         conditional is complete.
1219
1220 2008-11-05  Colin Walters  <walters@verbum.org>
1221
1222         * giscanner/scannerlexer.l: Avoid static 256 char buf which we
1223         manipulate hackily; just use GString.  This avoids an
1224         uninitialized memory read pointed out by Havoc.
1225
1226 2008-11-04  Johan Dahlin  <jdahlin@async.com.br>
1227
1228         * giscanner/__init__.py:
1229         * giscanner/ast.py:
1230         * giscanner/cachestore.py:
1231         * giscanner/cgobject.py:
1232         * giscanner/girparser.py:
1233         * giscanner/girwriter.py:
1234         * giscanner/giscannermodule.c:
1235         * giscanner/glibast.py:
1236         * giscanner/glibtransformer.py:
1237         * giscanner/libtoolimporter.py:
1238         * giscanner/minixpath.py:
1239         * giscanner/odict.py:
1240         * giscanner/sourcescanner.c:
1241         * giscanner/sourcescanner.h:
1242         * giscanner/sourcescanner.py:
1243         * giscanner/transformer.py:
1244         * giscanner/utils.py:
1245         * giscanner/xmlwriter.py:
1246         * COPYING:
1247         Relicense the giscanner library under LGPLv2+.
1248         This has been approved by all contributors.
1249
1250 2008-11-01  Owen Taylor  <otaylor@redhat.com>
1251
1252         Bug 558848 giparser.py: shared library should be optional
1253
1254         When parsing a .gir, allow the shared-library attribute
1255         of <namespace/> to be missing: this corresponds to the handling
1256         in libgirepository and elsewhere.
1257
1258 2008-11-01  Tommi Komulainen  <tommi.komulainen@iki.fi>
1259
1260         Bug 557898 – Fails to build on OSX 10.4
1261
1262         * configure.ac: Check for $shrext_cmds that should be implicitly
1263         available if you're using libtool >= 2.0. If undefined, call
1264         libtool --config explicitly to get its value.
1265         * girepository/gtypelib.c: Remove special case for (non-)Darwin
1266         systems as unneeded.
1267
1268 2008-10-31  Colin Walters  <walters@verbum.org>
1269
1270         * COPYING, COPYING.lib, COPYING.tools: Clarify licensing status.
1271
1272 2008-10-31  Johan Dahlin  <jdahlin@async.com.br>
1273
1274         * configure.ac: Post release version bump
1275
1276 === 0.6.0 ===
1277 2008-10-31  Johan Dahlin  <jdahlin@async.com.br>
1278
1279         * NEWS:
1280         * configure.ac:
1281         * docs/release-checklist.txt:
1282         0.6.0
1283
1284 2008-10-31  Johan Dahlin  <jdahlin@async.com.br>
1285
1286         * Makefile.am: add an upload-release target
1287         * docs/release-checklist.txt:
1288         Release process documentation
1289
1290 2008-10-31  Colin Walters  <walters@verbum.org>
1291
1292         Bug 558109 – _g_typelib_init fails to find shared libraries
1293
1294         * transformer/glibtransformer.py: Use ctypes' find_library
1295         on passed libraries and write that for the shared-library
1296         entry.  We want to avoid depending on -devel packages.
1297
1298 2008-10-31  Johan Dahlin  <jdahlin@async.com.br>
1299
1300         * docs/g-ir-scanner.1:
1301         Document the renaming options.
1302
1303 2008-10-31  Tommi Komulainen  <tommi.komulainen@iki.fi>
1304
1305         * giscanner/Makefile.am:
1306         * tests/invoke/Makefile.am:
1307         * tests/repository/Makefile.am: List in-tree libraries first in
1308         LDADD / LIBADD. If installed library is listed first, the
1309         resulting binary will prefer installed version to one in .libs,
1310         possibly making 'make check' behave strangely.
1311
1312 2008-10-30  Tommi Komulainen  <tommi.komulainen@iki.fi>
1313
1314         * giscanner/ast.py: map 'id' (ObjC) to 'any' type to stop
1315         gir-repository from choking with gdk/quartz
1316
1317 2008-10-30  Johan Dahlin  <jdahlin@async.com.br>
1318
1319         * giscanner/giscannermodule.c (calc_attrs_length),
1320         (pygi_collect_attributes):
1321         * giscanner/xmlwriter.py:
1322         Write a C version of the xml namespace formatter.
1323         Saves 15% of the time it takes to create a gtk gir.
1324
1325 2008-10-30  Johan Dahlin  <jdahlin@async.com.br>
1326
1327         * giscanner/xmlwriter.py: Abstract attribute formatting
1328         to a function external to the XMLWriter class.
1329
1330         * giscanner/scannerlexer.l:
1331         Parse and discard __typeof and __attribute.
1332
1333 2008-10-30  Johan Dahlin  <jdahlin@async.com.br>
1334
1335         * giscanner/girparser.py:
1336         Remove arguments from the constructor, move them to
1337         separate accessors. Add a new parse_tree method
1338         which takes an element tree instance.
1339         * tools/g-ir-scanner:
1340         Update callsite for this
1341
1342         * giscanner/Makefile.am:
1343         * giscanner/cachestore.py:
1344         * giscanner/transformer.py:
1345         Cache the include parsing. Saves ~25% time when
1346         creating vte (which includes everything up to gtk+).
1347
1348 2008-10-30  Colin Walters  <walters@verbum.org>
1349
1350         * giscanner/transformer.py: Don't reparse includes
1351         we've already processed.
1352
1353 2008-10-30  Johan Dahlin  <jdahlin@async.com.br>
1354
1355         * giscanner/girparser.py:
1356         * giscanner/transformer.py:
1357         Avoid parsing parameters, types etc when parsing
1358         includes. Should speed up include parsing a bit.
1359
1360 2008-10-30  Johan Dahlin  <jdahlin@async.com.br>
1361
1362         * giscanner/girparser.py:
1363         Avoid big if/else and use a dispatch table like
1364         approach.
1365
1366 2008-10-30  Johan Dahlin  <jdahlin@async.com.br>
1367
1368         * giscanner/transformer.py:
1369         Clean up include parsing and registration.
1370
1371 2008-10-30  Johan Dahlin  <jdahlin@async.com.br>
1372
1373         * giscanner/transformer.py:
1374         Clean up imports
1375
1376 2008-10-30  Johan Dahlin  <jdahlin@async.com.br>
1377
1378         Bug 558383 – builddir != srcdir build fails if giscanner python module not already installed
1379
1380         * gir/Makefile.am:
1381         construct PYTHONPATH just once
1382
1383         * tests/everything/Makefile.am:
1384         * tests/scanner/Makefile.am:
1385         add $(top_srcdir) to PYTHONPATH to
1386         handle builddir != srcdir
1387
1388         * giscanner/libtoolimporter.py:
1389         * giscanner/sourcescanner.py:
1390         Make the libtoolimporter work when distchecking too.
1391
1392         Mostly based on patch by Tommi Komulainen
1393
1394 2008-10-29  Owen Taylor  <otaylor@redhat.com>
1395
1396         * giscanner/glibtransformer.py: If a filename of an existing
1397         file is passed to --library, hunt for it directly, rather than
1398         searching for a corresponding library.
1399
1400 2008-10-29  Johan Dahlin  <jdahlin@async.com.br>
1401
1402         * giscanner/libtoolimporter.py:
1403         * giscanner/sourcescanner.py:
1404         Clean up the libtool importer a bit. Add a context so we
1405         can use it through a with statement.
1406         Don't just look in the current directory, look in the whole
1407         sys.path.
1408
1409 2008-10-29  Tommi Komulainen  <tommi.komulainen@iki.fi>
1410
1411         Bug 558065 – gitesttypes should be installed
1412
1413         * configure.ac:
1414         * tests/Makefile.am:
1415         * tests/types/Makefile.am   -> tests/everything/Makefile.am
1416         * tests/types/gitesttypes.c -> tests/everything/gitesttypes.c
1417         * tests/types/gitesttypes.h -> tests/everything/gitesttypes.h
1418         move tests/types to tests/everything
1419
1420         * tests/everything/Makefile.am: build normal shared library
1421         libgirepository-everything.so.1.0.0 and corresponding typelib
1422         Everything-1.0.typelib
1423
1424         * tests/everything/Makefile.am: explicitly link libtool
1425         versioning with typelib versioning with variables
1426
1427 2008-10-28  Johan Bilien  <jobi@via.ecp.fr>
1428
1429         * tools/g-ir-scanner: add LD_LIBRARY_PATH to LPATH before calling ld.
1430
1431 2008-10-27  Johan Bilien  <jobi@via.ecp.fr>
1432
1433         * gio/gio-2.0.c: add allow-none annotations, based on the pygobject
1434         .defs file
1435
1436 2008-10-27  Johan Bilien  <jobi@via.ecp.fr>
1437
1438         Bug 558068 – when invoking a method, offset the in arguments by one,
1439         not the out
1440
1441         * tests/invoke/invoke.c, tests/invoke/testfns.c,
1442         tests/invoke/testfns-1.0.gir: Add testing of method and constructor.
1443         * girepository/ginvoke.c: do not offset the index of given out
1444         arguments by one for methods, "this" is provided as in argument only.
1445
1446 2008-10-27  Johan Bilien  <jobi@via.ecp.fr>
1447
1448         * gir/gio-2.0.c: add annotation for g_file_delete
1449
1450 2008-10-27  Tommi Komulainen  <tommi.komulainen@iki.fi>
1451
1452         Bug 558062 – provide and use paths in the .pc file
1453
1454         * gobject-introspection-1.0.pc.in: provide typelibdir variable
1455         for where .typelibs should be installed (callers shouldn't need
1456         to construct paths from bits and pieces)
1457
1458 2008-10-25  Andreas Rottmann  <a.rottmann@gmx.at>
1459
1460         Bug 557791 – g_irepository_require() could return a GTypelib *
1461
1462         * girepository/girepository.c: Return GTypelib; this is useful
1463         for low level manipulation.
1464
1465 2008-10-25  Colin Walters  <walters@verbum.org>
1466
1467         Bug 557788 – Return types for constructors in generated typelib bogus
1468
1469         * giscanner/glibtransformer.py: Don't resolve ctors incrementally,
1470         rely on end pass resolution.
1471
1472 2008-10-25  Andreas Rottmann  <a.rottmann@gmx.at>
1473
1474         Bug 557786 - support fixed size arrays
1475
1476         * girepository/ginfo.c: Add g_type_info_get_array_fixed_size.
1477         * giscanner/scannerparser.y: Retain fixed array size.
1478         * giscanner/ast.py: Add to note.
1479         * giscanner/girwriter.py: Write to gir.
1480         * girepository/girnode.c: Write it to typelib.
1481         * tools/generate.c: Generate.
1482         * tests/*: Add tests.
1483
1484 2008-10-25  Colin Walters  <walters@verbum.org>
1485
1486         Bug 557076 - move typelibs to $libdir
1487
1488         * configure.ac: Steal some configury bits from dbus to expand
1489         libdir.
1490         * gir/Makefile.am: Move to libdir.
1491         * girepository/girepository.c: Stop searching XDG_DATA_DIRS;
1492         instead just look at one hardcoded path in libdir.
1493         * acinclude.m4: Bits from dbus.
1494
1495 2008-10-24  Johan Dahlin  <johan@gnome.org>
1496
1497         * girepository/girnode.c (g_ir_node_check_unhandled_members):
1498         Be quiet, do not warn about unhandled members.
1499
1500 2008-10-24  Johan Dahlin  <johan@gnome.org>
1501
1502         * girepository/gtypelib.c:
1503         Only use SHLIB_SUFFIX on darwin, otherwise use
1504         G_MODULE_SUFFIX, we cannot get shext_cmds from libtool 2.2.
1505
1506 2008-10-24  Lucas Rocha  <lucasr@gnome.org>
1507
1508         Bug 557623 - Constructors shouldn't be flagged as methods.
1509
1510         * girepository/ginfo.c (g_function_info_get_flags): ditto.
1511
1512 2008-10-24  Johan Dahlin  <johan@gnome.org>
1513
1514         * giscanner/scannerparser.y:
1515         Check against division by zero for the modula operator.
1516         This fixes header parsing of OSX system headers included
1517         by libsoup.
1518
1519 2008-10-24  Johan Dahlin  <johan@gnome.org>
1520
1521         * CONTRIBUTORS:
1522         * Makefile.am:
1523         Add a CONTRIBUTORS file and dist it.
1524
1525 2008-10-23  Tommi Komulainen  <tommi.komulainen@iki.fi>
1526
1527         Bug 556739 – transfer-ownership attribute should be mandatory in .gir
1528
1529         * girepository/girparser.c (parse_param_transfer):
1530         * giscanner/transformer.py (_create_parameter, _create_return):
1531         * giscanner/girwriter.py (_write_return, _write_parameter):
1532         * tools/generate.c (write_callable_info): always write and
1533         require "transfer-ownership" for return-values and parameters
1534
1535         * tests/boxed.gir:
1536         * tests/invoke/testfns-1.0.gir:
1537         * tests/object.gir:
1538         * tests/scanner/DrawableAdditions.xml:
1539         * tests/scanner/GtkFrob-1.0-expected.tgir:
1540         * tests/scanner/annotation-1.0-expected.tgir:
1541         * tests/scanner/drawable-1.0-expected.tgir:
1542         * tests/scanner/drawable-injected-1.0-expected.gir:
1543         * tests/scanner/drawable-injected-1.0-expected.tgir:
1544         * tests/scanner/foo-1.0-expected.tgir: Updated
1545
1546 2008-10-23  Tommi Komulainen  <tommi.komulainen@iki.fi>
1547
1548         * giscanner/cgobject.py: build fundamental types same way as glib
1549
1550         * giscanner/glibtransformer.py (_type_from_gtype): record GType
1551         when constructing the Type from it
1552
1553         * giscanner/glibtransformer.py (_adjust_transfer): Check whether
1554         the parameter is a GObject from its GType, if available.
1555
1556         * giscanner/glibtransformer.py (_adjust_transfer):
1557         * tests/scanner/foo-1.0-expected.gir:
1558         * tests/scanner/foo-1.0-expected.tgir: deduce
1559         transfer-ownership from GTypes
1560
1561 2008-10-23  Tommi Komulainen  <tommi.komulainen@iki.fi>
1562
1563         * giscanner/transformer.py (_create_parameter):
1564         * tests/scanner/foo-1.0-expected.gir: make varargs
1565         transfer-ownership="none"
1566
1567 2008-10-23  Colin Walters  <walters@verbum.org>
1568
1569         Bug 556739 - transfer ownership
1570
1571         * giscanner/ast.py: Refactor Parameter/Return to share
1572         common attributes.  Add transfer_inferred attribute
1573         which says whether or not we made a guess.
1574         * giscanner/transformer.py: Add much more extensive
1575         heuristics around parameter and return transfer.
1576         * giscanner/glibtransformer.py: Adjust to inspect
1577         transfer_inferred.
1578         * tests/*: Adjust.
1579
1580 2008-10-22  Tommi Komulainen  <tommi.komulainen@iki.fi>
1581
1582         Bug 557377 – Add test to ensure annotations survive the roundtrip via typelib
1583
1584         * tests/scanner/Makefile.am:
1585         * tests/scanner/annotation-1.0-expected.tgir:
1586         * tests/scanner/drawable-1.0-expected.tgir:
1587         * tests/scanner/drawable-injected-1.0-expected.tgir:
1588         * tests/scanner/foo-1.0-expected.tgir:
1589         * tests/scanner/GtkFrob-1.0-expected.tgir:
1590         * tests/scanner/utility-1.0-expected.tgir: Add test to ensure
1591         annotations survive the roundtrip via typelib
1592
1593         The expectations are as currently produced by g-ir-generate,
1594         comparison with the .gir files shows there are differences.
1595
1596 2008-10-23  Johan Bilien  <jobi@via.ecp.fr>
1597
1598         Bug 557468 – Support for GI_TYPELIB_PATH
1599
1600         * girepository/girepository.c: if the GI_TYPELIB_PATH is set, add the
1601         provided paths to the global search path.
1602
1603 2008-10-22  Tommi Komulainen  <tommi.komulainen@iki.fi>
1604
1605         Bug 557379 – g-ir-generate not writing the 'abstract' attribute
1606
1607         * tests/scanner/drawable-1.0-expected.tgir:
1608         * tests/scanner/drawable-injected-1.0-expected.tgir:
1609         * tests/scanner/foo-1.0-expected.tgir:
1610         * tools/generate.c (write_object_info): write 'abstract'
1611         attribute for classes
1612
1613 2008-10-22  Lucas Rocha  <lucasr@gnome.org>
1614
1615         * girepository/girmodule.c, girepository/gtypelib.c,
1616         girepository/girparser.[ch]: fix some build warnings.
1617
1618 2008-10-22  Tommi Komulainen  <tommi.komulainen@iki.fi>
1619
1620         Bug 557405 – Use 'allow-none' consistently
1621
1622         * docs/typelib-format.txt:
1623         * girepository/ginfo.c (g_arg_info_may_be_null):
1624         * girepository/girnode.c (g_ir_node_build_typelib):
1625         * girepository/girnode.h (struct _GIrNodeParam):
1626         * girepository/girparser.c (start_parameter):
1627         * girepository/girwriter.c (function_generate):
1628         * girepository/gtypelib.h (ArgBlob):
1629         * tests/errors.gir:
1630         * tests/function.gir:
1631         * tools/generate.c (write_callable_info): Use 'allow-none'
1632         consistently throughout
1633
1634 2008-10-22  Tommi Komulainen  <tommi.komulainen@iki.fi>
1635
1636         Bug 557092 – Callback annotations not used
1637
1638         * giscanner/transformer.py (_create_callback): use annotations
1639         for callbacks
1640         * tests/scanner/annotation.h
1641         * tests/scanner/annotation-1.0-expected.gir: add tests
1642
1643 2008-10-21  Colin Walters  <walters@verbum.org>
1644
1645         * giscanner/scannerlexer.l: Don't require trailing whitespace after
1646         uncommented parameters.
1647         * tests/*: Test it.
1648
1649 2008-10-21  Colin Walters  <walters@verbum.org>
1650
1651         * girepository/girepository.c: Ensure that when doing an unversioned
1652         require, we prefer items earlier in the search path to later ones.
1653
1654 2008-10-21  Owen Taylor  <otaylor@redhat.com>
1655
1656         * giscanner/transformer.py: For string parameters allow transfer annotation
1657         to override the standard automatic guessing based on 'const'.
1658
1659 2008-10-21  Johan Bilien  <jobi@via.ecp.fr>
1660
1661         Bug 557241 – "throws" flag for functions
1662
1663         * tests/scanner/drawable-1.0-expected.gir,
1664         tests/scanner/drawable-injected-1.0-expected.gir,
1665         tests/scanner/drawable.[ch]: add simple test for throwing
1666         function (has GError ** as last argument)
1667
1668         * giscanner/ast.py: add a 'throws' flag to Function
1669         * giscanner/glibtransformer.py: if a function's last paramerter is
1670         a GError, set the 'throws' flag and remove that parameter
1671         * giscanner/girwriter.py: write out the 'throws' attribute
1672         * giscanner/girparser.py: support parsing the 'throws' attribute
1673
1674         * tests/repository/gitestthrows.c: add a simple test to check the
1675         throws flag in a typelib and invoke the function
1676
1677         * girepository/ginfo.c, girepository/girnode.[ch],
1678         girepository/girnode.h, girepository/girparser.c,
1679         girepository/girepository.h: Add and parse the GI_FUNCTION_THROWS flag
1680
1681         * girepository/ginvoke.c: if a function throws, add a GError as last
1682         arguments, and propagate the error to the invoker.
1683
1684 2008-10-21  Tommi Komulainen  <tommi.komulainen@iki.fi>
1685
1686         * giscanner/transformer.py (_create_parameters): Warn if we see
1687         annotations for unknown parameters. If .h and .c files name
1688         parameters differently, the annotations may be lost.
1689
1690 2008-10-21  Johan Dahlin  <johan@gnome.org>
1691
1692         Bug 556358 - don't use libtool internals
1693
1694         * giscanner/Makefile.am:
1695         * giscanner/libtoolimporter.py:
1696         * giscanner/sourcescanner.py:
1697         * giscanner/utils.py:
1698         Add a python meta importer and remove a libtool symlink hack.
1699
1700 2008-10-20  Andreas Rottmann  <a.rottmann@gmx.at>
1701
1702         * tests/scanner/Makefile.am (%.typelib): Set PYTHONPATH
1703         and --add-include-path appropriately when invoking the scanner.
1704         * tests/types/Makefile.am (%typelib): Likewise.
1705
1706 2008-10-20  Colin Walters  <walters@verbum.org>
1707
1708         Bug 556777 - validate properties
1709
1710         * giscanner/transformer.py: Add option to throw on unknown types.
1711         * giscanner/glibtransformer.py: Use it on properties.
1712         * tests/*: Add a test.
1713
1714 2008-10-20  Colin Walters  <walters@verbum.org>
1715
1716         * giscanner/glibast.py: Also register g variants of
1717         default_array_types.  This is not beautiful, but
1718         good alternatives aren't easy to come by.
1719         This fixes gchar ** parsing.
1720
1721 2008-10-20  Colin Walters  <walters@verbum.org>
1722
1723         * docs/typelib-format.txt, girepository/gtypelib.h:
1724         Take a bit from ObjectInfo to represent abstract flag.
1725         * giscanner/cgobject.py: Expose g_type_get_flags.
1726         * girepository/girepository.h: Add accessor.
1727         * girepository/ginfo.c: Implement it.
1728         * giscanner/ast.py: Add is_abstract flag to generic
1729         class object.
1730         * giscanner/glibast.py: Use it.
1731         * giscanner/girwriter.py: Write it.
1732         * girepository/girparser.c: Parse it.
1733         * tests/*: Test it.
1734
1735 2008-10-20  Tommi Komulainen  <tommi.komulainen@iki.fi>
1736
1737         * giscanner/girparser.py (_parse_function): don't lose
1738         'transfer-ownership' attributes when injecting, check for the
1739         correct attribute
1740
1741 2008-10-19  Johan Dahlin  <johan@gnome.org>
1742
1743         * giscanner/scannerlexer.l: Parse and ignore __asm.
1744
1745 2008-10-19  Colin Walters  <walters@verbum.org>
1746
1747         * giscanner/girparser.py: Parse array length= to ensure
1748         it doesn't get lost from --inject.
1749
1750 2008-10-17  Colin Walters  <walters@verbum.org>
1751
1752         Bug 556795 - char ** regression
1753
1754         * giscanner/transformer.py: Fix parsing of ctypes, add some
1755         comments about what's going on.
1756         * tests/*: Add a test for char **.
1757
1758 2008-10-17  Colin Walters  <walters@verbum.org>
1759
1760         Bug 556783 - change namespace handling to be more consistent
1761
1762         * giscanner/transformer.py: Eliminate usage of
1763         strip_namespace_object.  We now treat --namespace as the default
1764         --strip-prefix; however, if --strip-prefix is specified it
1765         overrides --namespace.  This applies to everything except function
1766         names, where we do also strip the namespace.
1767         * giscanner/glibtransformer.py: Remove usage of
1768         strip_namespace_object.
1769         * tests/*: Update.
1770         * tests/*: Add skeletal GtkFrob-1.0 test which has different
1771         --namespace and --strip-prefix.
1772
1773 2008-10-17  Tommi Komulainen  <tommi.komulainen@iki.fi>
1774
1775         Bug 556732 – generate gir files consistently
1776
1777         * girepository/girparser.c (start_parameter):
1778         * tests/boxed.gir:
1779         * tests/invoke/testfns-1.0.gir:
1780         * tools/generate.c (write_callable_info): write
1781         'transfer-ownership' attribute consistently with both
1782         return-value and parameter elements
1783
1784 2008-10-17  Tommi Komulainen  <tommi.komulainen@iki.fi>
1785
1786         Bug 556732 – generate gir files consistently
1787
1788         * tools/generate.c (write_callable_info): write 'direction'
1789         attribute only if other than 'in' to be consistent with
1790         girwriter.py
1791         * tests/boxed.gir:
1792         * tests/object.gir: remove direction="in" which is the default
1793
1794 2008-10-17  Tommi Komulainen  <tommi.komulainen@iki.fi>
1795
1796         Bug 556732 – generate gir files consistently
1797
1798         * giscanner/ast.py (Field): add readable and writable properties
1799         * giscanner/girparser.py (_parse_field): copy 'readable' and
1800         'writable' attributes
1801         * giscanner/transformer.py (_create_member): create fields as
1802         read-write
1803         * giscanner/glibtransformer.py (_introspect_object,
1804         _pair_class_struct): make object instance and class fields
1805         read-only
1806         * giscanner/girwriter.py (_write_field):
1807         * tools/generate.c (write_field_info): write field 'readable'
1808         and 'writable' attributes only if non-default (read-only)
1809         * girepository/girparser.c (start_field): in the absence of
1810         attributes assume fields are read-only
1811         * tests/boxed.gir:
1812         * tests/struct.gir: remove redundant readable="1" from fields
1813         * tests/scanner/foo-1.0-expected.gir:
1814         * tests/scanner/utility-1.0-expected.gir: add writable="1" to
1815         all record and union fields
1816
1817 2008-10-17  Tommi Komulainen  <tommi.komulainen@iki.fi>
1818
1819         Bug 556732 – generate gir files consistently
1820
1821         * giscanner/girwriter.py (_write_property): write properties
1822         'construct' attribute if set
1823         * tools/generate.c (write_property_info): write properties
1824         'readable' and 'writable' attributes only if non-default
1825         * tests/object.gir: add writable="0"
1826         * tests/scanner/foo-1.0-expected.gir: add construct="1"
1827
1828 2008-10-17  Johan Bilien  <jobi@via.ecp.fr>
1829
1830         * gir/glib-2.0.c: added annotations
1831
1832 2008-10-16  Johan Bilien  <jobi@via.ecp.fr>
1833
1834         * giscanner/ast.py: Also assume direction=out for size_t*, ssize_t*
1835         arguments
1836
1837 2008-10-16  Johan Bilien  <jobi@via.ecp.fr>
1838
1839         Bug 556610 – giscanner/girparser.py drops parameter options
1840
1841         * tests/scanner/drawable-injected-1.0-expected.gir,
1842         tests/scanner/DrawableAdditions.xml: added simple test for injection.
1843         * giscanner/ast.py: allow Parameter to take options in the constructor
1844         * giscanner/girparser.py: parse parameter options (transfer,
1845         direction, allow-none)
1846
1847 2008-10-16  Colin Walters  <walters@verbum.org>
1848
1849         Bug 556185 - segfault on g_callable_info_get_return_type
1850
1851         Initial patch from John Ehresman.
1852
1853         * tests/repository/*: Add a test using
1854         g_callable_info_get_return_type.  Instead of casting a
1855         GITypeInfo directly to a GIRegisteredTypeInfo, we need
1856         to call g_type_info_get_interface.
1857
1858 2008-10-16  Colin Walters  <walters@verbum.org>
1859
1860         Bug 556579 - union and struct name misresolved
1861
1862         * giscanner/transformer.py: The calls to _resolve_type_name
1863         for struct/union names was a legacy holdover from when type
1864         resolution had multiple phases.  Now it's actively harmful
1865         since we might pull in an identical name from another
1866         namespace.
1867         * tests/*: Update.
1868
1869 2008-10-16  Colin Walters  <walters@verbum.org>
1870
1871         Bug 556432 - transfer annotations and defaults
1872
1873         * giscanner/transformer.py: Canonicalize type
1874         after removing *, not before.  This ensures that
1875         guchar* is transformed to 'uint8'.
1876         Add some comments here.
1877         * giscanner/glibtransformer.py: Add _adjust_transfer
1878         phase for tweaking GObject transfers.
1879         * tests/*: test it.
1880
1881 2008-10-16  Tommi Komulainen  <tommi.komulainen@iki.fi>
1882
1883         * configure.ac: enable bunch of gcc warning CFLAGS
1884
1885 2008-10-16  Tommi Komulainen  <tommi.komulainen@iki.fi>
1886
1887         Bug 556543 – reduce compiler warnings
1888
1889         * girepository/ginfo.c:
1890         * girepository/girepository.c (register_internal,
1891         count_interfaces, find_interface, find_namespace_version,
1892         parse_version, g_irepository_require):
1893         * girepository/girmodule.c (g_ir_module_build_typelib):
1894         * girepository/girnode.c (init_stats, dump_stats,
1895         _g_irnode_init_stats, _g_irnode_dump_stats,
1896         g_ir_node_can_have_member):
1897         * girepository/girparser.c (firstpass_end_element_handler,
1898         locate_gir, parse_basic, parse_type_internal, resolve_aliases,
1899         start_alias, start_type, end_type_top, parse_include, cleanup,
1900         post_filter):
1901         * girepository/gtypelib.c (validate_function_blob, validate_enum_blob):
1902         * giscanner/giscannermodule.c (directive_get_options,
1903         type_get_child_list):
1904         * giscanner/scannerlexer.l (parse_gtkdoc):
1905         * giscanner/scannerparser.y (ctype_free):
1906         * giscanner/sourcescanner.c:
1907         * giscanner/sourcescanner.h (gi_source_scanner_parse_macros):
1908         * tests/types/gitesttypes.c:
1909         * tools/compiler.c (main):
1910         * tools/generate.c (write_repository): Remove unused variables
1911         and code, add missing includes, declarations and case
1912         statements.
1913
1914 2008-10-16  Tommi Komulainen  <tommi.komulainen@iki.fi>
1915
1916         Bug 556541 – access union members through UnionBlob rather than
1917         StructBlob
1918
1919         * girepository/ginfo.c (g_union_info_find_method): access union
1920         members through UnionBlob rather than StructBlob
1921
1922 2008-10-15  Colin Walters  <walters@verbum.org>
1923
1924         Bug 556331 - clean up includes handling
1925
1926         * tools/g-ir-scanner: Rework command line arguments; now we take
1927         --add-include-path and --include separately.
1928         * giscanner/girwriter.py: Separate name= and version= in include
1929         directives.
1930         * giscanner/ast.py: Add Include type.
1931         * giscanner/transformer.py: Cleanups to register_include now that
1932         we don't need to handle mixed filenames and relative arguments.
1933         * girepository/girparser.c: Parse name and version separately;
1934         this fixes a bug as a side effect where we weren't resolving
1935         through aliases for basic types.
1936         * girepository/girepository.c: Fix format string args.
1937         * gir/Makefile.am: Update.
1938         * tests/*: Update.
1939
1940 2008-10-15  Tommi Komulainen  <tommi.komulainen@iki.fi>
1941
1942         Bug 556434 – unhandled interface/object/... member types
1943
1944         * girepository/girnode.c (g_ir_node_check_unhandled_members,
1945         g_ir_node_build_typelib): Check all
1946         interface/object/boxed/struct/union members are processed and
1947         abort if they are not. (Mostly callbacks in structs, but also
1948         fields in interfaces.)
1949
1950 2008-10-15  Tommi Komulainen  <tommi.komulainen@iki.fi>
1951
1952         * a/girepository/girnode.c (g_ir_node_build_members,
1953         g_ir_node_build_typelib): refactor common code for processing
1954         members to a function
1955
1956 2008-10-15  Tommi Komulainen  <tommi.komulainen@iki.fi>
1957
1958         * gir/Makefile.am (check-local): check that typelib -> gir -> typelib
1959         transformation is lossless (it's not)
1960
1961 2008-10-15  Tommi Komulainen  <tommi.komulainen@iki.fi>
1962
1963         * tests/Makefile.am: fix tests to compare xml to xml instead of
1964         typelib to xml, and stop on error
1965
1966 2008-10-15  Tommi Komulainen  <tommi.komulainen@iki.fi>
1967
1968         * tools/generate.c (write_type_name, write_type_info,
1969         write_type_info, write_object_info, write_object_info,
1970         write_interface_info, write_error_domain_info): reduce code
1971         duplication
1972
1973 2008-10-15  Tommi Komulainen  <tommi.komulainen@iki.fi>
1974
1975         Bug 556174 – parse types for lists etc.
1976
1977         * girepository/girparser.c (end_type_recurse):
1978         * tests/boxed.gir:
1979         * tools/generate.c (write_type_info, write_field_info,
1980         write_callable_info, write_callable_info, write_constant_info,
1981         write_property_info): use nested <type>s for lists and hashes
1982
1983 2008-10-15  Tommi Komulainen  <tommi.komulainen@iki.fi>
1984
1985         * tests/enum.gir:
1986         * tests/object.gir: remove trailing whitespace from inside
1987         elements to match g-ir-generate output
1988
1989 2008-10-15  Tommi Komulainen  <tommi.komulainen@iki.fi>
1990
1991         * tools/generate.c (xml_printf): quote printf arguments so that
1992         we don't generate invalid XML by writing unescaped double quotes
1993         and such in attributes
1994
1995 2008-10-15  Tommi Komulainen  <tommi.komulainen@iki.fi>
1996
1997         * tools/generate.c (write_field_info, write_callable_info,
1998         write_function_info, write_callback_info, write_struct_info,
1999         write_constant_value, write_signal_info, write_vfunc_info,
2000         write_object_info, write_interface_info, write_union_info,
2001         write_repository): remove unused indent parameters, xmlwriter
2002         keeps track of necessary indentation
2003
2004 2008-10-15  Tommi Komulainen  <tommi.komulainen@iki.fi>
2005
2006         * tools/generate.c (xml_element_new, xml_element_free,
2007         xml_start_element, xml_end_element, xml_end_element_unchecked,
2008         xml_open, xml_close): Keep track of generated XML tree and
2009         handle indentation and closing tags properly.
2010         (write_field_info, write_callable_info, write_function_info,
2011         write_callback_info, write_struct_info, write_value_info,
2012         write_constant_info, write_enum_info, write_signal_info,
2013         write_vfunc_info, write_property_info, write_object_info,
2014         write_interface_info, write_error_domain_info, write_union_info,
2015         write_repository): Use xml_start_element and xml_end_element to
2016         open/close tags.
2017
2018 2008-10-15  Tommi Komulainen  <tommi.komulainen@iki.fi>
2019
2020         * tools/generate.c (xml_printf, xml_open, xml_close, xml_free):
2021         (write_type_name, write_type_info, write_field_info,
2022         write_callable_info, write_function_info, write_callback_info,
2023         write_struct_info, write_value_info, write_constant_value,
2024         write_constant_info, write_enum_info, write_signal_info,
2025         write_vfunc_info, write_property_info, write_object_info,
2026         write_interface_info, write_error_domain_info, write_union_info,
2027         write_repository): wrap all FILE access to go through simple xmlwriter
2028
2029 2008-10-15  Tommi Komulainen  <tommi.komulainen@iki.fi>
2030
2031         Bug 556400 – Fails to build on OS X 10.4
2032
2033         * configure.ac: check for functions backtrace and backtrace_symbols
2034         * girepository/girparser.c (backtrace_stderr): Comment out
2035         implementation if the functions are not available.
2036         * gcov.mak (clean-gcov, clean-gcno): always call 'find' with a
2037         directory for better portability
2038
2039 2008-10-15  Johan Bilien  <jobi@via.ecp.fr>
2040
2041         Bug 556433 – assume direction = out for int * parameters
2042
2043         * giscanner/ast.py: define a list of types for which, if passed as
2044         reference, we assume a default direction of 'out'
2045         * giscanner/transformer.py: if a type has type pointer to one of the
2046         previously defined types, and no direction is set, assume out.
2047         * tests/scanner/drawable.[ch]: added tests for guessed direction=out
2048
2049 2008-10-15  Johan Bilien  <jobi@via.ecp.fr>
2050
2051         * tests/scanner/annotation.c: fixed a few copy-paste errors
2052
2053 2008-10-14  Johan Bilien  <jobi@via.ecp.fr>
2054
2055         Bug 556323 – transfer-ownership is wrong for functions returning const
2056         char *
2057
2058         * giscanner/transformer.py: check for a const string as return value,
2059         not just const char*. Suggested by Colin Walters
2060         * tests/scanner/annotation-1.0-expected.gir: updated expected output
2061
2062 2008-10-14  Johan Bilien  <jobi@via.ecp.fr>
2063
2064         * girepository/ginfo.c, girepository/girepository.h: add
2065         g_union_info_find_method
2066
2067 2008-10-14  Colin Walters  <walters@verbum.org>
2068
2069         * tests/repository/Makefile.am: Reenable repo test.
2070         * tests/repository/gitestrepo.c: Prepend search
2071         path for $(top_builddir)/gir dir so that we don't
2072         require installation for "make check" to pass.
2073
2074 2008-10-13  Jürg Billeter  <j@bitron.ch>
2075
2076         * giscanner/glibtransformer.py:
2077         * tests/scanner/annotation-1.0-expected.gir:
2078         * tests/scanner/drawable-1.0-expected.gir:
2079         * tests/scanner/foo-1.0-expected.gir:
2080         * tests/scanner/utility-1.0-expected.gir:
2081
2082         Support fields in GObject structs
2083
2084 2008-10-13  Jürg Billeter  <j@bitron.ch>
2085
2086         * giscanner/ast.py: add signed integer and off_t to type_names
2087
2088 2008-10-12  Jürg Billeter  <j@bitron.ch>
2089
2090         * giscanner/girparser.py: Parse bits attribute of fields
2091
2092 2008-10-12  Tommi Komulainen  <tommi.komulainen@iki.fi>
2093
2094         * tests/repository/Makefile.am: run 'gitestrepo' in 'make check'
2095         * tests/repository/gitestrepo.c (main): instantiate
2096         'GCancellable' to ensure the GType is registered before using
2097         g_type_from_name()
2098
2099 2008-10-12  Johan Bilien  <jobi@via.ecp.fr>
2100
2101         * giscanner/girparser.py: actually add the parsed constant nodes
2102
2103 2008-10-12  Colin Walters  <walters@verbum.org>
2104
2105         * girepository/girepository.c: Don't cast DirEntry to Blob,
2106         actually look it up by offset.
2107
2108 2008-10-12  Johan Bilien  <jobi@via.ecp.fr>
2109
2110         * giscanner/girparser.py: parse constant nodes in gir files
2111
2112 2008-10-12  Johan Bilien  <jobi@via.ecp.fr>
2113
2114         * giscanner/transformer.py: prefix for constants have an underscore,
2115         so remove them as if they were functions, not objects.
2116
2117 2008-10-12  Johan Bilien  <jobi@via.ecp.fr>
2118
2119         * tests/scanner/foo-1.0-expected.gir: add constants to expected gir
2120         file
2121
2122 2008-10-12  Colin Walters  <walters@verbum.org>
2123
2124         Initial patch from Jani Monoses.
2125
2126         * girepository/gtypelib.c: Fix inverted test for success
2127         in version parsing.
2128
2129 2008-10-12  Tommi Komulainen  <tommi.komulainen@iki.fi>
2130
2131         * tools/generate.c (write_callable_info): use "transfer-ownership"
2132         attribute for return values
2133
2134 2008-10-12  Tommi Komulainen  <tommi.komulainen@iki.fi>
2135
2136         * tools/generate.c (write_callable_info): move "transfer" and
2137         "null-ok" attributes from <function> to <return-value> element
2138
2139 2008-10-12  Tommi Komulainen  <tommi.komulainen@iki.fi>
2140
2141         * girepository/girparser.c (start_return_value): handle
2142         "transfer-ownership" attribute
2143
2144 2008-10-12  Tommi Komulainen  <tommi.komulainen@iki.fi>
2145
2146         * girepository/girparser.c (parse_param_transfer):
2147         * tools/generate.c (write_callable_info): use "container" for
2148         container/shallow ownership transfer (not "shallow")
2149
2150 2008-10-12  Tommi Komulainen  <tommi.komulainen@iki.fi>
2151
2152         * girepository/girparser.c (parse_param_transfer,
2153         start_parameter): Refactor handling of transfer=none/shallow/full
2154         to separate function
2155
2156 2008-10-12  Tommi Komulainen  <tommi.komulainen@iki.fi>
2157
2158         Bug 556048 – Crash in g_irepository_find_by_gtype
2159
2160         * girepository/gtypelib.h (BLOB_IS_REGISTERED_TYPE): added
2161         * girepository/girepository.c (find_interface): Fix
2162         find_by_gtype case to get the type name from right offset
2163
2164 2008-10-12  Jürg Billeter  <j@bitron.ch>
2165
2166         * giscanner/girparser.py: Fix parsing transfer-ownership attribute
2167         of <return-value>
2168
2169 2008-10-12  Tommi Komulainen  <tommi.komulainen@iki.fi>
2170
2171         * girepository/gtypelib.h (RegisteredTypeBlob): make
2172         'unregistered' one bit wide as everywhere else
2173
2174 2008-10-12  Jürg Billeter  <j@bitron.ch>
2175
2176         * giscanner/glibtransformer.py:
2177         * tests/scanner/annotation-1.0-expected.gir:
2178         * tests/scanner/drawable-1.0-expected.gir:
2179         * tests/scanner/drawable.h:
2180         * tests/scanner/foo-1.0-expected.gir:
2181         * tests/scanner/utility-1.0-expected.gir:
2182
2183         Readd class records as workaround to not break Gtk typelib
2184
2185 2008-10-12  Tommi Komulainen  <tommi.komulainen@iki.fi>
2186
2187         * tests/types/Makefile.am: fix typo in gitesttypes namespace
2188
2189 2008-10-12  Jürg Billeter  <j@bitron.ch>
2190
2191         * giscanner/glibtransformer.py: Don't generate <record> elements
2192         for class structs.
2193         * tests/scanner/*: Update test cases
2194
2195 2008-10-11  Colin Walters  <walters@verbum.org>
2196
2197         Bug 552858: versioning
2198
2199         This is a big patch.  You should probably remove your installation
2200         tree to be cleaner.
2201
2202         * docs/typelib-format.txt: Add nsversion entry which holds
2203         version of namespace.
2204         * girepository/girepository.h: Add 'version' parameter to
2205         g_irepository_require.  This may be NULL.  Normally
2206         bindings should pass an explicit version though.
2207         * girepository/girepository.c: Lots of infrastructure to
2208         support versioning.  Add some more documentation.  Disallow
2209         some usage of NULL namespaces.
2210         * girepository/girmodule.c: Add version parameter.
2211         * girepository/gtypelib.c: Update header size.
2212         * giscanner/ast.py: Add version to Namespace.
2213         * giscanner/girparser.py: Parse version attribute from
2214         XML, pass to Namespace.
2215         * giscanner/girwriter.py: Write out version parameter.
2216         * giscanner/transformer.py: Clean up include registration.
2217         * tests/*: Add version attribute.
2218         * tests/invoke/invoke.c: Don't try looking up test before
2219         it's loaded in repository.
2220         * tools/generate.c: Output version parameter.
2221         * gir/Makefile.am: Add 2.0 version to .gir files.
2222
2223 2008-10-11  Colin Walters  <walters@verbum.org>
2224
2225         * giscanner/scannerlexer.l (parse_gtkdoc): Don't lose
2226         if we have mismatched parens.
2227
2228 2008-10-11  Lucas Rocha  <lucasr@gnome.org>
2229
2230         * giscanner/girparser.py (_parse_enumeration_bitfield): fix typo
2231         on 'members' variable.
2232
2233 2008-10-11  Colin Walters  <walters@verbum.org>
2234
2235         Bug 555947 - update annotations syntax
2236
2237         * giscanner/ast.py: Default to None for transfer.  Remove
2238         default transfers for container types; we require this to
2239         be specified now.
2240         * giscanner/girwriter.py: Transfer is now 'none', 'container',
2241         'full' to match repository.
2242         * giscanner/scannerlexer.l: Annotations now are parenthesized.
2243         * giscanner/transformer.py: Update for new annotations syntax.
2244         * tests/*: Update.
2245
2246 2008-10-11  Johan Bilien  <jobi@litl.com>
2247
2248         * giscanner/scannerparser.y: ignore non-UTF-8 string constants
2249
2250 2008-10-11  Johan Bilien  <jobi@litl.com>
2251
2252         Bug 552347: Parse #defines constants
2253
2254         * girepository/gtypelib.c: update the list of value_size
2255         with recently defined type tags
2256         * giscanner/scannerparser.y: brought back parsing of #defined, as
2257         present in older version
2258         * giscanner/giscannermodule.c: bind gi_source_scanner_append_filename
2259         * giscanner/girwriter.py: write out constant tags in the gir
2260         * giscanner/sourcescanner.py: add accessor for const_string
2261         * giscanner/transformer.py, giscanner/glibtransformer.py: handle
2262         constant
2263
2264 2008-10-11  Tommi Komulainen  <tommi.komulainen@iki.fi>
2265
2266         Bug 555946: Install a test module exercising all types, transfer
2267         rules, etc.
2268
2269         * configure.ac
2270         * tests/Makefile.am
2271         * tests/types/*: Add and install a test module that has functions
2272         accepting and returning most of the basic types to enable bindings
2273         implementors to more easily test their type conversion routines.
2274
2275 2008-10-11  Jürg Billeter  <j@bitron.ch>
2276
2277         Bug 552374: Const strings should be identified in the gir.
2278
2279         * giscanner/transformer.py: support string memory management
2280         * tests/scanner/foo.h: use char * and const char *
2281         * tests/scanner/foo-expected.gir: test that
2282
2283 2008-10-11  Johan Dahlin  <johan@gnome.org>
2284
2285         * giscanner/girparser.py:
2286         Also parse enums which are not glib types.
2287
2288 2008-10-11  Lucas Rocha  <lucasr@gnome.org>
2289
2290         Bug 552370: add one more test for unsigned as a type, not as
2291         a type qualifier.
2292
2293         * giscanner/ast.py: add 'uint' type name for 'unsigned'.
2294         * test/scanner/foo.h: add function which uses unsigned as a type.
2295         * test/scanner/foo-expected.gir: test that.
2296
2297 2008-10-11  Andreas Rottmann  <a.rottmann@gmx.at>
2298
2299         Bug 555712: Struct and union issues
2300
2301         * giscanner/scannerparser.y (struct_declarator): Use information
2302         provided about the bit width of a field.
2303         * giscanner/transformer.py (Transformer._create_member): Pass the
2304         symbol's const_int member to the created field (it represents the
2305         bit width).
2306         * giscanner/girwriter.py (GIRWriter._write_field): Output 'bits'
2307         field attribute, if present.
2308         * giscanner/ast.py (Field): Add 'bits' member, specifying the
2309         width in bits of the field (only relevant for bitfields).
2310         * tests/*: Updated.
2311
2312         * giscanner/transformer.py (Transformer._create_typedef_struct)
2313         (Transformer._create_typedef_union): Add calls to _create_struct()
2314         and _create_union(), respectively. This causes the scanner to
2315         generate output for fields of struct and union typedefs.
2316         * tests/*: Updated.
2317
2318 2008-10-11  Jürg Billeter  <j@bitron.ch>
2319
2320         Bug 552370: unsigned not scanned properly
2321
2322         * giscanner/scannerparser.y: combine basic types such as unsigned
2323         int and long long when scanning
2324         * tests/scanner/foo-expected.gir:
2325         * tests/scanner/foo.c: (foo_test_unsigned):
2326         * tests/scanner/foo.h: test that
2327
2328 2008-10-11  Lucas Rocha  <lucasr@gnome.org>
2329
2330         Bug 554854: The --typelib-xml and --inject options should reuse
2331         giscanner parser/writer.
2332
2333         * giscanner/ast.py: add constructor list to Struct and Union.
2334         Add new param in Return's contructor to define transfer.
2335         * giscanner/girparser.py: several additions to the parser in order
2336         to have parsing all nodes of the gir xml files.
2337         * tools/g-ir-scanner (typelib_xml_strip, inject): use gir parser
2338         and writer in --inject and --typelib-xml options.
2339         * giscanner/xmlwriter.py: ignore empty attributes instead of
2340         raising an error as this basically exposes a bug in GIRParser.
2341         This should be reverted as soon as the parser is fixed.
2342
2343 2008-10-11  Lucas Rocha  <lucasr@gnome.org>
2344
2345         Bug 552376: scanner generates wrong names for enum members when
2346         there's no defined gtype.
2347
2348         * giscanner/utils.py (strip_common_prefix): Always strip common
2349         prefix exactly up to the last "_", and not beyond.
2350         * tests/scanner/foo.h (FooEnumNoType): add FOO_ENUM_NEUF. The point
2351         here is that the first character after the last '_' should should be
2352         the same as the character in the same position on the type name.
2353         * tests/scanner/foo-expected.gir: test that
2354
2355 2008-10-10  Lucas Rocha  <lucasr@gnome.org>
2356
2357         Bug 555293: append library_paths to LPATH env variable to work
2358         around a bug in find_library when using ldconfig.
2359
2360         * tools/g-ir-scanner (main): ditto.
2361
2362 2008-10-09  Lucas Rocha  <lucasr@gnome.org>
2363
2364         * girepository/girepository.c (register_internal): fix regression on
2365         invoke test case by making sure we load the global module in the
2366         typelib when dealing with inline typelibs.
2367         * girepository/gtypelib.c: a couple of coding style fixes.
2368
2369 2008-10-06  Lucas Rocha  <lucasr@gnome.org>
2370
2371         Bug 555294: Add support for multiple shared libraries per typelib.
2372
2373         * girepository/ginvoke.c (g_function_info_invoke),
2374         girepository/ginfo.c(g_registered_type_info_get_g_type): use
2375         g_typelib_symbol instead of g_module_symbol.
2376         * girepository/girepository.h: remove g_typelib_set_module and add
2377         g_typelib_symbol.
2378         * girepository/gtypelib.[ch] (find_some_symbol, _g_typelib_init,
2379         g_typelib_new_from_memory, g_typelib_new_from_const_memory,
2380         g_typelib_free, g_typelib_symbol): chnage GTypeLib to hold a list of
2381         modules instead of just one. The symbol lookup is now abstracted
2382         behind g_typelib_symbol which tries to find the passed symbol name in
2383         one of its modules.
2384         * giscanner/girwriter.py, tools/g-ir-scanner: change scanner to read
2385         and write shared_library attribute as a comma-separated list of libs.
2386
2387 2008-10-06  Colin Walters  <walters@verbum.org>
2388
2389         * giscanner/transformer.py: Parse length= annotation as
2390         a parameter name, not a raw int.
2391         * tests/*: Update.
2392
2393 2008-10-03  Colin Walters  <walters@verbum.org>
2394
2395         Bug 551744: Non-GObject types aren't aggregating ctors and methods
2396
2397         * girepository/gtypelib.c: Allow ctors/methods on struct,union,
2398         and boxed.
2399         * giscanner/glibtransformer.py: Ditto, and GLibBoxed is also a
2400         registered type.
2401         * tests/*: Extend.
2402
2403 2008-10-03  Colin Walters  <walters@verbum.org>
2404
2405         Bug 554576: scan problem with ev_selection_render_selection()
2406
2407         * giscanner/transformer.py: Only do type resolution once we've
2408         scanned all types.  What could happen before is that we'd strip
2409         the namespace from local type "EvSelection" => Selection, and
2410         then later pull a "Selection" from some other namespace because
2411         we hadn't yet seen the local EvSelection.  This could come
2412         down to hash table ordering and other things so not easy
2413         to write a test for.
2414
2415 2008-10-03  Lucas Rocha  <lucasr@gnome.org>
2416
2417         * giscanner/girwriter.py (_parser_member): fix the last parameter of
2418         GLibEnumMember constructor as it should be the enum member nick.
2419
2420 2008-10-02  Colin Walters  <walters@verbum.org>
2421
2422         Bug 552961: remove this parameter for methods
2423
2424         * giscanner/glibtransformer.py: Delete this parameter; it is
2425         redundant.
2426         * girepository/ginvoke.c: Insert this parameter for methods.
2427         * girepository/gtypelib.c: Remove no longer needed verification of
2428         method this parameter.
2429         * tests/*: Update.
2430
2431 2008-09-30  Dan Winship  <danw@gnome.org>
2432
2433         Bug 554490: g-ir-scanner gets confused by '\\'
2434
2435         * giscanner/scannerlexer.l (chartext, stringtext): fix use of
2436         backslashes so it will correctly parse '\\' and "\\"
2437
2438         * tests/scanner/annotation.c: add a use of '\\' to make sure that
2439         this stays fixed
2440
2441         * giscanner/glibtransformer.py (GLibTransformer.count_type): typo
2442
2443 2008-10-02  Colin Walters  <walters@verbum.org>
2444
2445         bug 552393: Note variadic functions
2446
2447         * giscanner/scannerparser.y: Parse ellipsis.  Refactor grammar
2448         to use parameter_list directly.
2449         * giscanner/sourcescanner.h: Add ellipsis csymbol type.
2450         * giscanner/ast.py: Add Varargs type.
2451         * giscanner/transformer.py: Check for ellipsis symbol, transform
2452         to varargs type.
2453         * girepository/girnode.h: Add varargs flag to in-memory nodes.
2454         Parse varargs functions, but filter them out before we start
2455         compiling the typelib.
2456
2457 2008-10-02  Colin Walters  <walters@verbum.org>
2458
2459         Bug 554632: type tag for GType
2460
2461         * girepository/girepository.h, girepository/girepository.c:
2462         Add type tag for GType - it's a special type we don't want
2463         to resolve to just "long".
2464         * docs/typelib-format.txt: Update.
2465         * girepository/girparser.c: Parse it.
2466         * giscanner/glibtransformer.py: Ensure we don't put GType in
2467         the GObject.gir.
2468         * tools/generate.c: Remove hardcoded type list.
2469         * test/* update.
2470
2471 2008-09-30  Dan Winship  <danw@gnome.org>
2472
2473         Bug 554521: scanner generates wrong names for enum members with
2474         full type name prefix
2475
2476         * giscanner/utils.py (strip_common_prefix): Fix this to strip the
2477         right amount when the entire "first" string is a prefix of
2478         "second"
2479
2480         * tests/scanner/foo.h (FooEnumFullname):
2481         * tests/scanner/foo-expected.gir: test that
2482
2483 2008-09-29  Colin Walters  <walters@verbum.org>
2484
2485         Bug 552380: Array parameters should be marked in the gir
2486
2487         * giscanner/ast.py: Default char** to utf8[], and guchar* to
2488         uint8[].  Add Array, List, and Map subclasses of Type;
2489         these types can be generic.  Return transfer defaults
2490         to true if return value is string or container type.
2491         Delete Sequence type.
2492         * giscanner/scannerlexer.l: Syntax change for annotations;
2493         use <> since it's more readable.
2494         * giscanner/girwriter.py: Write out these changes.
2495         * giscanner/girparser.py: Parse them.
2496         * giscanner/transformer.py: Have a defined set of
2497         both list and map types.  When creating a type,
2498         check if the ctype we've parsed is one of them,
2499         if so create a container type subclass as appropriate.
2500         * girepository/girparser.c: Parse in generic types.
2501         * tests/*: Update.
2502
2503 2008-09-27  Colin Walters  <walters@verbum.org>
2504
2505         * tools/g-ir-scanner: Add --inject option.
2506
2507 2008-09-25  Colin Walters  <walters@verbum.org>
2508
2509         Remove non-repository types from GIR
2510
2511         * giscanner/ast.py: The canonical name is 'utf8', not
2512         'string'.
2513         * giscanner/glibast.py: A few more glib type mappings.
2514         * girepository/girparser.c: We only parse repository types.
2515         * tests/*.gir: Update.
2516
2517 2008-09-23  Colin Walters  <walters@verbum.org>
2518
2519         Bug 552566: Add time_t type
2520
2521         We need a type for time_t since it's special in C, and just
2522         mapping it to long precluded bindings from handling it
2523         in a nice way.
2524
2525 2008-09-19  Colin Walters  <walters@verbum.org>
2526
2527     Bug 552390: Handle capitialization like "DBus" more robustly
2528
2529     The to_underscores function was designed for use against prefixed
2530     names; we need a separate function which will convert names like
2531     DBusFoo into dbus_foo, not d_bus_foo.
2532
2533 2008-09-19  Colin Walters  <walters@verbum.org>
2534
2535     Add check to make sure we're not hitting out unresolved types
2536
2537     Validate the "this" argument for methods
2538
2539     Remove heuristic matching of methods to classes based on prefix
2540
2541     It was a broken hack that dated from when we handled underscoring
2542     and capitalization conventions less well.
2543
2544 2008-09-18  Colin Walters  <walters@verbum.org>
2545
2546     Bug 552384: Use SHLIB_SUFFIX intead of G_MODULE_SUFFIX for Darwin
2547
2548     On Darwin, the suffix for installed shared libraries (.dylib) is
2549     different from loadable modules (.so).  We use a bit of magic shell
2550     script from Behdad Esfahbod to figure out the right suffix.
2551
2552 2008-09-15  Johan Dahlin  <johan@gnome.org>
2553
2554         * giscanner/sourcescanner.py (SourceType.type_qualifier): Add
2555         a wrapper for type_qualifier as well.
2556
2557 2008-09-15  Colin Walters  <walters@verbum.org>
2558
2559         http://bugzilla.gnome.org/show_bug.cgi?id=552065
2560
2561         * giscanner/ast.py: Add deprecation attributes.
2562         * giscanner/girwriter.py: Write out deprecation data.
2563         * girepository/girparser.c: Relax parsing; deprecated
2564         attribute now includes freeform string.
2565         * giscanner/scannerlexer.l: Parse Deprecated.
2566         * giscanner/transformer.py: Look for deprecated attribute
2567         on functions.
2568         * tests/scanner/*: Add a Deprecated test.
2569
2570 2008-09-14  Tor Lillqvist  <tml@novell.com>
2571
2572         * tests/scanner/Makefile.am (%.typelib): Use $(EXEEXT).
2573
2574 2008-09-14  Colin Walters  <walters@verbum.org>
2575
2576         * giscanner/glibtransformer.py: Ignore functions with
2577         leading _.
2578
2579 2008-09-12  Colin Walters  <walters@verbum.org>
2580
2581         * giscanner/glibtransformer.py: Accept Gtk.Type as GType.
2582
2583 2008-09-12  Colin Walters  <walters@verbum.org>
2584
2585         * giscanner/ast.py: Bind pid_t to INT for vte.
2586
2587 2008-09-12  Colin Walters  <walters@verbum.org>
2588
2589         * giscanner/girparser.py: Parse c:type for boxed records/unions.
2590         * giscanner/glibast.py: Avoid overwriting ctype.
2591         * giscsanner/transformer.py: Try resolving types using the GType names.
2592
2593 2008-09-12  Colin Walters  <walters@verbum.org>
2594
2595         * giscanner/minixpath.py: Code to run an "XPath"
2596         assertion against an XML tree, taken from
2597         gir-repository/gir/tests.py.
2598         * giscanner/Makefile.am: Ship it.
2599         * tools/g-ir-scanner: Add --xpath-assertions option.
2600         * gir/GLib-assertions.txt: Add a few assertions.
2601         * gir/Makefile.am: Run them.
2602
2603 2008-09-11  Colin Walters  <walters@verbum.org>
2604
2605         http://bugzilla.gnome.org/show_bug.cgi?id=551737
2606
2607         * giscanner/transformer.py: Fix strip_namespace_func to only strip
2608         prefix if it ends with _.  Tweak callback stripping to determine
2609         based on presence of _ whether we need to use strip_namespace_func
2610         or strip_namespace_object.
2611
2612 2008-09-09  Owen Taylor  <otaylor@redhat.com>
2613
2614         * docs/typelib-format.txt: Wether => Whether
2615
2616 2008-09-08  Colin Walters  <walters@verbum.org>
2617
2618         * girepository/girparser.c: Default to "readable" for properties.
2619         * giscanner/ast.py: Add readable, writable etc.
2620         * giscanner/girwriter.py: Writ them.
2621         * giscanner/glibtransformer.py: Inspect them.
2622         * tests/*: Update.
2623
2624 2008-09-07  Colin Walters  <walters@verbum.org>
2625
2626         * giscanner/cgobject.py: Add comment.
2627
2628 2008-09-07  Colin Walters  <walters@verbum.org>
2629
2630         * giscanner/cgobject.py: Also call g_thread_init.
2631
2632 2008-09-07  Colin Walters  <walters@verbum.org>
2633
2634         * giscanner/transformer.py: Fix regression by not
2635         stripping prefix before stripping namespace for unions
2636         either.
2637
2638 2008-09-06  Colin Walters  <walters@verbum.org>
2639
2640         * giscanner/transformer.py: If a namespace contains
2641         multiple caps, try stripping both gnomekeyring_ and
2642         gnome_keyring_.
2643
2644 2008-09-07  Johan Dahlin  <johan@gnome.org>
2645
2646         Bug 551162 – giscanner does not recognize asm and __asm__
2647         * giscanner/scannerlexer.l:
2648         Patch by Jani Monoses.
2649
2650 2008-09-06  Colin Walters  <walters@verbum.org>
2651
2652         * girepository/girnode.c: Allow gtype_name
2653         and gtype_init in struct and union.
2654         * girepository/girparser.c: Parse glib:
2655         boxed bits for both structure and union.
2656         * girepository/gtypelib.c: Don't barf
2657         if structure is boxed.
2658         * giscanner/girparser.py: Parse new XML
2659         format.
2660         * giscanner/girwriter.py: Write out new
2661         XML format.
2662         * giscanner/glibast.py: Define new classes
2663         which are both Boxed and Struct/Union, as
2664         well as an "Other" for everything else.
2665         * giscanner/glibtransformer.py: Handle
2666         boxed types specially; we try to merge
2667         them with a struct/union if one exists,
2668         otherwise fall back to generic boxed.
2669         * tests/*: Update.
2670         * tools/generate.c: Write out new format.
2671
2672 2008-09-06  Johan Dahlin  <johan@gnome.org>
2673
2674         * giscanner/grealpath.h: Include stdlib.h
2675
2676         * docs/g-ir-generate.1: Remove leading %
2677
2678 2008-09-01  Colin Walters  <walters@verbum.org>
2679
2680         * girepository/girparser.c: Look at c:type to determine
2681         whether or not an item is a pointer.
2682
2683 2008-09-01  Johan Dahlin  <johan@gnome.org>
2684
2685         * tests/scanner/Makefile.am:
2686         Set PYTHONPATH so the scanner can run
2687         even if you didn't install anything.
2688
2689 2008-09-01  Johan Dahlin  <johan@gnome.org>
2690
2691         * configure.ac:
2692         Post-release version bump
2693
2694 === 0.5.0 ===
2695 2008-09-01  Johan Dahlin  <johan@gnome.org>
2696
2697         * NEWS: Update
2698
2699 2008-08-31  Colin Walters  <walters@verbum.org>
2700
2701         * giscanner/glibtransformer.py: Quiet info
2702         prints for now.
2703
2704 2008-08-31  Johan Dahlin  <johan@gnome.org>
2705
2706         * configure.ac:
2707         Bump version to 0.5.0
2708
2709 2008-08-31  Colin Walters  <walters@verbum.org>
2710
2711         * giscanner/glibtransformer.py: Follow aliases to ensure
2712         we don't get a constructor returning a basic type.
2713         * giscanner/transformer.py: Add function to follow aliases.
2714         * tests/ Update.
2715
2716 2008-08-31  Johan Dahlin  <johan@gnome.org>
2717
2718         * giscanner/scannerlexer.l:
2719         * giscanner/scannerparser.y:
2720         * giscanner/sourcescanner.h:
2721         * giscanner/sourcescanner.py:
2722         Parse GCC extensions in the parser instead of just undeffing them
2723         in the pre-processor.
2724
2725 2008-08-31  Johan Dahlin  <johan@gnome.org>
2726
2727         * giscanner/glibtransformer.py:
2728         Clean up a huge if. Do not add methods or constructors
2729         to enums/flags.
2730         * giscanner/utils.py:
2731         second might be longer than first, check that.
2732
2733 2008-08-31  Johan Dahlin  <johan@gnome.org>
2734
2735         * gir/Makefile.am:
2736         Add a GModule.gir
2737
2738 2008-08-31  Colin Walters  <walters@verbum.org>
2739
2740         * girepository/girparser.c: Don't lose if we
2741         have no includedirs
2742
2743 2008-08-31  Colin Walters  <walters@verbum.org>
2744
2745         * giscanner/glibtransformer.py: Look for libtool
2746         library in current directory
2747         * tests/scanner - Update.
2748
2749 2008-08-30  Colin Walters  <walters@verbum.org>
2750
2751         * docs/typelib-format.txt: Add a guint32
2752         for dependencies.
2753         * gir/Makefile.am: Dep on Makefile
2754         * girepository/ginfo.c:
2755         * girepository/girepository.c: Clean up
2756         default typelib handling; remove global
2757         default_typelib variable.  Ensure we handle
2758         NULL repository in more places.
2759         Support dependency resolution.
2760         Support lazy loading.
2761         * girepository/girepository.h: Remove
2762         g_irepository_unregister; we don't support
2763         unloading typelibs since really they're
2764         process-global.  Update for lazy loading
2765         API.
2766         * girepository/girmodule.c: Use g_new0.
2767         Add dependencies to GirModule.
2768         * girepository/girparser.c: Parse dependencies.
2769         * girepository/gtypelib.c: Add 4 bytes for
2770         dependencies.
2771         * tests/Makefile.am: Kill off gobject.gir,
2772         it conflicts with the real one.
2773         * tests/object.gir: Dep on GObject.
2774         * tools/generate.c: Take --includedir
2775         argument to say which directories to search
2776         for typelibs.  Print out dependencies.
2777
2778 2008-08-30  Colin Walters  <walters@verbum.org>
2779
2780         * giscanner/glibtransformer.py: Reduce warning noise.
2781
2782 2008-08-29  Colin Walters  <walters@verbum.org>
2783
2784         * girepository/ginfo.c: Add some assertions regarding
2785         refcounts, just to be sure.
2786         * giscanner/glibtransformer.py: Blacklist a few more
2787         odd Gio methods.
2788
2789 2008-08-29  Colin Walters  <walters@verbum.org>
2790
2791         * giscanner/glibtransformer.py: Blacklist a few
2792         functions that use GError oddly
2793
2794 2008-08-29  Colin Walters  <walters@verbum.org>
2795
2796         * girepository/gtypelib.c: Don't crash if no
2797         shlib is embedded
2798
2799 2008-08-29  Colin Walters  <walters@verbum.org>
2800
2801         * girepository/girparser.c: Handle chains of aliases
2802         across modules by ensuring we fully qualify aliases
2803         from includes.
2804
2805 2008-08-29  Colin Walters  <walters@verbum.org>
2806
2807         * girepository/girparser.c: Don't search aliases
2808         for basic types.
2809
2810 2008-08-29  Colin Walters  <walters@verbum.org>
2811
2812         * girepository/girparser.c: Rewrite type parsing
2813         to handle both GLib parsing case as well as correctly
2814         handling GLib.List and friends.  Don't try to treat
2815         e.g. ListStore as a List.
2816
2817 2008-08-29  Colin Walters  <walters@verbum.org>
2818
2819         * girepository/gtypelib.c: Add more context
2820         during validate.
2821
2822 2008-08-29  Colin Walters  <walters@verbum.org>
2823
2824         * giscanner/glibtransformer.py: Add some informative
2825         logging messages in corner cases.  Be sure we use
2826         the most recent node set instead of a cache
2827         when generating result set.
2828         * tests/: Remove duplicated bits in expected girs
2829         * girepository/girparser.c: Accept both List (for
2830         compiling GLib) and GLib.List (what the scanner
2831         generates).
2832         * tests/ - Update.
2833         * tools/generate.c: Generate canonical form.
2834
2835 2008-08-29  Johan Dahlin  <johan@gnome.org>
2836
2837         * giscanner/config.py.in:
2838         Use datarootdir instead of datadir to avoid
2839         an autoconf warning.
2840
2841 2008-08-29  Johan Dahlin  <johan@gnome.org>
2842
2843         * README:
2844         * TODO:
2845         * examples/gdk-pixbuf.gidl:
2846         * libffi.pc.in:
2847         Update and remove old cruft.
2848
2849 2008-08-29  Johan Dahlin  <johan@gnome.org>
2850
2851         * Makefile.am:
2852         * docs/g-ir-compiler.1:
2853         * docs/g-ir-generate.1:
2854         * docs/g-ir-scanner.1:
2855         Add man pages for the generator and compiler.
2856
2857 2008-08-29  Johan Dahlin  <johan@gnome.org>
2858
2859         * docs/g-ir-scanner.1: Document
2860
2861         * giscanner/Makefile.am:
2862         * giscanner/gidlparser.py:
2863         * giscanner/gidlwriter.py:
2864         * tools/g-ir-scanner:
2865         Remove gidl support.
2866
2867 2008-08-28  Colin Walters  <walters@verbum.org>
2868
2869         * tests/scanner/Makefile.am: Pass the right
2870         --includedir args.  Add a Makefile dep.
2871         * tools/compiler.c: Pass includedirs down.
2872         * girepository/girparser.c: Actually put
2873         includedirs in context, pass down.  Fix
2874         locate_gir.
2875
2876 2008-08-28  Colin Walters  <walters@verbum.org>
2877
2878         * gir/Makefile.am: Use --includedir
2879         * girepository/girparser.c: Recursively parse
2880         includes to pull in aliases and expand them.
2881         We need this to avoid putting unknown names in
2882         the typelibs.
2883         * tools/compiler.c: Add --includedir option.
2884         * giscanner/ast.py: Map size/ssize to types
2885         too.
2886
2887 2008-08-28  Tor Lillqvist  <tml@novell.com>
2888
2889         Make check now runs successfully on Windows.
2890
2891         * tools/compiler.c (write_out_typelib): Use binary mode for output
2892         file on Windows.
2893
2894         * girepository/girnode.c: Don't print NULL strings.
2895
2896         * tests/invoke/Makefile.am
2897         * tests/scanner/Makefile.am: Use -no-undefined on Windows to
2898         convince libtool to build shared libraries.
2899
2900         * tests/invoke/invoke.c: Don't needlessly include <dlfcn.h>. Use
2901         g_assert() instead of printing out expected errors.
2902
2903 2008-08-28  Tor Lillqvist  <tml@novell.com>
2904
2905         * girepository/gtypelib.h: Change type of bitfield fields from
2906         guint to the most suitable smaller type. This makes the struct
2907         sizes match the ones on Linux that the sanity check expects when
2908         using gcc -mms-bitfields on Windows.
2909
2910 2008-08-28  Johan Dahlin  <johan@gnome.org>
2911
2912         * Makefile.am:
2913         * configure.ac:
2914         * gir/Makefile.am:
2915         * giscanner/Makefile.am:
2916         * tests/Makefile.am:
2917         * tests/scanner/Makefile.am:
2918         Make distcheck pass.
2919
2920 2008-08-27  Johan Dahlin  <johan@gnome.org>
2921
2922         * giscanner/Makefile.am:
2923         Only send in -no-undefined on Win32 as it breaks on MacOS X.
2924
2925 2008-08-27  Tor Lillqvist  <tml@novell.com>
2926
2927         Make g-ir-scanner work on Windows. Still problems with the typelib
2928         code. Changes okayed by jdahlin.
2929
2930         * configure.ac: Check for Windows, set Automake conditional
2931         OS_WIN32. Change backslashes to forward slashes in pyexecdir to
2932         avoid shell quoting issues
2933         
2934         * girepository/Makefile.am: Use -no-undefined so that libtool
2935         agrees to build a shared library on Windows.
2936
2937         * girepository/girparser.c (backtrace_stderr): No backtrace() on
2938         Windows. Empty implementation on Windows so far.
2939
2940         * girepository/gtypelib.c (g_typelib_check_sanity): Give more
2941         informative error message for the assertion failures. Tell also
2942         what the expected size of the struct is. Check all sizes first and
2943         fail afterwards if at least one size was different from expected.
2944
2945         * tools/Makefile.am: Reorder libraries into proper logical
2946         dependency order.
2947
2948         * tools/generate.c: Don't include <dlfcn.h>, not used.
2949
2950         * giscanner/Makefile.am: On Windows, link with the Python library,
2951         and install the module DLL as _giscanner.pyd. Remove the
2952         unnecessary import library and libtool library that libtool has
2953         installed.
2954
2955         * giscanner/scannerlexer.l: Recognize the gcc __attribute__ syntax
2956         and just skip it. Recognize also two "l" suffixes for long long
2957         constants. Recognize also __inline__.
2958
2959         * giscanner/grealpath.h (g_realpath): Implement on Windows, using
2960         GetFullPathName(). As such, GetFullPathName() does more than the
2961         UNIX realpath(). It also changes relative paths into absolute
2962         paths. But for our purposes that shouldn't matter.
2963
2964         * giscanner/giscannermodule.c (pygi_source_scanner_parse_file): On
2965         Windows the file descriptor passed to us is from Python. Python
2966         Python2.5 uses the msvcr71.dll C library, while mingw-built code
2967         uses msvcrt.dll. On Windows, file descriptors are specific to
2968         which C library is used. So we must find out what underlying OS
2969         handle corresponds to the file descriptor Python passes us, and
2970         then make that into a file descriptor valid for the C library this
2971         code uses.
2972
2973         * giscanner/sourcescanner.py (_parse): Don't need to bypass
2974         __attribute__ as the lexer now handles it. The definition as empty
2975         was ineffective for mingw anyway, as mingw's _mingw.h undefines
2976         __attribute__. Close the temp file before unlinking it.
2977
2978         * giscanner/cgobject.py: Use correct library name for the gobject
2979         DLL on Windows.
2980
2981         * gir/Makefile.am: Must pass the full basename of the DLLs on
2982         Windows to g-ir-scanner. It's a bit ugly that we have to "know"
2983         that the names of the GLib DLLs are like libglib-2.0-0.dll, but in
2984         reality they won't change, until there is a GLib 3, and then also
2985         the Unix code here needs changing.
2986
2987         Must pass CPPFLAGS to g-ir-scanner when building GLib.gir so that
2988         libintl.h is found.
2989
2990 2008-08-26  Colin Walters  <walters@verbum.org>
2991
2992         * girepository/girepository.c: Search
2993         $DATADIR/girepository instead of
2994         $DATADIR/gitypelibs; this naming makes
2995         it clearer that e.g. jgir can install
2996         .jars there.
2997         * gir/Makefile.am: Install there.
2998
2999 2008-08-26  Colin Walters  <walters@verbum.org>
3000
3001         * girepository/gtypelib.c (_g_typelib_init): Also
3002         use G_MODULE_SUFFIX instead of hardcoding .so.
3003
3004 2008-08-26  Colin Walters  <walters@verbum.org>
3005
3006         * girepository/gtypelib.c (_g_typelib_init): Free
3007         string in the right place.
3008
3009 2008-08-26  Colin Walters  <walters@verbum.org>
3010
3011         * girepository/gtypelib.c (_g_typelib_init): Handle
3012         both .la and .so names; this works better in the
3013         uninstalled library case.
3014
3015 2008-08-26  Johan Dahlin  <johan@gnome.org>
3016
3017         * gir/Makefile.am:
3018         * giscanner/Makefile.am:
3019         * giscanner/cgobject.py:
3020         * giscanner/config.py.in:
3021         * giscanner/sourcescanner.py:
3022         Avoid undeffing __GNUC__, instead define
3023         __attribute__ & friends. Remove glibconfig.h hack.
3024         This makes gobject-introspection work better on
3025         MacOS X, Thanks to Richard Hult for kind help.
3026
3027 2008-08-25  Colin Walters  <walters@verbum.org>
3028
3029         * giscanner/glibtransformer.py: Always print
3030         statistics.
3031
3032 2008-08-25  Colin Walters  <walters@verbum.org>
3033
3034         * giscanner/glibtransformer.py: Skip over
3035         interfaces we don't know.
3036
3037 2008-08-25  Colin Walters  <walters@verbum.org>
3038
3039         * girepository/girparser.c: Parse new implements
3040         syntax, drop gapi one.
3041         * tests/object.gir: Update.
3042         * tools/generate.c: Generate new syntax.
3043
3044 2008-08-25  Colin Walters  <walters@verbum.org>
3045
3046         * giscanner/ast.py: Add interfaces property
3047         to class.
3048         * giscanner/girwriter.py: Write out implemented
3049         interfaces.
3050         * giscanner/glibtransformer.py: Introspect
3051         implemented interfaces.
3052         * tests/scanner/*: Make FooObject implement
3053         FooInterface.
3054
3055 2008-08-25  Colin Walters  <walters@verbum.org>
3056
3057         * giscanner/glibtransformer.py: More correctly pair
3058         methods; if we have a symbol that starts with
3059         e.g. hippo_canvas look for a matching HippoCanvas
3060         class before accepting e.g. HippoCanvasImage.
3061
3062 2008-08-24  Colin Walters  <walters@verbum.org>
3063
3064         * tools/g-ir-scanner: Filter out unknown options from
3065         pkg-config files.
3066
3067 2008-08-24  Colin Walters  <walters@verbum.org>
3068
3069         * giscanner/glibtransformer.py: Fail with better
3070         error if we can't find library.
3071
3072 2008-08-24  Colin Walters  <walters@verbum.org>
3073
3074         * tools/g-ir-scanner: Use subprocess instead of
3075         commands, works on Windows and avoids the evil
3076         shell on Unix.
3077
3078 2008-08-24  Colin Walters  <walters@verbum.org>
3079
3080         * giscanner/glibtransformer.py: Skip over
3081         g_object_get_type from GLib trunk.
3082
3083 2008-08-24  Colin Walters  <walters@verbum.org>
3084
3085         * girepository/girepository.c (g_irepository_require): 
3086         Don't open shared library here; we already do it
3087         in gtypelib.c.
3088
3089 2008-08-24  Colin Walters  <walters@verbum.org>
3090
3091         * girepository/gtypelib.c: Add context stack so
3092         when we get an error we can print out nicely
3093         where it is.
3094
3095 2008-08-24  Johan Dahlin  <johan@gnome.org>
3096
3097         * girepository/girparser.c (start_glib_boxed), (start_function),
3098         (start_field), (start_alias):
3099         Refactor a couple of parsing functions to be simpler to follow.
3100         Avoid huge ifs.
3101
3102 2008-08-24  Johan Dahlin  <johan@gnome.org>
3103
3104         * girepository/girparser.c (start_function):
3105         Remove left-over code, checking type of function.
3106
3107 2008-08-23  Colin Walters  <walters@verbum.org>
3108
3109         * giscanner/config.py: Define DATADIR.
3110         * giscanner/transformer.py: Look in DATADIR.
3111
3112 2008-08-23  Colin Walters  <walters@verbum.org>
3113
3114         * girepository/gtypelib.c: Check constructor
3115         returns.
3116         * girepository/girnode.c: Small tweaks.
3117         * girepository/ginfo.c: Calculate signature offsets
3118         more robustly.
3119         * girepository/girparser.c: Remove duplicate
3120         start_boxed.
3121         * giscanner/glibtransformer.py: Avoid marking
3122         functions which return a basic type as
3123         constructors.
3124
3125 2008-08-23  Colin Walters  <walters@verbum.org>
3126
3127         * girepository/girparser.c: Ignore <include>.
3128         * giscanner/girparser.py: Parse them.
3129         * giscanner/girwriter.py: Generate them.
3130         * giscanner/transformer.py: Process <include>
3131         recursively.  Don't require full path for
3132         includes, look in {$XDG_DATA_DIRS}/gir.
3133         * tools/g-ir-scanner: Pass through includes.
3134         * Makefile.am: Remove extra --include
3135         args for scanner.
3136         * *-expected.gir: Add expected includes.
3137
3138 2008-08-23  Johan Dahlin  <johan@gnome.org>
3139
3140         * tests/scanner/Makefile.am:
3141         * tests/scanner/annotation-expected.gir:
3142         * tests/scanner/drawable-expected.gir:
3143         Avoid duplication in the Makefile, regenerate with new
3144         namespaces (same as the filename)
3145
3146 2008-08-22  Colin Walters  <walters@verbum.org>
3147
3148         * girepository/girnode.c: Don't hardcode integers,
3149         use GITypeTag.
3150
3151 2008-08-22  Johan Dahlin  <johan@gnome.org>
3152
3153         * giscanner/sourcescanner.py:
3154         Check for ../gobject-introspection-1.0.pc.in to determine
3155         if we run installed or uninstalled.
3156
3157 2008-08-22  Johan Dahlin  <johan@gnome.org>
3158
3159         * gir/Makefile.am:
3160         * giscanner/sourcescanner.py:
3161         Send in undefs/defines via writing it directly to stdin
3162         of cpp instead of via arguments.
3163
3164 2008-08-22  Colin Walters  <walters@verbum.org>
3165
3166         * tools/generate.c, tools/compiler.c: Default
3167         to --raw.
3168         * all Makefile.am: Update.
3169
3170 2008-08-22  Colin Walters  <walters@verbum.org>
3171
3172         * girepository/girparser.c: Pass through
3173         recursive types.  Avoid overwriting errors.
3174         * giscanner/xmlwriter.py: Always write the
3175         XML header.
3176         * tests/*.gir: Adjust.
3177         * tests/scanner/Makefile.am: Build typelibs,
3178         and generate XML from those.  Once we
3179         have a good diff mechanism...
3180         * tests/scanner/*-expected.gir: Add XML
3181         header.
3182         * tools/g-ir-scanner: Accept --typelib-xml
3183         option.
3184         * tools/generate.c: Better defaults for transfer.
3185
3186 2008-08-22  Johan Dahlin  <johan@gnome.org>
3187
3188         * configure.ac:
3189         * gir/Makefile.am:
3190         * giscanner/Makefile.am:
3191         * giscanner/config.py.in:
3192         * giscanner/sourcescanner.py:
3193         Use the generated glibconfig.h for all scanner invokations.
3194         Rename it to glibconfig-scanner.h and install it.
3195         Add a config.py which so far contains the include dir.
3196
3197 2008-08-22  Johan Dahlin  <johan@gnome.org>
3198
3199         * gir/Makefile.am:
3200         Replace glibconfig.h with our own, do some replacement
3201         for CPP/C features we do not support
3202
3203 2008-08-22  Colin Walters  <walters@verbum.org>
3204
3205         * tools/generate.c (write_callable_info): Fix unref
3206         sequence.
3207
3208 2008-08-22  Colin Walters  <walters@verbum.org>
3209
3210         * gobject-introspection-1.0.pc.in: Add g-ir-generate.
3211         * tests/Makefile.am: Support $(DEBUG)
3212         * tools/generate.c: Do immediate close tags if no
3213         sub-elements.
3214
3215 2008-08-21  Colin Walters  <walters@verbum.org>
3216
3217         * tests/scanner/drawable-expected.gir,
3218         * tests/scanner/drawable.c,
3219         * tests/scanner/drawable.h:
3220         Add a method.
3221
3222 2008-08-21  Colin Walters  <walters@verbum.org>
3223
3224         * giscanner/glibtransformer.py: Compute prefix
3225         by searching through the symbol for bits
3226         rather than going directly from ctype; this fixes
3227         webkit_ namespace.
3228
3229 2008-08-21  Colin Walters  <walters@verbum.org>
3230
3231         * giscanner/glibtransformer.py: Also try squashing
3232         underscores from namespace, fixes webkit_web_view_new.
3233
3234 2008-08-21  Colin Walters  <walters@verbum.org>
3235
3236         * giscanner/glibtransformer.py: More ctor work,
3237         avoid having gtk_window_group_new end up under
3238         GtkWindow.
3239
3240 2008-08-21  Colin Walters  <walters@verbum.org>
3241
3242         * giscanner/glibtransformer.py: Much simpler approach
3243         of mapping uscored names to classes.
3244         * giscanner/utils.py: Remove unnecessary function.
3245
3246 2008-08-21  Johan Dahlin  <johan@gnome.org>
3247
3248         * girepository/girepository.c (g_irepository_require):
3249         Plug memory leak and avoid using freed memory.
3250         Resolve the whole module path, here as well.
3251
3252 2008-08-21  Colin Walters  <walters@verbum.org>
3253
3254         * giscanner/glibtransformer.py: Look up all permutations
3255         of class names when scanning methods/ctors based on
3256         the prefix instead of using the return value.  This
3257         associates gtk_window_new with the right class.
3258
3259 2008-08-21  Colin Walters  <walters@verbum.org>
3260
3261         * girepository/girmodule.c (g_ir_module_build_typelib): 
3262         Revert change to increment header_size; we do that in
3263         write_string.
3264
3265 2008-08-21  Colin Walters  <walters@verbum.org>
3266
3267         * girepository/girnode.c (write_string): Tweak to
3268         use UINT instead of INT.  Not likely to matter.
3269         * girepository/girmodule.c (g_ir_module_build_typelib):
3270         Add to header_offset as well for header strings
3271         to match what write_string does.
3272         * girepository/gtypelib.c: Replace is_name with
3273         validate_name, which more strongly validates and
3274         handles errors in a better way.  Update all callers.
3275         * giscanner/glibtransformer.py: Handle constructors
3276         better.
3277
3278 2008-08-21  Johan Dahlin  <johan@gnome.org>
3279
3280         * gir/Makefile.am (typelibs_DATA): Build and 
3281         install the Gio.typelib too
3282
3283         * girepository/gtypelib.c (_g_typelib_init):
3284         Use g_module_build_path to resolve the shlib name
3285
3286 2008-08-21  Colin Walters  <walters@verbum.org>
3287
3288         * gir/Makefile.am: CLEANFILES typelibs too.
3289
3290 2008-08-21  Johan Dahlin  <johan@gnome.org>
3291
3292         * giscanner/glibtransformer.py:
3293         Do not send .la files through find_library.
3294
3295 2008-08-21  Colin Walters  <walters@verbum.org>
3296
3297         * girepository/girparser.c (g_irepository_require):
3298         Fix one small leak in error case.
3299
3300 2008-08-21  Johan Dahlin  <johan@gnome.org>
3301
3302         * gir/Makefile.am:
3303         Parse glibconfig.h as well and install the compiled
3304         typelib
3305
3306 2008-08-21  Johan Dahlin  <johan@gnome.org>
3307
3308         * gir/Makefile.am:
3309         * giscanner/glibtransformer.py:
3310         * tools/g-ir-scanner:
3311         Do not hard-core library names in the Makefile, reuse
3312         ctypes find_library instead.
3313
3314 2008-08-21  Johan Dahlin  <johan@gnome.org>
3315
3316         * girepository/girparser.c (resolve_aliases):
3317         Remove compilation warnings
3318
3319 2008-08-21  Johan Dahlin  <johan@gnome.org>
3320
3321         * girepository/girepository.c (g_irepository_require):
3322         Rewrap and fix double free bug by leaking a bit.
3323
3324 2008-08-20  Colin Walters  <walters@verbum.org>
3325
3326         * girepository/girepository.c: Add new function
3327         g_irepository_get_typelib_path which tells
3328         us from where we loaded a namespace.
3329
3330 2008-08-20  Colin Walters  <walters@verbum.org>
3331
3332         * tests/scanner/*-expected.gir: Adjust for
3333         added shared-library.
3334         * giscanner/giwriter.py: Make pylint happy.
3335
3336 2008-08-20  Colin Walters  <walters@verbum.org>
3337
3338         * girepository/girmodule.c (g_ir_module_build_typelib):
3339         Calculate size correctly, avoid use-after-free.
3340
3341 2008-08-20  Colin Walters  <walters@verbum.org>
3342
3343         * girepository/girepository.c: Remove
3344         g_irepository_register_file in favor of
3345         g_irepository_require.  There are two
3346         possible deployment scenarios for typelibs:
3347         First, separate in $DATADIR/gitypelibs/.  Second,
3348         they may be embedded in shlibs.  However since
3349         the first is now the normal case, the API is
3350         optimized around it.
3351
3352         Refactor internals to look up typelibs for
3353         namespaces just-in-time, but we expect
3354         consumers to call g_irepository_require.
3355
3356         Also, add some docs.  No one has died from that
3357         before.
3358         * gir/Makefile.am: Need --library for glib.
3359         * giscanner/girwriter.py: Write out shared-library.
3360         * tools/g-ir-writer: Take the first --library
3361         argument as the target of shared-library.  In
3362         the future we should make this nicer with pkg-config
3363         probably.
3364
3365 2008-08-20  Colin Walters  <walters@verbum.org>
3366
3367         * girepository/girparser.py: And parse them.
3368
3369 2008-08-20  Johan Dahlin  <johan@gnome.org>
3370
3371         * giscanner/glibast.py: Add gshort/gushort types
3372
3373 2008-08-20  Colin Walters  <walters@verbum.org>
3374
3375         * gir/Makefile.am: Rename .gir files using GI namespace.
3376         * girepository/girepository.c: Use XDG_DATA_DIRS for
3377         looking up typelibs.  Also typelibs are now suffixed
3378         with .typelib.
3379         * tests/invoke/Makefile.am: Only use metadata.
3380         * girepository/Makefile.am: Remove unnecessary include.
3381         * tests/scanner/Makefile.am: Update using GI namespaces
3382         for scanner includes.
3383
3384 2008-08-20  Colin Walters  <walters@verbum.org>
3385
3386         * girepository/transformer.py: Suppress aliases whose
3387         name is a builtin.
3388         * girepository/ast.py: Define some more aliases.
3389
3390 2008-08-20  Colin Walters  <walters@verbum.org>
3391
3392         * girepository/girparser.c: Avoid alias infloops.
3393
3394 2008-08-20  Colin Walters  <walters@verbum.org>
3395
3396         * tests/scanner/foo-expected.gir: Fix expected list type.
3397
3398 2008-08-20  Johan Dahlin  <johan@gnome.org>
3399
3400         * giscanner/glibtransformer.py (GLibTransformer._resolve_type_name): 
3401         Add a workaround for #548689.
3402         We can now compile gtk!
3403
3404 2008-08-20  Colin Walters  <walters@verbum.org>
3405
3406         * giscanner/glibtransformer.py: Try to look up
3407         aliases using the c:type too.
3408
3409 2008-08-20  Colin Walters  <walters@verbum.org>
3410
3411         * girepository/girparser.c: Parse union fields.
3412
3413 2008-08-20  Johan Dahlin  <johan@gnome.org>
3414
3415         * giscanner/ast.py: Make time_t an alias for long
3416
3417         * gir/gio-2.0-good.gir:
3418         * gir/glib-2.0-good.gir:
3419         * gir/gobject-2.0-good.gir:
3420         Regnerate
3421         * giscanner/glibtransformer.py:
3422         Do not delete Class structures, we need them in gdk/gtk.
3423         * tests/scanner/drawable-expected.gir:
3424         * tests/scanner/foo-expected.gir:
3425         * tests/scanner/utility-expected.gir:
3426         Update tests.
3427
3428 2008-08-20  Johan Dahlin  <johan@gnome.org>
3429
3430         * tests/scanner/Makefile.am:
3431         * tests/scanner/annotation-expected.gir:
3432         * tests/scanner/annotation.c (annotation_object_class_init),
3433         (annotation_object_init), (annotation_object_method),
3434         (annotation_object_in), (annotation_object_out),
3435         (annotation_object_inout), (annotation_object_inout2),
3436         (annotation_object_inout3), (annotation_object_calleeowns),
3437         (annotation_object_calleesowns), (annotation_object_get_strings),
3438         (annotation_object_with_voidp), (annotation_object_get_objects),
3439         (annotation_object_create_object), (annotation_object_allow_none):
3440         * tests/scanner/annotation.h:
3441         * tests/scanner/foo-expected.gir:
3442         * tests/scanner/foo.c:
3443         * tests/scanner/foo.h:
3444         Split out annotation tests out of foo
3445
3446 2008-08-20  Johan Dahlin  <johan@gnome.org>
3447
3448         * tests/scanner/Foo-expected.gir:
3449         * tests/scanner/Makefile.am:
3450         * tests/scanner/foo-expected.gir:
3451         * tests/scanner/foo-object.h:
3452         * tests/scanner/foo.c:
3453         Foo->foo, foo-object.h -> foo.h
3454
3455 2008-08-20  Johan Dahlin  <johan@gnome.org>
3456
3457         * tests/scanner/Foo-expected.gir:
3458         * tests/scanner/Makefile.am:
3459         * tests/scanner/drawable-expected.gir:
3460         * tests/scanner/drawable.c (test_drawable_class_init),
3461         (test_drawable_init):
3462         * tests/scanner/drawable.h:
3463         * tests/scanner/foo-object.h:
3464         * tests/scanner/foo.c (foo_boxed_method):
3465         Move the drawable parts out of Foo to its own test.
3466
3467 2008-08-20  Johan Dahlin  <johan@gnome.org>
3468
3469         * tests/scanner/Foo-expected.gir:
3470         * tests/scanner/foo-object.h:
3471         * tests/scanner/foo.c (foo_drawable_class_init),
3472         (foo_drawable_init):
3473         Add a based on GdkDrawable which generates
3474         a broken gir.
3475
3476 2008-08-19  Colin Walters  <walters@verbum.org>
3477
3478         * giscanner/transformer.py: Don't try
3479         to strip prefix before namespace.
3480
3481 2008-08-19  Johan Dahlin  <johan@gnome.org>
3482
3483         * giscanner/transformer.py:
3484         * tests/scanner/Foo-expected.gir:
3485         * tests/scanner/foo-object.h:
3486         Add support for typedef void foo type of
3487         aliases.
3488
3489 2008-08-19  Johan Dahlin  <johan@gnome.org>
3490
3491         * giscanner/ast.py:
3492         * giscanner/girwriter.py:
3493         * giscanner/glibtransformer.py:
3494         * giscanner/transformer.py:
3495         * tests/scanner/Foo-expected.gir:
3496         Add basic support for union, base the code much
3497         on Struct. Add a testcase.
3498
3499 2008-08-19  Johan Dahlin  <johan@gnome.org>
3500
3501         * tests/scanner/Foo-expected.gir:
3502         * tests/scanner/foo-object.h:
3503         Add a union testcase which the compiler currently
3504         barfs at.
3505
3506 2008-08-19  Johan Dahlin  <johan@gnome.org>
3507
3508         * gobject-introspection-1.0.pc.in:
3509         Add a g_ir_compiler variable
3510
3511 2008-08-19  Colin Walters  <walters@verbum.org>
3512
3513         * giscanner/ast.py: Rework types to be more closely
3514         based on GITypeTag.
3515         * giscanner/girparser.py: Parse more bits.
3516         * giscanner/girwriter.py: Write sequences in a new
3517         way that specifies container type.
3518         * giscanner/glibast.py: Adjust for ast.py changes,
3519         add 'ctype' property to GLibObject and GLibInterface
3520         so we can look things up by it later.
3521         * gicanner/transformer.py: Names is new class holding
3522         the various namespaces we manage.  Do not confuse
3523         with Namespace which is toplevel XML node effectively.
3524         Rework all type resolution to go through
3525         _resolve_type_name_1.
3526         * giscanner/glibtransformer.py: Raise UnknownTypeError
3527         instead of ValueError for cleanliness.  Add Unresolved
3528         class to mark types whose parent we haven't seen yet.
3529         Use new Names object from transformer.py.
3530         Correctly look up parent=.
3531         Fix type validation to handle sequences.
3532         * tests/scanner/Foo-expected.gir: Update for sequence
3533         work, int instead of int32.
3534         * tools/g-ir-scanner: Add --noclosure option
3535         * gir/Makefile.am: Use --noclosure by default for
3536         GLib/GObject.
3537
3538 2008-08-18  Johan Dahlin  <johan@gnome.org>
3539
3540         * gir/gio-2.0-good.gir:
3541         * gir/glib-2.0-good.gir:
3542         * gir/gobject-2.0-good.gir:
3543         Regenerate.
3544
3545 2008-08-18  Johan Dahlin  <johan@gnome.org>
3546
3547         * giscanner/ast.py:
3548         * giscanner/girparser.py:
3549         * giscanner/girwriter.py:
3550         * giscanner/glibast.py:
3551         * giscanner/glibtransformer.py:
3552         * giscanner/transformer.py:
3553         * tests/scanner/Foo-expected.gir:
3554         * tests/scanner/foo-object.h:
3555         * tests/scanner/utility-expected.gir:
3556         * tests/scanner/utility.h:
3557         Redo type resolving and validation.
3558         Add a couple of new tests.
3559         Patch mostly written by Colin.
3560
3561 2008-08-18  Johan Dahlin  <johan@gnome.org>
3562
3563         * gir/Makefile.am:
3564         * giscanner/girparser.py:
3565         Set ctype of enums
3566         * giscanner/transformer.py:
3567         Improve enum parsing for enums without a GType.
3568         Make flags/enum references to other girs work
3569         * giscanner/utils.py:
3570         Simplify this a bit
3571         * tests/scanner/Makefile.am:
3572         * tests/scanner/foo-object.h:
3573         * tests/scanner/utility-expected.gir:
3574         * tests/scanner/utility.h:
3575         Add a new test for external enum references
3576
3577 2008-08-18  Johan Dahlin  <johan@gnome.org>
3578
3579         * docs/global-module-registry.txt: Update
3580
3581         * tests/array.gir: Update with new type proposal
3582
3583         * girepository/girepository.c (g_type_tag_to_string):
3584         * girepository/girepository.h:
3585         * girepository/girnode.c (g_ir_node_get_full_size_internal),
3586         (find_entry_node):
3587         * girepository/girnode.h:
3588         Make enum serializing functions public. Clean up some whitespace.
3589
3590 2008-08-17  Johan Dahlin  <johan@gnome.org>
3591
3592         * docs/global-module-registry.txt:
3593         Add a document for an on disk module registry format
3594
3595 2008-08-17  Johan Dahlin  <johan@gnome.org>
3596
3597         * gir/Makefile.am:
3598         * gir/gio-2.0-good.gir:
3599         Add a gio gir.
3600
3601 2008-08-17  Johan Dahlin  <johan@gnome.org>
3602
3603         * gir/Makefile.am:
3604         * gir/glib-2.0-good.gir:
3605         * gir/gobject-2.0-good.gir:
3606         * giscanner/cgobject.py:
3607         * giscanner/glibtransformer.py:
3608         Regenerate GObject & GType.
3609         Avoid warnings when generating gobject-2.0.gir.
3610         Introspect a little more, and skip *_get_type functions.
3611
3612 2008-08-17  Colin Walters  <walters@verbum.org>
3613
3614         * gir/glib-2.0.gir, gir/gobject-2.0.gir:
3615         Rename to -good, always generate during build.
3616         * gir/Makefile.am: Ensure .gir files dep on
3617         all scanner sources.
3618         * Makefile.am: Switch build order to ensure
3619         the scanner is ready before we do gir/.
3620         * tools/g-ir-scanner: Look for .git too.
3621
3622 2008-08-17  Johan Dahlin  <johan@gnome.org>
3623
3624         * girepository/gtypelib.c (validate_enum_blob):
3625         * giscanner/glibtransformer.py:
3626         * giscanner/transformer.py:
3627         Remove resolve_possible_typedefs, it was unused.
3628         Allow multiple enum values of the sample value in an enum,
3629         since it's actually pretty common.
3630         Register enums so they can be resolved too.
3631
3632 2008-08-16  Johan Dahlin  <johan@gnome.org>
3633
3634         * giscanner/girparser.py:
3635         Parse enumeration/bitfield.
3636
3637 2008-08-16  Johan Dahlin  <johan@gnome.org>
3638
3639         * giscanner/girparser.py:
3640         Parse boxed types.
3641
3642 2008-08-16  Johan Dahlin  <johan@gnome.org>
3643
3644         * giscanner/glibtransformer.py:
3645         Resolve type names for alias targets
3646         * giscanner/transformer.py:
3647         Skip FILE* parameters fow now
3648
3649 2008-08-16  Johan Dahlin  <johan@gnome.org>
3650
3651         * gir/glib-2.0.gir:
3652         * gir/gobject-2.0.gir:
3653         Regenerate
3654
3655         * tests/scanner/Makefile.am:
3656         parser -> scanner
3657
3658 2008-08-15  Colin Walters  <walters@verbum.org>
3659
3660         * giscanner/glibtransformer.py: Explicitly construct
3661         new list, since we're deleting as we iterate.
3662         Don't delete all structures which end in Class; just
3663         ones which have a paired GObject.
3664         Fix printing of type warning.
3665         * giscanner/transformer.py: Make strip_namespace_object
3666         be the identity function if it doesn't match the 
3667         namespace.
3668
3669 2008-08-15  Colin Walters  <walters@verbum.org>
3670
3671         * giscanner/cgobject.py: Define yet more argument
3672         prototypes; fix prototype for g_type_fundamental.
3673
3674 2008-08-14  Johan Dahlin  <johan@gnome.org>
3675
3676         * tests/Makefile.am:
3677         * tests/constant.gir:
3678         * tests/gobject.gir:
3679         * tests/struct.gir:
3680         * tools/generate.c (write_struct_info):
3681         Fix generator for constant/gobject/struct
3682
3683 2008-08-14  Johan Dahlin  <johan@gnome.org>
3684
3685         * tests/Makefile.am:
3686         * tests/enum.gir:
3687         * tools/generate.c (write_enum_info):
3688         Fix generation of enum/bitfields
3689
3690 2008-08-14  Johan Dahlin  <johan@gnome.org>
3691
3692         * girepository/girparser.c (start_field), (start_constant),
3693         (start_type), (end_element_handler):
3694         Clear up constant parsing
3695
3696         * tests/object.gir:
3697         Update
3698
3699         * tools/generate.c (write_callable_info), (write_function_info),
3700         (write_callback_info), (write_constant_info), (write_signal_info),
3701         (write_vfunc_info), (write_property_info), (write_object_info),
3702         (write_interface_info):
3703         Constants/Signals are handled now.
3704
3705 2008-08-14  Johan Dahlin  <johan@gnome.org>
3706
3707         * girepository/girparser.c (start_type):
3708         Don't require c:type.
3709         * tests/Makefile.am:
3710         Test boxed.gir
3711         * tests/boxed.gir:
3712         Update, remove parts we don't support yet
3713         * tests/roundtrips.sh:
3714         Remove
3715         * tools/generate.c (write_type_info), (write_field_info),
3716         (write_callable_info), (write_struct_info):
3717         Make it emit proper gir.
3718
3719 2008-08-14  Johan Dahlin  <johan@gnome.org>
3720
3721         * giscanner/transformer.py:
3722         New internal function for adding a new node.
3723
3724 2008-08-14  Johan Dahlin  <johan@gnome.org>
3725
3726         * gir/Makefile.am:
3727         Define an internal _H_ variable so we skip parsing both
3728         i18n headers, only one is needed.
3729         * gir/glib-2.0.gir:
3730         Add the glib-2.0.gir too.
3731         * giscanner/glibast.py:
3732         Add gconstpointer as an alias for ANY
3733         * giscanner/transformer.py:
3734         Do not lower case enumeration names per se.
3735         Skip functions which has parameters called 'va_list'
3736
3737 2008-08-14  Colin Walters  <walters@verbum.org>
3738
3739         * giscanner/transformer.py: Comment data structures.
3740         Also squash pointers in resolve_type_name to correspond
3741         with what we do for params.
3742         * giscanner/glibtransformer.py: Print warnings in more
3743         situations.  Rework checks for method/constructor to
3744         look up in our GType database instead of just checking
3745         for *.   Avoid generating <record> for GObject which
3746         duplicate the <class>.
3747         * gir/Makefile.am: Generate glib-2.0.gir and gobject-2.0.gir
3748         in here.
3749
3750 2008-08-14  Johan Dahlin  <johan@gnome.org>
3751
3752         * giscanner/girwriter.py:
3753         * giscanner/glibast.py:
3754         * giscanner/glibtransformer.py:
3755         * giscanner/transformer.py:
3756         * misc/pyflakes.py:
3757         * tests/Makefile.am:
3758         Add pyflakes.py and run it in make check.
3759         Update the source code to fix the errors reported by
3760         pyflakes.
3761
3762 2008-08-14  Johan Dahlin  <johan@gnome.org>
3763
3764         * giscanner/ast.py:
3765         * giscanner/girparser.py:
3766         * giscanner/glibast.py:
3767         * giscanner/glibtransformer.py:
3768         Refactor the parser a bit.
3769         Add parent type to interfaces and update callsites.
3770
3771 2008-08-14  Johan Dahlin  <johan@gnome.org>
3772
3773         * giscanner/glibtransformer.py:
3774         * giscanner/utils.py:
3775         Refactor a bit, avoid isinstance and add a method
3776         for each type we parse.
3777
3778 2008-08-14  Johan Dahlin  <johan@gnome.org>
3779
3780         * giscanner/ast.py:
3781         * giscanner/girparser.py:
3782         * giscanner/glibtransformer.py:
3783         * tests/Makefile.am:
3784         Run pep8.py in make check, fix old errors.
3785
3786 2008-08-13  Colin Walters  <walters@verbum.org>
3787
3788         * giscanner/girparser.py: Parse records.
3789
3790 2008-08-13  Colin Walters  <walters@verbum.org>
3791
3792         * gir/Makefile.am: Install again.
3793         * gir/gobject-2.0.gir: Add some more bits.
3794
3795 2008-08-13  Colin Walters  <walters@verbum.org>
3796
3797         * gir/gobject-2.0.gir: Use correct namespace, add GType.
3798         * giscanner/girparser.py: Handle aliases.
3799         * giscanner/transformer.py: Record aliases.  Make resolver
3800         functions public; we now call into these explicitly from
3801         glibtransformer.  Handle resolving aliases.
3802         * giscanner/glibtransformer.py: Separate our internal namespace
3803         from included ones.  Call up into transformer's resolver functions.
3804
3805 2008-08-13  Johan Dahlin  <johan@gnome.org>
3806
3807         * girepository/girnode.c (g_ir_node_get_full_size_internal):
3808         * girepository/girparser.c (start_class):
3809         * giscanner/glibtransformer.py:
3810         Allow get_type to be None, set a get_type for GInitiallyUnowned too.
3811
3812 2008-08-13  Johan Dahlin  <johan@gnome.org>
3813
3814         * giscanner/cgobject.py:
3815         Register GInitiallyUnowned
3816         * giscanner/girwriter.py:
3817         * giscanner/glibtransformer.py:
3818         Special case GObject/GInitially owned as they are a bit special to use.
3819
3820 2008-08-13  Colin Walters  <walters@verbum.org>
3821
3822         * tests/scanner/Foo-expected.gir, tests/scanner/utility-expected.gir:
3823         Object is in GObject namespace.
3824
3825 2008-08-13  Colin Walters  <walters@verbum.org>
3826
3827         * giscanner/girparser.py: Fix processing of functions
3828         from last commit.
3829
3830 2008-08-13  Colin Walters  <walters@verbum.org>
3831
3832         * giscanner/girparser.py: Parse more than just <class.
3833         * giscanner/glibtransformer.py: Put aliases in a separate
3834         data structure since their name is not canonicall.
3835         * giscanner/transformer.py: Handle resolving type names
3836         from includes.
3837
3838 2008-08-13  Johan Dahlin  <johan@gnome.org>
3839
3840         * tools/g-ir-scanner:
3841         Allow multiple libraries
3842         * giscanner/glibtransformer.py:
3843         Rename load_library to add_library, traverse over all libraries
3844         when trying to resolve a function
3845
3846 2008-08-12  Colin Walters  <walters@verbum.org>
3847
3848         * giscanner/transformer.py: Record typedefs as <alias> elements.
3849           Also attempt to look up types in external namespaces.
3850         * giscanner/girwriter.py: Write them.
3851         * giscanner/glibtransformer.py: Rework resolver using real instanceof
3852         checks.  Resolve interface methods and properties.
3853         * tests/scanner/foo-object.h: Add a method with typedef.
3854         * tests/scanner/Foo-expected.gir: Update.
3855         * girepository/girnode.c: Debug tweaks.
3856         * girepository/girparser.c: Make a first pass through the XML where we
3857         record all the aliases.  This lets us resolve them as we go through the
3858         second pass.
3859         * gir/Makefile.am: Don't install gobject-2.0.gir; we want that to come
3860         from gir-repository.
3861
3862 2008-08-12  Colin Walters  <walters@verbum.org>
3863
3864         * giscanner/glibtransformer.py: Resolve typedefs (e.g. AtkAttributeSet -> GSList).
3865         Correctly do subclasseing in 2nd pass resolution.  Handle callbacks in structure
3866         fields.
3867         * giscanner/transformer.py: Record typedefs and expose public API for resolving
3868         them.
3869         * tests/scanner/Foo-expected.gir: Fix expected callback types.
3870
3871 2008-08-12  Colin Walters  <walters@verbum.org>
3872
3873         * giscanner/glibtransformer.py: Also transform object properties.
3874
3875 2008-08-12  Colin Walters  <walters@verbum.org>
3876
3877         * giscanner/glibtransformer.py: Also transform callbacks
3878         and structure field types.
3879         * tests/scanner/Fooe-expected.gir: Update to expect correct
3880         names for callbacks and structs.
3881
3882 2008-08-12  Colin Walters  <walters@verbum.org>
3883
3884         * girepository/girparser.c: Handle 'any'.
3885         * tests/scanner/Foo-expected.gir, tests/scanner/foo-object.h:
3886         Add test for void *.
3887
3888 2008-08-12  Colin Walters  <walters@verbum.org>
3889
3890         * giscanner/glibtransformer.py: We need to do type
3891         resolution in a second pass after we've seen all the
3892         enums, records, etc.
3893
3894 2008-08-12  Colin Walters  <walters@verbum.org>
3895
3896         * tests/scanner/Foo-expected.gir, tests/scanner/foo-object.h:
3897         Add enum return value.
3898         * giscanner/glibtransformer.py: Transform function return types
3899         too.
3900
3901 2008-08-12  Colin Walters  <walters@verbum.org>
3902
3903         * tests/scanner/Makefile.am: Dep .gir files on scanner
3904         sources too.  Also remove @ so we see scanner invocations.
3905
3906 2008-08-12  Colin Walters  <walters@verbum.org>
3907
3908         * girepository/girparser.c, girepository/gtypelib.c,
3909         girepository/gtypelib.h, girepository/girnode.c:
3910         Remove usage of (GAPI-oriented) TypeTag in favor of
3911         GITypeTag from girepository.h.
3912
3913 2008-08-10  Colin Walters  <walters@verbum.org>
3914
3915         * tests/roundtrips.sh: Use the correct tests.
3916
3917 2008-08-10  Colin Walters  <walters@verbum.org>
3918
3919         * giscanner/cgobject.py: Declare/wrap a few more functions.
3920         Fix parameter types for g_object_new and g_type_fundamental.
3921
3922 2008-08-10  Colin Walters  <walters@verbum.org>
3923
3924         * giscanner/cgobject.py: Add new decorator @gwrap which forces
3925         us to declare types for both return value and parameters.  The
3926         ctypes default of 'int' is bad because it hides 32/64 bit
3927         problems.  Convert all existing functions to use it.
3928
3929 2008-08-09  Johan Dahlin  <johan@gnome.org>
3930
3931         * giscanner/__init__.py:
3932         * giscanner/ast.py:
3933         * giscanner/cgobject.py:
3934         * giscanner/gidlparser.py:
3935         * giscanner/gidlwriter.py:
3936         * giscanner/girparser.py:
3937         * giscanner/girwriter.py:
3938         * giscanner/glibast.py:
3939         * giscanner/glibtransformer.py:
3940         * giscanner/odict.py:
3941         * giscanner/sourcescanner.py:
3942         * giscanner/transformer.py:
3943         * giscanner/utils.py:
3944         * giscanner/xmlwriter.py:
3945         * tools/g-ir-scanner:
3946
3947         PEP8ify
3948
3949 2008-08-09  Johan Dahlin  <johan@gnome.org>
3950
3951         * relaxng/api.xml:
3952         * relaxng/c-types.xml:
3953         * relaxng/g-types.xml:
3954         * relaxng/relaxng.rng:
3955         * relaxng/util.xml:
3956         Remove outdated relaxng schemas.
3957
3958 2008-08-09  Johan Dahlin  <johan@gnome.org>
3959
3960         * *.[ch]:
3961         Rename metadata to typelib in variable names,
3962         comments and apis.
3963
3964 2008-08-09  Johan Dahlin  <johan@gnome.org>
3965
3966         * tools/scanner.c:
3967         * tools/scanner.h:
3968         Remove old C scanner, which got rewritten in python.
3969
3970 2008-08-09  Johan Dahlin  <johan@gnome.org>
3971
3972         * girepository/Makefile.am:
3973         * tools/Makefile.am:
3974         * tools/girmodule.c:
3975         * tools/girmodule.h:
3976         * tools/girnode.c:
3977         * tools/girnode.h:
3978         * tools/girparser.c:
3979         * tools/girparser.h:
3980         * tools/girwriter.c:
3981         * tools/girwriter.h:
3982         Move shared *.[ch] files to girepository from tools
3983
3984 2008-08-09  Johan Dahlin  <johan@gnome.org>
3985
3986         * tests/Makefile.am:
3987         * tests/array.test:
3988         * tests/boxed.test:
3989         * tests/constant.test:
3990         * tests/enum.test:
3991         * tests/errors.test:
3992         * tests/function.test:
3993         * tests/gobject.test:
3994         * tests/interface.test:
3995         * tests/object.test:
3996         * tests/struct.test:
3997         * tests/types.test:
3998         * tests/union.test:
3999         * tests/xref1.test:
4000         * tests/xref2.test:
4001         Rename *.test to *.gir
4002
4003 2008-08-09  Johan Dahlin  <johan@gnome.org>
4004
4005         * configure.ac:
4006         * tests/Makefile.am:
4007         * tests/parser/Foo-expected.gir:
4008         * tests/parser/Makefile.am:
4009         * tests/parser/foo-object.h:
4010         * tests/parser/foo.c:
4011         * tests/parser/utility-expected.gir:
4012         * tests/parser/utility.c:
4013         * tests/parser/utility.h:
4014         * tests/scanner/Makefile.am:
4015         Rename tests/parser to test/scanner
4016
4017 2008-08-08  Colin Walters  <walters@verbum.org>
4018
4019         * tests/roundtrips.sh: Use local .gir files again.
4020
4021 2008-08-08  Colin Walters  <walters@verbum.org>
4022
4023         * tests/invoke/Makefile.am: .gir file depends on libtool
4024         library.
4025
4026 2008-08-08  Colin Walters  <walters@verbum.org>
4027
4028         * tools/girnode.c: Pass through parent node so we can
4029         print the node whose child is NULL, if that occurs.
4030
4031 2008-08-08  Johan Dahlin  <johan@gnome.org>
4032
4033         * tests/Makefile.am:
4034         Disable roundtrip tests which are not yet working
4035         * tests/invoke/testfns.gir:
4036         Rewrite as gir.
4037
4038 2008-08-08  Johan Dahlin  <johan@gnome.org>
4039
4040         * giscanner/girwriter.py:
4041         type -> ntype
4042         * giscanner/glibast.py:
4043         * giscanner/glibtransformer.py:
4044         Swap order of members, to keep it consistent with
4045         base enum class
4046
4047 2008-08-08  Johan Dahlin  <johan@gnome.org>
4048
4049         * girepository/gtypelib.c (validate_header):
4050         * girepository/gtypelib.h:
4051         * giscanner/ast.py:
4052         * giscanner/girwriter.py:
4053         * giscanner/sourcescanner.c (gi_source_symbol_ref),
4054         (gi_source_symbol_unref):
4055         * tests/array.test:
4056         * tests/boxed.test:
4057         * tests/constant.test:
4058         * tests/enum.test:
4059         * tests/errors.test:
4060         * tests/function.test:
4061         * tests/gobject.test:
4062         * tests/interface.test:
4063         * tests/invoke/Makefile.am:
4064         * tests/invoke/testfns.xml:
4065         * tests/object.test:
4066         * tests/parser/Makefile.am:
4067         * tests/roundtrips.sh:
4068         * tests/struct.test:
4069         * tests/types.test:
4070         * tests/union.test:
4071         * tests/xref1.test:
4072         * tests/xref2.test:
4073         * tools/Makefile.am:
4074         * tools/compiler.c (main):
4075         * tools/generate.c (write_callable_info), (write_function_info),
4076         (write_repository):
4077         * tools/gidlmodule.c:
4078         * tools/gidlmodule.h:
4079         * tools/gidlnode.c:
4080         * tools/gidlnode.h:
4081         * tools/gidlparser.c:
4082         * tools/gidlparser.h:
4083         * tools/gidlwriter.c:
4084         * tools/gidlwriter.h:
4085         * tools/scanner.c (create_node_from_gtype),
4086         (create_node_from_ctype), (g_igenerator_process_properties),
4087         (g_igenerator_process_signals), (g_igenerator_create_object),
4088         (g_igenerator_create_interface), (g_igenerator_create_boxed),
4089         (g_igenerator_create_enum), (g_igenerator_create_flags),
4090         (g_igenerator_process_function_symbol),
4091         (g_igenerator_process_unregistered_struct_typedef),
4092         (g_igenerator_process_struct_typedef),
4093         (g_igenerator_process_union_typedef),
4094         (g_igenerator_process_enum_typedef),
4095         (g_igenerator_process_function_typedef),
4096         (g_igenerator_process_constant), (g_igenerator_process_symbols),
4097         (g_igenerator_add_module), (g_igenerator_add_include_idl):
4098         Merge in the gir-compiler branch.
4099         Thanks to Philip and Colin for their help.
4100
4101 2008-07-26  Colin Walters  <walters@verbum.org>
4102
4103         * tools/Makefile.am (bin_PROGRAMS): Install g-idl-compiler
4104         and g-idl-generate to go along with how we're changing this
4105         module to be installed.
4106         * gobject-introspection-1.0.pc.in: Set up Cflags and Libs.
4107
4108 2008-07-24  Colin Walters  <walters@verbum.org>
4109
4110         * girepository/girepository.c (g_irepository_register): Add
4111         environment variable G_IREPOSITORY_VERBOSE so we can print
4112         out what we're doing.
4113         * girepository/girepository.c (g_irepository_register_file): 
4114         Add GError error message to g_debug call.
4115
4116 2008-07-08  Jürg Billeter  <j@bitron.ch>
4117
4118         * giscanner/glibast.py:
4119
4120         Fix typo
4121
4122 2008-06-21  Johan Dahlin  <jdahlin@async.com.br>
4123
4124         * giscanner/girparser.py (GIRParser._parse_api): Ignore a few
4125         more tags
4126
4127 2008-06-20  Johan Dahlin  <jdahlin@async.com.br>
4128
4129         * giscanner/ast.py:
4130         * giscanner/girwriter.py:
4131         * giscanner/transformer.py:
4132         * tests/parser/Foo-expected.gir:
4133         * tests/parser/foo-object.h:
4134         * tests/parser/foo.c (foo_object_allow_none):
4135         Add support for gtk-doc annotations for allow-none.
4136         Add test case.
4137
4138 2008-06-19  Johan Dahlin  <jdahlin@async.com.br>
4139
4140         * giscanner/ast.py:
4141         * giscanner/girwriter.py:
4142         * giscanner/glibast.py:
4143         * giscanner/glibtransformer.py:
4144         * giscanner/transformer.py:
4145         * tests/parser/Foo-expected.gir:
4146         Start using abstract type instead of the raw C types.
4147         Register a bunch of glib types we care about.
4148
4149 2008-06-19  Rob Taylor  <rob.taylor@codethink.co.uk>
4150
4151         * AUTHORS:
4152         Update authors
4153
4154 2008-06-08  Philip Van Hoof  <pvanhoof@gnome.org>
4155
4156         * girepository/girepository.c:
4157         * girepository/gtypelib.c:
4158         * girepository/ginfo.c:
4159         * girepository/ginvoke.c:
4160         * girepository/girepository.h:
4161         * girepository/gtypelib.h:
4162         * girepository/gmetadata.c:
4163         * girepository/Makefile.am:
4164         * girepository/gmetadata.h:
4165         * tools/compiler.c:
4166         * tools/gidlmodule.c:
4167         * tools/gidlnode.c
4168         * tools/generate.c:
4169         * tools/gidlmodule.h:
4170         * tools/gidlparser.c:
4171
4172         Renamed GMetadata to GTypelib
4173
4174 2008-06-07  Johan Dahlin  <jdahlin@async.com.br>
4175
4176         * giscanner/xmlwriter.py:
4177         Improve line wrapping when > 79 charaters
4178
4179 2008-06-05  Jürg Billeter  <j@bitron.ch>
4180
4181         * giscanner/ast.py:
4182         * giscanner/girwriter.py:
4183         * giscanner/transformer.py:
4184         Use <type> element for field types
4185         * tests/parser/Foo-expected.gir:
4186         Update testcase
4187
4188 2008-06-04  Johan Dahlin  <jdahlin@async.com.br>
4189
4190         * giscanner/glibtransformer.py:
4191         Fix a bug which prevented GdkEvent from being generated
4192
4193 2008-06-03  Johan Dahlin  <jdahlin@async.com.br>
4194
4195         * giscanner/Makefile.am:
4196         * giscanner/ast.py:
4197         * giscanner/girwriter.py:
4198         * giscanner/glibast.py:
4199         * giscanner/glibtransformer.py:
4200         * giscanner/transformer.py:
4201         * giscanner/utils.py:
4202         * tests/parser/Foo-expected.gir:
4203         Improve enum member parsing and introspection
4204
4205 2008-05-31  Johan Dahlin  <jdahlin@async.com.br>
4206
4207         * giscanner/scannerparser.y:
4208         * giscanner/sourcescanner.h:
4209         * giscanner/sourcescanner.py:
4210         Add a new source type enum for member.
4211         Use __repr__ for improved debugging
4212         * giscanner/girparser.py:
4213         Ignore some more
4214         * giscanner/transformer.py:
4215         Improve parsing of struct members.
4216         * tests/parser/foo-object.h:
4217         Add a new testcase
4218
4219 2008-05-31  Johan Dahlin  <jdahlin@async.com.br>
4220
4221         * giscanner/xmlwriter.py:
4222         Improve error reporting when trying to quote None.
4223         * giscanner/girparser.py:
4224         Do not print warnings when including more complete .gir files
4225         * giscanner/girwriter.py:
4226         Do not require a name for parameters, add a todo for singletons
4227         * giscanner/glibtransformer.py:
4228         Refactor the way structs are done, add a couple of hacks to allow
4229         us to get further.
4230         * giscanner/transformer.py:
4231         Add enough hacks so cairo, atk and pango.gir can be parsed properly
4232         * gobject-introspection-1.0.pc.in:
4233         Export girdir, so we can access gobject-2.0.gir from outside
4234
4235 2008-05-31  Johan Dahlin  <jdahlin@async.com.br>
4236
4237         * tools/g-ir-scanner:
4238         * tests/parser/Makefile.am:
4239         Update sys.path before running the parser so we don't have
4240         to setup PYTHONPATH ourselves.
4241
4242         * Makefile.am:
4243         * configure.ac:
4244         * girepository/Makefile.am:
4245         * giscanner/transformer.py:
4246         * gobject-introspection-1.0.pc.in:
4247         * gobject-introspection.pc.in:
4248         * tools/Makefile.am:
4249
4250         Rename pkg-config name to gobject-introspection-1.0,
4251         Do not installed anything which is not using the gir format.
4252         Disable compililation the old C scanner, but still keep the source
4253         until all the remaning functionallity has been ported.
4254
4255 2008-05-31  Johan Dahlin  <jdahlin@async.com.br>
4256
4257         * giscanner/giscannermodule.c (symbol_get_ident): Prevent
4258         a crash when symbol->indent is NULL.
4259
4260         * giscanner/sourcescanner.py (ctype_name): Add ctype_name,
4261         a function to convert a CTYPE symbol to a string
4262
4263 2008-05-24  Johan Dahlin  <jdahlin@async.com.br>
4264
4265         * giscanner/ast.py:
4266         * giscanner/girwriter.py:
4267         * giscanner/giscannermodule.c
4268         (pygi_source_scanner_append_filename),
4269         (pygi_source_scanner_parse_file):
4270         * giscanner/glibtransformer.py:
4271         * giscanner/sourcescanner.py:
4272         Revert back to using temporary files to send in headers.
4273         Allow Functions to be passed in as callbacks, add a couple
4274         of try/excepts missing features.
4275         We can now scan pango
4276
4277 2008-05-08  Johan Dahlin  <johan@gnome.org>
4278
4279         * giscanner/glibtransformer.py:
4280         * giscanner/transformer.py:
4281         Move namespace stripping glibtransformer->transformer
4282
4283 2008-05-08  Johan Dahlin  <johan@gnome.org>
4284
4285         * giscanner/ast.py:
4286         * giscanner/girwriter.py:
4287         * giscanner/glibtransformer.py:
4288         * giscanner/transformer.py:
4289         * tools/g-ir-scanner:
4290         Introduce a namespace ast node
4291
4292 2008-05-05  Johan Dahlin  <johan@gnome.org>
4293
4294         * giscanner/__init__.py:
4295         * giscanner/sourcescanner.py:
4296         * giscanner/transformer.py:
4297         Move sourcescanner symbols to the sourcescanner module, instead
4298         of in the global __init__ namespace.
4299
4300 2008-05-03  Johan Dahlin  <johan@gnome.org>
4301
4302         * giscanner/glibtransformer.py:
4303         * tools/g-ir-scanner:
4304         Handle missing parameters better, allow - and + in .la dlname
4305         filenames.
4306
4307 2008-05-03  Johan Dahlin  <johan@gnome.org>
4308
4309         * giscanner/__init__.py:
4310         * giscanner/ast.py:
4311         * giscanner/girwriter.py:
4312         * giscanner/glibtransformer.py:
4313         * giscanner/transformer.py:
4314         Parse struct fields properly, improve debugging.
4315
4316 2008-04-29  Johan Dahlin  <johan@gnome.org>
4317
4318         * giscanner/ast.py:
4319         * giscanner/girwriter.py:
4320         * giscanner/transformer.py:
4321         * tests/parser/Foo-expected.gir:
4322         * TODO:
4323         Use transfer-ownership everywhere, to mark ownership/calle/caller etc.
4324
4325 2008-04-29  Johan Dahlin  <jdahlin@async.com.br>
4326
4327         * Makefile.am:
4328         * docs/g-ir-scanner.1:
4329         * metadata-annotations-proposal.txt:
4330         * metadata-format.txt:
4331         Add a basic, unfinshed man page for g-ir-scanner, move documents into .txt
4332
4333 2008-04-29  Johan Dahlin  <jdahlin@async.com.br>
4334
4335         * giscanner/girwriter.py:
4336         * giscanner/glibtransformer.py:
4337         * giscanner/transformer.py:
4338         * giscanner/xmlwriter.py:
4339         * tests/parser/Foo-expected.gir:
4340         * tests/parser/foo-object.h:
4341         Write record/structs to gir file too. Add a couple of tests,
4342         fix an off by one error in xmlwriter.py.
4343
4344 2008-04-28  Johan Dahlin  <johan@gnome.org>
4345
4346         * giscanner/xmlwriter.py: Calculate the line length properly,
4347         include the provided extra indentation in the calculation, really.
4348
4349 2008-04-28  Johan Dahlin  <jdahlin@async.com.br>
4350
4351         * giscanner/ast.py:
4352         * giscanner/glibast.py:
4353         * giscanner/glibtransformer.py:
4354         * giscanner/transformer.py:
4355         * tools/g-ir-scanner:
4356         Add a --strip-prefix and sort out confusion between names and symbols
4357         for functions and struct + derivaties.
4358         Refactor bootstrap of g-ir-scanner, so we can set options on
4359         Transformer() before parsing everything.
4360
4361 2008-04-28  Johan Dahlin  <johan@gnome.org>
4362
4363         * giscanner/transformer.py (Transformer._traverse_one): Avoid recursion
4364         when scanning girepository.h
4365
4366         * giscanner/sourcescanner.py (SourceScanner._preprocess): Define
4367         a __GI_SCANNER__ when we run.
4368
4369 2008-04-28  Johan Dahlin  <jdahlin@async.com.br>
4370
4371         * giscanner/ast.py:
4372         * giscanner/girwriter.py:
4373         * giscanner/glibast.py:
4374         * giscanner/glibtransformer.py:
4375         * tests/parser/Foo-expected.gir:
4376         * tests/parser/utility-expected.gir:
4377         Rename most c:identifier to c:type. Add new ones to
4378         class/interface/enum/boxed.
4379
4380 2008-04-28  Johan Dahlin  <jdahlin@async.com.br>
4381
4382         * giscanner/ast.py:
4383         * giscanner/girwriter.py:
4384         * giscanner/glibtransformer.py:
4385         * tests/parser/Foo-expected.gidl:
4386         * tests/parser/Makefile.am:
4387         Move c:identifier from return-value to subchild type,
4388         as per Jürgs suggestion
4389
4390 2008-04-28  Johan Dahlin  <johan@gnome.org>
4391
4392         * giscanner/girwriter.py:
4393         * tests/parser/Foo-expected.gir:
4394         Write property.type as a child node.
4395
4396 2008-04-27  Johan Dahlin  <johan@gnome.org>
4397
4398         * Makefile.am:
4399         * configure.ac:
4400         * gidl/Makefile.am:
4401         * gidl/gobject-2.0.gidl:
4402         * gir/Makefile.am:
4403         * gir/gobject-2.0.gir:
4404         * tests/parser/Makefile.am:
4405         Replace the GObject gidl with a GObject gir.
4406
4407 2008-04-27  Johan Dahlin  <johan@gnome.org>
4408
4409         * tools/Makefile.am (bin_SCRIPTS): g-ir-scanner is a script,
4410         not a program.
4411
4412         * giscanner/xmlwriter.py:
4413         * tests/parser/Foo-expected.gir:
4414         Include indentation in line length calculation
4415
4416 2008-04-27  Johan Dahlin  <johan@gnome.org>
4417
4418         * giscanner/girparser.py:
4419         Prettify NS parsing using elementtree.
4420
4421 2008-04-27  Johan Dahlin  <johan@gnome.org>
4422
4423         * configure.ac:
4424         * giscanner/Makefile.am:
4425         * giscanner/girparser.py:
4426         * giscanner/glibtransformer.py:
4427         * tests/parser/Foo-expected.gidl:
4428         * tests/parser/Foo-expected.gir:
4429         * tests/parser/Makefile.am:
4430         * tests/parser/utility-expected.gidl:
4431         * tests/parser/utility-expected.gir:
4432         * tools/g-ir-scanner:
4433         Switch over to GIR as the default format. Add a simple GIDL
4434         parser.
4435         Update tests and fix simplify makefiles by depending
4436         on GNU make extensions.
4437
4438 2008-04-27  Johan Dahlin  <johan@gnome.org>
4439
4440         * giscanner/xmlwriter.py:
4441         Wrap attributes for lines which are wider than 79 characters
4442
4443         * giscanner/scannerlexer.l:
4444         Allow parenthesis in annotations
4445
4446         * giscanner/ast.py:
4447         * giscanner/gidlwriter.py:
4448         * giscanner/girwriter.py:
4449         * giscanner/glibtransformer.py:
4450         * giscanner/transformer.py:
4451         Add initial sequence support, including annotation.
4452         Refactor type handling a bit.
4453
4454 2008-04-27  Johan Dahlin  <johan@gnome.org>
4455
4456         * tests/parser/Foo-expected.gidl:
4457         * tests/parser/foo-object.h:
4458         * tests/parser/foo.c (foo_object_class_init),
4459         (foo_object_get_strings), (foo_object_get_objects):
4460         Add two new functions to check sequence return values.
4461         Also fixes a compilation warning.
4462
4463 2008-04-27  Johan Dahlin  <johan@gnome.org>
4464
4465         * giscanner/giscannermodule.c (]): Cast the getter, avoids
4466         a compilation warning.
4467
4468         * tools/Makefile.am (g_ir_scanner_SOURCES):
4469         g-ir-scanner has no sources.
4470
4471 2008-04-25  Johan Dahlin  <johan@gnome.org>
4472
4473         * giscanner/Makefile.am:
4474         * giscanner/ast.py:
4475         * giscanner/gidlparser.py:
4476         * giscanner/gidlwriter.py:
4477         * giscanner/girwriter.py:
4478         * giscanner/glibast.py:
4479         * giscanner/glibtransformer.py:
4480         * giscanner/transformer.py:
4481         Split out nodes to ast.py and glibast.py
4482
4483 2008-04-25  Johan Dahlin  <jdahlin@async.com.br>
4484
4485         * giscanner/Makefile.am:
4486         * giscanner/gidlparser.py:
4487         * giscanner/gidlwriter.py:
4488         * giscanner/girwriter.py:
4489         * giscanner/glibtransformer.py:
4490         * giscanner/gobjecttreebuilder.py:
4491         * giscanner/transformer.py:
4492         * giscanner/treebuilder.py:
4493         * tools/g-ir-scanner:
4494         Rename treebuilder to transformer and
4495         gobjectreebuilder to glibtransformer.
4496
4497 2008-04-25  Johan Dahlin  <jdahlin@async.com.br>
4498
4499         * giscanner/Makefile.am:
4500         * giscanner/__init__.py:
4501         * giscanner/cgobject.py:
4502         * giscanner/gidlparser.py:
4503         * giscanner/gidlwriter.py:
4504         * giscanner/girwriter.py:
4505         * giscanner/gobjecttreebuilder.py:
4506         * giscanner/odict.py:
4507         * giscanner/sourcescanner.py:
4508         * giscanner/treebuilder.py:
4509         * giscanner/xmlwriter.py:
4510         * tools/Makefile.am:
4511         * tools/g-ir-scanner:
4512         Add LGPLv2 license header and install all python files
4513
4514 2008-04-25  Johan Dahlin  <jdahlin@async.com.br>
4515
4516         * TODO:
4517         * giscanner/gidlwriter.py:
4518         * giscanner/giscannermodule.c (pygi_source_directive_new),
4519         (directive_get_options), (pygi_source_symbol_new),
4520         (symbol_get_base_type), (pygi_source_type_new),
4521         (type_get_base_type), (type_get_child_list),
4522         (pygi_source_scanner_get_symbols),
4523         (pygi_source_scanner_get_directives):
4524         * giscanner/gobjecttreebuilder.py:
4525         * giscanner/sourcescanner.py:
4526         * giscanner/treebuilder.py:
4527         * tests/parser/foo-object.h:
4528         Add support for virtual methods.
4529         Pair struct FooClass with struct Foo.
4530         Clean up the SourceScanner bindings a bit.
4531         Add a testcase for virtual methods.
4532
4533 2008-04-25  Johan Dahlin  <jdahlin@async.com.br>
4534
4535         * giscanner/cgobject.py:
4536         * giscanner/gidlwriter.py:
4537         * giscanner/gobjecttreebuilder.py:
4538         Add support for signals
4539
4540         * tests/parser/foo.c (foo_object_class_init):
4541         * Foo-expected.gidl:
4542         Add a signal and update the expected output.
4543
4544 2008-04-24  Johan Dahlin  <jdahlin@async.com.br>
4545
4546         * giscanner/gidlwriter.py:
4547         * giscanner/girwriter.py:
4548         * giscanner/giscannermodule.c (directive_get_name),
4549         (directive_get_value), (directive_get_options),
4550         (symbol_get_directives), (symbol_set_directives),
4551         (pygi_source_scanner_parse_file),
4552         (pygi_source_scanner_lex_filename),
4553         (pygi_source_scanner_get_directives), (init_giscanner):
4554         * giscanner/sourcescanner.c (gi_source_scanner_get_directives):
4555         * giscanner/sourcescanner.h:
4556         * giscanner/sourcescanner.py:
4557         * giscanner/treebuilder.py:
4558         * tools/g-ir-scanner:
4559         Add support for source/header annotations.
4560
4561 2008-04-22  Johan Dahlin  <jdahlin@async.com.br>
4562
4563         * giscanner/gidlwriter.py:
4564         * giscanner/girwriter.py:
4565         * giscanner/gobjecttreebuilder.py:
4566         * giscanner/treebuilder.py:
4567         Add support for Callbacks
4568
4569 2008-04-22  Havoc Pennington  <hp@pobox.com>
4570
4571         * girepository/ginvoke.c (g_function_info_invoke): If a symbol is
4572         not in metadata->module, look for it in the global module, in case
4573         some other object or the app itself provides the symbol.
4574
4575 2008-04-22  Havoc Pennington  <hp@pobox.com>
4576
4577         * girepository/gmetadata.c (_g_metadata_init): hack to avoid
4578         dlopening a library that is already in the main app, by checking
4579         whether one of the lib's symbols is already loaded.
4580
4581 2008-04-22  Johan Dahlin  <jdahlin@async.com.br>
4582
4583         * tests/parser/Foo-expected.gidl:
4584         * tests/parser/foo-object.h:
4585         Add a callback test
4586
4587 2008-04-22  Havoc Pennington  <hp@pobox.com>
4588
4589         * girepository/ginfo.c (g_interface_info_find_method):
4590         Use interface_blob_size not object_blob_size to compute offset.
4591
4592 2008-04-22  Havoc Pennington  <hp@pobox.com>
4593
4594         * girepository/gmetadata.c (_g_metadata_init): remove
4595         G_MODULE_BIND_LOCAL flag when loading libraries, since some libs
4596         (Glade and Clutter for example) rely on being loaded globally.
4597
4598 2008-04-22  Havoc Pennington  <hp@pobox.com>
4599
4600         * girepository/ginfo.c (g_registered_type_info_get_g_type): new
4601         function to get the GType given a RegisteredTypeInfo
4602
4603 2008-04-22  Johan Dahlin  <johan@gnome.org>
4604
4605         * COPYING: Add a LGPL license, to prevent automake to
4606         put in a copy of GPL here. Pointed out by Havoc.
4607
4608         * girepository/ginfo.c (g_info_from_entry), (g_type_info_new),
4609         (g_type_info_is_pointer), (g_type_info_get_tag),
4610         (g_type_info_get_param_type), (g_type_info_get_interface),
4611         (g_type_info_get_array_length), (g_type_info_is_zero_terminated),
4612         (g_type_info_get_n_error_domains), (g_type_info_get_error_domain),
4613         (g_error_domain_info_get_codes), (g_enum_info_get_value),
4614         (g_object_info_get_interface), (g_object_info_get_field),
4615         (g_interface_info_get_prerequisite),
4616         (g_signal_info_get_class_closure), (g_constant_info_get_value):
4617         * girepository/ginvoke.c (get_ffi_type):
4618         * girepository/girepository.h:
4619         * girepository/gmetadata.c (g_metadata_get_dir_entry),
4620         (g_metadata_check_sanity), (validate_header),
4621         (validate_array_type_blob), (validate_iface_type_blob),
4622         (validate_param_type_blob), (validate_error_type_blob),
4623         (validate_type_blob), (validate_constant_blob),
4624         (validate_struct_blob), (validate_enum_blob):
4625         * girepository/gmetadata.h:
4626         * tests/Makefile.am:
4627         * tests/invoke/Makefile.am:
4628         * tests/invoke/invoke.c (main):
4629         * tests/roundtrips.sh:
4630         * tools/Makefile.am:
4631         * tools/compiler.c (format_output), (write_out_metadata), (main):
4632         * tools/generate.c (write_type_name), (write_type_info),
4633         (write_constant_value), (write_enum_info), (load_metadata), (main):
4634         * tools/gidlcompilercontext.c:
4635         * tools/gidlcompilercontext.h:
4636         * tools/gidlcompilerentrynode.c:
4637         * tools/gidlcompilerentrynode.h:
4638         * tools/gidlcompilertypenode.c:
4639         * tools/gidlcompilertypenode.h:
4640         * tools/gidlmodule.c (g_idl_module_build_metadata):
4641         * tools/gidlmodule.h:
4642         * tools/gidlnode.c (init_stats), (dump_stats),
4643         (g_idl_node_get_size), (g_idl_node_get_full_size),
4644         (g_idl_node_cmp), (g_idl_node_can_have_member),
4645         (g_idl_node_add_member), (g_idl_node_param_direction_string),
4646         (parse_int_value), (parse_uint_value), (parse_float_value),
4647         (parse_boolean_value), (find_entry_node), (find_entry),
4648         (serialize_type), (g_idl_node_build_metadata), (write_string):
4649         * tools/gidlnode.h:
4650         * tools/gidlparser.c (parse_type_internal):
4651         * tools/quote-file.sh:
4652         Revert revisions 157,149-148,136-129 and 120.
4653         Move back to using g-idl-generate to generate the metadata and
4654         avoids dependency on a c compiler.
4655
4656 2008-04-22  Johan Dahlin  <jdahlin@async.com.br>
4657
4658         * giscanner/girwriter.py:
4659         * tools/g-ir-scanner:
4660         Add an initial GIR writer and a --format option to g-ir-scanner
4661
4662 2008-04-21  Johan Dahlin  <johan@gnome.org>
4663
4664         * giscanner/cgobject.py: Use ctypes.util.find_library to locate
4665         gobject-2.0 and raise ImportError if not found.
4666
4667         * giscanner/gidlparser.py:
4668         * giscanner/gidlwriter.py:
4669         * giscanner/gobjecttreebuilder.py:
4670         * tools/g-ir-scanner:
4671         Add a --include argument to include types from other idls.
4672         Add a minimalistic GIDL parser (just objects for now)
4673         Implement resolving of external type references and use it to
4674         resolve parent types, argument types and return types.
4675
4676 2008-04-21  Johan Dahlin  <johan@gnome.org>
4677
4678         * giscanner/gidlwriter.py:
4679         * giscanner/gobjecttreebuilder.py:
4680         * giscanner/treebuilder.py:
4681         Add support for properties.
4682         Refactor Class/Interface support a bit, to share more code and
4683         always initialize their method attribute to an empty list.
4684
4685 2008-04-21  Johan Dahlin  <johan@gnome.org>
4686
4687         * giscanner/cgobject.py:
4688         Add a workaround for a glib bug interface introspection bug
4689         (object_interface_list_properties, object_class_list_properties):
4690         Cast the return value to GParamSpec.
4691
4692         * tests/parser/Foo-expected.gidl: Update
4693         * tests/parser/foo.c: Add a string property
4694
4695         * giscanner/gobjecttreebuilder.py:
4696         After stripping namespaces, remove the original
4697         item to avoid duplication (GtkButton struct and Button object)
4698
4699 2008-04-21  Johan Dahlin  <johan@gnome.org>
4700
4701         * giscanner/gobjecttreebuilder.py:
4702         * giscanner/treebuilder.py:
4703         Strip namespaces before objects, so we'll export
4704         GtkButton as Button in the gtk namespace
4705
4706 2008-04-21  Johan Dahlin  <johan@gnome.org>
4707
4708         * giscanner/gidlwriter.py:
4709         * giscanner/gobjecttreebuilder.py:
4710         * giscanner/treebuilder.py:
4711         Add constructors for object/boxed types.
4712
4713 2008-04-21  Johan Dahlin  <johan@gnome.org>
4714
4715         * giscanner/gidlwriter.py:
4716         * giscanner/gobjecttreebuilder.py:
4717         Add support for boxed types
4718
4719 2008-04-21  Johan Dahlin  <johan@gnome.org>
4720
4721         * giscanner/giscannermodule.c: Mark structures as const,
4722         wrap SourceType.const_string.
4723
4724         * tests/parser/foo-object.h: Add a couple of constants.
4725
4726         * giscanner/gidlwriter.py:
4727         * giscanner/gobjecttreebuilder.py:
4728         * giscanner/treebuilder.py:
4729         Add basic support for interfaces
4730
4731         * tools/g-ir-scanner:
4732         Add -o/--output for writing to a file
4733
4734 2008-04-21  Havoc Pennington  <hp@redhat.com>
4735
4736         * TODO: add some C API wishlist items I could think of quickly
4737
4738 2008-04-21  Johan Dahlin  <jdahlin@async.com.br>
4739
4740         * giscanner/gidlwriter.py:
4741         * giscanner/xmlwriter.py:
4742         Add a simple api for writing tags which can be used 
4743         with the new 'with statement' in python 2.5
4744
4745 2008-04-21  Johan Dahlin  <johan@gnome.org>
4746
4747         * giscanner/gobjecttreebuilder.py:
4748         Strip namespace and object prefix from method names.
4749
4750 2008-04-21  Johan Dahlin  <johan@gnome.org>
4751
4752         * tools/g-ir-scanner (main): Add --pkg option to pass in
4753         pkg-config modules to get cflags from.
4754
4755         * giscanner/gidlwriter.py (GIDLWriter._write_method): 
4756         Avoid duplication, reuse function writer for methods.
4757
4758 2008-04-21  Johan Dahlin  <jdahlin@async.com.br>
4759
4760         * giscanner/gidlwriter.py:
4761         * giscanner/gobjecttreebuilder.py:
4762         * giscanner/treebuilder.py:
4763         * tools/g-ir-scanner:
4764         Resolve libtool .la files.
4765         Strip name spaces for methods.
4766         Add function symbols
4767
4768 2008-04-20  Johan Dahlin  <jdahlin@async.com.br>
4769
4770         * giscanner/cgobject.py:
4771         * giscanner/gidlwriter.py:
4772         * giscanner/gobjecttreebuilder.py:
4773         * giscanner/treebuilder.py:
4774         Add support for classes and methods
4775
4776 2008-04-20  Johan Dahlin  <johan@gnome.org>
4777
4778         * giscanner/gidlwriter.py:
4779         * giscanner/gobjecttreebuilder.py:
4780         * giscanner/odict.py:
4781         Avoid conflicts, keep the output ordered similar to
4782         the order of the input.
4783         Add a simple ordered dictionary implemenation
4784
4785 2008-04-19  Johan Dahlin  <johan@gnome.org>
4786
4787         * giscanner/cgobject.py:
4788         * giscanner/gidlwriter.py:
4789         * giscanner/gobjecttreebuilder.py:
4790         * tools/g-ir-scanner:
4791         Start introspecting get-type functions.
4792         Implement support for GLib/GFlags GTypes.
4793         Add a ctype based GObject binding.
4794
4795 2008-04-18  Johan Dahlin  <jdahlin@async.com.br>
4796
4797         * giscanner/gidlwriter.py:
4798         * giscanner/xmlwriter.py:
4799         * tools/g-ir-scanner:
4800         Add a simplistic gidl writer, which can't do too much.
4801
4802 2008-04-18  Johan Dahlin  <johan@gnome.org>
4803
4804         * giscanner/sourcescanner.py:
4805         * giscanner/treebuilder.py:
4806         * tools/g-ir-scanner:
4807         split tree building and source scanning interface to separate files.
4808
4809 2008-04-18  Johan Dahlin  <johan@gnome.org>
4810
4811         * tools/g-ir-scanner (Parameter.__init__): Start constructing
4812         a real node tree.
4813         - Add support for struct/parameter/return, start parsing of ctypes
4814
4815         * giscanner/giscannermodule.c: wrap GISourceType.child_list and
4816         fix the style
4817
4818 2008-03-31  Johan Dahlin  <johan@gnome.org>
4819
4820         * tools/g-ir-scanner:
4821         Start to build abstract syntax node of scanned sources.
4822         Add support for cpp options.
4823
4824 2008-03-27  Johan Dahlin  <johan@gnome.org>
4825
4826         * giscanner/giscannermodule.c:
4827         * giscanner/scannerlexer.l:
4828         * giscanner/sourcescanner.c:
4829         * tools/g-ir-scanner:
4830
4831         Add simple pre-processor using subprocess and a PIPE.
4832         Change the parse_file apis to accept a file descriptor.
4833
4834 2008-03-25  Johan Dahlin  <johan@gnome.org>
4835
4836         * giscanner/__init__.py:
4837         * tools/g-ir-scanner:
4838         Fix a typo and add an example python test program.
4839
4840 2008-03-25  Johan Dahlin  <johan@gnome.org>
4841         
4842         * giscanner/__init__.py:
4843         * giscanner/giscannermodule.c:
4844         * giscanner/sourcescanner.c:
4845         * giscanner/sourcescanner.h:
4846         Add constants and wrap a few more SymbolType fields
4847
4848 2008-03-25  Johan Dahlin  <johan@gnome.org>
4849         
4850         * configure.ac:
4851         * giscanner:
4852         * giscanner/__init__.py:
4853         * giscanner/giscannermodule.c:
4854         * giscanner/Makefile.am:
4855
4856         Add initial python bindings for the scanner and 
4857         depend on python 2.5.
4858
4859 2008-03-25  Johan Dahlin  <johan@gnome.org>
4860
4861         * Makefile.am:
4862         * configure.ac:
4863         * giscanner/Makefile.am:
4864         * giscanner/sourcescanner.c:
4865         * giscanner/sourcescanner.h:
4866         * tools/Makefile.am:
4867         * tools/grealpath.h:
4868         * tools/sourcescanner.c:
4869         * tools/sourcescanner.h:
4870
4871         Move the scanner to a separate library.
4872         
4873 2008-03-23  Johan Dahlin  <johan@gnome.org>
4874
4875         * tools/Makefile.am:
4876         * tools/scanner.c:
4877         * tools/scanner.h:
4878         * tools/scannerlexer.l:
4879         * tools/scannerparser.y:
4880         * tools/sourcescanner.c:
4881         * tools/sourcescanner.h:
4882         Split out the source scanner from the generator.
4883         Rename the symbols used in the scanner to use the gi_ prefix.
4884         This should make it possible to use the raw C parser from
4885         other programs.
4886
4887 2008-03-23  Johan Dahlin  <johan@gnome.org>
4888
4889         * tests/parser/Makefile.am (utility.gidl): 
4890         * tests/parser/utility-expected.gidl: 
4891         Pass in the gobject.gidl since we're defining a GObject.
4892
4893 2008-03-12  Johan Dahlin  <johan@gnome.org>
4894
4895         * relaxng/relaxng.rng:
4896         Add a releaxng in relaxng we can use to validate the relaxngs
4897         schemas
4898
4899 2008-03-12  Jürg Billeter  <j@bitron.ch>
4900
4901         * tools/scanner.c: (g_igenerator_new):
4902         * tools/scannerparser.y:
4903         Fix compiler warnings.
4904
4905 2008-03-12  Jürg Billeter  <j@bitron.ch>
4906
4907         * tools/scanner.c:
4908         * tools/scanner.h:
4909         * tools/scannerparser.y:
4910         Start fixing memory management in g-idl-scanner.
4911
4912 2008-03-12  Rob Taylor  <rob.taylor@codethink.co.uk>
4913
4914         * tools/gidlcompilercontext.c: (write_compiled):
4915         Fix critical warning when no shlib passed to g-idl-compiler.
4916
4917 2008-03-12  Johan Dahlin  <johan@gnome.org>
4918
4919         * tests/parser/utility-expected.gidl:
4920         * tests/parser/utility.h:
4921         Add a get_type-function, so the scanner actually
4922         parses it as an object.
4923         
4924 2008-03-12  Johan Dahlin  <johan@gnome.org>
4925
4926         * tools/gidlwriter.c (function_generate): Add missing trailing quote.
4927         Bad Philip!
4928
4929         * tests/parser/Foo-expected.gidl:
4930         * tests/parser/Makefile.am:
4931         * tests/parser/foo-object.h:
4932         * tests/parser/foo.c:
4933         * tests/parser/utility-expected.gidl:
4934         * tests/parser/utility.c:
4935         * tests/parser/utility.h:
4936
4937         Add a new gidl test. 'utility.gidl', which is used to be able
4938         to test external type references. Add a reference to UtilityObject*
4939         in the idl file.
4940
4941 2008-03-11  Johan Dahlin  <johan@gnome.org>
4942
4943         * tools/compiler.c:
4944         * tools/generate.c:
4945         Remove most global variables
4946
4947 2008-03-11  Philip Van Hoof  <me@pvanhoof.be>
4948  
4949         * tools/scannerlexer.l:
4950         * tools/scanner.c:
4951         * tests/parser/Foo-expected.gidl:
4952         * tests/parser/foo.c:
4953         * tests/parser/Makefile.am:
4954         * tests/parser/foo-object.h:
4955  
4956         Added a few extra tests. Which resulted in finding a few
4957         bugs. Which resulted in me fixing those bugs
4958
4959 2008-03-11  Rob Taylor  <rob.taylor@codethink.co.uk>
4960
4961         * tools/gidlcompilercontext.c: (g_idl_compiler_write_dir_entry),
4962         (g_idl_compiler_write_xref_entry), (g_idl_compiler_add_xref):
4963         Add some comments for strings into generated output for
4964         easier debugging.
4965
4966 2008-03-11  Rob Taylor  <rob.taylor@codethink.co.uk>
4967
4968         * tools/gidlcompilercontext.c: (write_compiled):
4969         Write out the shlibs variable before writing out the strings
4970         length. Fixes compiler warning when using '-l' flag with
4971         g-idl-compiler
4972
4973 2008-03-11  Johan Dahlin  <johan@gnome.org>
4974
4975         * tests/parser/Foo-expected.gidl:
4976         * tests/parser/foo-object.h:
4977         * tools/scanner.c:
4978         * tools/scanner.h:
4979         * tools/scannerlexer.l:
4980         Add support for parsing return arguments. Add support for
4981         caller-owns return types.
4982         Patch by Philip Van Hoof.
4983         
4984         * tools/scannerparser.y:
4985         Remove parsing of the @deprecated syntax used in headers.
4986         We will support gtk-doc deprecation in the future instead.
4987
4988 2008-03-11  Johan Dahlin  <johan@gnome.org>
4989
4990         * tools/compiler.c (main): Coding style fixes
4991
4992 2008-03-10  Johan Dahlin  <johan@gnome.org>
4993
4994         * configure.ac:
4995         Add GCOV_LIBS to GILIBS
4996
4997 2008-03-10  Johan Dahlin  <johan@gnome.org>
4998
4999         * tests/parser/Foo-expected.gidl:
5000         * tests/parser/foo.c:
5001         Rename null-ok to direction=out
5002
5003 2008-03-10  Philip Van Hoof  <me@pvanhoof.be>
5004
5005         reviewed and extensively tested by Johan
5006
5007         * tests/parser/Foo-expected.gidl:
5008         * tests/parser/foo-object.h:
5009         * tests/parser/foo.c:
5010         * tools/gidlnode.c:
5011         * tools/gidlnode.h:
5012         * tools/gidlwriter.c:
5013         * tools/scanner.c:
5014         * tools/scanner.h:
5015         * tools/scannerlexer.l:
5016         * tools/scannerparser.y:
5017
5018         Add support for scanning for gtk-doc comments inside
5019         C source files. Add tests
5020
5021 2008-03-10  Johan Dahlin  <johan@gnome.org>
5022
5023         * tests/parser/Makefile.am:
5024         * tests/parser/foo.c:
5025         * tools/scanner.c:
5026         * tools/scanner.h:
5027         * tools/scannerparser.y:
5028         Add an api to lex filenames.
5029         Lex all source .c files passed in on the command line.
5030         Scan sources in a test and a couple of private structures
5031         which should not be included in the generated gidl
5032
5033 2008-03-10  Johan Dahlin  <johan@gnome.org>
5034
5035         * tests/invoke/Makefile.am: Make the generated metadata 
5036         depend on the g-idl-compiler
5037
5038 2008-02-21  Mark Doffman  <mark.doffman@codethink.co.uk>
5039
5040         * tools/gidlmodule.c
5041         * tools/gidlmodule.h
5042         * tools/gidlnode.c
5043         * tools/gidlnode.h
5044         Remove the old g-idl-compiler code.
5045
5046
5047 2008-02-22  Mark Doffman  <mark.doffman@codethink.co.uk>
5048
5049         * tools/quote-file.sh
5050         * tools/compiler.c
5051         * tools/generate.c
5052         Move to using the 'C' struct compiler code.
5053
5054 2008-02-21  Mark Doffman  <mark.doffman@codethink.co.uk>
5055
5056         * girepository/ginfo.c
5057         * tools/generate.c
5058         Change the way that external references with no namespace
5059         are dealt with. External references with no namespace
5060         are placed into the XML as-if they are a local reference.
5061         This is temporary, but helps with roundtrip tests.
5062
5063 2008-02-21  Mark Doffman  <mark.doffman@codethink.co.uk>
5064
5065         * girepository/ginfo.c
5066         Add the ability to get the value of a constant of
5067         type TYPE_TAG_SYMBOL. In the case of a symbol the value
5068         is provided as a string.
5069
5070         This would deal properly with:
5071         typedef char* random;
5072         const random = "A string";
5073
5074 2008-02-21  Mark Doffman  <mark.doffman@codethink.co.uk>
5075
5076         * girepository/ginfo.c
5077         * girepository/girepository.h
5078         * tools/generate.c
5079         Add a function to check if an enum is registered or not.
5080         Previously anything testing this relied on the g-type
5081         string offset having a value of 0.
5082
5083         * girepository/gmetadata.c
5084         * girepository/gmetadata.h
5085         * tools/generate.c
5086         Remove unneccesary or erroneous checks. There were two
5087         metadata validation checks which made sure that the blob
5088         sizes were the same as some magic numbers compiled into the code.
5089         This is wrong as it breaks any forwards compatibility that may
5090         be possible.
5091
5092         Checks were also present that made sure that unregistered type
5093         blobs had a value of 0 in the g-type offset field. This is
5094         unneccessary. If a type blob is unregistered then any value
5095         in its g-type field is simply invalid.
5096
5097 2008-02-21  Mark Doffman  <mark.doffman@codethink.co.uk>
5098
5099         * girepository/ginfo.c
5100         * girepository/gmetadata.c
5101         * girepository/gmetadata.h
5102
5103           Change the metadata format to have a standard header
5104           for all the type blobs. Merge the SimpleTypeBlob
5105           and InterfaceTypeBlob into a union. A union of these
5106           two blobs existed previously but was not explicit
5107           in the metadata format.
5108
5109 2008-02-21  Mark Doffman  <mark.doffman@codethink.co.uk>
5110
5111         * tools/gidlcompilercontext.c
5112         * tools/gidlcompilercontext.h
5113         * tools/gidlcompilerentrynode.c
5114         * tools/gidlcompilerentrynode.h
5115         * tools/gidlcompilertypenode.c
5116         * tools/gidlcompilertypenode.h
5117
5118         Add code to compile a tree of GIdlNodes to
5119         a 'C' struct representing the metadata.
5120         This is to aid cross-compiling. Previously
5121         the g-idl-compiler created a binary blob with
5122         data written in the byte order and alignment
5123         of the tool rather than the intended target.
5124
5125         Cleaned up and improved by Johan and Robert :-)
5126
5127 2008-02-21  Mark Doffman  <mark.doffman@codethink.co.uk>
5128
5129         * girepository/ginvoke.c
5130         * girepository/girepository.h
5131         * girepository/gmetadata.c
5132         * girepository/gmetadata.h
5133         * tools/generate.c
5134         * tools/gidlparser.c
5135         Modify TYPE_TAG_INTERFACE to TYPE_TAG_SYMBOL
5136         to avoid confusion with the interface blob.
5137
5138         * tools/generate.c
5139         * tools/gidlparser.c
5140         Remove magic numbers and replace with type-tag
5141         enumeration symbols.
5142
5143         * girepository/gmetadata.c
5144         Add validate declaration.
5145
5146 2008-03-10  Jürg Billeter  <j@bitron.ch>
5147
5148         * tools/gidlparser.c: (parse_type_internal):
5149         * tools/scannerlexer.l:
5150         * tools/scannerparser.y:
5151         Support C99 _Bool type in scanner.
5152
5153 2008-03-10  Jürg Billeter  <j@bitron.ch>
5154
5155         * tests/parser/Foo-expected.gidl:
5156         * tests/parser/foo-object.h:
5157         * tests/parser/foo.c: (foo_enum_method):
5158         * tools/scanner.c: (g_igenerator_process_function_symbol):
5159         Don't skip functions that are defined in the namespace of a type
5160         that doesn't support methods, as for example enums.
5161
5162 2008-03-10  Johan Dahlin  <johan@gnome.org>
5163
5164         * gidl.dtd: Remove, we're using relaxng for now
5165
5166         * tests/parser/Foo-expected.gidl:
5167         * tests/parser/foo-object.h:
5168         * tests/parser/foo.c:
5169         Rename the enum/flags get_type functions to include the whole type.
5170
5171 2008-03-08  Marc-Andre Lureau  <marcandre.lureau@gmail.com>
5172
5173         * tools/gidlwriter.c (enum_generate): added "type-name",
5174         "get-type" and "deprecated" missing arguments.
5175         * tests/parser/Foo-expected.gidl:
5176         * tests/parser/foo-object.h: test enum type, and no type.
5177
5178 2008-03-06  Johan Dahlin  <jdahlin@async.com.br>
5179
5180         * configure.ac:
5181         Consistent checks, add missing 'test'
5182
5183 2008-03-05  Havoc Pennington  <hp@redhat.com>
5184
5185         * configure.ac: Take advantage of a libffi.pc if one exists, as it
5186         does on Fedora 8. Make libffi a hard requirement, since it was in
5187         practice anyway (was not really conditional in the code or
5188         makefile, only in configure).
5189
5190 2008-02-21  Mark Doffman  <mark.doffman@codethink.co.uk>
5191
5192         reviewed by: Rob Taylor  <rob.taylor@codethink.co.uk>
5193         reviewed by: Johan Dahlin  <johan@gnome.org>
5194
5195         * tests/Makefile.am:
5196         * tests/roundtrips.sh:
5197         Modify the roundtrips test so that they do not use the
5198         --raw option of the gidl compiler but instead compile a
5199         shared library to use with g_module.
5200
5201         * tests/invoke/Makefile.am:
5202         * tests/invoke/invoke.c:
5203         Modify the invoke tests to build a shared library rather
5204         than use the --raw option.
5205
5206         * tests/invoke/invoke-namespace-find.sh: Removed:
5207         Noone knows why this was here, so removed.
5208
5209 2008-02-19  Rob Taylor  <rob.taylor@codethink.co.uk>
5210
5211         * tools/scanner.c: (g_igenerator_process_function_symbol):
5212         Move g_idl_node_can_have_member test later, as it broke spotting
5213         get_type's for nodes that can't have members.
5214
5215 2008-02-18  Rob Taylor  <rob.taylor@codethink.co.uk>
5216
5217         * tools/gidlnode.h:
5218         * tools/gidlnode.c: (g_idl_node_can_have_member):
5219         Add g_idl_node_can_have_member.
5220
5221         * tools/scanner.c: (g_igenerator_process_function_symbol):
5222         Use g_idl_node_can_have_member to test if we should add a function
5223         as a member of the type node.
5224
5225 2008-02-18  Rob Taylor  <rob.taylor@codethink.co.uk>
5226
5227         * gidl/GLib.gidl: Renamed to gidl/gobject-2.0.gidl:
5228         * gidl/Makefile.am:
5229         * tests/parser/Makefile.am:
5230         Rename GLib.gidl to gobject-2.0.gidl and install in /usr/share/gidl.
5231
5232 2008-02-18  Rob Taylor  <rob.taylor@codethink.co.uk>
5233
5234         * tools/scanner.c: (main):
5235         Ignore -pthread when passed to g-idl-scanner.
5236
5237 2008-02-18  Rob Taylor  <rob.taylor@codethink.co.uk>
5238
5239         * tools/grealpath.h: Added:
5240         * tools/scanner.c: (main):
5241         * tools/scannerlexer.l:
5242         * tools/Makefile.am:
5243         Always use absolute paths with symbolic links resolved when
5244         comparing filenames.
5245
5246 2008-02-18  Rob Taylor  <rob.taylor@codethink.co.uk>
5247
5248         * gobject-introspection.pc.in:
5249         Provide variables for g-idl-parser, scanner and compiler in the
5250         pkgconfig file.
5251
5252 2008-02-13  Rob Taylor  <rob.taylor@codethink.co.uk>
5253
5254         * gcov.mak:
5255         * girepository/Makefile.am:
5256         * tools/Makefile.am:
5257         Rename GCOV_SOURCES to GCOVSOURCES to top automake complaining.
5258
5259 2008-02-10  Johan Dahlin  <johan@gnome.org>
5260
5261         * tests/parser/Foo-expected.gidl:
5262         * tests/parser/foo-object.h:
5263         * tests/parser/foo.c: (foo_boxed_copy), (foo_boxed_free),
5264         (foo_boxed_get_type), (foo_boxed_new), (foo_boxed_method):
5265         Add boxed test.
5266
5267 2008-02-10  Johan Dahlin  <johan@gnome.org>
5268
5269         * tests/parser/Foo-expected.gidl:
5270         * tests/parser/foo-object.h:
5271         * tests/parser/foo.c: (foo_enum_get_type), (foo_flags_get_type):
5272         Add enum and flags test.
5273
5274 2008-02-10  Johan Dahlin  <johan@gnome.org>
5275
5276         * Makefile.am:
5277         * configure.ac:
5278         * girepository/Makefile.am:
5279         Make 'make distcheck' work again.
5280
5281 2008-02-10  Johan Dahlin  <johan@gnome.org>
5282
5283         * m4/Makefile.am (EXTRA_DIST): its called as-compiler-flag.m4,
5284         not as-compiler.m4.
5285
5286         * tests/parser/Makefile.am: Only create Foo.gidl when running make
5287         check, eg exclude it from BUILT_SOURCES.
5288
5289 2008-02-08  Rob Taylor  <rob.taylor@codethink.co.uk>
5290
5291         * Makefile.am:
5292         * configure.ac:
5293         * gcov.mak: Added:
5294         * girepository/Makefile.am:
5295         * m4/Makefile.am: Added:
5296         * m4/as-compiler-flag.m4: Added:
5297         * m4/gcov.m4: Added:
5298         * tools/Makefile.am:
5299         Add ability to generate a coverage report.
5300         Adds configure option --enable-gcov and make rule 'check-coverage'.
5301
5302 2008-02-08  Rob Taylor  <rob.taylor@codethink.co.uk>
5303
5304         * Makefile.am:
5305         * configure.ac:
5306         * gidl/Makefile.am: Added:
5307         * girepository/Makefile.am: Added:
5308         * src/Makefile.am: Renamed to tools/Makefile.am:
5309         * src/compiler.c: Renamed to tools/compiler.c:
5310         * src/g-idl-offsets.pl: Renamed to tools/g-idl-offsets.pl:
5311         * src/generate.c: Renamed to tools/generate.c:
5312         * src/gidlmodule.c: Renamed to tools/gidlmodule.c:
5313         * src/gidlmodule.h: Renamed to tools/gidlmodule.h:
5314         * src/gidlnode.c: Renamed to tools/gidlnode.c:
5315         * src/gidlnode.h: Renamed to tools/gidlnode.h:
5316         * src/gidlparser.c: Renamed to tools/gidlparser.c:
5317         * src/gidlparser.h: Renamed to tools/gidlparser.h:
5318         * src/gidlwriter.c: Renamed to tools/gidlwriter.c:
5319         * src/gidlwriter.h: Renamed to tools/gidlwriter.h:
5320         * src/ginfo.c: Renamed to girepository/ginfo.c:
5321         * src/ginvoke.c: Renamed to girepository/ginvoke.c:
5322         * src/girepository.c: Renamed to girepository/girepository.c:
5323         * src/girepository.h: Renamed to girepository/girepository.h:
5324         * src/gmetadata.c: Renamed to girepository/gmetadata.c:
5325         * src/gmetadata.h: Renamed to girepository/gmetadata.h:
5326         * src/scanner.c: Renamed to tools/scanner.c:
5327         * src/scanner.h: Renamed to tools/scanner.h:
5328         * src/scannerlexer.l: Renamed to tools/scannerlexer.l:
5329         * src/scannerparser.y: Renamed to tools/scannerparser.y:
5330         * tests/invoke/Makefile.am:
5331         Split src/ into girepository/ and tools/
5332
5333         * Makefile.am:
5334         * configure.ac:
5335         * girepository/Makefile.am:
5336         * tests/Makefile.am:
5337         * tests/invoke/Makefile.am:
5338         * tests/parser/Makefile.am:
5339         * tests/roundtrips.sh:
5340         * tools/Makefile.am:
5341         Make distcheck work.
5342
5343 2008-02-04  Rob Taylor  <rob.taylor@codethink.co.uk>
5344
5345         * tests/invoke/invoke.c: (main):
5346         * tests/invoke/testfns.c: (test6), (test7):
5347         * tests/invoke/testfns.xml:
5348         Add tests for invokation with a GList argument.
5349         Also tests caller-owns return values.
5350
5351 2008-02-04  Rob Taylor  <robtaylor@floopily.org>
5352
5353         * src/ginfo.c:
5354         Add some documentation for GICallableInfo
5355
5356 2008-02-01  Mark Doffman  <mark.doffman@codethink.co.uk>
5357
5358         * gidl.dtd:
5359         Correct syntax errors in the DTD file.
5360         * relaxng/api.xml:
5361         * relaxng/c-types.xml:
5362         * relaxng/g-types.xml:
5363         * relaxng/util.xml:
5364         Add a RelaxNG specification for the GObject Introspection XML data.
5365         The Specification has validated all of the test files.
5366
5367 2008-01-25  Rob Taylor  <robtaylor@floopily.org>
5368
5369         * tests/roundtrips.sh:
5370         * tests/struct.test:
5371         Add roundtrip tests for structs.
5372
5373 2008-01-11  Johan Dahlin  <johan@gnome.org>
5374
5375         * src/scanner.c (g_igenerator_process_function_symbol):
5376         Refactor out g_idle_node_add_member.
5377         (create_node_from_gtype, create_node_from_ctype):
5378         Use case instead of if...else
5379         (get_type_from_type_id):
5380         Rename to create_node_from_gtype
5381         (get_type_from_ctype):
5382         Rename to create_node_from_ctype
5383
5384         Rename ginode -> node, gitype -> type, gifunc -> func.
5385
5386         * src/gidlnode.c (g_idl_node_add_member, g_idl_node_cmp):
5387         Two new functions, refactor out of scanner.c
5388
5389         * src/scanner.c: (g_igenerator_process_function_symbol):
5390         * src/scannerlexer.l:
5391         Do not save the content of the deprecated variable, only
5392         if it's set or not.
5393
5394 2008-01-11  Johan Dahlin  <johan@gnome.org>
5395
5396         * tests/parser/foo-object.h: Add a couple of comment parser tests.
5397
5398 2008-01-11  Jürg Billeter  <j@bitron.ch>
5399
5400         * src/scannerlexer.l:
5401         Fix GTK-Doc parsing.
5402
5403 2008-01-11  Jürg Billeter  <j@bitron.ch>
5404
5405         * src/scannerlexer.l:
5406         Fix GTK-Doc parsing.
5407
5408 2008-01-11  Jürg Billeter  <j@bitron.ch>
5409
5410         * src/scanner.c: (lookup_symbol):
5411         Return unresolved name if we find unknown symbol.
5412
5413 2008-01-11  Jürg Billeter  <j@bitron.ch>
5414
5415         * src/scanner.c: (g_igenerator_generate):
5416         Initialize GObject to fix scanning interface properties.
5417
5418         * tests/parser/Foo-expected.gidl:
5419         * tests/parser/foo-object.h:
5420         * tests/parser/foo.c: (foo_interface_get_type):
5421         Test interfaces with GObject prerequisite.
5422
5423         * tests/parser/Makefile.am:
5424         Set G_DEBUG=fatal_warnings to abort test on warnings and criticals.
5425
5426 2007-12-27  Johan Dahlin  <johan@gnome.org>
5427
5428         * src/scannerlexer.l:
5429         Parse gtk-doc comments.
5430
5431         * src/gidlwriter.c: (function_generate):
5432         Reorganize, avoid duplication and add support for
5433         writing deprecated functions.
5434
5435         * src/scannerparser.y:
5436         * src/scanner.h:
5437         Add new structure CDirective and functions to create/free them.
5438
5439         * src/scanner.c: (g_igenerator_process_function_symbol),
5440         (g_igenerator_process_unregistered_struct_typedef),
5441         (g_igenerator_process_struct_typedef),
5442         (g_igenerator_process_union_typedef),
5443         (g_igenerator_process_enum_typedef),
5444         (g_igenerator_process_function_typedef), (g_igenerator_add_symbol),
5445         (g_igenerator_start_preprocessor):
5446         Parse @deprecated directive for functions.
5447         Remove some more C99isms.
5448         Send in -C to cpp to avoid stripping comments.
5449
5450         * tests/parser/foo-object.h:
5451         * tests/parser/Foo-expected.gidl:
5452         Add deprecated directive
5453
5454 2007-12-27  Johan Dahlin  <johan@gnome.org>
5455
5456         * src/scannerlexer.l (intsuffix): Add emacs mode line and
5457         escape ' and " so it looks more like C.
5458
5459         * src/scanner.c:
5460         Unlink temporary file used.
5461
5462 2007-12-27  Johan Dahlin  <johan@gnome.org>
5463
5464         * src/scanner.c: (g_igenerator_new), (g_igenerator_free),
5465         (g_igenerator_start_preprocessor), (main):
5466         * src/scanner.h:
5467         * src/scannerparser.y:
5468         Plug a couple of simple memory leaks.
5469
5470 2007-12-27  Johan Dahlin  <johan@gnome.org>
5471
5472         * src/scanner.c: (g_igenerator_parse_macros),
5473         (g_igenerator_start_preprocessor), (g_igenerator_set_verbose),
5474         (main):
5475         * src/scanner.h:
5476         * src/scannerparser.y:
5477         * tests/parser/Makefile.am:
5478
5479         Improve error reporting, return when the preprocessor fails.
5480         Add a verbose parameter, to aid debugging.
5481         Revert to using a temporary file to communicate between the
5482         preprocessor and the parser, because we need to wait for
5483         the exit code from the pre-processor before starting to parse.
5484
5485 2007-12-16  Johan Dahlin  <jdahlin@async.com.br>
5486
5487         * src/Makefile.am: Rename clexer.l to scannerlexer.l and
5488         cparser.y to scannerparser.y
5489
5490 2007-12-11  Johan Dahlin  <johan@gnome.org>
5491
5492         * src/clexer.l:
5493         * src/cparser.y:
5494         * src/scanner.c: (g_igenerator_new):
5495         * src/scanner.h:
5496         Get rid of the global the_generator variable.
5497
5498 2007-12-10  Johan Dahlin  <johan@gnome.org>
5499
5500         * src/scanner.c (main): Add an output option,
5501         add checks for required parameters
5502
5503         * src/Makefile.am:
5504         set BUILD_SOURCES and CLEANFILES properly
5505
5506         * src/gidlwriter.c: (g_writer_write_inline), (g_writer_write),
5507         (g_writer_write_indent), (g_writer_write_unindent),
5508         (field_generate), (value_generate), (constant_generate),
5509         (property_generate), (function_generate), (vfunc_generate),
5510         (signal_generate), (interface_generate), (struct_generate),
5511         (union_generate), (boxed_generate), (enum_generate),
5512         (node_generate), (g_writer_write_module), (g_idl_writer_save_file):
5513         * src/gidlwriter.h:
5514         * src/scanner.c: (g_igenerator_generate):
5515         * src/scanner.h:
5516         * src/scannerwriter.c:
5517
5518         Refactor scannerwriter to only be tied to a GIdlModule and move
5519         it (again!) to gidlwriter.c. Change the writer function to take
5520         a filename.
5521
5522 2007-12-10  Johan Dahlin  <johan@gnome.org>
5523
5524         * src/Makefile.am:
5525         * src/scanner.c: (g_igenerator_generate):
5526         * src/scanner.h:
5527         * src/scannerwriter.c: (g_igenerator_write_inline),
5528         (g_igenerator_write), (g_igenerator_write_indent),
5529         (g_igenerator_write_unindent), (field_generate), (value_generate),
5530         (constant_generate), (property_generate), (function_generate),
5531         (vfunc_generate), (signal_generate), (interface_generate),
5532         (struct_generate), (union_generate), (boxed_generate),
5533         (enum_generate), (node_generate), (module_generate),
5534         (g_scanner_write_file):
5535
5536         Move the scanner gidl writing to a separate source file.
5537
5538 2007-12-10  Johan Dahlin  <johan@gnome.org>
5539
5540         * src/cparser.y:
5541         * src/scanner.c:
5542         * src/scanner.h:
5543         Move over all CType construction functions.
5544
5545         * tests/parser/Makefile.am:
5546         Be verbose when printing parsing tests results.
5547
5548 2007-12-10  Johan Dahlin  <johan@gnome.org>
5549
5550         * src/scanner.c (g_igenerator_start_preprocessor): Refactor
5551         preprocessor handling to here. Start cpp insteado of cc -E,
5552         always include -U__GNUC__, since it's specific to the preprocessor
5553         we use.
5554
5555         * tests/parser/Makefile.am (check-local): Silent diff and skip
5556         -U__GNUC__ which is always defined now
5557
5558 2007-12-10  Johan Dahlin,,,  <jdahlin@plasttroll>
5559
5560         reviewed by: <delete if not using a buddy>
5561
5562         * src/scanner.c: (g_igenerator_start_preprocessor), (main):
5563         * tests/parser/Makefile.am:
5564
5565 2007-12-09  Johan Dahlin  <johan@gnome.org>
5566
5567         * src/scanner.c:
5568         Use GOption for command line options.
5569         (g_igenerator_new, main): Simplify constructor and they way
5570         parameters are passed into it.
5571
5572         * src/cparser.y:
5573         * src/Makefile.am:
5574         * src/clexer.l:
5575         * src/cparser.y:
5576         * src/gen-introspect.c:
5577         * src/gen-introspect.h:
5578         * src/scanner.c:
5579         Rename gen-introspect.[ch] to scanner.[ch]
5580
5581 2007-12-09  Johan Dahlin  <johan@gnome.org>
5582
5583         * TODO: Update
5584
5585         * src/Makefile.am: Rename gen-introspect to g-idl-scanner,
5586         don't make the repository library and the other utilites link against
5587         gthread-2.0
5588
5589         * src/gen-introspect.c: (g_igenerator_create_object),
5590         (g_igenerator_create_interface), (g_igenerator_create_boxed),
5591         (g_igenerator_create_enum), (g_igenerator_create_flags),
5592         (g_igenerator_process_module_symbol),
5593         (g_igenerator_process_module), (g_igenerator_generate), (main):
5594         * src/gen-introspect.h:
5595         Refactor g_igenerator_process_types into smaller pieces.
5596
5597         * tests/parser/Makefile.am:
5598         Depend on the gen-introspect binary
5599
5600 2007-12-09  Johan Dahlin  <johan@gnome.org>
5601
5602         * src/gen-introspect.c (g_igenerator_process_types):
5603         Break into smaller pieces, one for each generated node type.
5604
5605 2007-12-08  Johan Dahlin  <johan@gnome.org>
5606
5607         * src/gen-introspect.c: (g_igenerator_process_types),
5608         (g_igenerator_add_module):
5609         * tests/parser/Foo-expected.gidl:
5610         * tests/parser/foo-object.h:
5611         * tests/parser/foo.c: (foo_subobject_class_init),
5612         (foo_subobject_init):
5613
5614         Add a subobject test and make sure to register defined classes
5615         in the lookup symbol hash table.
5616
5617 2007-12-08  Johan Dahlin  <johan@gnome.org>
5618
5619         * gidl/GLib.gidl:
5620         * src/Makefile.am:
5621         * src/gen-introspect.c: (g_igenerator_new), (lookup_symbol),
5622         (g_igenerator_process_types), (g_igenerator_add_module),
5623         (g_igenerator_add_include_idl), (main):
5624         * src/gen-introspect.h:
5625         * tests/parser/Makefile.am:
5626         * tests/parser/Foo-expected.gidl:
5627
5628         Change the gen-introspect to generate namespaced module names,
5629         such as GLib.Object instead of GObject.
5630         Add a GLib.gidl which introduces GLib.Object and GLib.InitiallyUnowned,
5631         add a --include-idl parameter to gen-introspect,
5632         and update the parser test.
5633
5634 2007-12-08  Johan Dahlin  <johan@gnome.org>
5635
5636         * src/gen-introspect.c:
5637         Move main to the end of the file and attempt to make it valid
5638         ansi c.
5639
5640         * tests/parser/Makefile.am (BUILT_SOURCES): Remove .repo here,
5641         we're not quite ready to generate metadata yet.
5642
5643         * tests/parser/:
5644         * configure.ac:
5645
5646         Add a simple gen-introspect parser test
5647
5648 2007-12-06  Gustavo J. A. M. Carneiro  <gjc@gnome.org>
5649
5650         reviewed by: Johan Dahlin  <johan@gnome.org>
5651
5652         * configure.ac:
5653         * gobject-introspection.pc.in:
5654         * src/Makefile.am:
5655         * src/compiler.c: (format_output), (write_out_metadata), (main):
5656         * src/gen-introspect.c: (main):
5657         * src/gen-introspect.h:
5658         * src/generate.c: (write_callable_info), (write_repository),
5659         (load_metadata), (main):
5660         * src/gidlmodule.c: (g_idl_module_new),
5661         (g_idl_module_build_metadata):
5662         * src/gidlmodule.h:
5663         * src/gidlparser.c: (start_element_handler):
5664         * src/ginfo.c: (g_info_new), (g_info_from_entry),
5665         (g_base_info_get_name), (g_base_info_get_namespace),
5666         (g_base_info_is_deprecated), (g_base_info_get_annotation),
5667         (g_base_info_get_metadata), (g_function_info_get_symbol),
5668         (g_function_info_get_flags), (g_function_info_get_property),
5669         (g_function_info_get_vfunc), (signature_offset), (g_type_info_new),
5670         (g_callable_info_may_return_null),
5671         (g_callable_info_get_caller_owns), (g_callable_info_get_n_args),
5672         (g_callable_info_get_arg), (g_arg_info_get_direction),
5673         (g_arg_info_is_return_value), (g_arg_info_is_dipper),
5674         (g_arg_info_is_optional), (g_arg_info_may_be_null),
5675         (g_arg_info_get_ownership_transfer), (g_type_info_is_pointer),
5676         (g_type_info_get_tag), (g_type_info_get_param_type),
5677         (g_type_info_get_interface), (g_type_info_get_array_length),
5678         (g_type_info_is_zero_terminated),
5679         (g_type_info_get_n_error_domains), (g_type_info_get_error_domain),
5680         (g_error_domain_info_get_quark), (g_error_domain_info_get_codes),
5681         (g_value_info_get_value), (g_field_info_get_flags),
5682         (g_field_info_get_size), (g_field_info_get_offset),
5683         (g_registered_type_info_get_type_name),
5684         (g_registered_type_info_get_type_init),
5685         (g_struct_info_get_n_fields), (g_struct_info_get_field),
5686         (g_struct_info_get_n_methods), (g_struct_info_get_method),
5687         (find_method), (g_struct_info_find_method),
5688         (g_enum_info_get_n_values), (g_enum_info_get_value),
5689         (g_object_info_get_parent), (g_object_info_get_type_name),
5690         (g_object_info_get_type_init), (g_object_info_get_n_interfaces),
5691         (g_object_info_get_interface), (g_object_info_get_n_fields),
5692         (g_object_info_get_field), (g_object_info_get_n_properties),
5693         (g_object_info_get_property), (g_object_info_get_n_methods),
5694         (g_object_info_get_method), (g_object_info_find_method),
5695         (g_object_info_get_n_signals), (g_object_info_get_signal),
5696         (g_object_info_get_n_vfuncs), (g_object_info_get_vfunc),
5697         (g_object_info_get_n_constants), (g_object_info_get_constant),
5698         (g_interface_info_get_n_prerequisites),
5699         (g_interface_info_get_prerequisite),
5700         (g_interface_info_get_n_properties),
5701         (g_interface_info_get_property), (g_interface_info_get_n_methods),
5702         (g_interface_info_get_method), (g_interface_info_find_method),
5703         (g_interface_info_get_n_signals), (g_interface_info_get_signal),
5704         (g_interface_info_get_n_vfuncs), (g_interface_info_get_vfunc),
5705         (g_interface_info_get_n_constants),
5706         (g_interface_info_get_constant), (g_property_info_get_flags),
5707         (g_signal_info_get_flags), (g_signal_info_get_class_closure),
5708         (g_signal_info_true_stops_emit), (g_vfunc_info_get_flags),
5709         (g_vfunc_info_get_offset), (g_vfunc_info_get_signal),
5710         (g_constant_info_get_value), (g_union_info_get_n_fields),
5711         (g_union_info_get_field), (g_union_info_get_n_methods),
5712         (g_union_info_get_method), (g_union_info_is_discriminated),
5713         (g_union_info_get_discriminator_offset),
5714         (g_union_info_get_discriminator):
5715         * src/ginvoke.c: (g_function_info_invoke):
5716         * src/girepository.c: (g_irepository_register),
5717         (g_irepository_unregister), (g_irepository_get_default),
5718         (count_interfaces), (g_irepository_get_n_infos), (find_interface),
5719         (g_irepository_get_info), (g_irepository_find_by_name),
5720         (g_irepository_get_shared_library),
5721         (g_irepository_build_search_path), (g_irepository_register_file),
5722         (g_irepository_error_quark):
5723         * src/girepository.h:
5724         * src/gmetadata.c: (g_metadata_get_dir_entry),
5725         (g_metadata_check_sanity), (validate_header),
5726         (validate_array_type_blob), (validate_iface_type_blob),
5727         (validate_param_type_blob), (validate_error_type_blob),
5728         (validate_type_blob), (validate_arg_blob),
5729         (validate_signature_blob), (validate_function_blob),
5730         (validate_callback_blob), (validate_constant_blob),
5731         (validate_value_blob), (validate_field_blob),
5732         (validate_property_blob), (validate_signal_blob),
5733         (validate_vfunc_blob), (validate_struct_blob),
5734         (validate_enum_blob), (validate_object_blob),
5735         (validate_interface_blob), (validate_errordomain_blob),
5736         (validate_union_blob), (validate_blob), (validate_directory),
5737         (validate_annotations), (g_metadata_validate), (_g_metadata_init),
5738         (g_metadata_new_from_memory), (g_metadata_new_from_const_memory),
5739         (g_metadata_new_from_mapped_file), (g_metadata_free),
5740         (g_metadata_set_module), (g_metadata_get_namespace):
5741         * src/gmetadata.h:
5742         * tests/Makefile.am:
5743         * tests/invoke/Makefile.am:
5744         * tests/invoke/invoke-namespace-find.sh:
5745         * tests/invoke/invoke.c: (main):
5746
5747         Add a namespace/shared library mapping. fixes #313268.
5748
5749 2007-12-03  Johan Dahlin  <johan@gnome.org>
5750
5751         * src/gidlparser.c (parse_type_internal): Disable char/gchar and
5752         guchar for now.
5753
5754 2007-11-30  Jürg Billeter  <j@bitron.ch>
5755
5756         * configure.ac:
5757         * src/Makefile.am:
5758         * src/clexer.l:
5759         * src/cparser.y:
5760         * src/gen-introspect.c: (g_idl_node_cmp), (g_igenerator_new),
5761         (g_igenerator_write_inline), (g_igenerator_write),
5762         (g_igenerator_write_indent), (g_igenerator_write_unindent),
5763         (field_generate), (value_generate), (constant_generate),
5764         (property_generate), (function_generate), (vfunc_generate),
5765         (signal_generate), (interface_generate), (struct_generate),
5766         (union_generate), (boxed_generate), (enum_generate),
5767         (node_generate), (module_generate), (get_type_from_type_id),
5768         (str_replace), (g_igenerator_process_properties),
5769         (g_igenerator_process_signals), (g_igenerator_process_types),
5770         (get_type_from_ctype), (g_igenerator_process_function_symbol),
5771         (g_igenerator_process_unregistered_struct_typedef),
5772         (g_igenerator_process_struct_typedef),
5773         (g_igenerator_process_union_typedef),
5774         (g_igenerator_process_enum_typedef),
5775         (g_igenerator_process_function_typedef),
5776         (g_igenerator_process_constant), (g_igenerator_process_symbols),
5777         (g_igenerator_add_symbol), (g_igenerator_is_typedef),
5778         (g_igenerator_generate), (main), (csymbol_new),
5779         (csymbol_get_const_boolean), (ctype_new), (ctype_copy),
5780         (cbasic_type_new), (ctypedef_new), (cstruct_new), (cunion_new),
5781         (cenum_new), (cpointer_new), (carray_new), (cfunction_new),
5782         (eat_hspace), (eat_line), (read_identifier),
5783         (g_igenerator_parse_macros):
5784         * src/gen-introspect.h:
5785
5786         Import gen-introspect to generate introspection information by
5787         parsing C headers.
5788
5789 2007-11-30  Jürg Billeter  <j@bitron.ch>
5790
5791         * src/gidlnode.c: (g_idl_node_new): support creating callback nodes
5792
5793 2007-11-30  Jürg Billeter  <j@bitron.ch>
5794
5795         * src/gidlparser.c: (end_element_handler): Don't leave requires
5796         state too early.
5797
5798 2007-11-29  Johan Dahlin  <johan@gnome.org>
5799
5800         * src/gidlparser.c (parse_type_internal): Add char,
5801         gchar and guchar to the builtin types.
5802
5803 2007-11-26  Johan Dahlin  <johan@gnome.org>
5804
5805         * src/ginfo.c: (g_object_info_get_type_name),
5806         (g_object_info_get_type_init):
5807         * src/girepository.c: (g_irepository_is_registered):
5808         * src/girepository.h:
5809
5810         Add g_object_info_get_type_name, g_object_info_get_type_init and
5811         g_irepository_is_registered.
5812
5813 2006-08-14  Jürg Billeter  <j@bitron.ch>
5814
5815       * src/gidlparser.c: (end_element_handler): Don't leave
5816         namespace and implements states too early.
5817         Fixes #351264
5818
5819 2007-11-26  Johan Dahlin  <johan@gnome.org>
5820
5821         * src/gmetadata.c (validate_struct_blob):
5822         pass blob_type to validate_function_blob instead of
5823         hard-coding BLOB_TYPE_STRUCT.
5824
5825         Patch by Torsten Schoenfeld, fixes #314190
5826
5827 2006-10-03  Torsten Schoenfeld  <tsch@cvs.gnome.org>
5828
5829         * src/compiler.c, src/generate.c, src/gidlnode.c,
5830         src/gidlparser.c, src/ginfo.c, src/girepository.c,
5831         tests/invoke/invoke.c, test/invoke/testfns.c: Hush compiler
5832         warnings about return values, signedness mismatches, unused
5833         variables, and unhandles enum values in switch statements.
5834
5835         * tests/invoke/Makefile.am: Don't install the invoke test program.
5836         Add -I ../../src to the cflags used for the test functions files.
5837
5838 2005-08-31  Torsten Schoenfeld  <tsch@cvs.gnome.org>
5839
5840         * src/girepository.h: Export g_invoke_error_quark.
5841
5842 2005-08-31  Torsten Schoenfeld  <tsch@cvs.gnome.org>
5843
5844         * src/ginvoke.c: Remove the fallback implementation of
5845         g_function_info_invoke since we now formally depend on libffi.
5846
5847 2005-07-25  Matthias Clasen  <mclasen@redhat.com>
5848
5849         * src/Makefile, tests/Makefile, tests/invoke/Makefile:
5850         Remove these files from cvs, as they are now generated.
5851
5852         * src/gmetadata.c (validate_iface_type_blob): Don't
5853         complain if blob->pointer is not set, since that
5854         happens for enum and flag types.  (#308935, Gustavo
5855         Carneiro)
5856
5857         * Commit an autoconf-conversion patch by
5858         Gustavo Carneiro (#308708)
5859
5860 2005-05-24  Matthias Clasen  <mclasen@redhat.com>
5861
5862         * src/compiler.c (main): Use it here to validate
5863         the generated metadata.
5864
5865         * src/gmetadata.[hc]: Add code to validate a
5866         metadata blob.
5867
5868         * metadata-format.txt: Updates
5869
5870 2005-05-22  Matthias Clasen  <mclasen@redhat.com>
5871
5872         * tests/*: Add struct offsets to field and vfunc
5873         elements.
5874
5875         * src/generate.c (write_vfunc_info): Write offset
5876         information for vfuncs.
5877
5878         * src/gidlnode.c (g_idl_node_build_metadata): Write
5879         the struct offsets into the metadata.
5880
5881         * src/gidlparser.c: Parse the offset attributes of
5882         field and vfunc elements.
5883
5884         * src/gidlnode.h: Add offset members to field and
5885         vfunc nodes.
5886
5887 2005-05-21  Matthias Clasen  <mclasen@redhat.com>
5888
5889         * TODO: Updates.
5890
5891         * gidl.dtd: Updates.
5892
5893         * src/g-idl-offsets.pl: A perl script which reads a .gidl
5894         file, creates, compiles and runs a C file, and folds the
5895         resulting struct offsets back into the .gidl file.
5896
5897 2005-05-20  Matthias Clasen  <mclasen@redhat.com>
5898
5899         * src/gidlparser.c (start_field): Make fields in objects
5900         work.
5901
5902         * src/gidlmodule.c: Include string.h
5903
5904         * TODO: Updates.
5905         :
5906
5907         * metadata-format.txt: Cleanup basic types.
5908         * src/*: Adapt to the changes.
5909         * tests/*: Adapt to the changes.
5910         * examples/gdk-pixbuf.gidl: Adapt to the changes.
5911
5912         * src/gidlnode.c (g_idl_node_get_size): Report the correct
5913         size for enum blobs.
5914         (g_idl_node_get_full_size): Report the correct size for
5915         function blobs.
5916
5917         * src/gidlmodule.c (g_idl_module_build_metadata): Add some
5918         error checking for blob sizes.
5919
5920 2005-05-19  Matthias Clasen  <mclasen@redhat.com>
5921
5922         * src/gidlnode.c (g_idl_node_build_metadata): Correctly handle
5923         interface types for which is_pointer is FALSE, e.g. enums.
5924
5925         * src/gidlnode.c (g_idl_node_get_full_size)
5926         * src/gidlparser.c (parse_type_internal):
5927         * src/generate.c (write_type_info): Support unspecialized
5928         lists, hashtables and errors. Also emit a '*' after these.
5929
5930         * TODO: Updates
5931
5932 2005-05-17  Matthias Clasen  <mclasen@redhat.com>
5933
5934         * TODO: Updates
5935
5936         * metadata-format.txt: Cleanups by Maciej Katafiasz.
5937
5938 2005-05-15  Matthias Clasen  <mclasen@redhat.com>
5939
5940         * src/*.c: Change the directory to be addressed by
5941         1-based indexes, and use an index of zero to mean
5942         'no object'.
5943
5944 2005-05-15  Matthias Clasen  <mclasen@redhat.com>
5945
5946         * tests/roundtrips.sh (SIMPLE_TESTS): Add union.test.
5947
5948         * tests/union.test: Add a union test.
5949
5950         * src/generate.c: Handle unions.
5951
5952         * src/girepository.h:
5953         * src/ginfo.c: Add GIUnionInfo and functions to access it.
5954
5955         * src/gidlnode.c: Handle GIdlNodeUnion nodes.
5956
5957         * src/gidlparser.c (start_union): Parse <union> elements.
5958
5959         * src/gidlnode.h: Add a GIdlNodeUnion.
5960
5961         * gidl.dtd: Add a <union> element.
5962
5963         * src/gmetadata.c (g_metadata_check_sanity): Check
5964         union_blob_size.
5965
5966         * src/gmetadata.h: Add union_blob_size to Header,
5967         add a UnionBlob.
5968
5969         * metadata-format.txt: Add a UnionBlob.
5970
5971 2005-05-13  Matthias Clasen  <mclasen@redhat.com>
5972
5973         * tests/*: Update testcases.
5974
5975         * src/generate.c (write_callable_info): Don't forget to
5976         write transfer and null-ok attributes for return types
5977         and parameters.
5978
5979         * src/girepository.h:
5980         * src/ginfo.c (g_callable_info_may_return_null):
5981         New function to find out if a function may return NULL.
5982
5983         * src/compiler.c (format_output): Make the generated
5984         C code compile.
5985
5986         * README: Point to a recent libffi snapshot.
5987
5988         * tests/invoke/*: Some invoke tests.
5989
5990         * src/Makefile: Add ginvoke.c and the necessary
5991         libffi information.
5992
5993         * src/girepository.h (g_function_info_invoke): Add
5994         a GError argument.
5995
5996         * src/ginvoke.c (g_function_info_invoke): Initial
5997         implementation of invoke functionality based on libffi.
5998
5999         * src/gidlnode.c (g_idl_node_build_metadata): Pass the
6000         strings and types hash tables in the right order when
6001         recursing.
6002         (find_entry_node): Free the name parts.
6003
6004 2005-05-12  Johan Dahlin  <johan@gnome.org>
6005
6006         * src/generate.c: Generate consistent end tags.
6007
6008         * tests/*: Update
6009
6010 2005-05-12  Matthias Clasen  <mclasen@redhat.com>
6011
6012         * TODO: Updates
6013
6014         * src/gidlparser.c (start_function): Actually add
6015         methods to objects.  (Steven Walter)
6016
6017         * src/girepository.h:
6018         * src/ginfo.c: Rename Transfer and Direction to
6019         GITransfer and GIDirection. (Torsten Schoenfeld)
6020
6021         * tests/*: Make tests work with the changes in name
6022         handling.
6023
6024         * src/gidlnode.c (find_entry_node): Parse qualified
6025         names and generate xref nodes for them if needed. Don't
6026         require all modules to be loaded any more.
6027
6028         * src/gidlmodule.c (g_idl_module_build_metadata): Choke
6029         on '.' in names.
6030
6031         * src/ginfo.c (g_object_info_get_parent): Return NULL
6032         if blob->parent is 0. Still need to make sure index
6033         0 is not used.
6034
6035         * src/generate.c: Generate qualified names when
6036         referring to non-local types. Emit transfer attribute
6037         for return types.
6038
6039         * src/compiler.c (format_output): Put the function
6040         attributes where gcc accepts them.
6041
6042 2005-05-11  Matthias Clasen  <mclasen@redhat.com>
6043
6044         * src/compiler.c (main): Add a --verbose cmdline option
6045         and only log messages if it is specified.
6046
6047         * src/gidlnode.h:
6048         * src/gidlnode.c (init_stats, dump_stats): Collect some
6049         statistics on string and type sharing.
6050
6051         * src/gidlmodule.c (g_idl_module_build_metadata): Use
6052         g_message() instead of fprintf().
6053
6054         * src/gidlnode.c (g_idl_node_free): Make this more robust.
6055         (g_idl_node_get_size): Implement for structs.
6056         (g_idl_node_get_full_size): Handle parent being NULL.
6057         (serialize_type): Handle lookup failures more gracefully.
6058
6059 2005-05-10  Matthias Clasen  <mclasen@redhat.com>
6060
6061         * src/gidlnode.c (g_idl_node_get_full_size): Correct the
6062         size calculation for 2-parameter types and for objects.
6063
6064         * src/compiler.c: Add a cmdline option for debug output
6065         and install a log handler to implement it.
6066         * src/gidlnode.c: Add some debug spew.
6067
6068         * TODO: Updates
6069
6070         * src/gidlmodule.c (g_idl_module_build_metadata): Don't
6071         forget to count the module name when calculating the
6072         required size for the metadata.
6073
6074         * src/gidlnode.c:
6075         * src/gidlparser.c: Fix compiler warnings.
6076
6077 2005-05-09  Matthias Clasen  <mclasen@redhat.com>
6078
6079         * src/compiler.c (main): Free the option context.
6080
6081         * gidl.dtd: Clean up handling of names. All elements
6082         have a "name", only the elements corresponding to
6083         actual callable functions (function, method, constructor),
6084         have an additional "symbol" attribute holding the
6085         dlsym()-able function name.
6086
6087         * src/generate.c: Adapt to generate xml matching the
6088         new dtd.
6089
6090         * src/gidlparser.c:
6091         * src/gidlnode.c: Adapt to parse the new dtd.
6092
6093         * tests/*.test: Adjust to the new dtd.
6094
6095         * metadata-format.txt:
6096         * src/gmetadata.h: Remove the short_name field
6097         from the ValueBlob.
6098         * src/gmetadata.c: Shrink size of ValueBlob to 12.
6099         * src/girepository.h:
6100         * src/ginfo.c (g_value_info_get_short_name): Removed
6101
6102 2005-05-09  Matthias Clasen  <mclasen@redhat.com>
6103
6104         * gidl.dtd: Allow constructors for boxed types,
6105         patch by Jonathan Blandford.
6106
6107
6108 2005-05-09  Matthias Clasen  <mclasen@redhat.com>
6109
6110         * --- Initial import ---