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