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