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