Make enum serializing functions public. Clean up some whitespace.
[platform/upstream/gobject-introspection.git] / ChangeLog
1 2008-08-18  Johan Dahlin  <johan@gnome.org>
2
3         * girepository/girepository.c (g_type_tag_to_string):
4         * girepository/girepository.h:
5         * girepository/girnode.c (g_ir_node_get_full_size_internal),
6         (find_entry_node):
7         * girepository/girnode.h:
8         Make enum serializing functions public. Clean up some whitespace.
9
10 2008-08-17  Johan Dahlin  <johan@gnome.org>
11
12         * docs/global-module-registry.txt:
13         Add a document for an on disk module registry format
14
15 2008-08-17  Johan Dahlin  <johan@gnome.org>
16
17         * gir/Makefile.am:
18         * gir/gio-2.0-good.gir:
19         Add a gio gir.
20
21 2008-08-17  Johan Dahlin  <johan@gnome.org>
22
23         * gir/Makefile.am:
24         * gir/glib-2.0-good.gir:
25         * gir/gobject-2.0-good.gir:
26         * giscanner/cgobject.py:
27         * giscanner/glibtransformer.py:
28         Regenerate GObject & GType.
29         Avoid warnings when generating gobject-2.0.gir.
30         Introspect a little more, and skip *_get_type functions.
31
32 2008-08-17  Colin Walters  <walters@verbum.org>
33
34         * gir/glib-2.0.gir, gir/gobject-2.0.gir:
35         Rename to -good, always generate during build.
36         * gir/Makefile.am: Ensure .gir files dep on
37         all scanner sources.
38         * Makefile.am: Switch build order to ensure
39         the scanner is ready before we do gir/.
40         * tools/g-ir-scanner: Look for .git too.
41
42 2008-08-17  Johan Dahlin  <johan@gnome.org>
43
44         * girepository/gtypelib.c (validate_enum_blob):
45         * giscanner/glibtransformer.py:
46         * giscanner/transformer.py:
47         Remove resolve_possible_typedefs, it was unused.
48         Allow multiple enum values of the sample value in an enum,
49         since it's actually pretty common.
50         Register enums so they can be resolved too.
51
52 2008-08-16  Johan Dahlin  <johan@gnome.org>
53
54         * giscanner/girparser.py:
55         Parse enumeration/bitfield.
56
57 2008-08-16  Johan Dahlin  <johan@gnome.org>
58
59         * giscanner/girparser.py:
60         Parse boxed types.
61
62 2008-08-16  Johan Dahlin  <johan@gnome.org>
63
64         * giscanner/glibtransformer.py:
65         Resolve type names for alias targets
66         * giscanner/transformer.py:
67         Skip FILE* parameters fow now
68
69 2008-08-16  Johan Dahlin  <johan@gnome.org>
70
71         * gir/glib-2.0.gir:
72         * gir/gobject-2.0.gir:
73         Regenerate
74
75         * tests/scanner/Makefile.am:
76         parser -> scanner
77
78 2008-08-15  Colin Walters  <walters@verbum.org>
79
80         * giscanner/glibtransformer.py: Explicitly construct
81         new list, since we're deleting as we iterate.
82         Don't delete all structures which end in Class; just
83         ones which have a paired GObject.
84         Fix printing of type warning.
85         * giscanner/transformer.py: Make strip_namespace_object
86         be the identity function if it doesn't match the 
87         namespace.
88
89 2008-08-15  Colin Walters  <walters@verbum.org>
90
91         * giscanner/cgobject.py: Define yet more argument
92         prototypes; fix prototype for g_type_fundamental.
93
94 2008-08-14  Johan Dahlin  <johan@gnome.org>
95
96         * tests/Makefile.am:
97         * tests/constant.gir:
98         * tests/gobject.gir:
99         * tests/struct.gir:
100         * tools/generate.c (write_struct_info):
101         Fix generator for constant/gobject/struct
102
103 2008-08-14  Johan Dahlin  <johan@gnome.org>
104
105         * tests/Makefile.am:
106         * tests/enum.gir:
107         * tools/generate.c (write_enum_info):
108         Fix generation of enum/bitfields
109
110 2008-08-14  Johan Dahlin  <johan@gnome.org>
111
112         * girepository/girparser.c (start_field), (start_constant),
113         (start_type), (end_element_handler):
114         Clear up constant parsing
115
116         * tests/object.gir:
117         Update
118
119         * tools/generate.c (write_callable_info), (write_function_info),
120         (write_callback_info), (write_constant_info), (write_signal_info),
121         (write_vfunc_info), (write_property_info), (write_object_info),
122         (write_interface_info):
123         Constants/Signals are handled now.
124
125 2008-08-14  Johan Dahlin  <johan@gnome.org>
126
127         * girepository/girparser.c (start_type):
128         Don't require c:type.
129         * tests/Makefile.am:
130         Test boxed.gir
131         * tests/boxed.gir:
132         Update, remove parts we don't support yet
133         * tests/roundtrips.sh:
134         Remove
135         * tools/generate.c (write_type_info), (write_field_info),
136         (write_callable_info), (write_struct_info):
137         Make it emit proper gir.
138
139 2008-08-14  Johan Dahlin  <johan@gnome.org>
140
141         * giscanner/transformer.py:
142         New internal function for adding a new node.
143
144 2008-08-14  Johan Dahlin  <johan@gnome.org>
145
146         * gir/Makefile.am:
147         Define an internal _H_ variable so we skip parsing both
148         i18n headers, only one is needed.
149         * gir/glib-2.0.gir:
150         Add the glib-2.0.gir too.
151         * giscanner/glibast.py:
152         Add gconstpointer as an alias for ANY
153         * giscanner/transformer.py:
154         Do not lower case enumeration names per se.
155         Skip functions which has parameters called 'va_list'
156
157 2008-08-14  Colin Walters  <walters@verbum.org>
158
159         * giscanner/transformer.py: Comment data structures.
160         Also squash pointers in resolve_type_name to correspond
161         with what we do for params.
162         * giscanner/glibtransformer.py: Print warnings in more
163         situations.  Rework checks for method/constructor to
164         look up in our GType database instead of just checking
165         for *.   Avoid generating <record> for GObject which
166         duplicate the <class>.
167         * gir/Makefile.am: Generate glib-2.0.gir and gobject-2.0.gir
168         in here.
169
170 2008-08-14  Johan Dahlin  <johan@gnome.org>
171
172         * giscanner/girwriter.py:
173         * giscanner/glibast.py:
174         * giscanner/glibtransformer.py:
175         * giscanner/transformer.py:
176         * misc/pyflakes.py:
177         * tests/Makefile.am:
178         Add pyflakes.py and run it in make check.
179         Update the source code to fix the errors reported by
180         pyflakes.
181
182 2008-08-14  Johan Dahlin  <johan@gnome.org>
183
184         * giscanner/ast.py:
185         * giscanner/girparser.py:
186         * giscanner/glibast.py:
187         * giscanner/glibtransformer.py:
188         Refactor the parser a bit.
189         Add parent type to interfaces and update callsites.
190
191 2008-08-14  Johan Dahlin  <johan@gnome.org>
192
193         * giscanner/glibtransformer.py:
194         * giscanner/utils.py:
195         Refactor a bit, avoid isinstance and add a method
196         for each type we parse.
197
198 2008-08-14  Johan Dahlin  <johan@gnome.org>
199
200         * giscanner/ast.py:
201         * giscanner/girparser.py:
202         * giscanner/glibtransformer.py:
203         * tests/Makefile.am:
204         Run pep8.py in make check, fix old errors.
205
206 2008-08-13  Colin Walters  <walters@verbum.org>
207
208         * giscanner/girparser.py: Parse records.
209
210 2008-08-13  Colin Walters  <walters@verbum.org>
211
212         * gir/Makefile.am: Install again.
213         * gir/gobject-2.0.gir: Add some more bits.
214
215 2008-08-13  Colin Walters  <walters@verbum.org>
216
217         * gir/gobject-2.0.gir: Use correct namespace, add GType.
218         * giscanner/girparser.py: Handle aliases.
219         * giscanner/transformer.py: Record aliases.  Make resolver
220         functions public; we now call into these explicitly from
221         glibtransformer.  Handle resolving aliases.
222         * giscanner/glibtransformer.py: Separate our internal namespace
223         from included ones.  Call up into transformer's resolver functions.
224
225 2008-08-13  Johan Dahlin  <johan@gnome.org>
226
227         * girepository/girnode.c (g_ir_node_get_full_size_internal):
228         * girepository/girparser.c (start_class):
229         * giscanner/glibtransformer.py:
230         Allow get_type to be None, set a get_type for GInitiallyUnowned too.
231
232 2008-08-13  Johan Dahlin  <johan@gnome.org>
233
234         * giscanner/cgobject.py:
235         Register GInitiallyUnowned
236         * giscanner/girwriter.py:
237         * giscanner/glibtransformer.py:
238         Special case GObject/GInitially owned as they are a bit special to use.
239
240 2008-08-13  Colin Walters  <walters@verbum.org>
241
242         * tests/scanner/Foo-expected.gir, tests/scanner/utility-expected.gir:
243         Object is in GObject namespace.
244
245 2008-08-13  Colin Walters  <walters@verbum.org>
246
247         * giscanner/girparser.py: Fix processing of functions
248         from last commit.
249
250 2008-08-13  Colin Walters  <walters@verbum.org>
251
252         * giscanner/girparser.py: Parse more than just <class.
253         * giscanner/glibtransformer.py: Put aliases in a separate
254         data structure since their name is not canonicall.
255         * giscanner/transformer.py: Handle resolving type names
256         from includes.
257
258 2008-08-13  Johan Dahlin  <johan@gnome.org>
259
260         * tools/g-ir-scanner:
261         Allow multiple libraries
262         * giscanner/glibtransformer.py:
263         Rename load_library to add_library, traverse over all libraries
264         when trying to resolve a function
265
266 2008-08-12  Colin Walters  <walters@verbum.org>
267
268         * giscanner/transformer.py: Record typedefs as <alias> elements.
269           Also attempt to look up types in external namespaces.
270         * giscanner/girwriter.py: Write them.
271         * giscanner/glibtransformer.py: Rework resolver using real instanceof
272         checks.  Resolve interface methods and properties.
273         * tests/scanner/foo-object.h: Add a method with typedef.
274         * tests/scanner/Foo-expected.gir: Update.
275         * girepository/girnode.c: Debug tweaks.
276         * girepository/girparser.c: Make a first pass through the XML where we
277         record all the aliases.  This lets us resolve them as we go through the
278         second pass.
279         * gir/Makefile.am: Don't install gobject-2.0.gir; we want that to come
280         from gir-repository.
281
282 2008-08-12  Colin Walters  <walters@verbum.org>
283
284         * giscanner/glibtransformer.py: Resolve typedefs (e.g. AtkAttributeSet -> GSList).
285         Correctly do subclasseing in 2nd pass resolution.  Handle callbacks in structure
286         fields.
287         * giscanner/transformer.py: Record typedefs and expose public API for resolving
288         them.
289         * tests/scanner/Foo-expected.gir: Fix expected callback types.
290
291 2008-08-12  Colin Walters  <walters@verbum.org>
292
293         * giscanner/glibtransformer.py: Also transform object properties.
294
295 2008-08-12  Colin Walters  <walters@verbum.org>
296
297         * giscanner/glibtransformer.py: Also transform callbacks
298         and structure field types.
299         * tests/scanner/Fooe-expected.gir: Update to expect correct
300         names for callbacks and structs.
301
302 2008-08-12  Colin Walters  <walters@verbum.org>
303
304         * girepository/girparser.c: Handle 'any'.
305         * tests/scanner/Foo-expected.gir, tests/scanner/foo-object.h:
306         Add test for void *.
307
308 2008-08-12  Colin Walters  <walters@verbum.org>
309
310         * giscanner/glibtransformer.py: We need to do type
311         resolution in a second pass after we've seen all the
312         enums, records, etc.
313
314 2008-08-12  Colin Walters  <walters@verbum.org>
315
316         * tests/scanner/Foo-expected.gir, tests/scanner/foo-object.h:
317         Add enum return value.
318         * giscanner/glibtransformer.py: Transform function return types
319         too.
320
321 2008-08-12  Colin Walters  <walters@verbum.org>
322
323         * tests/scanner/Makefile.am: Dep .gir files on scanner
324         sources too.  Also remove @ so we see scanner invocations.
325
326 2008-08-12  Colin Walters  <walters@verbum.org>
327
328         * girepository/girparser.c, girepository/gtypelib.c,
329         girepository/gtypelib.h, girepository/girnode.c:
330         Remove usage of (GAPI-oriented) TypeTag in favor of
331         GITypeTag from girepository.h.
332
333 2008-08-10  Colin Walters  <walters@verbum.org>
334
335         * tests/roundtrips.sh: Use the correct tests.
336
337 2008-08-10  Colin Walters  <walters@verbum.org>
338
339         * giscanner/cgobject.py: Declare/wrap a few more functions.
340         Fix parameter types for g_object_new and g_type_fundamental.
341
342 2008-08-10  Colin Walters  <walters@verbum.org>
343
344         * giscanner/cgobject.py: Add new decorator @gwrap which forces
345         us to declare types for both return value and parameters.  The
346         ctypes default of 'int' is bad because it hides 32/64 bit
347         problems.  Convert all existing functions to use it.
348
349 2008-08-09  Johan Dahlin  <johan@gnome.org>
350
351         * giscanner/__init__.py:
352         * giscanner/ast.py:
353         * giscanner/cgobject.py:
354         * giscanner/gidlparser.py:
355         * giscanner/gidlwriter.py:
356         * giscanner/girparser.py:
357         * giscanner/girwriter.py:
358         * giscanner/glibast.py:
359         * giscanner/glibtransformer.py:
360         * giscanner/odict.py:
361         * giscanner/sourcescanner.py:
362         * giscanner/transformer.py:
363         * giscanner/utils.py:
364         * giscanner/xmlwriter.py:
365         * tools/g-ir-scanner:
366
367         PEP8ify
368
369 2008-08-09  Johan Dahlin  <johan@gnome.org>
370
371         * relaxng/api.xml:
372         * relaxng/c-types.xml:
373         * relaxng/g-types.xml:
374         * relaxng/relaxng.rng:
375         * relaxng/util.xml:
376         Remove outdated relaxng schemas.
377
378 2008-08-09  Johan Dahlin  <johan@gnome.org>
379
380         * *.[ch]:
381         Rename metadata to typelib in variable names,
382         comments and apis.
383
384 2008-08-09  Johan Dahlin  <johan@gnome.org>
385
386         * tools/scanner.c:
387         * tools/scanner.h:
388         Remove old C scanner, which got rewritten in python.
389
390 2008-08-09  Johan Dahlin  <johan@gnome.org>
391
392         * girepository/Makefile.am:
393         * tools/Makefile.am:
394         * tools/girmodule.c:
395         * tools/girmodule.h:
396         * tools/girnode.c:
397         * tools/girnode.h:
398         * tools/girparser.c:
399         * tools/girparser.h:
400         * tools/girwriter.c:
401         * tools/girwriter.h:
402         Move shared *.[ch] files to girepository from tools
403
404 2008-08-09  Johan Dahlin  <johan@gnome.org>
405
406         * tests/Makefile.am:
407         * tests/array.test:
408         * tests/boxed.test:
409         * tests/constant.test:
410         * tests/enum.test:
411         * tests/errors.test:
412         * tests/function.test:
413         * tests/gobject.test:
414         * tests/interface.test:
415         * tests/object.test:
416         * tests/struct.test:
417         * tests/types.test:
418         * tests/union.test:
419         * tests/xref1.test:
420         * tests/xref2.test:
421         Rename *.test to *.gir
422
423 2008-08-09  Johan Dahlin  <johan@gnome.org>
424
425         * configure.ac:
426         * tests/Makefile.am:
427         * tests/parser/Foo-expected.gir:
428         * tests/parser/Makefile.am:
429         * tests/parser/foo-object.h:
430         * tests/parser/foo.c:
431         * tests/parser/utility-expected.gir:
432         * tests/parser/utility.c:
433         * tests/parser/utility.h:
434         * tests/scanner/Makefile.am:
435         Rename tests/parser to test/scanner
436
437 2008-08-08  Colin Walters  <walters@verbum.org>
438
439         * tests/roundtrips.sh: Use local .gir files again.
440
441 2008-08-08  Colin Walters  <walters@verbum.org>
442
443         * tests/invoke/Makefile.am: .gir file depends on libtool
444         library.
445
446 2008-08-08  Colin Walters  <walters@verbum.org>
447
448         * tools/girnode.c: Pass through parent node so we can
449         print the node whose child is NULL, if that occurs.
450
451 2008-08-08  Johan Dahlin  <johan@gnome.org>
452
453         * tests/Makefile.am:
454         Disable roundtrip tests which are not yet working
455         * tests/invoke/testfns.gir:
456         Rewrite as gir.
457
458 2008-08-08  Johan Dahlin  <johan@gnome.org>
459
460         * giscanner/girwriter.py:
461         type -> ntype
462         * giscanner/glibast.py:
463         * giscanner/glibtransformer.py:
464         Swap order of members, to keep it consistent with
465         base enum class
466
467 2008-08-08  Johan Dahlin  <johan@gnome.org>
468
469         * girepository/gtypelib.c (validate_header):
470         * girepository/gtypelib.h:
471         * giscanner/ast.py:
472         * giscanner/girwriter.py:
473         * giscanner/sourcescanner.c (gi_source_symbol_ref),
474         (gi_source_symbol_unref):
475         * tests/array.test:
476         * tests/boxed.test:
477         * tests/constant.test:
478         * tests/enum.test:
479         * tests/errors.test:
480         * tests/function.test:
481         * tests/gobject.test:
482         * tests/interface.test:
483         * tests/invoke/Makefile.am:
484         * tests/invoke/testfns.xml:
485         * tests/object.test:
486         * tests/parser/Makefile.am:
487         * tests/roundtrips.sh:
488         * tests/struct.test:
489         * tests/types.test:
490         * tests/union.test:
491         * tests/xref1.test:
492         * tests/xref2.test:
493         * tools/Makefile.am:
494         * tools/compiler.c (main):
495         * tools/generate.c (write_callable_info), (write_function_info),
496         (write_repository):
497         * tools/gidlmodule.c:
498         * tools/gidlmodule.h:
499         * tools/gidlnode.c:
500         * tools/gidlnode.h:
501         * tools/gidlparser.c:
502         * tools/gidlparser.h:
503         * tools/gidlwriter.c:
504         * tools/gidlwriter.h:
505         * tools/scanner.c (create_node_from_gtype),
506         (create_node_from_ctype), (g_igenerator_process_properties),
507         (g_igenerator_process_signals), (g_igenerator_create_object),
508         (g_igenerator_create_interface), (g_igenerator_create_boxed),
509         (g_igenerator_create_enum), (g_igenerator_create_flags),
510         (g_igenerator_process_function_symbol),
511         (g_igenerator_process_unregistered_struct_typedef),
512         (g_igenerator_process_struct_typedef),
513         (g_igenerator_process_union_typedef),
514         (g_igenerator_process_enum_typedef),
515         (g_igenerator_process_function_typedef),
516         (g_igenerator_process_constant), (g_igenerator_process_symbols),
517         (g_igenerator_add_module), (g_igenerator_add_include_idl):
518         Merge in the gir-compiler branch.
519         Thanks to Philip and Colin for their help.
520
521 2008-07-26  Colin Walters  <walters@verbum.org>
522
523         * tools/Makefile.am (bin_PROGRAMS): Install g-idl-compiler
524         and g-idl-generate to go along with how we're changing this
525         module to be installed.
526         * gobject-introspection-1.0.pc.in: Set up Cflags and Libs.
527
528 2008-07-24  Colin Walters  <walters@verbum.org>
529
530         * girepository/girepository.c (g_irepository_register): Add
531         environment variable G_IREPOSITORY_VERBOSE so we can print
532         out what we're doing.
533         * girepository/girepository.c (g_irepository_register_file): 
534         Add GError error message to g_debug call.
535
536 2008-07-08  Jürg Billeter  <j@bitron.ch>
537
538         * giscanner/glibast.py:
539
540         Fix typo
541
542 2008-06-21  Johan Dahlin  <jdahlin@async.com.br>
543
544         * giscanner/girparser.py (GIRParser._parse_api): Ignore a few
545         more tags
546
547 2008-06-20  Johan Dahlin  <jdahlin@async.com.br>
548
549         * giscanner/ast.py:
550         * giscanner/girwriter.py:
551         * giscanner/transformer.py:
552         * tests/parser/Foo-expected.gir:
553         * tests/parser/foo-object.h:
554         * tests/parser/foo.c (foo_object_allow_none):
555         Add support for gtk-doc annotations for allow-none.
556         Add test case.
557
558 2008-06-19  Johan Dahlin  <jdahlin@async.com.br>
559
560         * giscanner/ast.py:
561         * giscanner/girwriter.py:
562         * giscanner/glibast.py:
563         * giscanner/glibtransformer.py:
564         * giscanner/transformer.py:
565         * tests/parser/Foo-expected.gir:
566         Start using abstract type instead of the raw C types.
567         Register a bunch of glib types we care about.
568
569 2008-06-19  Rob Taylor  <rob.taylor@codethink.co.uk>
570
571         * AUTHORS:
572         Update authors
573
574 2008-06-08  Philip Van Hoof  <pvanhoof@gnome.org>
575
576         * girepository/girepository.c:
577         * girepository/gtypelib.c:
578         * girepository/ginfo.c:
579         * girepository/ginvoke.c:
580         * girepository/girepository.h:
581         * girepository/gtypelib.h:
582         * girepository/gmetadata.c:
583         * girepository/Makefile.am:
584         * girepository/gmetadata.h:
585         * tools/compiler.c:
586         * tools/gidlmodule.c:
587         * tools/gidlnode.c
588         * tools/generate.c:
589         * tools/gidlmodule.h:
590         * tools/gidlparser.c:
591
592         Renamed GMetadata to GTypelib
593
594 2008-06-07  Johan Dahlin  <jdahlin@async.com.br>
595
596         * giscanner/xmlwriter.py:
597         Improve line wrapping when > 79 charaters
598
599 2008-06-05  Jürg Billeter  <j@bitron.ch>
600
601         * giscanner/ast.py:
602         * giscanner/girwriter.py:
603         * giscanner/transformer.py:
604         Use <type> element for field types
605         * tests/parser/Foo-expected.gir:
606         Update testcase
607
608 2008-06-04  Johan Dahlin  <jdahlin@async.com.br>
609
610         * giscanner/glibtransformer.py:
611         Fix a bug which prevented GdkEvent from being generated
612
613 2008-06-03  Johan Dahlin  <jdahlin@async.com.br>
614
615         * giscanner/Makefile.am:
616         * giscanner/ast.py:
617         * giscanner/girwriter.py:
618         * giscanner/glibast.py:
619         * giscanner/glibtransformer.py:
620         * giscanner/transformer.py:
621         * giscanner/utils.py:
622         * tests/parser/Foo-expected.gir:
623         Improve enum member parsing and introspection
624
625 2008-05-31  Johan Dahlin  <jdahlin@async.com.br>
626
627         * giscanner/scannerparser.y:
628         * giscanner/sourcescanner.h:
629         * giscanner/sourcescanner.py:
630         Add a new source type enum for member.
631         Use __repr__ for improved debugging
632         * giscanner/girparser.py:
633         Ignore some more
634         * giscanner/transformer.py:
635         Improve parsing of struct members.
636         * tests/parser/foo-object.h:
637         Add a new testcase
638
639 2008-05-31  Johan Dahlin  <jdahlin@async.com.br>
640
641         * giscanner/xmlwriter.py:
642         Improve error reporting when trying to quote None.
643         * giscanner/girparser.py:
644         Do not print warnings when including more complete .gir files
645         * giscanner/girwriter.py:
646         Do not require a name for parameters, add a todo for singletons
647         * giscanner/glibtransformer.py:
648         Refactor the way structs are done, add a couple of hacks to allow
649         us to get further.
650         * giscanner/transformer.py:
651         Add enough hacks so cairo, atk and pango.gir can be parsed properly
652         * gobject-introspection-1.0.pc.in:
653         Export girdir, so we can access gobject-2.0.gir from outside
654
655 2008-05-31  Johan Dahlin  <jdahlin@async.com.br>
656
657         * tools/g-ir-scanner:
658         * tests/parser/Makefile.am:
659         Update sys.path before running the parser so we don't have
660         to setup PYTHONPATH ourselves.
661
662         * Makefile.am:
663         * configure.ac:
664         * girepository/Makefile.am:
665         * giscanner/transformer.py:
666         * gobject-introspection-1.0.pc.in:
667         * gobject-introspection.pc.in:
668         * tools/Makefile.am:
669
670         Rename pkg-config name to gobject-introspection-1.0,
671         Do not installed anything which is not using the gir format.
672         Disable compililation the old C scanner, but still keep the source
673         until all the remaning functionallity has been ported.
674
675 2008-05-31  Johan Dahlin  <jdahlin@async.com.br>
676
677         * giscanner/giscannermodule.c (symbol_get_ident): Prevent
678         a crash when symbol->indent is NULL.
679
680         * giscanner/sourcescanner.py (ctype_name): Add ctype_name,
681         a function to convert a CTYPE symbol to a string
682
683 2008-05-24  Johan Dahlin  <jdahlin@async.com.br>
684
685         * giscanner/ast.py:
686         * giscanner/girwriter.py:
687         * giscanner/giscannermodule.c
688         (pygi_source_scanner_append_filename),
689         (pygi_source_scanner_parse_file):
690         * giscanner/glibtransformer.py:
691         * giscanner/sourcescanner.py:
692         Revert back to using temporary files to send in headers.
693         Allow Functions to be passed in as callbacks, add a couple
694         of try/excepts missing features.
695         We can now scan pango
696
697 2008-05-08  Johan Dahlin  <johan@gnome.org>
698
699         * giscanner/glibtransformer.py:
700         * giscanner/transformer.py:
701         Move namespace stripping glibtransformer->transformer
702
703 2008-05-08  Johan Dahlin  <johan@gnome.org>
704
705         * giscanner/ast.py:
706         * giscanner/girwriter.py:
707         * giscanner/glibtransformer.py:
708         * giscanner/transformer.py:
709         * tools/g-ir-scanner:
710         Introduce a namespace ast node
711
712 2008-05-05  Johan Dahlin  <johan@gnome.org>
713
714         * giscanner/__init__.py:
715         * giscanner/sourcescanner.py:
716         * giscanner/transformer.py:
717         Move sourcescanner symbols to the sourcescanner module, instead
718         of in the global __init__ namespace.
719
720 2008-05-03  Johan Dahlin  <johan@gnome.org>
721
722         * giscanner/glibtransformer.py:
723         * tools/g-ir-scanner:
724         Handle missing parameters better, allow - and + in .la dlname
725         filenames.
726
727 2008-05-03  Johan Dahlin  <johan@gnome.org>
728
729         * giscanner/__init__.py:
730         * giscanner/ast.py:
731         * giscanner/girwriter.py:
732         * giscanner/glibtransformer.py:
733         * giscanner/transformer.py:
734         Parse struct fields properly, improve debugging.
735
736 2008-04-29  Johan Dahlin  <johan@gnome.org>
737
738         * giscanner/ast.py:
739         * giscanner/girwriter.py:
740         * giscanner/transformer.py:
741         * tests/parser/Foo-expected.gir:
742         * TODO:
743         Use transfer-ownership everywhere, to mark ownership/calle/caller etc.
744
745 2008-04-29  Johan Dahlin  <jdahlin@async.com.br>
746
747         * Makefile.am:
748         * docs/g-ir-scanner.1:
749         * metadata-annotations-proposal.txt:
750         * metadata-format.txt:
751         Add a basic, unfinshed man page for g-ir-scanner, move documents into .txt
752
753 2008-04-29  Johan Dahlin  <jdahlin@async.com.br>
754
755         * giscanner/girwriter.py:
756         * giscanner/glibtransformer.py:
757         * giscanner/transformer.py:
758         * giscanner/xmlwriter.py:
759         * tests/parser/Foo-expected.gir:
760         * tests/parser/foo-object.h:
761         Write record/structs to gir file too. Add a couple of tests,
762         fix an off by one error in xmlwriter.py.
763
764 2008-04-28  Johan Dahlin  <johan@gnome.org>
765
766         * giscanner/xmlwriter.py: Calculate the line length properly,
767         include the provided extra indentation in the calculation, really.
768
769 2008-04-28  Johan Dahlin  <jdahlin@async.com.br>
770
771         * giscanner/ast.py:
772         * giscanner/glibast.py:
773         * giscanner/glibtransformer.py:
774         * giscanner/transformer.py:
775         * tools/g-ir-scanner:
776         Add a --strip-prefix and sort out confusion between names and symbols
777         for functions and struct + derivaties.
778         Refactor bootstrap of g-ir-scanner, so we can set options on
779         Transformer() before parsing everything.
780
781 2008-04-28  Johan Dahlin  <johan@gnome.org>
782
783         * giscanner/transformer.py (Transformer._traverse_one): Avoid recursion
784         when scanning girepository.h
785
786         * giscanner/sourcescanner.py (SourceScanner._preprocess): Define
787         a __GI_SCANNER__ when we run.
788
789 2008-04-28  Johan Dahlin  <jdahlin@async.com.br>
790
791         * giscanner/ast.py:
792         * giscanner/girwriter.py:
793         * giscanner/glibast.py:
794         * giscanner/glibtransformer.py:
795         * tests/parser/Foo-expected.gir:
796         * tests/parser/utility-expected.gir:
797         Rename most c:identifier to c:type. Add new ones to
798         class/interface/enum/boxed.
799
800 2008-04-28  Johan Dahlin  <jdahlin@async.com.br>
801
802         * giscanner/ast.py:
803         * giscanner/girwriter.py:
804         * giscanner/glibtransformer.py:
805         * tests/parser/Foo-expected.gidl:
806         * tests/parser/Makefile.am:
807         Move c:identifier from return-value to subchild type,
808         as per Jürgs suggestion
809
810 2008-04-28  Johan Dahlin  <johan@gnome.org>
811
812         * giscanner/girwriter.py:
813         * tests/parser/Foo-expected.gir:
814         Write property.type as a child node.
815
816 2008-04-27  Johan Dahlin  <johan@gnome.org>
817
818         * Makefile.am:
819         * configure.ac:
820         * gidl/Makefile.am:
821         * gidl/gobject-2.0.gidl:
822         * gir/Makefile.am:
823         * gir/gobject-2.0.gir:
824         * tests/parser/Makefile.am:
825         Replace the GObject gidl with a GObject gir.
826
827 2008-04-27  Johan Dahlin  <johan@gnome.org>
828
829         * tools/Makefile.am (bin_SCRIPTS): g-ir-scanner is a script,
830         not a program.
831
832         * giscanner/xmlwriter.py:
833         * tests/parser/Foo-expected.gir:
834         Include indentation in line length calculation
835
836 2008-04-27  Johan Dahlin  <johan@gnome.org>
837
838         * giscanner/girparser.py:
839         Prettify NS parsing using elementtree.
840
841 2008-04-27  Johan Dahlin  <johan@gnome.org>
842
843         * configure.ac:
844         * giscanner/Makefile.am:
845         * giscanner/girparser.py:
846         * giscanner/glibtransformer.py:
847         * tests/parser/Foo-expected.gidl:
848         * tests/parser/Foo-expected.gir:
849         * tests/parser/Makefile.am:
850         * tests/parser/utility-expected.gidl:
851         * tests/parser/utility-expected.gir:
852         * tools/g-ir-scanner:
853         Switch over to GIR as the default format. Add a simple GIDL
854         parser.
855         Update tests and fix simplify makefiles by depending
856         on GNU make extensions.
857
858 2008-04-27  Johan Dahlin  <johan@gnome.org>
859
860         * giscanner/xmlwriter.py:
861         Wrap attributes for lines which are wider than 79 characters
862
863         * giscanner/scannerlexer.l:
864         Allow parenthesis in annotations
865
866         * giscanner/ast.py:
867         * giscanner/gidlwriter.py:
868         * giscanner/girwriter.py:
869         * giscanner/glibtransformer.py:
870         * giscanner/transformer.py:
871         Add initial sequence support, including annotation.
872         Refactor type handling a bit.
873
874 2008-04-27  Johan Dahlin  <johan@gnome.org>
875
876         * tests/parser/Foo-expected.gidl:
877         * tests/parser/foo-object.h:
878         * tests/parser/foo.c (foo_object_class_init),
879         (foo_object_get_strings), (foo_object_get_objects):
880         Add two new functions to check sequence return values.
881         Also fixes a compilation warning.
882
883 2008-04-27  Johan Dahlin  <johan@gnome.org>
884
885         * giscanner/giscannermodule.c (]): Cast the getter, avoids
886         a compilation warning.
887
888         * tools/Makefile.am (g_ir_scanner_SOURCES):
889         g-ir-scanner has no sources.
890
891 2008-04-25  Johan Dahlin  <johan@gnome.org>
892
893         * giscanner/Makefile.am:
894         * giscanner/ast.py:
895         * giscanner/gidlparser.py:
896         * giscanner/gidlwriter.py:
897         * giscanner/girwriter.py:
898         * giscanner/glibast.py:
899         * giscanner/glibtransformer.py:
900         * giscanner/transformer.py:
901         Split out nodes to ast.py and glibast.py
902
903 2008-04-25  Johan Dahlin  <jdahlin@async.com.br>
904
905         * giscanner/Makefile.am:
906         * giscanner/gidlparser.py:
907         * giscanner/gidlwriter.py:
908         * giscanner/girwriter.py:
909         * giscanner/glibtransformer.py:
910         * giscanner/gobjecttreebuilder.py:
911         * giscanner/transformer.py:
912         * giscanner/treebuilder.py:
913         * tools/g-ir-scanner:
914         Rename treebuilder to transformer and
915         gobjectreebuilder to glibtransformer.
916
917 2008-04-25  Johan Dahlin  <jdahlin@async.com.br>
918
919         * giscanner/Makefile.am:
920         * giscanner/__init__.py:
921         * giscanner/cgobject.py:
922         * giscanner/gidlparser.py:
923         * giscanner/gidlwriter.py:
924         * giscanner/girwriter.py:
925         * giscanner/gobjecttreebuilder.py:
926         * giscanner/odict.py:
927         * giscanner/sourcescanner.py:
928         * giscanner/treebuilder.py:
929         * giscanner/xmlwriter.py:
930         * tools/Makefile.am:
931         * tools/g-ir-scanner:
932         Add LGPLv2 license header and install all python files
933
934 2008-04-25  Johan Dahlin  <jdahlin@async.com.br>
935
936         * TODO:
937         * giscanner/gidlwriter.py:
938         * giscanner/giscannermodule.c (pygi_source_directive_new),
939         (directive_get_options), (pygi_source_symbol_new),
940         (symbol_get_base_type), (pygi_source_type_new),
941         (type_get_base_type), (type_get_child_list),
942         (pygi_source_scanner_get_symbols),
943         (pygi_source_scanner_get_directives):
944         * giscanner/gobjecttreebuilder.py:
945         * giscanner/sourcescanner.py:
946         * giscanner/treebuilder.py:
947         * tests/parser/foo-object.h:
948         Add support for virtual methods.
949         Pair struct FooClass with struct Foo.
950         Clean up the SourceScanner bindings a bit.
951         Add a testcase for virtual methods.
952
953 2008-04-25  Johan Dahlin  <jdahlin@async.com.br>
954
955         * giscanner/cgobject.py:
956         * giscanner/gidlwriter.py:
957         * giscanner/gobjecttreebuilder.py:
958         Add support for signals
959
960         * tests/parser/foo.c (foo_object_class_init):
961         * Foo-expected.gidl:
962         Add a signal and update the expected output.
963
964 2008-04-24  Johan Dahlin  <jdahlin@async.com.br>
965
966         * giscanner/gidlwriter.py:
967         * giscanner/girwriter.py:
968         * giscanner/giscannermodule.c (directive_get_name),
969         (directive_get_value), (directive_get_options),
970         (symbol_get_directives), (symbol_set_directives),
971         (pygi_source_scanner_parse_file),
972         (pygi_source_scanner_lex_filename),
973         (pygi_source_scanner_get_directives), (init_giscanner):
974         * giscanner/sourcescanner.c (gi_source_scanner_get_directives):
975         * giscanner/sourcescanner.h:
976         * giscanner/sourcescanner.py:
977         * giscanner/treebuilder.py:
978         * tools/g-ir-scanner:
979         Add support for source/header annotations.
980
981 2008-04-22  Johan Dahlin  <jdahlin@async.com.br>
982
983         * giscanner/gidlwriter.py:
984         * giscanner/girwriter.py:
985         * giscanner/gobjecttreebuilder.py:
986         * giscanner/treebuilder.py:
987         Add support for Callbacks
988
989 2008-04-22  Havoc Pennington  <hp@pobox.com>
990
991         * girepository/ginvoke.c (g_function_info_invoke): If a symbol is
992         not in metadata->module, look for it in the global module, in case
993         some other object or the app itself provides the symbol.
994
995 2008-04-22  Havoc Pennington  <hp@pobox.com>
996
997         * girepository/gmetadata.c (_g_metadata_init): hack to avoid
998         dlopening a library that is already in the main app, by checking
999         whether one of the lib's symbols is already loaded.
1000
1001 2008-04-22  Johan Dahlin  <jdahlin@async.com.br>
1002
1003         * tests/parser/Foo-expected.gidl:
1004         * tests/parser/foo-object.h:
1005         Add a callback test
1006
1007 2008-04-22  Havoc Pennington  <hp@pobox.com>
1008
1009         * girepository/ginfo.c (g_interface_info_find_method):
1010         Use interface_blob_size not object_blob_size to compute offset.
1011
1012 2008-04-22  Havoc Pennington  <hp@pobox.com>
1013
1014         * girepository/gmetadata.c (_g_metadata_init): remove
1015         G_MODULE_BIND_LOCAL flag when loading libraries, since some libs
1016         (Glade and Clutter for example) rely on being loaded globally.
1017
1018 2008-04-22  Havoc Pennington  <hp@pobox.com>
1019
1020         * girepository/ginfo.c (g_registered_type_info_get_g_type): new
1021         function to get the GType given a RegisteredTypeInfo
1022
1023 2008-04-22  Johan Dahlin  <johan@gnome.org>
1024
1025         * COPYING: Add a LGPL license, to prevent automake to
1026         put in a copy of GPL here. Pointed out by Havoc.
1027
1028         * girepository/ginfo.c (g_info_from_entry), (g_type_info_new),
1029         (g_type_info_is_pointer), (g_type_info_get_tag),
1030         (g_type_info_get_param_type), (g_type_info_get_interface),
1031         (g_type_info_get_array_length), (g_type_info_is_zero_terminated),
1032         (g_type_info_get_n_error_domains), (g_type_info_get_error_domain),
1033         (g_error_domain_info_get_codes), (g_enum_info_get_value),
1034         (g_object_info_get_interface), (g_object_info_get_field),
1035         (g_interface_info_get_prerequisite),
1036         (g_signal_info_get_class_closure), (g_constant_info_get_value):
1037         * girepository/ginvoke.c (get_ffi_type):
1038         * girepository/girepository.h:
1039         * girepository/gmetadata.c (g_metadata_get_dir_entry),
1040         (g_metadata_check_sanity), (validate_header),
1041         (validate_array_type_blob), (validate_iface_type_blob),
1042         (validate_param_type_blob), (validate_error_type_blob),
1043         (validate_type_blob), (validate_constant_blob),
1044         (validate_struct_blob), (validate_enum_blob):
1045         * girepository/gmetadata.h:
1046         * tests/Makefile.am:
1047         * tests/invoke/Makefile.am:
1048         * tests/invoke/invoke.c (main):
1049         * tests/roundtrips.sh:
1050         * tools/Makefile.am:
1051         * tools/compiler.c (format_output), (write_out_metadata), (main):
1052         * tools/generate.c (write_type_name), (write_type_info),
1053         (write_constant_value), (write_enum_info), (load_metadata), (main):
1054         * tools/gidlcompilercontext.c:
1055         * tools/gidlcompilercontext.h:
1056         * tools/gidlcompilerentrynode.c:
1057         * tools/gidlcompilerentrynode.h:
1058         * tools/gidlcompilertypenode.c:
1059         * tools/gidlcompilertypenode.h:
1060         * tools/gidlmodule.c (g_idl_module_build_metadata):
1061         * tools/gidlmodule.h:
1062         * tools/gidlnode.c (init_stats), (dump_stats),
1063         (g_idl_node_get_size), (g_idl_node_get_full_size),
1064         (g_idl_node_cmp), (g_idl_node_can_have_member),
1065         (g_idl_node_add_member), (g_idl_node_param_direction_string),
1066         (parse_int_value), (parse_uint_value), (parse_float_value),
1067         (parse_boolean_value), (find_entry_node), (find_entry),
1068         (serialize_type), (g_idl_node_build_metadata), (write_string):
1069         * tools/gidlnode.h:
1070         * tools/gidlparser.c (parse_type_internal):
1071         * tools/quote-file.sh:
1072         Revert revisions 157,149-148,136-129 and 120.
1073         Move back to using g-idl-generate to generate the metadata and
1074         avoids dependency on a c compiler.
1075
1076 2008-04-22  Johan Dahlin  <jdahlin@async.com.br>
1077
1078         * giscanner/girwriter.py:
1079         * tools/g-ir-scanner:
1080         Add an initial GIR writer and a --format option to g-ir-scanner
1081
1082 2008-04-21  Johan Dahlin  <johan@gnome.org>
1083
1084         * giscanner/cgobject.py: Use ctypes.util.find_library to locate
1085         gobject-2.0 and raise ImportError if not found.
1086
1087         * giscanner/gidlparser.py:
1088         * giscanner/gidlwriter.py:
1089         * giscanner/gobjecttreebuilder.py:
1090         * tools/g-ir-scanner:
1091         Add a --include argument to include types from other idls.
1092         Add a minimalistic GIDL parser (just objects for now)
1093         Implement resolving of external type references and use it to
1094         resolve parent types, argument types and return types.
1095
1096 2008-04-21  Johan Dahlin  <johan@gnome.org>
1097
1098         * giscanner/gidlwriter.py:
1099         * giscanner/gobjecttreebuilder.py:
1100         * giscanner/treebuilder.py:
1101         Add support for properties.
1102         Refactor Class/Interface support a bit, to share more code and
1103         always initialize their method attribute to an empty list.
1104
1105 2008-04-21  Johan Dahlin  <johan@gnome.org>
1106
1107         * giscanner/cgobject.py:
1108         Add a workaround for a glib bug interface introspection bug
1109         (object_interface_list_properties, object_class_list_properties):
1110         Cast the return value to GParamSpec.
1111
1112         * tests/parser/Foo-expected.gidl: Update
1113         * tests/parser/foo.c: Add a string property
1114
1115         * giscanner/gobjecttreebuilder.py:
1116         After stripping namespaces, remove the original
1117         item to avoid duplication (GtkButton struct and Button object)
1118
1119 2008-04-21  Johan Dahlin  <johan@gnome.org>
1120
1121         * giscanner/gobjecttreebuilder.py:
1122         * giscanner/treebuilder.py:
1123         Strip namespaces before objects, so we'll export
1124         GtkButton as Button in the gtk namespace
1125
1126 2008-04-21  Johan Dahlin  <johan@gnome.org>
1127
1128         * giscanner/gidlwriter.py:
1129         * giscanner/gobjecttreebuilder.py:
1130         * giscanner/treebuilder.py:
1131         Add constructors for object/boxed types.
1132
1133 2008-04-21  Johan Dahlin  <johan@gnome.org>
1134
1135         * giscanner/gidlwriter.py:
1136         * giscanner/gobjecttreebuilder.py:
1137         Add support for boxed types
1138
1139 2008-04-21  Johan Dahlin  <johan@gnome.org>
1140
1141         * giscanner/giscannermodule.c: Mark structures as const,
1142         wrap SourceType.const_string.
1143
1144         * tests/parser/foo-object.h: Add a couple of constants.
1145
1146         * giscanner/gidlwriter.py:
1147         * giscanner/gobjecttreebuilder.py:
1148         * giscanner/treebuilder.py:
1149         Add basic support for interfaces
1150
1151         * tools/g-ir-scanner:
1152         Add -o/--output for writing to a file
1153
1154 2008-04-21  Havoc Pennington  <hp@redhat.com>
1155
1156         * TODO: add some C API wishlist items I could think of quickly
1157
1158 2008-04-21  Johan Dahlin  <jdahlin@async.com.br>
1159
1160         * giscanner/gidlwriter.py:
1161         * giscanner/xmlwriter.py:
1162         Add a simple api for writing tags which can be used 
1163         with the new 'with statement' in python 2.5
1164
1165 2008-04-21  Johan Dahlin  <johan@gnome.org>
1166
1167         * giscanner/gobjecttreebuilder.py:
1168         Strip namespace and object prefix from method names.
1169
1170 2008-04-21  Johan Dahlin  <johan@gnome.org>
1171
1172         * tools/g-ir-scanner (main): Add --pkg option to pass in
1173         pkg-config modules to get cflags from.
1174
1175         * giscanner/gidlwriter.py (GIDLWriter._write_method): 
1176         Avoid duplication, reuse function writer for methods.
1177
1178 2008-04-21  Johan Dahlin  <jdahlin@async.com.br>
1179
1180         * giscanner/gidlwriter.py:
1181         * giscanner/gobjecttreebuilder.py:
1182         * giscanner/treebuilder.py:
1183         * tools/g-ir-scanner:
1184         Resolve libtool .la files.
1185         Strip name spaces for methods.
1186         Add function symbols
1187
1188 2008-04-20  Johan Dahlin  <jdahlin@async.com.br>
1189
1190         * giscanner/cgobject.py:
1191         * giscanner/gidlwriter.py:
1192         * giscanner/gobjecttreebuilder.py:
1193         * giscanner/treebuilder.py:
1194         Add support for classes and methods
1195
1196 2008-04-20  Johan Dahlin  <johan@gnome.org>
1197
1198         * giscanner/gidlwriter.py:
1199         * giscanner/gobjecttreebuilder.py:
1200         * giscanner/odict.py:
1201         Avoid conflicts, keep the output ordered similar to
1202         the order of the input.
1203         Add a simple ordered dictionary implemenation
1204
1205 2008-04-19  Johan Dahlin  <johan@gnome.org>
1206
1207         * giscanner/cgobject.py:
1208         * giscanner/gidlwriter.py:
1209         * giscanner/gobjecttreebuilder.py:
1210         * tools/g-ir-scanner:
1211         Start introspecting get-type functions.
1212         Implement support for GLib/GFlags GTypes.
1213         Add a ctype based GObject binding.
1214
1215 2008-04-18  Johan Dahlin  <jdahlin@async.com.br>
1216
1217         * giscanner/gidlwriter.py:
1218         * giscanner/xmlwriter.py:
1219         * tools/g-ir-scanner:
1220         Add a simplistic gidl writer, which can't do too much.
1221
1222 2008-04-18  Johan Dahlin  <johan@gnome.org>
1223
1224         * giscanner/sourcescanner.py:
1225         * giscanner/treebuilder.py:
1226         * tools/g-ir-scanner:
1227         split tree building and source scanning interface to separate files.
1228
1229 2008-04-18  Johan Dahlin  <johan@gnome.org>
1230
1231         * tools/g-ir-scanner (Parameter.__init__): Start constructing
1232         a real node tree.
1233         - Add support for struct/parameter/return, start parsing of ctypes
1234
1235         * giscanner/giscannermodule.c: wrap GISourceType.child_list and
1236         fix the style
1237
1238 2008-03-31  Johan Dahlin  <johan@gnome.org>
1239
1240         * tools/g-ir-scanner:
1241         Start to build abstract syntax node of scanned sources.
1242         Add support for cpp options.
1243
1244 2008-03-27  Johan Dahlin  <johan@gnome.org>
1245
1246         * giscanner/giscannermodule.c:
1247         * giscanner/scannerlexer.l:
1248         * giscanner/sourcescanner.c:
1249         * tools/g-ir-scanner:
1250
1251         Add simple pre-processor using subprocess and a PIPE.
1252         Change the parse_file apis to accept a file descriptor.
1253
1254 2008-03-25  Johan Dahlin  <johan@gnome.org>
1255
1256         * giscanner/__init__.py:
1257         * tools/g-ir-scanner:
1258         Fix a typo and add an example python test program.
1259
1260 2008-03-25  Johan Dahlin  <johan@gnome.org>
1261         
1262         * giscanner/__init__.py:
1263         * giscanner/giscannermodule.c:
1264         * giscanner/sourcescanner.c:
1265         * giscanner/sourcescanner.h:
1266         Add constants and wrap a few more SymbolType fields
1267
1268 2008-03-25  Johan Dahlin  <johan@gnome.org>
1269         
1270         * configure.ac:
1271         * giscanner:
1272         * giscanner/__init__.py:
1273         * giscanner/giscannermodule.c:
1274         * giscanner/Makefile.am:
1275
1276         Add initial python bindings for the scanner and 
1277         depend on python 2.5.
1278
1279 2008-03-25  Johan Dahlin  <johan@gnome.org>
1280
1281         * Makefile.am:
1282         * configure.ac:
1283         * giscanner/Makefile.am:
1284         * giscanner/sourcescanner.c:
1285         * giscanner/sourcescanner.h:
1286         * tools/Makefile.am:
1287         * tools/grealpath.h:
1288         * tools/sourcescanner.c:
1289         * tools/sourcescanner.h:
1290
1291         Move the scanner to a separate library.
1292         
1293 2008-03-23  Johan Dahlin  <johan@gnome.org>
1294
1295         * tools/Makefile.am:
1296         * tools/scanner.c:
1297         * tools/scanner.h:
1298         * tools/scannerlexer.l:
1299         * tools/scannerparser.y:
1300         * tools/sourcescanner.c:
1301         * tools/sourcescanner.h:
1302         Split out the source scanner from the generator.
1303         Rename the symbols used in the scanner to use the gi_ prefix.
1304         This should make it possible to use the raw C parser from
1305         other programs.
1306
1307 2008-03-23  Johan Dahlin  <johan@gnome.org>
1308
1309         * tests/parser/Makefile.am (utility.gidl): 
1310         * tests/parser/utility-expected.gidl: 
1311         Pass in the gobject.gidl since we're defining a GObject.
1312
1313 2008-03-12  Johan Dahlin  <johan@gnome.org>
1314
1315         * relaxng/relaxng.rng:
1316         Add a releaxng in relaxng we can use to validate the relaxngs
1317         schemas
1318
1319 2008-03-12  Jürg Billeter  <j@bitron.ch>
1320
1321         * tools/scanner.c: (g_igenerator_new):
1322         * tools/scannerparser.y:
1323         Fix compiler warnings.
1324
1325 2008-03-12  Jürg Billeter  <j@bitron.ch>
1326
1327         * tools/scanner.c:
1328         * tools/scanner.h:
1329         * tools/scannerparser.y:
1330         Start fixing memory management in g-idl-scanner.
1331
1332 2008-03-12  Rob Taylor  <rob.taylor@codethink.co.uk>
1333
1334         * tools/gidlcompilercontext.c: (write_compiled):
1335         Fix critical warning when no shlib passed to g-idl-compiler.
1336
1337 2008-03-12  Johan Dahlin  <johan@gnome.org>
1338
1339         * tests/parser/utility-expected.gidl:
1340         * tests/parser/utility.h:
1341         Add a get_type-function, so the scanner actually
1342         parses it as an object.
1343         
1344 2008-03-12  Johan Dahlin  <johan@gnome.org>
1345
1346         * tools/gidlwriter.c (function_generate): Add missing trailing quote.
1347         Bad Philip!
1348
1349         * tests/parser/Foo-expected.gidl:
1350         * tests/parser/Makefile.am:
1351         * tests/parser/foo-object.h:
1352         * tests/parser/foo.c:
1353         * tests/parser/utility-expected.gidl:
1354         * tests/parser/utility.c:
1355         * tests/parser/utility.h:
1356
1357         Add a new gidl test. 'utility.gidl', which is used to be able
1358         to test external type references. Add a reference to UtilityObject*
1359         in the idl file.
1360
1361 2008-03-11  Johan Dahlin  <johan@gnome.org>
1362
1363         * tools/compiler.c:
1364         * tools/generate.c:
1365         Remove most global variables
1366
1367 2008-03-11  Philip Van Hoof  <me@pvanhoof.be>
1368  
1369         * tools/scannerlexer.l:
1370         * tools/scanner.c:
1371         * tests/parser/Foo-expected.gidl:
1372         * tests/parser/foo.c:
1373         * tests/parser/Makefile.am:
1374         * tests/parser/foo-object.h:
1375  
1376         Added a few extra tests. Which resulted in finding a few
1377         bugs. Which resulted in me fixing those bugs
1378
1379 2008-03-11  Rob Taylor  <rob.taylor@codethink.co.uk>
1380
1381         * tools/gidlcompilercontext.c: (g_idl_compiler_write_dir_entry),
1382         (g_idl_compiler_write_xref_entry), (g_idl_compiler_add_xref):
1383         Add some comments for strings into generated output for
1384         easier debugging.
1385
1386 2008-03-11  Rob Taylor  <rob.taylor@codethink.co.uk>
1387
1388         * tools/gidlcompilercontext.c: (write_compiled):
1389         Write out the shlibs variable before writing out the strings
1390         length. Fixes compiler warning when using '-l' flag with
1391         g-idl-compiler
1392
1393 2008-03-11  Johan Dahlin  <johan@gnome.org>
1394
1395         * tests/parser/Foo-expected.gidl:
1396         * tests/parser/foo-object.h:
1397         * tools/scanner.c:
1398         * tools/scanner.h:
1399         * tools/scannerlexer.l:
1400         Add support for parsing return arguments. Add support for
1401         caller-owns return types.
1402         Patch by Philip Van Hoof.
1403         
1404         * tools/scannerparser.y:
1405         Remove parsing of the @deprecated syntax used in headers.
1406         We will support gtk-doc deprecation in the future instead.
1407
1408 2008-03-11  Johan Dahlin  <johan@gnome.org>
1409
1410         * tools/compiler.c (main): Coding style fixes
1411
1412 2008-03-10  Johan Dahlin  <johan@gnome.org>
1413
1414         * configure.ac:
1415         Add GCOV_LIBS to GILIBS
1416
1417 2008-03-10  Johan Dahlin  <johan@gnome.org>
1418
1419         * tests/parser/Foo-expected.gidl:
1420         * tests/parser/foo.c:
1421         Rename null-ok to direction=out
1422
1423 2008-03-10  Philip Van Hoof  <me@pvanhoof.be>
1424
1425         reviewed and extensively tested by Johan
1426
1427         * tests/parser/Foo-expected.gidl:
1428         * tests/parser/foo-object.h:
1429         * tests/parser/foo.c:
1430         * tools/gidlnode.c:
1431         * tools/gidlnode.h:
1432         * tools/gidlwriter.c:
1433         * tools/scanner.c:
1434         * tools/scanner.h:
1435         * tools/scannerlexer.l:
1436         * tools/scannerparser.y:
1437
1438         Add support for scanning for gtk-doc comments inside
1439         C source files. Add tests
1440
1441 2008-03-10  Johan Dahlin  <johan@gnome.org>
1442
1443         * tests/parser/Makefile.am:
1444         * tests/parser/foo.c:
1445         * tools/scanner.c:
1446         * tools/scanner.h:
1447         * tools/scannerparser.y:
1448         Add an api to lex filenames.
1449         Lex all source .c files passed in on the command line.
1450         Scan sources in a test and a couple of private structures
1451         which should not be included in the generated gidl
1452
1453 2008-03-10  Johan Dahlin  <johan@gnome.org>
1454
1455         * tests/invoke/Makefile.am: Make the generated metadata 
1456         depend on the g-idl-compiler
1457
1458 2008-02-21  Mark Doffman  <mark.doffman@codethink.co.uk>
1459
1460         * tools/gidlmodule.c
1461         * tools/gidlmodule.h
1462         * tools/gidlnode.c
1463         * tools/gidlnode.h
1464         Remove the old g-idl-compiler code.
1465
1466
1467 2008-02-22  Mark Doffman  <mark.doffman@codethink.co.uk>
1468
1469         * tools/quote-file.sh
1470         * tools/compiler.c
1471         * tools/generate.c
1472         Move to using the 'C' struct compiler code.
1473
1474 2008-02-21  Mark Doffman  <mark.doffman@codethink.co.uk>
1475
1476         * girepository/ginfo.c
1477         * tools/generate.c
1478         Change the way that external references with no namespace
1479         are dealt with. External references with no namespace
1480         are placed into the XML as-if they are a local reference.
1481         This is temporary, but helps with roundtrip tests.
1482
1483 2008-02-21  Mark Doffman  <mark.doffman@codethink.co.uk>
1484
1485         * girepository/ginfo.c
1486         Add the ability to get the value of a constant of
1487         type TYPE_TAG_SYMBOL. In the case of a symbol the value
1488         is provided as a string.
1489
1490         This would deal properly with:
1491         typedef char* random;
1492         const random = "A string";
1493
1494 2008-02-21  Mark Doffman  <mark.doffman@codethink.co.uk>
1495
1496         * girepository/ginfo.c
1497         * girepository/girepository.h
1498         * tools/generate.c
1499         Add a function to check if an enum is registered or not.
1500         Previously anything testing this relied on the g-type
1501         string offset having a value of 0.
1502
1503         * girepository/gmetadata.c
1504         * girepository/gmetadata.h
1505         * tools/generate.c
1506         Remove unneccesary or erroneous checks. There were two
1507         metadata validation checks which made sure that the blob
1508         sizes were the same as some magic numbers compiled into the code.
1509         This is wrong as it breaks any forwards compatibility that may
1510         be possible.
1511
1512         Checks were also present that made sure that unregistered type
1513         blobs had a value of 0 in the g-type offset field. This is
1514         unneccessary. If a type blob is unregistered then any value
1515         in its g-type field is simply invalid.
1516
1517 2008-02-21  Mark Doffman  <mark.doffman@codethink.co.uk>
1518
1519         * girepository/ginfo.c
1520         * girepository/gmetadata.c
1521         * girepository/gmetadata.h
1522
1523           Change the metadata format to have a standard header
1524           for all the type blobs. Merge the SimpleTypeBlob
1525           and InterfaceTypeBlob into a union. A union of these
1526           two blobs existed previously but was not explicit
1527           in the metadata format.
1528
1529 2008-02-21  Mark Doffman  <mark.doffman@codethink.co.uk>
1530
1531         * tools/gidlcompilercontext.c
1532         * tools/gidlcompilercontext.h
1533         * tools/gidlcompilerentrynode.c
1534         * tools/gidlcompilerentrynode.h
1535         * tools/gidlcompilertypenode.c
1536         * tools/gidlcompilertypenode.h
1537
1538         Add code to compile a tree of GIdlNodes to
1539         a 'C' struct representing the metadata.
1540         This is to aid cross-compiling. Previously
1541         the g-idl-compiler created a binary blob with
1542         data written in the byte order and alignment
1543         of the tool rather than the intended target.
1544
1545         Cleaned up and improved by Johan and Robert :-)
1546
1547 2008-02-21  Mark Doffman  <mark.doffman@codethink.co.uk>
1548
1549         * girepository/ginvoke.c
1550         * girepository/girepository.h
1551         * girepository/gmetadata.c
1552         * girepository/gmetadata.h
1553         * tools/generate.c
1554         * tools/gidlparser.c
1555         Modify TYPE_TAG_INTERFACE to TYPE_TAG_SYMBOL
1556         to avoid confusion with the interface blob.
1557
1558         * tools/generate.c
1559         * tools/gidlparser.c
1560         Remove magic numbers and replace with type-tag
1561         enumeration symbols.
1562
1563         * girepository/gmetadata.c
1564         Add validate declaration.
1565
1566 2008-03-10  Jürg Billeter  <j@bitron.ch>
1567
1568         * tools/gidlparser.c: (parse_type_internal):
1569         * tools/scannerlexer.l:
1570         * tools/scannerparser.y:
1571         Support C99 _Bool type in scanner.
1572
1573 2008-03-10  Jürg Billeter  <j@bitron.ch>
1574
1575         * tests/parser/Foo-expected.gidl:
1576         * tests/parser/foo-object.h:
1577         * tests/parser/foo.c: (foo_enum_method):
1578         * tools/scanner.c: (g_igenerator_process_function_symbol):
1579         Don't skip functions that are defined in the namespace of a type
1580         that doesn't support methods, as for example enums.
1581
1582 2008-03-10  Johan Dahlin  <johan@gnome.org>
1583
1584         * gidl.dtd: Remove, we're using relaxng for now
1585
1586         * tests/parser/Foo-expected.gidl:
1587         * tests/parser/foo-object.h:
1588         * tests/parser/foo.c:
1589         Rename the enum/flags get_type functions to include the whole type.
1590
1591 2008-03-08  Marc-Andre Lureau  <marcandre.lureau@gmail.com>
1592
1593         * tools/gidlwriter.c (enum_generate): added "type-name",
1594         "get-type" and "deprecated" missing arguments.
1595         * tests/parser/Foo-expected.gidl:
1596         * tests/parser/foo-object.h: test enum type, and no type.
1597
1598 2008-03-06  Johan Dahlin  <jdahlin@async.com.br>
1599
1600         * configure.ac:
1601         Consistent checks, add missing 'test'
1602
1603 2008-03-05  Havoc Pennington  <hp@redhat.com>
1604
1605         * configure.ac: Take advantage of a libffi.pc if one exists, as it
1606         does on Fedora 8. Make libffi a hard requirement, since it was in
1607         practice anyway (was not really conditional in the code or
1608         makefile, only in configure).
1609
1610 2008-02-21  Mark Doffman  <mark.doffman@codethink.co.uk>
1611
1612         reviewed by: Rob Taylor  <rob.taylor@codethink.co.uk>
1613         reviewed by: Johan Dahlin  <johan@gnome.org>
1614
1615         * tests/Makefile.am:
1616         * tests/roundtrips.sh:
1617         Modify the roundtrips test so that they do not use the
1618         --raw option of the gidl compiler but instead compile a
1619         shared library to use with g_module.
1620
1621         * tests/invoke/Makefile.am:
1622         * tests/invoke/invoke.c:
1623         Modify the invoke tests to build a shared library rather
1624         than use the --raw option.
1625
1626         * tests/invoke/invoke-namespace-find.sh: Removed:
1627         Noone knows why this was here, so removed.
1628
1629 2008-02-19  Rob Taylor  <rob.taylor@codethink.co.uk>
1630
1631         * tools/scanner.c: (g_igenerator_process_function_symbol):
1632         Move g_idl_node_can_have_member test later, as it broke spotting
1633         get_type's for nodes that can't have members.
1634
1635 2008-02-18  Rob Taylor  <rob.taylor@codethink.co.uk>
1636
1637         * tools/gidlnode.h:
1638         * tools/gidlnode.c: (g_idl_node_can_have_member):
1639         Add g_idl_node_can_have_member.
1640
1641         * tools/scanner.c: (g_igenerator_process_function_symbol):
1642         Use g_idl_node_can_have_member to test if we should add a function
1643         as a member of the type node.
1644
1645 2008-02-18  Rob Taylor  <rob.taylor@codethink.co.uk>
1646
1647         * gidl/GLib.gidl: Renamed to gidl/gobject-2.0.gidl:
1648         * gidl/Makefile.am:
1649         * tests/parser/Makefile.am:
1650         Rename GLib.gidl to gobject-2.0.gidl and install in /usr/share/gidl.
1651
1652 2008-02-18  Rob Taylor  <rob.taylor@codethink.co.uk>
1653
1654         * tools/scanner.c: (main):
1655         Ignore -pthread when passed to g-idl-scanner.
1656
1657 2008-02-18  Rob Taylor  <rob.taylor@codethink.co.uk>
1658
1659         * tools/grealpath.h: Added:
1660         * tools/scanner.c: (main):
1661         * tools/scannerlexer.l:
1662         * tools/Makefile.am:
1663         Always use absolute paths with symbolic links resolved when
1664         comparing filenames.
1665
1666 2008-02-18  Rob Taylor  <rob.taylor@codethink.co.uk>
1667
1668         * gobject-introspection.pc.in:
1669         Provide variables for g-idl-parser, scanner and compiler in the
1670         pkgconfig file.
1671
1672 2008-02-13  Rob Taylor  <rob.taylor@codethink.co.uk>
1673
1674         * gcov.mak:
1675         * girepository/Makefile.am:
1676         * tools/Makefile.am:
1677         Rename GCOV_SOURCES to GCOVSOURCES to top automake complaining.
1678
1679 2008-02-10  Johan Dahlin  <johan@gnome.org>
1680
1681         * tests/parser/Foo-expected.gidl:
1682         * tests/parser/foo-object.h:
1683         * tests/parser/foo.c: (foo_boxed_copy), (foo_boxed_free),
1684         (foo_boxed_get_type), (foo_boxed_new), (foo_boxed_method):
1685         Add boxed test.
1686
1687 2008-02-10  Johan Dahlin  <johan@gnome.org>
1688
1689         * tests/parser/Foo-expected.gidl:
1690         * tests/parser/foo-object.h:
1691         * tests/parser/foo.c: (foo_enum_get_type), (foo_flags_get_type):
1692         Add enum and flags test.
1693
1694 2008-02-10  Johan Dahlin  <johan@gnome.org>
1695
1696         * Makefile.am:
1697         * configure.ac:
1698         * girepository/Makefile.am:
1699         Make 'make distcheck' work again.
1700
1701 2008-02-10  Johan Dahlin  <johan@gnome.org>
1702
1703         * m4/Makefile.am (EXTRA_DIST): its called as-compiler-flag.m4,
1704         not as-compiler.m4.
1705
1706         * tests/parser/Makefile.am: Only create Foo.gidl when running make
1707         check, eg exclude it from BUILT_SOURCES.
1708
1709 2008-02-08  Rob Taylor  <rob.taylor@codethink.co.uk>
1710
1711         * Makefile.am:
1712         * configure.ac:
1713         * gcov.mak: Added:
1714         * girepository/Makefile.am:
1715         * m4/Makefile.am: Added:
1716         * m4/as-compiler-flag.m4: Added:
1717         * m4/gcov.m4: Added:
1718         * tools/Makefile.am:
1719         Add ability to generate a coverage report.
1720         Adds configure option --enable-gcov and make rule 'check-coverage'.
1721
1722 2008-02-08  Rob Taylor  <rob.taylor@codethink.co.uk>
1723
1724         * Makefile.am:
1725         * configure.ac:
1726         * gidl/Makefile.am: Added:
1727         * girepository/Makefile.am: Added:
1728         * src/Makefile.am: Renamed to tools/Makefile.am:
1729         * src/compiler.c: Renamed to tools/compiler.c:
1730         * src/g-idl-offsets.pl: Renamed to tools/g-idl-offsets.pl:
1731         * src/generate.c: Renamed to tools/generate.c:
1732         * src/gidlmodule.c: Renamed to tools/gidlmodule.c:
1733         * src/gidlmodule.h: Renamed to tools/gidlmodule.h:
1734         * src/gidlnode.c: Renamed to tools/gidlnode.c:
1735         * src/gidlnode.h: Renamed to tools/gidlnode.h:
1736         * src/gidlparser.c: Renamed to tools/gidlparser.c:
1737         * src/gidlparser.h: Renamed to tools/gidlparser.h:
1738         * src/gidlwriter.c: Renamed to tools/gidlwriter.c:
1739         * src/gidlwriter.h: Renamed to tools/gidlwriter.h:
1740         * src/ginfo.c: Renamed to girepository/ginfo.c:
1741         * src/ginvoke.c: Renamed to girepository/ginvoke.c:
1742         * src/girepository.c: Renamed to girepository/girepository.c:
1743         * src/girepository.h: Renamed to girepository/girepository.h:
1744         * src/gmetadata.c: Renamed to girepository/gmetadata.c:
1745         * src/gmetadata.h: Renamed to girepository/gmetadata.h:
1746         * src/scanner.c: Renamed to tools/scanner.c:
1747         * src/scanner.h: Renamed to tools/scanner.h:
1748         * src/scannerlexer.l: Renamed to tools/scannerlexer.l:
1749         * src/scannerparser.y: Renamed to tools/scannerparser.y:
1750         * tests/invoke/Makefile.am:
1751         Split src/ into girepository/ and tools/
1752
1753         * Makefile.am:
1754         * configure.ac:
1755         * girepository/Makefile.am:
1756         * tests/Makefile.am:
1757         * tests/invoke/Makefile.am:
1758         * tests/parser/Makefile.am:
1759         * tests/roundtrips.sh:
1760         * tools/Makefile.am:
1761         Make distcheck work.
1762
1763 2008-02-04  Rob Taylor  <rob.taylor@codethink.co.uk>
1764
1765         * tests/invoke/invoke.c: (main):
1766         * tests/invoke/testfns.c: (test6), (test7):
1767         * tests/invoke/testfns.xml:
1768         Add tests for invokation with a GList argument.
1769         Also tests caller-owns return values.
1770
1771 2008-02-04  Rob Taylor  <robtaylor@floopily.org>
1772
1773         * src/ginfo.c:
1774         Add some documentation for GICallableInfo
1775
1776 2008-02-01  Mark Doffman  <mark.doffman@codethink.co.uk>
1777
1778         * gidl.dtd:
1779         Correct syntax errors in the DTD file.
1780         * relaxng/api.xml:
1781         * relaxng/c-types.xml:
1782         * relaxng/g-types.xml:
1783         * relaxng/util.xml:
1784         Add a RelaxNG specification for the GObject Introspection XML data.
1785         The Specification has validated all of the test files.
1786
1787 2008-01-25  Rob Taylor  <robtaylor@floopily.org>
1788
1789         * tests/roundtrips.sh:
1790         * tests/struct.test:
1791         Add roundtrip tests for structs.
1792
1793 2008-01-11  Johan Dahlin  <johan@gnome.org>
1794
1795         * src/scanner.c (g_igenerator_process_function_symbol):
1796         Refactor out g_idle_node_add_member.
1797         (create_node_from_gtype, create_node_from_ctype):
1798         Use case instead of if...else
1799         (get_type_from_type_id):
1800         Rename to create_node_from_gtype
1801         (get_type_from_ctype):
1802         Rename to create_node_from_ctype
1803
1804         Rename ginode -> node, gitype -> type, gifunc -> func.
1805
1806         * src/gidlnode.c (g_idl_node_add_member, g_idl_node_cmp):
1807         Two new functions, refactor out of scanner.c
1808
1809         * src/scanner.c: (g_igenerator_process_function_symbol):
1810         * src/scannerlexer.l:
1811         Do not save the content of the deprecated variable, only
1812         if it's set or not.
1813
1814 2008-01-11  Johan Dahlin  <johan@gnome.org>
1815
1816         * tests/parser/foo-object.h: Add a couple of comment parser tests.
1817
1818 2008-01-11  Jürg Billeter  <j@bitron.ch>
1819
1820         * src/scannerlexer.l:
1821         Fix GTK-Doc parsing.
1822
1823 2008-01-11  Jürg Billeter  <j@bitron.ch>
1824
1825         * src/scannerlexer.l:
1826         Fix GTK-Doc parsing.
1827
1828 2008-01-11  Jürg Billeter  <j@bitron.ch>
1829
1830         * src/scanner.c: (lookup_symbol):
1831         Return unresolved name if we find unknown symbol.
1832
1833 2008-01-11  Jürg Billeter  <j@bitron.ch>
1834
1835         * src/scanner.c: (g_igenerator_generate):
1836         Initialize GObject to fix scanning interface properties.
1837
1838         * tests/parser/Foo-expected.gidl:
1839         * tests/parser/foo-object.h:
1840         * tests/parser/foo.c: (foo_interface_get_type):
1841         Test interfaces with GObject prerequisite.
1842
1843         * tests/parser/Makefile.am:
1844         Set G_DEBUG=fatal_warnings to abort test on warnings and criticals.
1845
1846 2007-12-27  Johan Dahlin  <johan@gnome.org>
1847
1848         * src/scannerlexer.l:
1849         Parse gtk-doc comments.
1850
1851         * src/gidlwriter.c: (function_generate):
1852         Reorganize, avoid duplication and add support for
1853         writing deprecated functions.
1854
1855         * src/scannerparser.y:
1856         * src/scanner.h:
1857         Add new structure CDirective and functions to create/free them.
1858
1859         * src/scanner.c: (g_igenerator_process_function_symbol),
1860         (g_igenerator_process_unregistered_struct_typedef),
1861         (g_igenerator_process_struct_typedef),
1862         (g_igenerator_process_union_typedef),
1863         (g_igenerator_process_enum_typedef),
1864         (g_igenerator_process_function_typedef), (g_igenerator_add_symbol),
1865         (g_igenerator_start_preprocessor):
1866         Parse @deprecated directive for functions.
1867         Remove some more C99isms.
1868         Send in -C to cpp to avoid stripping comments.
1869
1870         * tests/parser/foo-object.h:
1871         * tests/parser/Foo-expected.gidl:
1872         Add deprecated directive
1873
1874 2007-12-27  Johan Dahlin  <johan@gnome.org>
1875
1876         * src/scannerlexer.l (intsuffix): Add emacs mode line and
1877         escape ' and " so it looks more like C.
1878
1879         * src/scanner.c:
1880         Unlink temporary file used.
1881
1882 2007-12-27  Johan Dahlin  <johan@gnome.org>
1883
1884         * src/scanner.c: (g_igenerator_new), (g_igenerator_free),
1885         (g_igenerator_start_preprocessor), (main):
1886         * src/scanner.h:
1887         * src/scannerparser.y:
1888         Plug a couple of simple memory leaks.
1889
1890 2007-12-27  Johan Dahlin  <johan@gnome.org>
1891
1892         * src/scanner.c: (g_igenerator_parse_macros),
1893         (g_igenerator_start_preprocessor), (g_igenerator_set_verbose),
1894         (main):
1895         * src/scanner.h:
1896         * src/scannerparser.y:
1897         * tests/parser/Makefile.am:
1898
1899         Improve error reporting, return when the preprocessor fails.
1900         Add a verbose parameter, to aid debugging.
1901         Revert to using a temporary file to communicate between the
1902         preprocessor and the parser, because we need to wait for
1903         the exit code from the pre-processor before starting to parse.
1904
1905 2007-12-16  Johan Dahlin  <jdahlin@async.com.br>
1906
1907         * src/Makefile.am: Rename clexer.l to scannerlexer.l and
1908         cparser.y to scannerparser.y
1909
1910 2007-12-11  Johan Dahlin  <johan@gnome.org>
1911
1912         * src/clexer.l:
1913         * src/cparser.y:
1914         * src/scanner.c: (g_igenerator_new):
1915         * src/scanner.h:
1916         Get rid of the global the_generator variable.
1917
1918 2007-12-10  Johan Dahlin  <johan@gnome.org>
1919
1920         * src/scanner.c (main): Add an output option,
1921         add checks for required parameters
1922
1923         * src/Makefile.am:
1924         set BUILD_SOURCES and CLEANFILES properly
1925
1926         * src/gidlwriter.c: (g_writer_write_inline), (g_writer_write),
1927         (g_writer_write_indent), (g_writer_write_unindent),
1928         (field_generate), (value_generate), (constant_generate),
1929         (property_generate), (function_generate), (vfunc_generate),
1930         (signal_generate), (interface_generate), (struct_generate),
1931         (union_generate), (boxed_generate), (enum_generate),
1932         (node_generate), (g_writer_write_module), (g_idl_writer_save_file):
1933         * src/gidlwriter.h:
1934         * src/scanner.c: (g_igenerator_generate):
1935         * src/scanner.h:
1936         * src/scannerwriter.c:
1937
1938         Refactor scannerwriter to only be tied to a GIdlModule and move
1939         it (again!) to gidlwriter.c. Change the writer function to take
1940         a filename.
1941
1942 2007-12-10  Johan Dahlin  <johan@gnome.org>
1943
1944         * src/Makefile.am:
1945         * src/scanner.c: (g_igenerator_generate):
1946         * src/scanner.h:
1947         * src/scannerwriter.c: (g_igenerator_write_inline),
1948         (g_igenerator_write), (g_igenerator_write_indent),
1949         (g_igenerator_write_unindent), (field_generate), (value_generate),
1950         (constant_generate), (property_generate), (function_generate),
1951         (vfunc_generate), (signal_generate), (interface_generate),
1952         (struct_generate), (union_generate), (boxed_generate),
1953         (enum_generate), (node_generate), (module_generate),
1954         (g_scanner_write_file):
1955
1956         Move the scanner gidl writing to a separate source file.
1957
1958 2007-12-10  Johan Dahlin  <johan@gnome.org>
1959
1960         * src/cparser.y:
1961         * src/scanner.c:
1962         * src/scanner.h:
1963         Move over all CType construction functions.
1964
1965         * tests/parser/Makefile.am:
1966         Be verbose when printing parsing tests results.
1967
1968 2007-12-10  Johan Dahlin  <johan@gnome.org>
1969
1970         * src/scanner.c (g_igenerator_start_preprocessor): Refactor
1971         preprocessor handling to here. Start cpp insteado of cc -E,
1972         always include -U__GNUC__, since it's specific to the preprocessor
1973         we use.
1974
1975         * tests/parser/Makefile.am (check-local): Silent diff and skip
1976         -U__GNUC__ which is always defined now
1977
1978 2007-12-10  Johan Dahlin,,,  <jdahlin@plasttroll>
1979
1980         reviewed by: <delete if not using a buddy>
1981
1982         * src/scanner.c: (g_igenerator_start_preprocessor), (main):
1983         * tests/parser/Makefile.am:
1984
1985 2007-12-09  Johan Dahlin  <johan@gnome.org>
1986
1987         * src/scanner.c:
1988         Use GOption for command line options.
1989         (g_igenerator_new, main): Simplify constructor and they way
1990         parameters are passed into it.
1991
1992         * src/cparser.y:
1993         * src/Makefile.am:
1994         * src/clexer.l:
1995         * src/cparser.y:
1996         * src/gen-introspect.c:
1997         * src/gen-introspect.h:
1998         * src/scanner.c:
1999         Rename gen-introspect.[ch] to scanner.[ch]
2000
2001 2007-12-09  Johan Dahlin  <johan@gnome.org>
2002
2003         * TODO: Update
2004
2005         * src/Makefile.am: Rename gen-introspect to g-idl-scanner,
2006         don't make the repository library and the other utilites link against
2007         gthread-2.0
2008
2009         * src/gen-introspect.c: (g_igenerator_create_object),
2010         (g_igenerator_create_interface), (g_igenerator_create_boxed),
2011         (g_igenerator_create_enum), (g_igenerator_create_flags),
2012         (g_igenerator_process_module_symbol),
2013         (g_igenerator_process_module), (g_igenerator_generate), (main):
2014         * src/gen-introspect.h:
2015         Refactor g_igenerator_process_types into smaller pieces.
2016
2017         * tests/parser/Makefile.am:
2018         Depend on the gen-introspect binary
2019
2020 2007-12-09  Johan Dahlin  <johan@gnome.org>
2021
2022         * src/gen-introspect.c (g_igenerator_process_types):
2023         Break into smaller pieces, one for each generated node type.
2024
2025 2007-12-08  Johan Dahlin  <johan@gnome.org>
2026
2027         * src/gen-introspect.c: (g_igenerator_process_types),
2028         (g_igenerator_add_module):
2029         * tests/parser/Foo-expected.gidl:
2030         * tests/parser/foo-object.h:
2031         * tests/parser/foo.c: (foo_subobject_class_init),
2032         (foo_subobject_init):
2033
2034         Add a subobject test and make sure to register defined classes
2035         in the lookup symbol hash table.
2036
2037 2007-12-08  Johan Dahlin  <johan@gnome.org>
2038
2039         * gidl/GLib.gidl:
2040         * src/Makefile.am:
2041         * src/gen-introspect.c: (g_igenerator_new), (lookup_symbol),
2042         (g_igenerator_process_types), (g_igenerator_add_module),
2043         (g_igenerator_add_include_idl), (main):
2044         * src/gen-introspect.h:
2045         * tests/parser/Makefile.am:
2046         * tests/parser/Foo-expected.gidl:
2047
2048         Change the gen-introspect to generate namespaced module names,
2049         such as GLib.Object instead of GObject.
2050         Add a GLib.gidl which introduces GLib.Object and GLib.InitiallyUnowned,
2051         add a --include-idl parameter to gen-introspect,
2052         and update the parser test.
2053
2054 2007-12-08  Johan Dahlin  <johan@gnome.org>
2055
2056         * src/gen-introspect.c:
2057         Move main to the end of the file and attempt to make it valid
2058         ansi c.
2059
2060         * tests/parser/Makefile.am (BUILT_SOURCES): Remove .repo here,
2061         we're not quite ready to generate metadata yet.
2062
2063         * tests/parser/:
2064         * configure.ac:
2065
2066         Add a simple gen-introspect parser test
2067
2068 2007-12-06  Gustavo J. A. M. Carneiro  <gjc@gnome.org>
2069
2070         reviewed by: Johan Dahlin  <johan@gnome.org>
2071
2072         * configure.ac:
2073         * gobject-introspection.pc.in:
2074         * src/Makefile.am:
2075         * src/compiler.c: (format_output), (write_out_metadata), (main):
2076         * src/gen-introspect.c: (main):
2077         * src/gen-introspect.h:
2078         * src/generate.c: (write_callable_info), (write_repository),
2079         (load_metadata), (main):
2080         * src/gidlmodule.c: (g_idl_module_new),
2081         (g_idl_module_build_metadata):
2082         * src/gidlmodule.h:
2083         * src/gidlparser.c: (start_element_handler):
2084         * src/ginfo.c: (g_info_new), (g_info_from_entry),
2085         (g_base_info_get_name), (g_base_info_get_namespace),
2086         (g_base_info_is_deprecated), (g_base_info_get_annotation),
2087         (g_base_info_get_metadata), (g_function_info_get_symbol),
2088         (g_function_info_get_flags), (g_function_info_get_property),
2089         (g_function_info_get_vfunc), (signature_offset), (g_type_info_new),
2090         (g_callable_info_may_return_null),
2091         (g_callable_info_get_caller_owns), (g_callable_info_get_n_args),
2092         (g_callable_info_get_arg), (g_arg_info_get_direction),
2093         (g_arg_info_is_return_value), (g_arg_info_is_dipper),
2094         (g_arg_info_is_optional), (g_arg_info_may_be_null),
2095         (g_arg_info_get_ownership_transfer), (g_type_info_is_pointer),
2096         (g_type_info_get_tag), (g_type_info_get_param_type),
2097         (g_type_info_get_interface), (g_type_info_get_array_length),
2098         (g_type_info_is_zero_terminated),
2099         (g_type_info_get_n_error_domains), (g_type_info_get_error_domain),
2100         (g_error_domain_info_get_quark), (g_error_domain_info_get_codes),
2101         (g_value_info_get_value), (g_field_info_get_flags),
2102         (g_field_info_get_size), (g_field_info_get_offset),
2103         (g_registered_type_info_get_type_name),
2104         (g_registered_type_info_get_type_init),
2105         (g_struct_info_get_n_fields), (g_struct_info_get_field),
2106         (g_struct_info_get_n_methods), (g_struct_info_get_method),
2107         (find_method), (g_struct_info_find_method),
2108         (g_enum_info_get_n_values), (g_enum_info_get_value),
2109         (g_object_info_get_parent), (g_object_info_get_type_name),
2110         (g_object_info_get_type_init), (g_object_info_get_n_interfaces),
2111         (g_object_info_get_interface), (g_object_info_get_n_fields),
2112         (g_object_info_get_field), (g_object_info_get_n_properties),
2113         (g_object_info_get_property), (g_object_info_get_n_methods),
2114         (g_object_info_get_method), (g_object_info_find_method),
2115         (g_object_info_get_n_signals), (g_object_info_get_signal),
2116         (g_object_info_get_n_vfuncs), (g_object_info_get_vfunc),
2117         (g_object_info_get_n_constants), (g_object_info_get_constant),
2118         (g_interface_info_get_n_prerequisites),
2119         (g_interface_info_get_prerequisite),
2120         (g_interface_info_get_n_properties),
2121         (g_interface_info_get_property), (g_interface_info_get_n_methods),
2122         (g_interface_info_get_method), (g_interface_info_find_method),
2123         (g_interface_info_get_n_signals), (g_interface_info_get_signal),
2124         (g_interface_info_get_n_vfuncs), (g_interface_info_get_vfunc),
2125         (g_interface_info_get_n_constants),
2126         (g_interface_info_get_constant), (g_property_info_get_flags),
2127         (g_signal_info_get_flags), (g_signal_info_get_class_closure),
2128         (g_signal_info_true_stops_emit), (g_vfunc_info_get_flags),
2129         (g_vfunc_info_get_offset), (g_vfunc_info_get_signal),
2130         (g_constant_info_get_value), (g_union_info_get_n_fields),
2131         (g_union_info_get_field), (g_union_info_get_n_methods),
2132         (g_union_info_get_method), (g_union_info_is_discriminated),
2133         (g_union_info_get_discriminator_offset),
2134         (g_union_info_get_discriminator):
2135         * src/ginvoke.c: (g_function_info_invoke):
2136         * src/girepository.c: (g_irepository_register),
2137         (g_irepository_unregister), (g_irepository_get_default),
2138         (count_interfaces), (g_irepository_get_n_infos), (find_interface),
2139         (g_irepository_get_info), (g_irepository_find_by_name),
2140         (g_irepository_get_shared_library),
2141         (g_irepository_build_search_path), (g_irepository_register_file),
2142         (g_irepository_error_quark):
2143         * src/girepository.h:
2144         * src/gmetadata.c: (g_metadata_get_dir_entry),
2145         (g_metadata_check_sanity), (validate_header),
2146         (validate_array_type_blob), (validate_iface_type_blob),
2147         (validate_param_type_blob), (validate_error_type_blob),
2148         (validate_type_blob), (validate_arg_blob),
2149         (validate_signature_blob), (validate_function_blob),
2150         (validate_callback_blob), (validate_constant_blob),
2151         (validate_value_blob), (validate_field_blob),
2152         (validate_property_blob), (validate_signal_blob),
2153         (validate_vfunc_blob), (validate_struct_blob),
2154         (validate_enum_blob), (validate_object_blob),
2155         (validate_interface_blob), (validate_errordomain_blob),
2156         (validate_union_blob), (validate_blob), (validate_directory),
2157         (validate_annotations), (g_metadata_validate), (_g_metadata_init),
2158         (g_metadata_new_from_memory), (g_metadata_new_from_const_memory),
2159         (g_metadata_new_from_mapped_file), (g_metadata_free),
2160         (g_metadata_set_module), (g_metadata_get_namespace):
2161         * src/gmetadata.h:
2162         * tests/Makefile.am:
2163         * tests/invoke/Makefile.am:
2164         * tests/invoke/invoke-namespace-find.sh:
2165         * tests/invoke/invoke.c: (main):
2166
2167         Add a namespace/shared library mapping. fixes #313268.
2168
2169 2007-12-03  Johan Dahlin  <johan@gnome.org>
2170
2171         * src/gidlparser.c (parse_type_internal): Disable char/gchar and
2172         guchar for now.
2173
2174 2007-11-30  Jürg Billeter  <j@bitron.ch>
2175
2176         * configure.ac:
2177         * src/Makefile.am:
2178         * src/clexer.l:
2179         * src/cparser.y:
2180         * src/gen-introspect.c: (g_idl_node_cmp), (g_igenerator_new),
2181         (g_igenerator_write_inline), (g_igenerator_write),
2182         (g_igenerator_write_indent), (g_igenerator_write_unindent),
2183         (field_generate), (value_generate), (constant_generate),
2184         (property_generate), (function_generate), (vfunc_generate),
2185         (signal_generate), (interface_generate), (struct_generate),
2186         (union_generate), (boxed_generate), (enum_generate),
2187         (node_generate), (module_generate), (get_type_from_type_id),
2188         (str_replace), (g_igenerator_process_properties),
2189         (g_igenerator_process_signals), (g_igenerator_process_types),
2190         (get_type_from_ctype), (g_igenerator_process_function_symbol),
2191         (g_igenerator_process_unregistered_struct_typedef),
2192         (g_igenerator_process_struct_typedef),
2193         (g_igenerator_process_union_typedef),
2194         (g_igenerator_process_enum_typedef),
2195         (g_igenerator_process_function_typedef),
2196         (g_igenerator_process_constant), (g_igenerator_process_symbols),
2197         (g_igenerator_add_symbol), (g_igenerator_is_typedef),
2198         (g_igenerator_generate), (main), (csymbol_new),
2199         (csymbol_get_const_boolean), (ctype_new), (ctype_copy),
2200         (cbasic_type_new), (ctypedef_new), (cstruct_new), (cunion_new),
2201         (cenum_new), (cpointer_new), (carray_new), (cfunction_new),
2202         (eat_hspace), (eat_line), (read_identifier),
2203         (g_igenerator_parse_macros):
2204         * src/gen-introspect.h:
2205
2206         Import gen-introspect to generate introspection information by
2207         parsing C headers.
2208
2209 2007-11-30  Jürg Billeter  <j@bitron.ch>
2210
2211         * src/gidlnode.c: (g_idl_node_new): support creating callback nodes
2212
2213 2007-11-30  Jürg Billeter  <j@bitron.ch>
2214
2215         * src/gidlparser.c: (end_element_handler): Don't leave requires
2216         state too early.
2217
2218 2007-11-29  Johan Dahlin  <johan@gnome.org>
2219
2220         * src/gidlparser.c (parse_type_internal): Add char,
2221         gchar and guchar to the builtin types.
2222
2223 2007-11-26  Johan Dahlin  <johan@gnome.org>
2224
2225         * src/ginfo.c: (g_object_info_get_type_name),
2226         (g_object_info_get_type_init):
2227         * src/girepository.c: (g_irepository_is_registered):
2228         * src/girepository.h:
2229
2230         Add g_object_info_get_type_name, g_object_info_get_type_init and
2231         g_irepository_is_registered.
2232
2233 2006-08-14  Jürg Billeter  <j@bitron.ch>
2234
2235       * src/gidlparser.c: (end_element_handler): Don't leave
2236         namespace and implements states too early.
2237         Fixes #351264
2238
2239 2007-11-26  Johan Dahlin  <johan@gnome.org>
2240
2241         * src/gmetadata.c (validate_struct_blob):
2242         pass blob_type to validate_function_blob instead of
2243         hard-coding BLOB_TYPE_STRUCT.
2244
2245         Patch by Torsten Schoenfeld, fixes #314190
2246
2247 2006-10-03  Torsten Schoenfeld  <tsch@cvs.gnome.org>
2248
2249         * src/compiler.c, src/generate.c, src/gidlnode.c,
2250         src/gidlparser.c, src/ginfo.c, src/girepository.c,
2251         tests/invoke/invoke.c, test/invoke/testfns.c: Hush compiler
2252         warnings about return values, signedness mismatches, unused
2253         variables, and unhandles enum values in switch statements.
2254
2255         * tests/invoke/Makefile.am: Don't install the invoke test program.
2256         Add -I ../../src to the cflags used for the test functions files.
2257
2258 2005-08-31  Torsten Schoenfeld  <tsch@cvs.gnome.org>
2259
2260         * src/girepository.h: Export g_invoke_error_quark.
2261
2262 2005-08-31  Torsten Schoenfeld  <tsch@cvs.gnome.org>
2263
2264         * src/ginvoke.c: Remove the fallback implementation of
2265         g_function_info_invoke since we now formally depend on libffi.
2266
2267 2005-07-25  Matthias Clasen  <mclasen@redhat.com>
2268
2269         * src/Makefile, tests/Makefile, tests/invoke/Makefile:
2270         Remove these files from cvs, as they are now generated.
2271
2272         * src/gmetadata.c (validate_iface_type_blob): Don't
2273         complain if blob->pointer is not set, since that
2274         happens for enum and flag types.  (#308935, Gustavo
2275         Carneiro)
2276
2277         * Commit an autoconf-conversion patch by
2278         Gustavo Carneiro (#308708)
2279
2280 2005-05-24  Matthias Clasen  <mclasen@redhat.com>
2281
2282         * src/compiler.c (main): Use it here to validate
2283         the generated metadata.
2284
2285         * src/gmetadata.[hc]: Add code to validate a
2286         metadata blob.
2287
2288         * metadata-format.txt: Updates
2289
2290 2005-05-22  Matthias Clasen  <mclasen@redhat.com>
2291
2292         * tests/*: Add struct offsets to field and vfunc
2293         elements.
2294
2295         * src/generate.c (write_vfunc_info): Write offset
2296         information for vfuncs.
2297
2298         * src/gidlnode.c (g_idl_node_build_metadata): Write
2299         the struct offsets into the metadata.
2300
2301         * src/gidlparser.c: Parse the offset attributes of
2302         field and vfunc elements.
2303
2304         * src/gidlnode.h: Add offset members to field and
2305         vfunc nodes.
2306
2307 2005-05-21  Matthias Clasen  <mclasen@redhat.com>
2308
2309         * TODO: Updates.
2310
2311         * gidl.dtd: Updates.
2312
2313         * src/g-idl-offsets.pl: A perl script which reads a .gidl
2314         file, creates, compiles and runs a C file, and folds the
2315         resulting struct offsets back into the .gidl file.
2316
2317 2005-05-20  Matthias Clasen  <mclasen@redhat.com>
2318
2319         * src/gidlparser.c (start_field): Make fields in objects
2320         work.
2321
2322         * src/gidlmodule.c: Include string.h
2323
2324         * TODO: Updates.
2325         :
2326
2327         * metadata-format.txt: Cleanup basic types.
2328         * src/*: Adapt to the changes.
2329         * tests/*: Adapt to the changes.
2330         * examples/gdk-pixbuf.gidl: Adapt to the changes.
2331
2332         * src/gidlnode.c (g_idl_node_get_size): Report the correct
2333         size for enum blobs.
2334         (g_idl_node_get_full_size): Report the correct size for
2335         function blobs.
2336
2337         * src/gidlmodule.c (g_idl_module_build_metadata): Add some
2338         error checking for blob sizes.
2339
2340 2005-05-19  Matthias Clasen  <mclasen@redhat.com>
2341
2342         * src/gidlnode.c (g_idl_node_build_metadata): Correctly handle
2343         interface types for which is_pointer is FALSE, e.g. enums.
2344
2345         * src/gidlnode.c (g_idl_node_get_full_size)
2346         * src/gidlparser.c (parse_type_internal):
2347         * src/generate.c (write_type_info): Support unspecialized
2348         lists, hashtables and errors. Also emit a '*' after these.
2349
2350         * TODO: Updates
2351
2352 2005-05-17  Matthias Clasen  <mclasen@redhat.com>
2353
2354         * TODO: Updates
2355
2356         * metadata-format.txt: Cleanups by Maciej Katafiasz.
2357
2358 2005-05-15  Matthias Clasen  <mclasen@redhat.com>
2359
2360         * src/*.c: Change the directory to be addressed by
2361         1-based indexes, and use an index of zero to mean
2362         'no object'.
2363
2364 2005-05-15  Matthias Clasen  <mclasen@redhat.com>
2365
2366         * tests/roundtrips.sh (SIMPLE_TESTS): Add union.test.
2367
2368         * tests/union.test: Add a union test.
2369
2370         * src/generate.c: Handle unions.
2371
2372         * src/girepository.h:
2373         * src/ginfo.c: Add GIUnionInfo and functions to access it.
2374
2375         * src/gidlnode.c: Handle GIdlNodeUnion nodes.
2376
2377         * src/gidlparser.c (start_union): Parse <union> elements.
2378
2379         * src/gidlnode.h: Add a GIdlNodeUnion.
2380
2381         * gidl.dtd: Add a <union> element.
2382
2383         * src/gmetadata.c (g_metadata_check_sanity): Check
2384         union_blob_size.
2385
2386         * src/gmetadata.h: Add union_blob_size to Header,
2387         add a UnionBlob.
2388
2389         * metadata-format.txt: Add a UnionBlob.
2390
2391 2005-05-13  Matthias Clasen  <mclasen@redhat.com>
2392
2393         * tests/*: Update testcases.
2394
2395         * src/generate.c (write_callable_info): Don't forget to
2396         write transfer and null-ok attributes for return types
2397         and parameters.
2398
2399         * src/girepository.h:
2400         * src/ginfo.c (g_callable_info_may_return_null):
2401         New function to find out if a function may return NULL.
2402
2403         * src/compiler.c (format_output): Make the generated
2404         C code compile.
2405
2406         * README: Point to a recent libffi snapshot.
2407
2408         * tests/invoke/*: Some invoke tests.
2409
2410         * src/Makefile: Add ginvoke.c and the necessary
2411         libffi information.
2412
2413         * src/girepository.h (g_function_info_invoke): Add
2414         a GError argument.
2415
2416         * src/ginvoke.c (g_function_info_invoke): Initial
2417         implementation of invoke functionality based on libffi.
2418
2419         * src/gidlnode.c (g_idl_node_build_metadata): Pass the
2420         strings and types hash tables in the right order when
2421         recursing.
2422         (find_entry_node): Free the name parts.
2423
2424 2005-05-12  Johan Dahlin  <johan@gnome.org>
2425
2426         * src/generate.c: Generate consistent end tags.
2427
2428         * tests/*: Update
2429
2430 2005-05-12  Matthias Clasen  <mclasen@redhat.com>
2431
2432         * TODO: Updates
2433
2434         * src/gidlparser.c (start_function): Actually add
2435         methods to objects.  (Steven Walter)
2436
2437         * src/girepository.h:
2438         * src/ginfo.c: Rename Transfer and Direction to
2439         GITransfer and GIDirection. (Torsten Schoenfeld)
2440
2441         * tests/*: Make tests work with the changes in name
2442         handling.
2443
2444         * src/gidlnode.c (find_entry_node): Parse qualified
2445         names and generate xref nodes for them if needed. Don't
2446         require all modules to be loaded any more.
2447
2448         * src/gidlmodule.c (g_idl_module_build_metadata): Choke
2449         on '.' in names.
2450
2451         * src/ginfo.c (g_object_info_get_parent): Return NULL
2452         if blob->parent is 0. Still need to make sure index
2453         0 is not used.
2454
2455         * src/generate.c: Generate qualified names when
2456         referring to non-local types. Emit transfer attribute
2457         for return types.
2458
2459         * src/compiler.c (format_output): Put the function
2460         attributes where gcc accepts them.
2461
2462 2005-05-11  Matthias Clasen  <mclasen@redhat.com>
2463
2464         * src/compiler.c (main): Add a --verbose cmdline option
2465         and only log messages if it is specified.
2466
2467         * src/gidlnode.h:
2468         * src/gidlnode.c (init_stats, dump_stats): Collect some
2469         statistics on string and type sharing.
2470
2471         * src/gidlmodule.c (g_idl_module_build_metadata): Use
2472         g_message() instead of fprintf().
2473
2474         * src/gidlnode.c (g_idl_node_free): Make this more robust.
2475         (g_idl_node_get_size): Implement for structs.
2476         (g_idl_node_get_full_size): Handle parent being NULL.
2477         (serialize_type): Handle lookup failures more gracefully.
2478
2479 2005-05-10  Matthias Clasen  <mclasen@redhat.com>
2480
2481         * src/gidlnode.c (g_idl_node_get_full_size): Correct the
2482         size calculation for 2-parameter types and for objects.
2483
2484         * src/compiler.c: Add a cmdline option for debug output
2485         and install a log handler to implement it.
2486         * src/gidlnode.c: Add some debug spew.
2487
2488         * TODO: Updates
2489
2490         * src/gidlmodule.c (g_idl_module_build_metadata): Don't
2491         forget to count the module name when calculating the
2492         required size for the metadata.
2493
2494         * src/gidlnode.c:
2495         * src/gidlparser.c: Fix compiler warnings.
2496
2497 2005-05-09  Matthias Clasen  <mclasen@redhat.com>
2498
2499         * src/compiler.c (main): Free the option context.
2500
2501         * gidl.dtd: Clean up handling of names. All elements
2502         have a "name", only the elements corresponding to
2503         actual callable functions (function, method, constructor),
2504         have an additional "symbol" attribute holding the
2505         dlsym()-able function name.
2506
2507         * src/generate.c: Adapt to generate xml matching the
2508         new dtd.
2509
2510         * src/gidlparser.c:
2511         * src/gidlnode.c: Adapt to parse the new dtd.
2512
2513         * tests/*.test: Adjust to the new dtd.
2514
2515         * metadata-format.txt:
2516         * src/gmetadata.h: Remove the short_name field
2517         from the ValueBlob.
2518         * src/gmetadata.c: Shrink size of ValueBlob to 12.
2519         * src/girepository.h:
2520         * src/ginfo.c (g_value_info_get_short_name): Removed
2521
2522 2005-05-09  Matthias Clasen  <mclasen@redhat.com>
2523
2524         * gidl.dtd: Allow constructors for boxed types,
2525         patch by Jonathan Blandford.
2526
2527
2528 2005-05-09  Matthias Clasen  <mclasen@redhat.com>
2529
2530         * --- Initial import ---