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