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