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