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