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