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