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