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