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