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