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