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