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