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