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