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