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