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