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