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