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