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