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