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