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