Remove a warning, be less verbose on error on fundamental types.
[platform/upstream/gobject-introspection.git] / ChangeLog
1 2008-11-24  Johan Dahlin  <jdahlin@async.com.br>
2
3         * girepository/gdump.c (dump_type): Remove a warning,
4         be less verbose on error on fundamental types.
5
6 2008-11-23  Johan Dahlin  <jdahlin@async.com.br>
7
8         * giscanner/dumper.py: Add license headers,
9         refactor into a class, avoid some duplication and do some
10         extra pedantic checks.
11
12 2008-11-23  Johan Dahlin  <jdahlin@async.com.br>
13
14         Make it compilable with -Werror on my system by adding
15         a couple of prototypes and including headers.
16
17 2008-11-23  Johan Dahlin  <jdahlin@async.com.br>
18
19         Bug 562022 – gobject-introspection needs python headers
20
21         * configure.ac: fail without python headers present.
22         Patch by: Tom Parker
23
24 2008-11-21  Johan Dahlin  <jdahlin@async.com.br>
25
26         Bug 561617 – Return value array annotations
27
28         * giscanner/transformer.py:
29         * tests/scanner/annotation.c (annotation_return_array):
30         * tests/scanner/annotation.h:
31         Add support for (array) for return value annotations as well.
32
33 2008-11-20  Johan Bilien  <jobi@via.ecp.fr>
34
35         * tests/everything/everything.[ch]: add a test function which calls a
36         closure.
37
38 2008-11-19  Johan Dahlin  <jdahlin@async.com.br>
39
40         * giscanner/cachestore.py:
41         Catch ValueError exceptions.
42
43 2008-11-18  Tommi Komulainen  <tommi.komulainen@iki.fi>
44
45         * tests/scanner/Makefile.am (barapp_SOURCES): fix builddir != srcdir
46
47 2008-11-18  Andreas Rottmann  <a.rottmann@gmx.at>
48
49         * girepository/girnode.c (g_ir_node_build_typelib): Use sizeof()
50         instead of hard-coding struct sizes.
51
52 2008-11-18  Owen Taylor <otaylor@redhat.com>
53
54         Bug 561296 - Add "storage type" to the typelib data for enums
55
56         In order to set and get enum and flag fields in structures, we need
57         to know the integral type that the enumeration is stored as. We are already
58         computing that at compile time in order to compute struct offsets, so the
59         easiest thing to do is to save that in the typelib.
60
61         * docs/typelib-format.txt girepository/girnode.[ch] girepository/giroffsets.c
62         girepository/gtypelib.h: Add 'storage_type' to the typelib format for EnumBlob
63         and compute and save it at compile time.
64
65         * girepository/girepository.h girepository/ginfo.c:
66         Add g_enum_info_get_storage_type().
67
68         * girepository/gfield.c: Implement reading and writing enum and flags fields
69         based on the storage type.
70
71 2008-11-18  Owen Taylor <otaylor@redhat.com>
72
73         Add enums to the Everything test module
74
75         * tests/everything/everything.[ch]: Add TestEnum and TestFlags to the Everything
76         test module and register them as GTypes.
77
78         https://bugzilla.gnome.org/show_bug.cgi?id=561296
79
80 2008-11-18  Johan Dahlin  <jdahlin@async.com.br>
81
82         * giscanner/cachestore.py:
83         Catch BadPickleGet exceptions as well.  
84
85 2008-11-17  Owen Taylor  <otaylor@redhat.com>
86
87         * tests/everything/everything.c: Fix doc comment annotations
88         for test_struct_b_clone() to refer to the right function.
89
90 2008-11-17  Dan Winship  <danw@gnome.org>
91
92         * giscanner/glibtransformer.py (GLibTransformer.__init__): fix
93         spelling of GHashTable. #561135
94
95         * tests/scanner/annotation.c (annotation_object_get_hash):
96         * tests/scanner/annotation-1.0-expected.gir:
97         * tests/scanner/annotation-1.0-expected.tgir: add a test of
98         GHashTable annotations
99
100 2008-11-17  Andreas Rottmann  <a.rottmann@gmx.at>
101
102         * giscanner/ast.py: Change string array match type to be in terms
103         of canonicalized type.
104         * giscanner/transformer.py: Add canonicalize_ctype which gives us
105         a version of a c:type without aliases, so we can deep canonicalize
106         char** to utf8*.  Update parse_ctype to use it.
107         * tests/*: Add gtk_init like int*/char*** arg functions for testing.
108
109 2008-11-16  Colin Walters  <walters@verbum.org>
110
111         * girepository/girepository.c: Ensure we always call init_globals,
112         even if passed a non-default repository.
113
114 2008-11-16  Colin Walters  <walters@verbum.org>
115
116         Bug 559706 - Interface prerequisites
117
118         * common.mk: Dep on libgirepository.la for scanner libs so that
119         we rebuild things even if just gdump.c changes.
120         * girepository/gdump.c: Dump prerequisites.
121         * giscanner/ast.py: Add prerequisite list.
122         * giscanner/girparser.py: Parse them from gdump.
123         * giscanner/girwriter.py: Write them.
124         * giscanner/glibtransformer.py: Resolve them.
125         * tests/*: Test.
126
127 2008-11-16  Owen Taylor  <otaylor@redhat.com>
128
129         Bug 561087 - Respect is_pointer in serialize_type()
130
131         Add a '*' to the serialization for the cases where we set is_pointer
132         in the type blob we write out depending on node->is_pointer. Don't
133         add the '*' in the cases where is_pointer is set or not set in a
134         fixed fashion.
135
136         http://bugzilla.gnome.org/show_bug.cgi?id=561087
137
138 2008-11-16  Owen Taylor  <otaylor@redhat.com>
139
140         Bug 560825 – Add size and alignment to typelib
141
142         Include the size and alignment of structures and unions in the typelib,
143         and add getter methods to retrieve them from GIStructInfo/GIUnionInfo.
144
145         * docs/typelib-format.txt girepository/gtypelib.h girepository/girnode.c
146         girepository/girmodule.c girepository/gtypelib.c: Add size and alignment
147         to StructBlob and UnionBlob.
148
149         * girepository/ginfo.c girepository/girepository.h:
150         Add g_[struct|union]_get[size|alignment]().
151
152         * test/offsets/gen-gitestoffsets: Test overall structure size and alignment.
153
154 2008-11-16  Owen Taylor  <otaylor@redhat.com>
155
156         Bug 552371 – implement struct field get/set
157
158         * girepository/gfield.c girepository/girepository.h: Add
159         convenience functions g_field_info_set_field() and
160         g_field_info_get_field() to set and get fields based on the
161         offsets in GIFieldInfo.
162
163 2008-11-16  Andreas Rottmann  <a.rottmann@gmx.at>
164
165         Bug 560241 - Out-arguments should not be marked as being pointers
166         in all cases
167
168         * girepository/girparser.c: Improved logic for out arguments.
169
170 2008-11-16  Andreas Rottmann  <a.rottmann@gmx.at>
171
172         Bug 559601 - Pointers in structs/unions unduly treated as arrays
173
174         * giscanner/transformer.py: Differentiate type creation logic
175         between parameters and struct components.
176
177 2008-11-15  Colin Walters  <walters@verbum.org>
178
179         * giscanner/dumper.py: Check return code from pkg-config
180         invocations.
181
182 2008-11-14  Johan Dahlin  <jdahlin@async.com.br>
183
184         * tests/everything/everything.c (test_array_int_in),
185         (test_array_gtype_in):
186         * tests/everything/everything.h:
187         Rename the int/gtype array tests. Make the return value
188         useful, an aggregation of the array input values.
189
190 2008-11-14  Johan Dahlin  <jdahlin@async.com.br>
191
192         * tests/everything/Makefile.am:
193         * tests/everything/everything.c:
194         * tests/everything/everything.h:
195         * tests/everything/gitesttypes.c:
196         * tests/everything/gitesttypes.h:
197         Rename gitesttypes.[ch] to everything.[ch]
198
199 2008-11-13  Andreas Rottmann  <a.rottmann@gmx.at>
200
201         Bug 560708 – Don't treat arrays that have a length specified as
202         zero-terminated by default
203
204         * giscanner/transformer.py: Default to non zero terminated for
205         arrays with length.
206         * tests/*: Update, add test for zero vs not.
207
208 2008-11-13  Andreas Rottmann  <a.rottmann@gmx.at>
209
210         Bug 557788 - Return types for constructors in generated typelib bogus
211
212         * girepository/girnode.c: Namespace-qualify XREFs; not doing so is
213         obviously broken in the face of duplicate names in different
214         namespaces.
215         * tests/scanner/*expected.gir: Fix up.
216
217 2008-11-13  Owen Taylor  <otaylor@redhat.com>
218
219         * girepository/girffi.c: Fix  "Unexpected time for time_t"
220         message.
221
222 2008-11-13  Colin Walters  <walters@verbum.org>
223
224         Bug 558436 - avoid having scanner load app code
225
226         * giscanner/cgobject.py: Delete; we no longer load shared
227         libraries directly.
228         * giscanner/dumper.py: Support for linking a library to
229         a stub binary for introspection.
230         * giscanner/glibtransformer.py: Rewrite to use gdump XML
231         from invocation of child binary.
232         * giscanner/transformer.py: Fix up to use fully qualified
233         name in parse tree.  Make parse_ctype public so we can use
234         it inside glibtransformer.
235         * tests/scanner/barapp.c: New test, using --program arg
236         for g-ir-scanner.
237         * tests/*: Update to use common.mk for invoking scanner.
238         * tools/g-ir-scanner: Add options --program, --program-arg,
239         and --no-libtool.
240         * docs/g-ir-scanner.1: Update.
241
242 2008-11-13  Colin Walters  <walters@verbum.org>
243
244         * configure.ac: Depend on Gio, we use it in gdump.c.
245         * girepository/gdump.c: Code to dump GType data to XML.
246         * girepository/girepository.c: Add option group for dumping.
247         * girepository/girepository.h: Define API for the above.
248
249 2008-11-13  Colin Walters  <walters@verbum.org>
250
251         * common.mk: Add a file to include with Makefile fragments
252         useful for scanner invocation.
253
254 2008-11-13  Tommi Komulainen  <tommi.komulainen@iki.fi>
255
256         * tests/everything/gitesttypes.c (test_filename_return): Return
257         strings in filename encoding.
258
259 2008-11-13  Owen Taylor  <otaylor@redhat.com>
260
261         Bug 560253 – Add structure and boxed types to Everything test module
262
263         * tests/everything/gitesttypes.[ch]: Add examples of:
264
265           Plain old data structs
266           Plain old data structs with nested fields
267           Plain old data boxed
268           Plain old data boxed with nested fields
269           More complicated boxed types with internal state
270
271 2008-11-12  Johan Dahlin  <jdahlin@async.com.br>
272
273         * tests/everything/gitesttypes.c (test_gtype_in):
274         * tests/everything/gitesttypes.h:
275         Add a test of GType arrays, a la gtk_list_store_set_columns.
276
277 2008-11-12  Owen Taylor  <otaylor@redhat.com>
278
279         Bug 560419 – Cache includes when parsing
280
281         Keep track of all modules parsed within a GIrParser, and when a
282         module is referenced a second time, use the existing parsed copy
283         instead of reparsing.
284
285 2008-11-12  Owen Taylor  <otaylor@redhat.com>
286
287         Fix management of ParseContext.includes_modules (#560419)
288
289         * girepository/girparser.c: Fix some trivial bugs in managing the
290         list of include modules. (Add to module's list twice, not
291         initialized to NULL, not freed.)
292
293 2008-11-12  Owen Taylor  <otaylor@redhat.com>
294
295         Keep aliases and disguised_structures local to each module (#560419)
296
297         * girepository/girmodule.[ch]: When parsing, keep keep a separate
298         hash tables of aliases and 'disguised' flags for each module, and
299         store that on the module.
300
301         After parsing an include merge the aliases/disguised flags to the
302         including module.
303
304         * girepository/girparser.c: Remove 'prefix_aliases' flag and
305         always prefix aliases/disguised structure types when parsing; this
306         simplifies the code considerably.
307
308 2008-11-12  Owen Taylor  <otaylor@redhat.com>
309
310         Fix mismatches between .gir name and 'name' attribute (#560419)
311
312         * tests/boxed.gir tests/constant.gir tests/enum.gir tests/invoke/invoke.c
313         tests/invoke/testfns-1.0.gir tests/object.gir tests/struct.gir: Fix places
314         where the 'name' element of <namespace/> didn't match the filename of the
315         gir, an assumption that the compiler has always expected and now enforces.
316
317 2008-11-12  Owen Taylor  <otaylor@redhat.com>
318
319         Only allow one <namespace/> element per <repository/> (#560419)
320
321         * girepository/girparser.c: The logic in girparser.c didn't work
322         very well if there were multiple <namespace/> nodes within a
323         single <repository/> (context->namespace was always the overall
324         filename and not the the name specified in the <namespace/>
325         element for one thing; this would cause aliases to be mis-prefixed
326         in include modules.) Also check that the "name" in the
327         <namespace/> node matches the filename.
328
329 2008-11-12  Owen Taylor  <otaylor@redhat.com>
330
331         Add a GirParser object to hold the state of a compilation
332
333         * girepository/girparser.[ch] tools/compiler.c: Add a toplevel
334         GirParser object to hold state that is global across a
335         compilation. Currently just holds the include path, but will
336         eventually also keep a cached list of parsed modules.
337
338 2008-11-12  Tommi Komulainen  <tommi.komulainen@iki.fi>
339
340         * girepository/girepository.c (find_namespace_latest): Fix
341         minor memory leak.
342
343 2008-11-12  Tommi Komulainen  <tommi.komulainen@iki.fi>
344
345         * configure.ac: use 'introspection' component for bugs
346
347 2008-11-12  Johan Dahlin  <jdahlin@async.com.br>
348
349         * tests/everything/gitesttypes.c (test_filename_return):
350         * tests/everything/gitesttypes.h:
351         Add a filename return test.
352
353 2008-11-12  Tommi Komulainen  <tommi.komulainen@iki.fi>
354
355         * tests/offsets/Makefile.am (gitestoffsets.c): fix
356         gen-gitestoffsets invocation with builddir != srcdir
357
358 2008-11-12  Johan Dahlin  <jdahlin@async.com.br>
359
360         * girepository/girepository.c:
361         Change the element type from utf8 to filename
362         * girepository/girnode.c (g_ir_node_build_typelib):
363         Special case filename equally to utf8 here.
364
365 2008-11-12  Johan Dahlin  <jdahlin@async.com.br>
366
367         * gir/Makefile.am:
368         Remove unused variables, add a dependency of girepository.ch, so when
369         they change we rebuild the gir automatically.
370
371 2008-11-12  Johan Dahlin  <jdahlin@async.com.br>
372
373         * girepository/girepository.c (g_irepository_get_search_path):
374         * girepository/girepository.h:
375         Add a g_irepository_get_search_path, so we can access the search
376         paths from runtime.
377
378 2008-11-12  Johan Bilien  <jobi@via.ecp.fr>
379
380         Bug 560474 – g-ir-compiler crashes when compiling the glib gir
381
382         * girepository/girparser.c: avoid freeing an uninitialized pointer
383
384 2008-11-12  Johan Dahlin  <jdahlin@async.com.br>
385
386         * gir/Makefile.am:
387         * giscanner/glibtransformer.py:
388         * tools/g-ir-scanner:
389         Add a GIRepository-2.0.gir. Change the libtool lookup slightly
390         so we can just pass in --library=foo/bar/baz.la and the scanner
391         does the right thing.
392         Don't warn for _get_type() functions if they don't take any
393         parameters
394
395 2008-11-11  Owen Taylor  <otaylor@redhat.com>
396
397         Bug 560404 – Prefix types when resolving aliases in included modules
398
399         * girepository/girparser.c: When resolving aliases in an included
400         module, prefix types before looking them up.
401
402 2008-11-11  Owen Taylor  <otaylor@redhat.com>
403
404         Compute field offsets and overall size for object structures
405
406         Bug 560326 – Fails to build Gtk-2.0.typelib with "Unexpected non-pointer
407         field of type object in structure"
408
409         Do basic computation of field offsets for objects and interfaces;
410         this doesn't attempt to address all of the "mess" for virtual
411         functions described in Bug 560281.
412
413 2008-11-11  Tommi Komulainen  <tommi.komulainen@iki.fi>
414
415         Bug 560308 – g-ir-compiler goes in infinite loop on Gdk-2.0.gir
416
417         Based on patch by Johan Bilien.
418
419         * giscanner/transformer.py (_create_member, _create_parameter):
420         Resolve types here as well.
421         (_resolve_type_name_1): Try resolving using 'ctype' first since
422         it's least ambiguous. Fixes struct member type resolution with
423         similarly named types, e.g. Gdk.PangoRendererClass and
424         Pango.RendererClass
425         * tests/scanner/foo*: Add test.
426
427 2008-11-11  Owen Taylor  <otaylor@redhat.com>
428
429         * girepository/girparser.c: Search provided include dirs before
430         the default directories.
431
432 2008-11-11  Owen Taylor  <otaylor@redhat.com>
433
434         * girepository/giroffsets.c: Include fully-qualified names in
435         all error messages.
436
437 2008-11-11  Owen Taylor  <otaylor@redhat.com>
438
439         * girepository/giroffsets.c: Fail gracefully with an informative
440         error message when recursion is encountered when computing a 
441         structure size.
442
443 2008-11-11  Owen Taylor  <otaylor@redhat.com>
444
445         * girepository/girparser.c: Remove an unused variable.
446
447 2008-11-10  Owen Taylor <otaylor@redhat.com>
448
449         Add tests for field offset computations
450
451         * tests/offsets/offsets.h: Header file with structure definitions to test
452
453         * tests/offsets/gen-gitestoffsets: Generate a C program that computes
454         field offsets for the structures in offsets.h two ways: using
455         the information from a generated typelib, and as computed by the
456         compiler.
457
458         We diff these two versions to test that everything is OK.
459
460 2008-11-10  Owen Taylor <otaylor@redhat.com>
461
462         Remove field offsets from g-ir-generate output and test inputs
463
464         Field offsets are a) architecture dependent so they shouldn't be part
465         of the architecture-independent gir format which is installed in
466         datadir. b) Are architecture-dependent so they shouldn't be in test
467         expected output.
468
469         * girepository/girparser.c: Don't parse offset for fields
470         * tools/generate.c: Don't parse offset for fields
471         * tests/*.gir test/scanner/*.tgir: Remove offsets
472
473         (Virtual function and discriminator offsets are not removed, as they
474         aren't fully hooked up to the field-offset computation machinery yet.)
475
476 2008-11-10  Owen Taylor <otaylor@redhat.com>
477
478         Bug 560252 - Compute field offsets before writing typelib
479
480         * girepository/girnode.h: Store the total size and alignment for
481         GIrNodeStruct/Boxed/Union.
482
483         * girepository/giroffset.c: New file implementing computation of
484         structure field offsets.
485
486         * girepository/girnode.c: Compute structure field offsets before
487         writing types into the typelib.
488
489         * docs/typelib-format.txt: Document that a field offset of 0xFFFF
490         means "unknown". Also fix description of the discriminator_offset
491         field for unions.
492
493 2008-11-10  Owen Taylor <otaylor@redhat.com>
494
495         Bug 560250 - Fully parse included modules
496
497         For some things, like computing structure offsets to put into the typelib
498         we need more than just the aliases from included modules. Do a completel
499         parse of included modules and store in module->included_modules.
500
501         Also add g_ir_find_node() to find node information from within the
502         active set of modules and their includes.
503
504 2008-11-10  Owen Taylor <otaylor@redhat.com>
505
506         Split g_ir_ffi_get_ffi_type() out from ginvoke.c
507
508         Extract a function to convert GITypeTag to ffi_type from the internals
509         of ginvoke.c. This will be useful in figure out structure alignment.
510
511         Also fix handling of gsize and time_t to be portable. (Add a check
512         to configure.ac to figure out the width of time_t.)
513
514 2008-11-10  Owen Taylor <otaylor@redhat.com>
515
516         Bug 560248 – "disguised structures"
517
518         Certain types like GIConv and GdkAtom are pointers internally but don't
519         look like pointers when referenced. They have the form.
520
521           typedef struct _X *X;
522
523         Parse these as structures/records but mark them in the gir with a 'disguised'
524         attribute so that we know that they need special handling.
525
526         In the typelib treat them like any other structure.
527
528 2008-11-09  Jürg Billeter  <j@bitron.ch>
529
530         * giscanner/ast.py:
531         * giscanner/girwriter.py:
532
533         Write throws attribute for virtual functions, fixes bug 559703
534
535 2008-11-07  Johan Dahlin  <jdahlin@async.com.br>
536
537         * giscanner/libtoolimporter.py (LibtoolImporter.find_module): Clear
538         up some confusion about the second argument to find_module, it's
539         actually the packages __path__ attribute which we can safely ignore
540         for our purposes.
541         (LibtoolImporter.load_module): Set module.__loader__ as per PEP 302.
542
543 2008-11-07  Owen Taylor  <otaylor@redhat.com>
544
545         Bug 559737 – Deal with continuations in macros
546
547         * giscanner/giscannerlexer.l: Treat continuation lines the same
548         as regular newlines. This makes the scanner not complain about
549         #define foo(x) \ <stuff> inside a C file. There's no attempt
550         however to handle parsing macro definitions split across lines.
551
552 2008-11-07  Johan Dahlin  <jdahlin@async.com.br>
553
554         * giscanner/cachestore.py:
555         Handle broken cache entries, write only filesystems and
556         running out of diskspace.
557
558 2008-11-07  Owen Taylor  <otaylor@redhat.com>
559
560         * giscanner/giscannermodule.c (pygi_source_scanner_lex_filename):
561         Set current_filename before lexing the file so error messages
562         are reported in the right file.
563
564 2008-11-06  Colin Walters  <walters@verbum.org>
565
566         * tests/everything/*: Add some tests for strv.
567
568 2008-11-05  Colin Walters  <walters@verbum.org>
569
570         * girepository/ginvoke.c (g_function_info_invoke): Don't use
571         nested scope local variable for error which may go away after
572         conditional is complete.
573
574 2008-11-05  Colin Walters  <walters@verbum.org>
575
576         * giscanner/scannerlexer.l: Avoid static 256 char buf which we
577         manipulate hackily; just use GString.  This avoids an
578         uninitialized memory read pointed out by Havoc.
579
580 2008-11-04  Johan Dahlin  <jdahlin@async.com.br>
581
582         * giscanner/__init__.py:
583         * giscanner/ast.py:
584         * giscanner/cachestore.py:
585         * giscanner/cgobject.py:
586         * giscanner/girparser.py:
587         * giscanner/girwriter.py:
588         * giscanner/giscannermodule.c:
589         * giscanner/glibast.py:
590         * giscanner/glibtransformer.py:
591         * giscanner/libtoolimporter.py:
592         * giscanner/minixpath.py:
593         * giscanner/odict.py:
594         * giscanner/sourcescanner.c:
595         * giscanner/sourcescanner.h:
596         * giscanner/sourcescanner.py:
597         * giscanner/transformer.py:
598         * giscanner/utils.py:
599         * giscanner/xmlwriter.py:
600         * COPYING:
601         Relicense the giscanner library under LGPLv2+.
602         This has been approved by all contributors.
603
604 2008-11-01  Owen Taylor  <otaylor@redhat.com>
605
606         Bug 558848 giparser.py: shared library should be optional
607
608         When parsing a .gir, allow the shared-library attribute
609         of <namespace/> to be missing: this corresponds to the handling
610         in libgirepository and elsewhere.
611
612 2008-11-01  Tommi Komulainen  <tommi.komulainen@iki.fi>
613
614         Bug 557898 – Fails to build on OSX 10.4
615
616         * configure.ac: Check for $shrext_cmds that should be implicitly
617         available if you're using libtool >= 2.0. If undefined, call
618         libtool --config explicitly to get its value.
619         * girepository/gtypelib.c: Remove special case for (non-)Darwin
620         systems as unneeded.
621
622 2008-10-31  Colin Walters  <walters@verbum.org>
623
624         * COPYING, COPYING.lib, COPYING.tools: Clarify licensing status.
625
626 2008-10-31  Johan Dahlin  <jdahlin@async.com.br>
627
628         * configure.ac: Post release version bump
629
630 === 0.6.0 ===
631 2008-10-31  Johan Dahlin  <jdahlin@async.com.br>
632
633         * NEWS:
634         * configure.ac:
635         * docs/release-checklist.txt:
636         0.6.0
637
638 2008-10-31  Johan Dahlin  <jdahlin@async.com.br>
639
640         * Makefile.am: add an upload-release target
641         * docs/release-checklist.txt:
642         Release process documentation
643
644 2008-10-31  Colin Walters  <walters@verbum.org>
645
646         Bug 558109 – _g_typelib_init fails to find shared libraries
647
648         * transformer/glibtransformer.py: Use ctypes' find_library
649         on passed libraries and write that for the shared-library
650         entry.  We want to avoid depending on -devel packages.
651
652 2008-10-31  Johan Dahlin  <jdahlin@async.com.br>
653
654         * docs/g-ir-scanner.1:
655         Document the renaming options.
656
657 2008-10-31  Tommi Komulainen  <tommi.komulainen@iki.fi>
658
659         * giscanner/Makefile.am:
660         * tests/invoke/Makefile.am:
661         * tests/repository/Makefile.am: List in-tree libraries first in
662         LDADD / LIBADD. If installed library is listed first, the
663         resulting binary will prefer installed version to one in .libs,
664         possibly making 'make check' behave strangely.
665
666 2008-10-30  Tommi Komulainen  <tommi.komulainen@iki.fi>
667
668         * giscanner/ast.py: map 'id' (ObjC) to 'any' type to stop
669         gir-repository from choking with gdk/quartz
670
671 2008-10-30  Johan Dahlin  <jdahlin@async.com.br>
672
673         * giscanner/giscannermodule.c (calc_attrs_length),
674         (pygi_collect_attributes):
675         * giscanner/xmlwriter.py:
676         Write a C version of the xml namespace formatter.
677         Saves 15% of the time it takes to create a gtk gir.
678
679 2008-10-30  Johan Dahlin  <jdahlin@async.com.br>
680
681         * giscanner/xmlwriter.py: Abstract attribute formatting
682         to a function external to the XMLWriter class.
683
684         * giscanner/scannerlexer.l:
685         Parse and discard __typeof and __attribute.
686
687 2008-10-30  Johan Dahlin  <jdahlin@async.com.br>
688
689         * giscanner/girparser.py:
690         Remove arguments from the constructor, move them to
691         separate accessors. Add a new parse_tree method
692         which takes an element tree instance.
693         * tools/g-ir-scanner:
694         Update callsite for this
695
696         * giscanner/Makefile.am:
697         * giscanner/cachestore.py:
698         * giscanner/transformer.py:
699         Cache the include parsing. Saves ~25% time when
700         creating vte (which includes everything up to gtk+).
701
702 2008-10-30  Colin Walters  <walters@verbum.org>
703
704         * giscanner/transformer.py: Don't reparse includes
705         we've already processed.
706
707 2008-10-30  Johan Dahlin  <jdahlin@async.com.br>
708
709         * giscanner/girparser.py:
710         * giscanner/transformer.py:
711         Avoid parsing parameters, types etc when parsing
712         includes. Should speed up include parsing a bit.
713
714 2008-10-30  Johan Dahlin  <jdahlin@async.com.br>
715
716         * giscanner/girparser.py:
717         Avoid big if/else and use a dispatch table like
718         approach.
719
720 2008-10-30  Johan Dahlin  <jdahlin@async.com.br>
721
722         * giscanner/transformer.py:
723         Clean up include parsing and registration.
724
725 2008-10-30  Johan Dahlin  <jdahlin@async.com.br>
726
727         * giscanner/transformer.py:
728         Clean up imports
729
730 2008-10-30  Johan Dahlin  <jdahlin@async.com.br>
731
732         Bug 558383 – builddir != srcdir build fails if giscanner python module not already installed
733
734         * gir/Makefile.am:
735         construct PYTHONPATH just once
736
737         * tests/everything/Makefile.am:
738         * tests/scanner/Makefile.am:
739         add $(top_srcdir) to PYTHONPATH to
740         handle builddir != srcdir
741
742         * giscanner/libtoolimporter.py:
743         * giscanner/sourcescanner.py:
744         Make the libtoolimporter work when distchecking too.
745
746         Mostly based on patch by Tommi Komulainen
747
748 2008-10-29  Owen Taylor  <otaylor@redhat.com>
749
750         * giscanner/glibtransformer.py: If a filename of an existing
751         file is passed to --library, hunt for it directly, rather than
752         searching for a corresponding library.
753
754 2008-10-29  Johan Dahlin  <jdahlin@async.com.br>
755
756         * giscanner/libtoolimporter.py:
757         * giscanner/sourcescanner.py:
758         Clean up the libtool importer a bit. Add a context so we
759         can use it through a with statement.
760         Don't just look in the current directory, look in the whole
761         sys.path.
762
763 2008-10-29  Tommi Komulainen  <tommi.komulainen@iki.fi>
764
765         Bug 558065 – gitesttypes should be installed
766
767         * configure.ac:
768         * tests/Makefile.am:
769         * tests/types/Makefile.am   -> tests/everything/Makefile.am
770         * tests/types/gitesttypes.c -> tests/everything/gitesttypes.c
771         * tests/types/gitesttypes.h -> tests/everything/gitesttypes.h
772         move tests/types to tests/everything
773
774         * tests/everything/Makefile.am: build normal shared library
775         libgirepository-everything.so.1.0.0 and corresponding typelib
776         Everything-1.0.typelib
777
778         * tests/everything/Makefile.am: explicitly link libtool
779         versioning with typelib versioning with variables
780
781 2008-10-28  Johan Bilien  <jobi@via.ecp.fr>
782
783         * tools/g-ir-scanner: add LD_LIBRARY_PATH to LPATH before calling ld.
784
785 2008-10-27  Johan Bilien  <jobi@via.ecp.fr>
786
787         * gio/gio-2.0.c: add allow-none annotations, based on the pygobject
788         .defs file
789
790 2008-10-27  Johan Bilien  <jobi@via.ecp.fr>
791
792         Bug 558068 – when invoking a method, offset the in arguments by one,
793         not the out
794
795         * tests/invoke/invoke.c, tests/invoke/testfns.c,
796         tests/invoke/testfns-1.0.gir: Add testing of method and constructor.
797         * girepository/ginvoke.c: do not offset the index of given out
798         arguments by one for methods, "this" is provided as in argument only.
799
800 2008-10-27  Johan Bilien  <jobi@via.ecp.fr>
801
802         * gir/gio-2.0.c: add annotation for g_file_delete
803
804 2008-10-27  Tommi Komulainen  <tommi.komulainen@iki.fi>
805
806         Bug 558062 – provide and use paths in the .pc file
807
808         * gobject-introspection-1.0.pc.in: provide typelibdir variable
809         for where .typelibs should be installed (callers shouldn't need
810         to construct paths from bits and pieces)
811
812 2008-10-25  Andreas Rottmann  <a.rottmann@gmx.at>
813
814         Bug 557791 – g_irepository_require() could return a GTypelib *
815
816         * girepository/girepository.c: Return GTypelib; this is useful
817         for low level manipulation.
818
819 2008-10-25  Colin Walters  <walters@verbum.org>
820
821         Bug 557788 – Return types for constructors in generated typelib bogus
822
823         * giscanner/glibtransformer.py: Don't resolve ctors incrementally,
824         rely on end pass resolution.
825
826 2008-10-25  Andreas Rottmann  <a.rottmann@gmx.at>
827
828         Bug 557786 - support fixed size arrays
829
830         * girepository/ginfo.c: Add g_type_info_get_array_fixed_size.
831         * giscanner/scannerparser.y: Retain fixed array size.
832         * giscanner/ast.py: Add to note.
833         * giscanner/girwriter.py: Write to gir.
834         * girepository/girnode.c: Write it to typelib.
835         * tools/generate.c: Generate.
836         * tests/*: Add tests.
837
838 2008-10-25  Colin Walters  <walters@verbum.org>
839
840         Bug 557076 - move typelibs to $libdir
841
842         * configure.ac: Steal some configury bits from dbus to expand
843         libdir.
844         * gir/Makefile.am: Move to libdir.
845         * girepository/girepository.c: Stop searching XDG_DATA_DIRS;
846         instead just look at one hardcoded path in libdir.
847         * acinclude.m4: Bits from dbus.
848
849 2008-10-24  Johan Dahlin  <johan@gnome.org>
850
851         * girepository/girnode.c (g_ir_node_check_unhandled_members):
852         Be quiet, do not warn about unhandled members.
853
854 2008-10-24  Johan Dahlin  <johan@gnome.org>
855
856         * girepository/gtypelib.c:
857         Only use SHLIB_SUFFIX on darwin, otherwise use
858         G_MODULE_SUFFIX, we cannot get shext_cmds from libtool 2.2.
859
860 2008-10-24  Lucas Rocha  <lucasr@gnome.org>
861
862         Bug 557623 - Constructors shouldn't be flagged as methods.
863
864         * girepository/ginfo.c (g_function_info_get_flags): ditto.
865
866 2008-10-24  Johan Dahlin  <johan@gnome.org>
867
868         * giscanner/scannerparser.y:
869         Check against division by zero for the modula operator.
870         This fixes header parsing of OSX system headers included
871         by libsoup.
872
873 2008-10-24  Johan Dahlin  <johan@gnome.org>
874
875         * CONTRIBUTORS:
876         * Makefile.am:
877         Add a CONTRIBUTORS file and dist it.
878
879 2008-10-23  Tommi Komulainen  <tommi.komulainen@iki.fi>
880
881         Bug 556739 – transfer-ownership attribute should be mandatory in .gir
882
883         * girepository/girparser.c (parse_param_transfer):
884         * giscanner/transformer.py (_create_parameter, _create_return):
885         * giscanner/girwriter.py (_write_return, _write_parameter):
886         * tools/generate.c (write_callable_info): always write and
887         require "transfer-ownership" for return-values and parameters
888
889         * tests/boxed.gir:
890         * tests/invoke/testfns-1.0.gir:
891         * tests/object.gir:
892         * tests/scanner/DrawableAdditions.xml:
893         * tests/scanner/GtkFrob-1.0-expected.tgir:
894         * tests/scanner/annotation-1.0-expected.tgir:
895         * tests/scanner/drawable-1.0-expected.tgir:
896         * tests/scanner/drawable-injected-1.0-expected.gir:
897         * tests/scanner/drawable-injected-1.0-expected.tgir:
898         * tests/scanner/foo-1.0-expected.tgir: Updated
899
900 2008-10-23  Tommi Komulainen  <tommi.komulainen@iki.fi>
901
902         * giscanner/cgobject.py: build fundamental types same way as glib
903
904         * giscanner/glibtransformer.py (_type_from_gtype): record GType
905         when constructing the Type from it
906
907         * giscanner/glibtransformer.py (_adjust_transfer): Check whether
908         the parameter is a GObject from its GType, if available.
909
910         * giscanner/glibtransformer.py (_adjust_transfer):
911         * tests/scanner/foo-1.0-expected.gir:
912         * tests/scanner/foo-1.0-expected.tgir: deduce
913         transfer-ownership from GTypes
914
915 2008-10-23  Tommi Komulainen  <tommi.komulainen@iki.fi>
916
917         * giscanner/transformer.py (_create_parameter):
918         * tests/scanner/foo-1.0-expected.gir: make varargs
919         transfer-ownership="none"
920
921 2008-10-23  Colin Walters  <walters@verbum.org>
922
923         Bug 556739 - transfer ownership
924
925         * giscanner/ast.py: Refactor Parameter/Return to share
926         common attributes.  Add transfer_inferred attribute
927         which says whether or not we made a guess.
928         * giscanner/transformer.py: Add much more extensive
929         heuristics around parameter and return transfer.
930         * giscanner/glibtransformer.py: Adjust to inspect
931         transfer_inferred.
932         * tests/*: Adjust.
933
934 2008-10-22  Tommi Komulainen  <tommi.komulainen@iki.fi>
935
936         Bug 557377 – Add test to ensure annotations survive the roundtrip via typelib
937
938         * tests/scanner/Makefile.am:
939         * tests/scanner/annotation-1.0-expected.tgir:
940         * tests/scanner/drawable-1.0-expected.tgir:
941         * tests/scanner/drawable-injected-1.0-expected.tgir:
942         * tests/scanner/foo-1.0-expected.tgir:
943         * tests/scanner/GtkFrob-1.0-expected.tgir:
944         * tests/scanner/utility-1.0-expected.tgir: Add test to ensure
945         annotations survive the roundtrip via typelib
946
947         The expectations are as currently produced by g-ir-generate,
948         comparison with the .gir files shows there are differences.
949
950 2008-10-23  Johan Bilien  <jobi@via.ecp.fr>
951
952         Bug 557468 – Support for GI_TYPELIB_PATH
953
954         * girepository/girepository.c: if the GI_TYPELIB_PATH is set, add the
955         provided paths to the global search path.
956
957 2008-10-22  Tommi Komulainen  <tommi.komulainen@iki.fi>
958
959         Bug 557379 – g-ir-generate not writing the 'abstract' attribute
960
961         * tests/scanner/drawable-1.0-expected.tgir:
962         * tests/scanner/drawable-injected-1.0-expected.tgir:
963         * tests/scanner/foo-1.0-expected.tgir:
964         * tools/generate.c (write_object_info): write 'abstract'
965         attribute for classes
966
967 2008-10-22  Lucas Rocha  <lucasr@gnome.org>
968
969         * girepository/girmodule.c, girepository/gtypelib.c,
970         girepository/girparser.[ch]: fix some build warnings.
971
972 2008-10-22  Tommi Komulainen  <tommi.komulainen@iki.fi>
973
974         Bug 557405 – Use 'allow-none' consistently
975
976         * docs/typelib-format.txt:
977         * girepository/ginfo.c (g_arg_info_may_be_null):
978         * girepository/girnode.c (g_ir_node_build_typelib):
979         * girepository/girnode.h (struct _GIrNodeParam):
980         * girepository/girparser.c (start_parameter):
981         * girepository/girwriter.c (function_generate):
982         * girepository/gtypelib.h (ArgBlob):
983         * tests/errors.gir:
984         * tests/function.gir:
985         * tools/generate.c (write_callable_info): Use 'allow-none'
986         consistently throughout
987
988 2008-10-22  Tommi Komulainen  <tommi.komulainen@iki.fi>
989
990         Bug 557092 – Callback annotations not used
991
992         * giscanner/transformer.py (_create_callback): use annotations
993         for callbacks
994         * tests/scanner/annotation.h
995         * tests/scanner/annotation-1.0-expected.gir: add tests
996
997 2008-10-21  Colin Walters  <walters@verbum.org>
998
999         * giscanner/scannerlexer.l: Don't require trailing whitespace after
1000         uncommented parameters.
1001         * tests/*: Test it.
1002
1003 2008-10-21  Colin Walters  <walters@verbum.org>
1004
1005         * girepository/girepository.c: Ensure that when doing an unversioned
1006         require, we prefer items earlier in the search path to later ones.
1007
1008 2008-10-21  Owen Taylor  <otaylor@redhat.com>
1009
1010         * giscanner/transformer.py: For string parameters allow transfer annotation
1011         to override the standard automatic guessing based on 'const'.
1012
1013 2008-10-21  Johan Bilien  <jobi@via.ecp.fr>
1014
1015         Bug 557241 – "throws" flag for functions
1016
1017         * tests/scanner/drawable-1.0-expected.gir,
1018         tests/scanner/drawable-injected-1.0-expected.gir,
1019         tests/scanner/drawable.[ch]: add simple test for throwing
1020         function (has GError ** as last argument)
1021
1022         * giscanner/ast.py: add a 'throws' flag to Function
1023         * giscanner/glibtransformer.py: if a function's last paramerter is
1024         a GError, set the 'throws' flag and remove that parameter
1025         * giscanner/girwriter.py: write out the 'throws' attribute
1026         * giscanner/girparser.py: support parsing the 'throws' attribute
1027
1028         * tests/repository/gitestthrows.c: add a simple test to check the
1029         throws flag in a typelib and invoke the function
1030
1031         * girepository/ginfo.c, girepository/girnode.[ch],
1032         girepository/girnode.h, girepository/girparser.c,
1033         girepository/girepository.h: Add and parse the GI_FUNCTION_THROWS flag
1034
1035         * girepository/ginvoke.c: if a function throws, add a GError as last
1036         arguments, and propagate the error to the invoker.
1037
1038 2008-10-21  Tommi Komulainen  <tommi.komulainen@iki.fi>
1039
1040         * giscanner/transformer.py (_create_parameters): Warn if we see
1041         annotations for unknown parameters. If .h and .c files name
1042         parameters differently, the annotations may be lost.
1043
1044 2008-10-21  Johan Dahlin  <johan@gnome.org>
1045
1046         Bug 556358 - don't use libtool internals
1047
1048         * giscanner/Makefile.am:
1049         * giscanner/libtoolimporter.py:
1050         * giscanner/sourcescanner.py:
1051         * giscanner/utils.py:
1052         Add a python meta importer and remove a libtool symlink hack.
1053
1054 2008-10-20  Andreas Rottmann  <a.rottmann@gmx.at>
1055
1056         * tests/scanner/Makefile.am (%.typelib): Set PYTHONPATH
1057         and --add-include-path appropriately when invoking the scanner.
1058         * tests/types/Makefile.am (%typelib): Likewise.
1059
1060 2008-10-20  Colin Walters  <walters@verbum.org>
1061
1062         Bug 556777 - validate properties
1063
1064         * giscanner/transformer.py: Add option to throw on unknown types.
1065         * giscanner/glibtransformer.py: Use it on properties.
1066         * tests/*: Add a test.
1067
1068 2008-10-20  Colin Walters  <walters@verbum.org>
1069
1070         * giscanner/glibast.py: Also register g variants of
1071         default_array_types.  This is not beautiful, but
1072         good alternatives aren't easy to come by.
1073         This fixes gchar ** parsing.
1074
1075 2008-10-20  Colin Walters  <walters@verbum.org>
1076
1077         * docs/typelib-format.txt, girepository/gtypelib.h:
1078         Take a bit from ObjectInfo to represent abstract flag.
1079         * giscanner/cgobject.py: Expose g_type_get_flags.
1080         * girepository/girepository.h: Add accessor.
1081         * girepository/ginfo.c: Implement it.
1082         * giscanner/ast.py: Add is_abstract flag to generic
1083         class object.
1084         * giscanner/glibast.py: Use it.
1085         * giscanner/girwriter.py: Write it.
1086         * girepository/girparser.c: Parse it.
1087         * tests/*: Test it.
1088
1089 2008-10-20  Tommi Komulainen  <tommi.komulainen@iki.fi>
1090
1091         * giscanner/girparser.py (_parse_function): don't lose
1092         'transfer-ownership' attributes when injecting, check for the
1093         correct attribute
1094
1095 2008-10-19  Johan Dahlin  <johan@gnome.org>
1096
1097         * giscanner/scannerlexer.l: Parse and ignore __asm.
1098
1099 2008-10-19  Colin Walters  <walters@verbum.org>
1100
1101         * giscanner/girparser.py: Parse array length= to ensure
1102         it doesn't get lost from --inject.
1103
1104 2008-10-17  Colin Walters  <walters@verbum.org>
1105
1106         Bug 556795 - char ** regression
1107
1108         * giscanner/transformer.py: Fix parsing of ctypes, add some
1109         comments about what's going on.
1110         * tests/*: Add a test for char **.
1111
1112 2008-10-17  Colin Walters  <walters@verbum.org>
1113
1114         Bug 556783 - change namespace handling to be more consistent
1115
1116         * giscanner/transformer.py: Eliminate usage of
1117         strip_namespace_object.  We now treat --namespace as the default
1118         --strip-prefix; however, if --strip-prefix is specified it
1119         overrides --namespace.  This applies to everything except function
1120         names, where we do also strip the namespace.
1121         * giscanner/glibtransformer.py: Remove usage of
1122         strip_namespace_object.
1123         * tests/*: Update.
1124         * tests/*: Add skeletal GtkFrob-1.0 test which has different
1125         --namespace and --strip-prefix.
1126
1127 2008-10-17  Tommi Komulainen  <tommi.komulainen@iki.fi>
1128
1129         Bug 556732 – generate gir files consistently
1130
1131         * girepository/girparser.c (start_parameter):
1132         * tests/boxed.gir:
1133         * tests/invoke/testfns-1.0.gir:
1134         * tools/generate.c (write_callable_info): write
1135         'transfer-ownership' attribute consistently with both
1136         return-value and parameter elements
1137
1138 2008-10-17  Tommi Komulainen  <tommi.komulainen@iki.fi>
1139
1140         Bug 556732 – generate gir files consistently
1141
1142         * tools/generate.c (write_callable_info): write 'direction'
1143         attribute only if other than 'in' to be consistent with
1144         girwriter.py
1145         * tests/boxed.gir:
1146         * tests/object.gir: remove direction="in" which is the default
1147
1148 2008-10-17  Tommi Komulainen  <tommi.komulainen@iki.fi>
1149
1150         Bug 556732 – generate gir files consistently
1151
1152         * giscanner/ast.py (Field): add readable and writable properties
1153         * giscanner/girparser.py (_parse_field): copy 'readable' and
1154         'writable' attributes
1155         * giscanner/transformer.py (_create_member): create fields as
1156         read-write
1157         * giscanner/glibtransformer.py (_introspect_object,
1158         _pair_class_struct): make object instance and class fields
1159         read-only
1160         * giscanner/girwriter.py (_write_field):
1161         * tools/generate.c (write_field_info): write field 'readable'
1162         and 'writable' attributes only if non-default (read-only)
1163         * girepository/girparser.c (start_field): in the absence of
1164         attributes assume fields are read-only
1165         * tests/boxed.gir:
1166         * tests/struct.gir: remove redundant readable="1" from fields
1167         * tests/scanner/foo-1.0-expected.gir:
1168         * tests/scanner/utility-1.0-expected.gir: add writable="1" to
1169         all record and union fields
1170
1171 2008-10-17  Tommi Komulainen  <tommi.komulainen@iki.fi>
1172
1173         Bug 556732 – generate gir files consistently
1174
1175         * giscanner/girwriter.py (_write_property): write properties
1176         'construct' attribute if set
1177         * tools/generate.c (write_property_info): write properties
1178         'readable' and 'writable' attributes only if non-default
1179         * tests/object.gir: add writable="0"
1180         * tests/scanner/foo-1.0-expected.gir: add construct="1"
1181
1182 2008-10-17  Johan Bilien  <jobi@via.ecp.fr>
1183
1184         * gir/glib-2.0.c: added annotations
1185
1186 2008-10-16  Johan Bilien  <jobi@via.ecp.fr>
1187
1188         * giscanner/ast.py: Also assume direction=out for size_t*, ssize_t*
1189         arguments
1190
1191 2008-10-16  Johan Bilien  <jobi@via.ecp.fr>
1192
1193         Bug 556610 – giscanner/girparser.py drops parameter options
1194
1195         * tests/scanner/drawable-injected-1.0-expected.gir,
1196         tests/scanner/DrawableAdditions.xml: added simple test for injection.
1197         * giscanner/ast.py: allow Parameter to take options in the constructor
1198         * giscanner/girparser.py: parse parameter options (transfer,
1199         direction, allow-none)
1200
1201 2008-10-16  Colin Walters  <walters@verbum.org>
1202
1203         Bug 556185 - segfault on g_callable_info_get_return_type
1204
1205         Initial patch from John Ehresman.
1206
1207         * tests/repository/*: Add a test using
1208         g_callable_info_get_return_type.  Instead of casting a
1209         GITypeInfo directly to a GIRegisteredTypeInfo, we need
1210         to call g_type_info_get_interface.
1211
1212 2008-10-16  Colin Walters  <walters@verbum.org>
1213
1214         Bug 556579 - union and struct name misresolved
1215
1216         * giscanner/transformer.py: The calls to _resolve_type_name
1217         for struct/union names was a legacy holdover from when type
1218         resolution had multiple phases.  Now it's actively harmful
1219         since we might pull in an identical name from another
1220         namespace.
1221         * tests/*: Update.
1222
1223 2008-10-16  Colin Walters  <walters@verbum.org>
1224
1225         Bug 556432 - transfer annotations and defaults
1226
1227         * giscanner/transformer.py: Canonicalize type
1228         after removing *, not before.  This ensures that
1229         guchar* is transformed to 'uint8'.
1230         Add some comments here.
1231         * giscanner/glibtransformer.py: Add _adjust_transfer
1232         phase for tweaking GObject transfers.
1233         * tests/*: test it.
1234
1235 2008-10-16  Tommi Komulainen  <tommi.komulainen@iki.fi>
1236
1237         * configure.ac: enable bunch of gcc warning CFLAGS
1238
1239 2008-10-16  Tommi Komulainen  <tommi.komulainen@iki.fi>
1240
1241         Bug 556543 – reduce compiler warnings
1242
1243         * girepository/ginfo.c:
1244         * girepository/girepository.c (register_internal,
1245         count_interfaces, find_interface, find_namespace_version,
1246         parse_version, g_irepository_require):
1247         * girepository/girmodule.c (g_ir_module_build_typelib):
1248         * girepository/girnode.c (init_stats, dump_stats,
1249         _g_irnode_init_stats, _g_irnode_dump_stats,
1250         g_ir_node_can_have_member):
1251         * girepository/girparser.c (firstpass_end_element_handler,
1252         locate_gir, parse_basic, parse_type_internal, resolve_aliases,
1253         start_alias, start_type, end_type_top, parse_include, cleanup,
1254         post_filter):
1255         * girepository/gtypelib.c (validate_function_blob, validate_enum_blob):
1256         * giscanner/giscannermodule.c (directive_get_options,
1257         type_get_child_list):
1258         * giscanner/scannerlexer.l (parse_gtkdoc):
1259         * giscanner/scannerparser.y (ctype_free):
1260         * giscanner/sourcescanner.c:
1261         * giscanner/sourcescanner.h (gi_source_scanner_parse_macros):
1262         * tests/types/gitesttypes.c:
1263         * tools/compiler.c (main):
1264         * tools/generate.c (write_repository): Remove unused variables
1265         and code, add missing includes, declarations and case
1266         statements.
1267
1268 2008-10-16  Tommi Komulainen  <tommi.komulainen@iki.fi>
1269
1270         Bug 556541 – access union members through UnionBlob rather than
1271         StructBlob
1272
1273         * girepository/ginfo.c (g_union_info_find_method): access union
1274         members through UnionBlob rather than StructBlob
1275
1276 2008-10-15  Colin Walters  <walters@verbum.org>
1277
1278         Bug 556331 - clean up includes handling
1279
1280         * tools/g-ir-scanner: Rework command line arguments; now we take
1281         --add-include-path and --include separately.
1282         * giscanner/girwriter.py: Separate name= and version= in include
1283         directives.
1284         * giscanner/ast.py: Add Include type.
1285         * giscanner/transformer.py: Cleanups to register_include now that
1286         we don't need to handle mixed filenames and relative arguments.
1287         * girepository/girparser.c: Parse name and version separately;
1288         this fixes a bug as a side effect where we weren't resolving
1289         through aliases for basic types.
1290         * girepository/girepository.c: Fix format string args.
1291         * gir/Makefile.am: Update.
1292         * tests/*: Update.
1293
1294 2008-10-15  Tommi Komulainen  <tommi.komulainen@iki.fi>
1295
1296         Bug 556434 – unhandled interface/object/... member types
1297
1298         * girepository/girnode.c (g_ir_node_check_unhandled_members,
1299         g_ir_node_build_typelib): Check all
1300         interface/object/boxed/struct/union members are processed and
1301         abort if they are not. (Mostly callbacks in structs, but also
1302         fields in interfaces.)
1303
1304 2008-10-15  Tommi Komulainen  <tommi.komulainen@iki.fi>
1305
1306         * a/girepository/girnode.c (g_ir_node_build_members,
1307         g_ir_node_build_typelib): refactor common code for processing
1308         members to a function
1309
1310 2008-10-15  Tommi Komulainen  <tommi.komulainen@iki.fi>
1311
1312         * gir/Makefile.am (check-local): check that typelib -> gir -> typelib
1313         transformation is lossless (it's not)
1314
1315 2008-10-15  Tommi Komulainen  <tommi.komulainen@iki.fi>
1316
1317         * tests/Makefile.am: fix tests to compare xml to xml instead of
1318         typelib to xml, and stop on error
1319
1320 2008-10-15  Tommi Komulainen  <tommi.komulainen@iki.fi>
1321
1322         * tools/generate.c (write_type_name, write_type_info,
1323         write_type_info, write_object_info, write_object_info,
1324         write_interface_info, write_error_domain_info): reduce code
1325         duplication
1326
1327 2008-10-15  Tommi Komulainen  <tommi.komulainen@iki.fi>
1328
1329         Bug 556174 – parse types for lists etc.
1330
1331         * girepository/girparser.c (end_type_recurse):
1332         * tests/boxed.gir:
1333         * tools/generate.c (write_type_info, write_field_info,
1334         write_callable_info, write_callable_info, write_constant_info,
1335         write_property_info): use nested <type>s for lists and hashes
1336
1337 2008-10-15  Tommi Komulainen  <tommi.komulainen@iki.fi>
1338
1339         * tests/enum.gir:
1340         * tests/object.gir: remove trailing whitespace from inside
1341         elements to match g-ir-generate output
1342
1343 2008-10-15  Tommi Komulainen  <tommi.komulainen@iki.fi>
1344
1345         * tools/generate.c (xml_printf): quote printf arguments so that
1346         we don't generate invalid XML by writing unescaped double quotes
1347         and such in attributes
1348
1349 2008-10-15  Tommi Komulainen  <tommi.komulainen@iki.fi>
1350
1351         * tools/generate.c (write_field_info, write_callable_info,
1352         write_function_info, write_callback_info, write_struct_info,
1353         write_constant_value, write_signal_info, write_vfunc_info,
1354         write_object_info, write_interface_info, write_union_info,
1355         write_repository): remove unused indent parameters, xmlwriter
1356         keeps track of necessary indentation
1357
1358 2008-10-15  Tommi Komulainen  <tommi.komulainen@iki.fi>
1359
1360         * tools/generate.c (xml_element_new, xml_element_free,
1361         xml_start_element, xml_end_element, xml_end_element_unchecked,
1362         xml_open, xml_close): Keep track of generated XML tree and
1363         handle indentation and closing tags properly.
1364         (write_field_info, write_callable_info, write_function_info,
1365         write_callback_info, write_struct_info, write_value_info,
1366         write_constant_info, write_enum_info, write_signal_info,
1367         write_vfunc_info, write_property_info, write_object_info,
1368         write_interface_info, write_error_domain_info, write_union_info,
1369         write_repository): Use xml_start_element and xml_end_element to
1370         open/close tags.
1371
1372 2008-10-15  Tommi Komulainen  <tommi.komulainen@iki.fi>
1373
1374         * tools/generate.c (xml_printf, xml_open, xml_close, xml_free):
1375         (write_type_name, write_type_info, write_field_info,
1376         write_callable_info, write_function_info, write_callback_info,
1377         write_struct_info, write_value_info, write_constant_value,
1378         write_constant_info, write_enum_info, write_signal_info,
1379         write_vfunc_info, write_property_info, write_object_info,
1380         write_interface_info, write_error_domain_info, write_union_info,
1381         write_repository): wrap all FILE access to go through simple xmlwriter
1382
1383 2008-10-15  Tommi Komulainen  <tommi.komulainen@iki.fi>
1384
1385         Bug 556400 – Fails to build on OS X 10.4
1386
1387         * configure.ac: check for functions backtrace and backtrace_symbols
1388         * girepository/girparser.c (backtrace_stderr): Comment out
1389         implementation if the functions are not available.
1390         * gcov.mak (clean-gcov, clean-gcno): always call 'find' with a
1391         directory for better portability
1392
1393 2008-10-15  Johan Bilien  <jobi@via.ecp.fr>
1394
1395         Bug 556433 – assume direction = out for int * parameters
1396
1397         * giscanner/ast.py: define a list of types for which, if passed as
1398         reference, we assume a default direction of 'out'
1399         * giscanner/transformer.py: if a type has type pointer to one of the
1400         previously defined types, and no direction is set, assume out.
1401         * tests/scanner/drawable.[ch]: added tests for guessed direction=out
1402
1403 2008-10-15  Johan Bilien  <jobi@via.ecp.fr>
1404
1405         * tests/scanner/annotation.c: fixed a few copy-paste errors
1406
1407 2008-10-14  Johan Bilien  <jobi@via.ecp.fr>
1408
1409         Bug 556323 – transfer-ownership is wrong for functions returning const
1410         char *
1411
1412         * giscanner/transformer.py: check for a const string as return value,
1413         not just const char*. Suggested by Colin Walters
1414         * tests/scanner/annotation-1.0-expected.gir: updated expected output
1415
1416 2008-10-14  Johan Bilien  <jobi@via.ecp.fr>
1417
1418         * girepository/ginfo.c, girepository/girepository.h: add
1419         g_union_info_find_method
1420
1421 2008-10-14  Colin Walters  <walters@verbum.org>
1422
1423         * tests/repository/Makefile.am: Reenable repo test.
1424         * tests/repository/gitestrepo.c: Prepend search
1425         path for $(top_builddir)/gir dir so that we don't
1426         require installation for "make check" to pass.
1427
1428 2008-10-13  Jürg Billeter  <j@bitron.ch>
1429
1430         * giscanner/glibtransformer.py:
1431         * tests/scanner/annotation-1.0-expected.gir:
1432         * tests/scanner/drawable-1.0-expected.gir:
1433         * tests/scanner/foo-1.0-expected.gir:
1434         * tests/scanner/utility-1.0-expected.gir:
1435
1436         Support fields in GObject structs
1437
1438 2008-10-13  Jürg Billeter  <j@bitron.ch>
1439
1440         * giscanner/ast.py: add signed integer and off_t to type_names
1441
1442 2008-10-12  Jürg Billeter  <j@bitron.ch>
1443
1444         * giscanner/girparser.py: Parse bits attribute of fields
1445
1446 2008-10-12  Tommi Komulainen  <tommi.komulainen@iki.fi>
1447
1448         * tests/repository/Makefile.am: run 'gitestrepo' in 'make check'
1449         * tests/repository/gitestrepo.c (main): instantiate
1450         'GCancellable' to ensure the GType is registered before using
1451         g_type_from_name()
1452
1453 2008-10-12  Johan Bilien  <jobi@via.ecp.fr>
1454
1455         * giscanner/girparser.py: actually add the parsed constant nodes
1456
1457 2008-10-12  Colin Walters  <walters@verbum.org>
1458
1459         * girepository/girepository.c: Don't cast DirEntry to Blob,
1460         actually look it up by offset.
1461
1462 2008-10-12  Johan Bilien  <jobi@via.ecp.fr>
1463
1464         * giscanner/girparser.py: parse constant nodes in gir files
1465
1466 2008-10-12  Johan Bilien  <jobi@via.ecp.fr>
1467
1468         * giscanner/transformer.py: prefix for constants have an underscore,
1469         so remove them as if they were functions, not objects.
1470
1471 2008-10-12  Johan Bilien  <jobi@via.ecp.fr>
1472
1473         * tests/scanner/foo-1.0-expected.gir: add constants to expected gir
1474         file
1475
1476 2008-10-12  Colin Walters  <walters@verbum.org>
1477
1478         Initial patch from Jani Monoses.
1479
1480         * girepository/gtypelib.c: Fix inverted test for success
1481         in version parsing.
1482
1483 2008-10-12  Tommi Komulainen  <tommi.komulainen@iki.fi>
1484
1485         * tools/generate.c (write_callable_info): use "transfer-ownership"
1486         attribute for return values
1487
1488 2008-10-12  Tommi Komulainen  <tommi.komulainen@iki.fi>
1489
1490         * tools/generate.c (write_callable_info): move "transfer" and
1491         "null-ok" attributes from <function> to <return-value> element
1492
1493 2008-10-12  Tommi Komulainen  <tommi.komulainen@iki.fi>
1494
1495         * girepository/girparser.c (start_return_value): handle
1496         "transfer-ownership" attribute
1497
1498 2008-10-12  Tommi Komulainen  <tommi.komulainen@iki.fi>
1499
1500         * girepository/girparser.c (parse_param_transfer):
1501         * tools/generate.c (write_callable_info): use "container" for
1502         container/shallow ownership transfer (not "shallow")
1503
1504 2008-10-12  Tommi Komulainen  <tommi.komulainen@iki.fi>
1505
1506         * girepository/girparser.c (parse_param_transfer,
1507         start_parameter): Refactor handling of transfer=none/shallow/full
1508         to separate function
1509
1510 2008-10-12  Tommi Komulainen  <tommi.komulainen@iki.fi>
1511
1512         Bug 556048 – Crash in g_irepository_find_by_gtype
1513
1514         * girepository/gtypelib.h (BLOB_IS_REGISTERED_TYPE): added
1515         * girepository/girepository.c (find_interface): Fix
1516         find_by_gtype case to get the type name from right offset
1517
1518 2008-10-12  Jürg Billeter  <j@bitron.ch>
1519
1520         * giscanner/girparser.py: Fix parsing transfer-ownership attribute
1521         of <return-value>
1522
1523 2008-10-12  Tommi Komulainen  <tommi.komulainen@iki.fi>
1524
1525         * girepository/gtypelib.h (RegisteredTypeBlob): make
1526         'unregistered' one bit wide as everywhere else
1527
1528 2008-10-12  Jürg Billeter  <j@bitron.ch>
1529
1530         * giscanner/glibtransformer.py:
1531         * tests/scanner/annotation-1.0-expected.gir:
1532         * tests/scanner/drawable-1.0-expected.gir:
1533         * tests/scanner/drawable.h:
1534         * tests/scanner/foo-1.0-expected.gir:
1535         * tests/scanner/utility-1.0-expected.gir:
1536
1537         Readd class records as workaround to not break Gtk typelib
1538
1539 2008-10-12  Tommi Komulainen  <tommi.komulainen@iki.fi>
1540
1541         * tests/types/Makefile.am: fix typo in gitesttypes namespace
1542
1543 2008-10-12  Jürg Billeter  <j@bitron.ch>
1544
1545         * giscanner/glibtransformer.py: Don't generate <record> elements
1546         for class structs.
1547         * tests/scanner/*: Update test cases
1548
1549 2008-10-11  Colin Walters  <walters@verbum.org>
1550
1551         Bug 552858: versioning
1552
1553         This is a big patch.  You should probably remove your installation
1554         tree to be cleaner.
1555
1556         * docs/typelib-format.txt: Add nsversion entry which holds
1557         version of namespace.
1558         * girepository/girepository.h: Add 'version' parameter to
1559         g_irepository_require.  This may be NULL.  Normally
1560         bindings should pass an explicit version though.
1561         * girepository/girepository.c: Lots of infrastructure to
1562         support versioning.  Add some more documentation.  Disallow
1563         some usage of NULL namespaces.
1564         * girepository/girmodule.c: Add version parameter.
1565         * girepository/gtypelib.c: Update header size.
1566         * giscanner/ast.py: Add version to Namespace.
1567         * giscanner/girparser.py: Parse version attribute from
1568         XML, pass to Namespace.
1569         * giscanner/girwriter.py: Write out version parameter.
1570         * giscanner/transformer.py: Clean up include registration.
1571         * tests/*: Add version attribute.
1572         * tests/invoke/invoke.c: Don't try looking up test before
1573         it's loaded in repository.
1574         * tools/generate.c: Output version parameter.
1575         * gir/Makefile.am: Add 2.0 version to .gir files.
1576
1577 2008-10-11  Colin Walters  <walters@verbum.org>
1578
1579         * giscanner/scannerlexer.l (parse_gtkdoc): Don't lose
1580         if we have mismatched parens.
1581
1582 2008-10-11  Lucas Rocha  <lucasr@gnome.org>
1583
1584         * giscanner/girparser.py (_parse_enumeration_bitfield): fix typo
1585         on 'members' variable.
1586
1587 2008-10-11  Colin Walters  <walters@verbum.org>
1588
1589         Bug 555947 - update annotations syntax
1590
1591         * giscanner/ast.py: Default to None for transfer.  Remove
1592         default transfers for container types; we require this to
1593         be specified now.
1594         * giscanner/girwriter.py: Transfer is now 'none', 'container',
1595         'full' to match repository.
1596         * giscanner/scannerlexer.l: Annotations now are parenthesized.
1597         * giscanner/transformer.py: Update for new annotations syntax.
1598         * tests/*: Update.
1599
1600 2008-10-11  Johan Bilien  <jobi@litl.com>
1601
1602         * giscanner/scannerparser.y: ignore non-UTF-8 string constants
1603
1604 2008-10-11  Johan Bilien  <jobi@litl.com>
1605
1606         Bug 552347: Parse #defines constants
1607
1608         * girepository/gtypelib.c: update the list of value_size
1609         with recently defined type tags
1610         * giscanner/scannerparser.y: brought back parsing of #defined, as
1611         present in older version
1612         * giscanner/giscannermodule.c: bind gi_source_scanner_append_filename
1613         * giscanner/girwriter.py: write out constant tags in the gir
1614         * giscanner/sourcescanner.py: add accessor for const_string
1615         * giscanner/transformer.py, giscanner/glibtransformer.py: handle
1616         constant
1617
1618 2008-10-11  Tommi Komulainen  <tommi.komulainen@iki.fi>
1619
1620         Bug 555946: Install a test module exercising all types, transfer
1621         rules, etc.
1622
1623         * configure.ac
1624         * tests/Makefile.am
1625         * tests/types/*: Add and install a test module that has functions
1626         accepting and returning most of the basic types to enable bindings
1627         implementors to more easily test their type conversion routines.
1628
1629 2008-10-11  Jürg Billeter  <j@bitron.ch>
1630
1631         Bug 552374: Const strings should be identified in the gir.
1632
1633         * giscanner/transformer.py: support string memory management
1634         * tests/scanner/foo.h: use char * and const char *
1635         * tests/scanner/foo-expected.gir: test that
1636
1637 2008-10-11  Johan Dahlin  <johan@gnome.org>
1638
1639         * giscanner/girparser.py:
1640         Also parse enums which are not glib types.
1641
1642 2008-10-11  Lucas Rocha  <lucasr@gnome.org>
1643
1644         Bug 552370: add one more test for unsigned as a type, not as
1645         a type qualifier.
1646
1647         * giscanner/ast.py: add 'uint' type name for 'unsigned'.
1648         * test/scanner/foo.h: add function which uses unsigned as a type.
1649         * test/scanner/foo-expected.gir: test that.
1650
1651 2008-10-11  Andreas Rottmann  <a.rottmann@gmx.at>
1652
1653         Bug 555712: Struct and union issues
1654
1655         * giscanner/scannerparser.y (struct_declarator): Use information
1656         provided about the bit width of a field.
1657         * giscanner/transformer.py (Transformer._create_member): Pass the
1658         symbol's const_int member to the created field (it represents the
1659         bit width).
1660         * giscanner/girwriter.py (GIRWriter._write_field): Output 'bits'
1661         field attribute, if present.
1662         * giscanner/ast.py (Field): Add 'bits' member, specifying the
1663         width in bits of the field (only relevant for bitfields).
1664         * tests/*: Updated.
1665
1666         * giscanner/transformer.py (Transformer._create_typedef_struct)
1667         (Transformer._create_typedef_union): Add calls to _create_struct()
1668         and _create_union(), respectively. This causes the scanner to
1669         generate output for fields of struct and union typedefs.
1670         * tests/*: Updated.
1671
1672 2008-10-11  Jürg Billeter  <j@bitron.ch>
1673
1674         Bug 552370: unsigned not scanned properly
1675
1676         * giscanner/scannerparser.y: combine basic types such as unsigned
1677         int and long long when scanning
1678         * tests/scanner/foo-expected.gir:
1679         * tests/scanner/foo.c: (foo_test_unsigned):
1680         * tests/scanner/foo.h: test that
1681
1682 2008-10-11  Lucas Rocha  <lucasr@gnome.org>
1683
1684         Bug 554854: The --typelib-xml and --inject options should reuse
1685         giscanner parser/writer.
1686
1687         * giscanner/ast.py: add constructor list to Struct and Union.
1688         Add new param in Return's contructor to define transfer.
1689         * giscanner/girparser.py: several additions to the parser in order
1690         to have parsing all nodes of the gir xml files.
1691         * tools/g-ir-scanner (typelib_xml_strip, inject): use gir parser
1692         and writer in --inject and --typelib-xml options.
1693         * giscanner/xmlwriter.py: ignore empty attributes instead of
1694         raising an error as this basically exposes a bug in GIRParser.
1695         This should be reverted as soon as the parser is fixed.
1696
1697 2008-10-11  Lucas Rocha  <lucasr@gnome.org>
1698
1699         Bug 552376: scanner generates wrong names for enum members when
1700         there's no defined gtype.
1701
1702         * giscanner/utils.py (strip_common_prefix): Always strip common
1703         prefix exactly up to the last "_", and not beyond.
1704         * tests/scanner/foo.h (FooEnumNoType): add FOO_ENUM_NEUF. The point
1705         here is that the first character after the last '_' should should be
1706         the same as the character in the same position on the type name.
1707         * tests/scanner/foo-expected.gir: test that
1708
1709 2008-10-10  Lucas Rocha  <lucasr@gnome.org>
1710
1711         Bug 555293: append library_paths to LPATH env variable to work
1712         around a bug in find_library when using ldconfig.
1713
1714         * tools/g-ir-scanner (main): ditto.
1715
1716 2008-10-09  Lucas Rocha  <lucasr@gnome.org>
1717
1718         * girepository/girepository.c (register_internal): fix regression on
1719         invoke test case by making sure we load the global module in the
1720         typelib when dealing with inline typelibs.
1721         * girepository/gtypelib.c: a couple of coding style fixes.
1722
1723 2008-10-06  Lucas Rocha  <lucasr@gnome.org>
1724
1725         Bug 555294: Add support for multiple shared libraries per typelib.
1726
1727         * girepository/ginvoke.c (g_function_info_invoke),
1728         girepository/ginfo.c(g_registered_type_info_get_g_type): use
1729         g_typelib_symbol instead of g_module_symbol.
1730         * girepository/girepository.h: remove g_typelib_set_module and add
1731         g_typelib_symbol.
1732         * girepository/gtypelib.[ch] (find_some_symbol, _g_typelib_init,
1733         g_typelib_new_from_memory, g_typelib_new_from_const_memory,
1734         g_typelib_free, g_typelib_symbol): chnage GTypeLib to hold a list of
1735         modules instead of just one. The symbol lookup is now abstracted
1736         behind g_typelib_symbol which tries to find the passed symbol name in
1737         one of its modules.
1738         * giscanner/girwriter.py, tools/g-ir-scanner: change scanner to read
1739         and write shared_library attribute as a comma-separated list of libs.
1740
1741 2008-10-06  Colin Walters  <walters@verbum.org>
1742
1743         * giscanner/transformer.py: Parse length= annotation as
1744         a parameter name, not a raw int.
1745         * tests/*: Update.
1746
1747 2008-10-03  Colin Walters  <walters@verbum.org>
1748
1749         Bug 551744: Non-GObject types aren't aggregating ctors and methods
1750
1751         * girepository/gtypelib.c: Allow ctors/methods on struct,union,
1752         and boxed.
1753         * giscanner/glibtransformer.py: Ditto, and GLibBoxed is also a
1754         registered type.
1755         * tests/*: Extend.
1756
1757 2008-10-03  Colin Walters  <walters@verbum.org>
1758
1759         Bug 554576: scan problem with ev_selection_render_selection()
1760
1761         * giscanner/transformer.py: Only do type resolution once we've
1762         scanned all types.  What could happen before is that we'd strip
1763         the namespace from local type "EvSelection" => Selection, and
1764         then later pull a "Selection" from some other namespace because
1765         we hadn't yet seen the local EvSelection.  This could come
1766         down to hash table ordering and other things so not easy
1767         to write a test for.
1768
1769 2008-10-03  Lucas Rocha  <lucasr@gnome.org>
1770
1771         * giscanner/girwriter.py (_parser_member): fix the last parameter of
1772         GLibEnumMember constructor as it should be the enum member nick.
1773
1774 2008-10-02  Colin Walters  <walters@verbum.org>
1775
1776         Bug 552961: remove this parameter for methods
1777
1778         * giscanner/glibtransformer.py: Delete this parameter; it is
1779         redundant.
1780         * girepository/ginvoke.c: Insert this parameter for methods.
1781         * girepository/gtypelib.c: Remove no longer needed verification of
1782         method this parameter.
1783         * tests/*: Update.
1784
1785 2008-09-30  Dan Winship  <danw@gnome.org>
1786
1787         Bug 554490: g-ir-scanner gets confused by '\\'
1788
1789         * giscanner/scannerlexer.l (chartext, stringtext): fix use of
1790         backslashes so it will correctly parse '\\' and "\\"
1791
1792         * tests/scanner/annotation.c: add a use of '\\' to make sure that
1793         this stays fixed
1794
1795         * giscanner/glibtransformer.py (GLibTransformer.count_type): typo
1796
1797 2008-10-02  Colin Walters  <walters@verbum.org>
1798
1799         bug 552393: Note variadic functions
1800
1801         * giscanner/scannerparser.y: Parse ellipsis.  Refactor grammar
1802         to use parameter_list directly.
1803         * giscanner/sourcescanner.h: Add ellipsis csymbol type.
1804         * giscanner/ast.py: Add Varargs type.
1805         * giscanner/transformer.py: Check for ellipsis symbol, transform
1806         to varargs type.
1807         * girepository/girnode.h: Add varargs flag to in-memory nodes.
1808         Parse varargs functions, but filter them out before we start
1809         compiling the typelib.
1810
1811 2008-10-02  Colin Walters  <walters@verbum.org>
1812
1813         Bug 554632: type tag for GType
1814
1815         * girepository/girepository.h, girepository/girepository.c:
1816         Add type tag for GType - it's a special type we don't want
1817         to resolve to just "long".
1818         * docs/typelib-format.txt: Update.
1819         * girepository/girparser.c: Parse it.
1820         * giscanner/glibtransformer.py: Ensure we don't put GType in
1821         the GObject.gir.
1822         * tools/generate.c: Remove hardcoded type list.
1823         * test/* update.
1824
1825 2008-09-30  Dan Winship  <danw@gnome.org>
1826
1827         Bug 554521: scanner generates wrong names for enum members with
1828         full type name prefix
1829
1830         * giscanner/utils.py (strip_common_prefix): Fix this to strip the
1831         right amount when the entire "first" string is a prefix of
1832         "second"
1833
1834         * tests/scanner/foo.h (FooEnumFullname):
1835         * tests/scanner/foo-expected.gir: test that
1836
1837 2008-09-29  Colin Walters  <walters@verbum.org>
1838
1839         Bug 552380: Array parameters should be marked in the gir
1840
1841         * giscanner/ast.py: Default char** to utf8[], and guchar* to
1842         uint8[].  Add Array, List, and Map subclasses of Type;
1843         these types can be generic.  Return transfer defaults
1844         to true if return value is string or container type.
1845         Delete Sequence type.
1846         * giscanner/scannerlexer.l: Syntax change for annotations;
1847         use <> since it's more readable.
1848         * giscanner/girwriter.py: Write out these changes.
1849         * giscanner/girparser.py: Parse them.
1850         * giscanner/transformer.py: Have a defined set of
1851         both list and map types.  When creating a type,
1852         check if the ctype we've parsed is one of them,
1853         if so create a container type subclass as appropriate.
1854         * girepository/girparser.c: Parse in generic types.
1855         * tests/*: Update.
1856
1857 2008-09-27  Colin Walters  <walters@verbum.org>
1858
1859         * tools/g-ir-scanner: Add --inject option.
1860
1861 2008-09-25  Colin Walters  <walters@verbum.org>
1862
1863         Remove non-repository types from GIR
1864
1865         * giscanner/ast.py: The canonical name is 'utf8', not
1866         'string'.
1867         * giscanner/glibast.py: A few more glib type mappings.
1868         * girepository/girparser.c: We only parse repository types.
1869         * tests/*.gir: Update.
1870
1871 2008-09-23  Colin Walters  <walters@verbum.org>
1872
1873         Bug 552566: Add time_t type
1874
1875         We need a type for time_t since it's special in C, and just
1876         mapping it to long precluded bindings from handling it
1877         in a nice way.
1878
1879 2008-09-19  Colin Walters  <walters@verbum.org>
1880
1881     Bug 552390: Handle capitialization like "DBus" more robustly
1882
1883     The to_underscores function was designed for use against prefixed
1884     names; we need a separate function which will convert names like
1885     DBusFoo into dbus_foo, not d_bus_foo.
1886
1887 2008-09-19  Colin Walters  <walters@verbum.org>
1888
1889     Add check to make sure we're not hitting out unresolved types
1890
1891     Validate the "this" argument for methods
1892
1893     Remove heuristic matching of methods to classes based on prefix
1894
1895     It was a broken hack that dated from when we handled underscoring
1896     and capitalization conventions less well.
1897
1898 2008-09-18  Colin Walters  <walters@verbum.org>
1899
1900     Bug 552384: Use SHLIB_SUFFIX intead of G_MODULE_SUFFIX for Darwin
1901
1902     On Darwin, the suffix for installed shared libraries (.dylib) is
1903     different from loadable modules (.so).  We use a bit of magic shell
1904     script from Behdad Esfahbod to figure out the right suffix.
1905
1906 2008-09-15  Johan Dahlin  <johan@gnome.org>
1907
1908         * giscanner/sourcescanner.py (SourceType.type_qualifier): Add
1909         a wrapper for type_qualifier as well.
1910
1911 2008-09-15  Colin Walters  <walters@verbum.org>
1912
1913         http://bugzilla.gnome.org/show_bug.cgi?id=552065
1914
1915         * giscanner/ast.py: Add deprecation attributes.
1916         * giscanner/girwriter.py: Write out deprecation data.
1917         * girepository/girparser.c: Relax parsing; deprecated
1918         attribute now includes freeform string.
1919         * giscanner/scannerlexer.l: Parse Deprecated.
1920         * giscanner/transformer.py: Look for deprecated attribute
1921         on functions.
1922         * tests/scanner/*: Add a Deprecated test.
1923
1924 2008-09-14  Tor Lillqvist  <tml@novell.com>
1925
1926         * tests/scanner/Makefile.am (%.typelib): Use $(EXEEXT).
1927
1928 2008-09-14  Colin Walters  <walters@verbum.org>
1929
1930         * giscanner/glibtransformer.py: Ignore functions with
1931         leading _.
1932
1933 2008-09-12  Colin Walters  <walters@verbum.org>
1934
1935         * giscanner/glibtransformer.py: Accept Gtk.Type as GType.
1936
1937 2008-09-12  Colin Walters  <walters@verbum.org>
1938
1939         * giscanner/ast.py: Bind pid_t to INT for vte.
1940
1941 2008-09-12  Colin Walters  <walters@verbum.org>
1942
1943         * giscanner/girparser.py: Parse c:type for boxed records/unions.
1944         * giscanner/glibast.py: Avoid overwriting ctype.
1945         * giscsanner/transformer.py: Try resolving types using the GType names.
1946
1947 2008-09-12  Colin Walters  <walters@verbum.org>
1948
1949         * giscanner/minixpath.py: Code to run an "XPath"
1950         assertion against an XML tree, taken from
1951         gir-repository/gir/tests.py.
1952         * giscanner/Makefile.am: Ship it.
1953         * tools/g-ir-scanner: Add --xpath-assertions option.
1954         * gir/GLib-assertions.txt: Add a few assertions.
1955         * gir/Makefile.am: Run them.
1956
1957 2008-09-11  Colin Walters  <walters@verbum.org>
1958
1959         http://bugzilla.gnome.org/show_bug.cgi?id=551737
1960
1961         * giscanner/transformer.py: Fix strip_namespace_func to only strip
1962         prefix if it ends with _.  Tweak callback stripping to determine
1963         based on presence of _ whether we need to use strip_namespace_func
1964         or strip_namespace_object.
1965
1966 2008-09-09  Owen Taylor  <otaylor@redhat.com>
1967
1968         * docs/typelib-format.txt: Wether => Whether
1969
1970 2008-09-08  Colin Walters  <walters@verbum.org>
1971
1972         * girepository/girparser.c: Default to "readable" for properties.
1973         * giscanner/ast.py: Add readable, writable etc.
1974         * giscanner/girwriter.py: Writ them.
1975         * giscanner/glibtransformer.py: Inspect them.
1976         * tests/*: Update.
1977
1978 2008-09-07  Colin Walters  <walters@verbum.org>
1979
1980         * giscanner/cgobject.py: Add comment.
1981
1982 2008-09-07  Colin Walters  <walters@verbum.org>
1983
1984         * giscanner/cgobject.py: Also call g_thread_init.
1985
1986 2008-09-07  Colin Walters  <walters@verbum.org>
1987
1988         * giscanner/transformer.py: Fix regression by not
1989         stripping prefix before stripping namespace for unions
1990         either.
1991
1992 2008-09-06  Colin Walters  <walters@verbum.org>
1993
1994         * giscanner/transformer.py: If a namespace contains
1995         multiple caps, try stripping both gnomekeyring_ and
1996         gnome_keyring_.
1997
1998 2008-09-07  Johan Dahlin  <johan@gnome.org>
1999
2000         Bug 551162 – giscanner does not recognize asm and __asm__
2001         * giscanner/scannerlexer.l:
2002         Patch by Jani Monoses.
2003
2004 2008-09-06  Colin Walters  <walters@verbum.org>
2005
2006         * girepository/girnode.c: Allow gtype_name
2007         and gtype_init in struct and union.
2008         * girepository/girparser.c: Parse glib:
2009         boxed bits for both structure and union.
2010         * girepository/gtypelib.c: Don't barf
2011         if structure is boxed.
2012         * giscanner/girparser.py: Parse new XML
2013         format.
2014         * giscanner/girwriter.py: Write out new
2015         XML format.
2016         * giscanner/glibast.py: Define new classes
2017         which are both Boxed and Struct/Union, as
2018         well as an "Other" for everything else.
2019         * giscanner/glibtransformer.py: Handle
2020         boxed types specially; we try to merge
2021         them with a struct/union if one exists,
2022         otherwise fall back to generic boxed.
2023         * tests/*: Update.
2024         * tools/generate.c: Write out new format.
2025
2026 2008-09-06  Johan Dahlin  <johan@gnome.org>
2027
2028         * giscanner/grealpath.h: Include stdlib.h
2029
2030         * docs/g-ir-generate.1: Remove leading %
2031
2032 2008-09-01  Colin Walters  <walters@verbum.org>
2033
2034         * girepository/girparser.c: Look at c:type to determine
2035         whether or not an item is a pointer.
2036
2037 2008-09-01  Johan Dahlin  <johan@gnome.org>
2038
2039         * tests/scanner/Makefile.am:
2040         Set PYTHONPATH so the scanner can run
2041         even if you didn't install anything.
2042
2043 2008-09-01  Johan Dahlin  <johan@gnome.org>
2044
2045         * configure.ac:
2046         Post-release version bump
2047
2048 === 0.5.0 ===
2049 2008-09-01  Johan Dahlin  <johan@gnome.org>
2050
2051         * NEWS: Update
2052
2053 2008-08-31  Colin Walters  <walters@verbum.org>
2054
2055         * giscanner/glibtransformer.py: Quiet info
2056         prints for now.
2057
2058 2008-08-31  Johan Dahlin  <johan@gnome.org>
2059
2060         * configure.ac:
2061         Bump version to 0.5.0
2062
2063 2008-08-31  Colin Walters  <walters@verbum.org>
2064
2065         * giscanner/glibtransformer.py: Follow aliases to ensure
2066         we don't get a constructor returning a basic type.
2067         * giscanner/transformer.py: Add function to follow aliases.
2068         * tests/ Update.
2069
2070 2008-08-31  Johan Dahlin  <johan@gnome.org>
2071
2072         * giscanner/scannerlexer.l:
2073         * giscanner/scannerparser.y:
2074         * giscanner/sourcescanner.h:
2075         * giscanner/sourcescanner.py:
2076         Parse GCC extensions in the parser instead of just undeffing them
2077         in the pre-processor.
2078
2079 2008-08-31  Johan Dahlin  <johan@gnome.org>
2080
2081         * giscanner/glibtransformer.py:
2082         Clean up a huge if. Do not add methods or constructors
2083         to enums/flags.
2084         * giscanner/utils.py:
2085         second might be longer than first, check that.
2086
2087 2008-08-31  Johan Dahlin  <johan@gnome.org>
2088
2089         * gir/Makefile.am:
2090         Add a GModule.gir
2091
2092 2008-08-31  Colin Walters  <walters@verbum.org>
2093
2094         * girepository/girparser.c: Don't lose if we
2095         have no includedirs
2096
2097 2008-08-31  Colin Walters  <walters@verbum.org>
2098
2099         * giscanner/glibtransformer.py: Look for libtool
2100         library in current directory
2101         * tests/scanner - Update.
2102
2103 2008-08-30  Colin Walters  <walters@verbum.org>
2104
2105         * docs/typelib-format.txt: Add a guint32
2106         for dependencies.
2107         * gir/Makefile.am: Dep on Makefile
2108         * girepository/ginfo.c:
2109         * girepository/girepository.c: Clean up
2110         default typelib handling; remove global
2111         default_typelib variable.  Ensure we handle
2112         NULL repository in more places.
2113         Support dependency resolution.
2114         Support lazy loading.
2115         * girepository/girepository.h: Remove
2116         g_irepository_unregister; we don't support
2117         unloading typelibs since really they're
2118         process-global.  Update for lazy loading
2119         API.
2120         * girepository/girmodule.c: Use g_new0.
2121         Add dependencies to GirModule.
2122         * girepository/girparser.c: Parse dependencies.
2123         * girepository/gtypelib.c: Add 4 bytes for
2124         dependencies.
2125         * tests/Makefile.am: Kill off gobject.gir,
2126         it conflicts with the real one.
2127         * tests/object.gir: Dep on GObject.
2128         * tools/generate.c: Take --includedir
2129         argument to say which directories to search
2130         for typelibs.  Print out dependencies.
2131
2132 2008-08-30  Colin Walters  <walters@verbum.org>
2133
2134         * giscanner/glibtransformer.py: Reduce warning noise.
2135
2136 2008-08-29  Colin Walters  <walters@verbum.org>
2137
2138         * girepository/ginfo.c: Add some assertions regarding
2139         refcounts, just to be sure.
2140         * giscanner/glibtransformer.py: Blacklist a few more
2141         odd Gio methods.
2142
2143 2008-08-29  Colin Walters  <walters@verbum.org>
2144
2145         * giscanner/glibtransformer.py: Blacklist a few
2146         functions that use GError oddly
2147
2148 2008-08-29  Colin Walters  <walters@verbum.org>
2149
2150         * girepository/gtypelib.c: Don't crash if no
2151         shlib is embedded
2152
2153 2008-08-29  Colin Walters  <walters@verbum.org>
2154
2155         * girepository/girparser.c: Handle chains of aliases
2156         across modules by ensuring we fully qualify aliases
2157         from includes.
2158
2159 2008-08-29  Colin Walters  <walters@verbum.org>
2160
2161         * girepository/girparser.c: Don't search aliases
2162         for basic types.
2163
2164 2008-08-29  Colin Walters  <walters@verbum.org>
2165
2166         * girepository/girparser.c: Rewrite type parsing
2167         to handle both GLib parsing case as well as correctly
2168         handling GLib.List and friends.  Don't try to treat
2169         e.g. ListStore as a List.
2170
2171 2008-08-29  Colin Walters  <walters@verbum.org>
2172
2173         * girepository/gtypelib.c: Add more context
2174         during validate.
2175
2176 2008-08-29  Colin Walters  <walters@verbum.org>
2177
2178         * giscanner/glibtransformer.py: Add some informative
2179         logging messages in corner cases.  Be sure we use
2180         the most recent node set instead of a cache
2181         when generating result set.
2182         * tests/: Remove duplicated bits in expected girs
2183         * girepository/girparser.c: Accept both List (for
2184         compiling GLib) and GLib.List (what the scanner
2185         generates).
2186         * tests/ - Update.
2187         * tools/generate.c: Generate canonical form.
2188
2189 2008-08-29  Johan Dahlin  <johan@gnome.org>
2190
2191         * giscanner/config.py.in:
2192         Use datarootdir instead of datadir to avoid
2193         an autoconf warning.
2194
2195 2008-08-29  Johan Dahlin  <johan@gnome.org>
2196
2197         * README:
2198         * TODO:
2199         * examples/gdk-pixbuf.gidl:
2200         * libffi.pc.in:
2201         Update and remove old cruft.
2202
2203 2008-08-29  Johan Dahlin  <johan@gnome.org>
2204
2205         * Makefile.am:
2206         * docs/g-ir-compiler.1:
2207         * docs/g-ir-generate.1:
2208         * docs/g-ir-scanner.1:
2209         Add man pages for the generator and compiler.
2210
2211 2008-08-29  Johan Dahlin  <johan@gnome.org>
2212
2213         * docs/g-ir-scanner.1: Document
2214
2215         * giscanner/Makefile.am:
2216         * giscanner/gidlparser.py:
2217         * giscanner/gidlwriter.py:
2218         * tools/g-ir-scanner:
2219         Remove gidl support.
2220
2221 2008-08-28  Colin Walters  <walters@verbum.org>
2222
2223         * tests/scanner/Makefile.am: Pass the right
2224         --includedir args.  Add a Makefile dep.
2225         * tools/compiler.c: Pass includedirs down.
2226         * girepository/girparser.c: Actually put
2227         includedirs in context, pass down.  Fix
2228         locate_gir.
2229
2230 2008-08-28  Colin Walters  <walters@verbum.org>
2231
2232         * gir/Makefile.am: Use --includedir
2233         * girepository/girparser.c: Recursively parse
2234         includes to pull in aliases and expand them.
2235         We need this to avoid putting unknown names in
2236         the typelibs.
2237         * tools/compiler.c: Add --includedir option.
2238         * giscanner/ast.py: Map size/ssize to types
2239         too.
2240
2241 2008-08-28  Tor Lillqvist  <tml@novell.com>
2242
2243         Make check now runs successfully on Windows.
2244
2245         * tools/compiler.c (write_out_typelib): Use binary mode for output
2246         file on Windows.
2247
2248         * girepository/girnode.c: Don't print NULL strings.
2249
2250         * tests/invoke/Makefile.am
2251         * tests/scanner/Makefile.am: Use -no-undefined on Windows to
2252         convince libtool to build shared libraries.
2253
2254         * tests/invoke/invoke.c: Don't needlessly include <dlfcn.h>. Use
2255         g_assert() instead of printing out expected errors.
2256
2257 2008-08-28  Tor Lillqvist  <tml@novell.com>
2258
2259         * girepository/gtypelib.h: Change type of bitfield fields from
2260         guint to the most suitable smaller type. This makes the struct
2261         sizes match the ones on Linux that the sanity check expects when
2262         using gcc -mms-bitfields on Windows.
2263
2264 2008-08-28  Johan Dahlin  <johan@gnome.org>
2265
2266         * Makefile.am:
2267         * configure.ac:
2268         * gir/Makefile.am:
2269         * giscanner/Makefile.am:
2270         * tests/Makefile.am:
2271         * tests/scanner/Makefile.am:
2272         Make distcheck pass.
2273
2274 2008-08-27  Johan Dahlin  <johan@gnome.org>
2275
2276         * giscanner/Makefile.am:
2277         Only send in -no-undefined on Win32 as it breaks on MacOS X.
2278
2279 2008-08-27  Tor Lillqvist  <tml@novell.com>
2280
2281         Make g-ir-scanner work on Windows. Still problems with the typelib
2282         code. Changes okayed by jdahlin.
2283
2284         * configure.ac: Check for Windows, set Automake conditional
2285         OS_WIN32. Change backslashes to forward slashes in pyexecdir to
2286         avoid shell quoting issues
2287         
2288         * girepository/Makefile.am: Use -no-undefined so that libtool
2289         agrees to build a shared library on Windows.
2290
2291         * girepository/girparser.c (backtrace_stderr): No backtrace() on
2292         Windows. Empty implementation on Windows so far.
2293
2294         * girepository/gtypelib.c (g_typelib_check_sanity): Give more
2295         informative error message for the assertion failures. Tell also
2296         what the expected size of the struct is. Check all sizes first and
2297         fail afterwards if at least one size was different from expected.
2298
2299         * tools/Makefile.am: Reorder libraries into proper logical
2300         dependency order.
2301
2302         * tools/generate.c: Don't include <dlfcn.h>, not used.
2303
2304         * giscanner/Makefile.am: On Windows, link with the Python library,
2305         and install the module DLL as _giscanner.pyd. Remove the
2306         unnecessary import library and libtool library that libtool has
2307         installed.
2308
2309         * giscanner/scannerlexer.l: Recognize the gcc __attribute__ syntax
2310         and just skip it. Recognize also two "l" suffixes for long long
2311         constants. Recognize also __inline__.
2312
2313         * giscanner/grealpath.h (g_realpath): Implement on Windows, using
2314         GetFullPathName(). As such, GetFullPathName() does more than the
2315         UNIX realpath(). It also changes relative paths into absolute
2316         paths. But for our purposes that shouldn't matter.
2317
2318         * giscanner/giscannermodule.c (pygi_source_scanner_parse_file): On
2319         Windows the file descriptor passed to us is from Python. Python
2320         Python2.5 uses the msvcr71.dll C library, while mingw-built code
2321         uses msvcrt.dll. On Windows, file descriptors are specific to
2322         which C library is used. So we must find out what underlying OS
2323         handle corresponds to the file descriptor Python passes us, and
2324         then make that into a file descriptor valid for the C library this
2325         code uses.
2326
2327         * giscanner/sourcescanner.py (_parse): Don't need to bypass
2328         __attribute__ as the lexer now handles it. The definition as empty
2329         was ineffective for mingw anyway, as mingw's _mingw.h undefines
2330         __attribute__. Close the temp file before unlinking it.
2331
2332         * giscanner/cgobject.py: Use correct library name for the gobject
2333         DLL on Windows.
2334
2335         * gir/Makefile.am: Must pass the full basename of the DLLs on
2336         Windows to g-ir-scanner. It's a bit ugly that we have to "know"
2337         that the names of the GLib DLLs are like libglib-2.0-0.dll, but in
2338         reality they won't change, until there is a GLib 3, and then also
2339         the Unix code here needs changing.
2340
2341         Must pass CPPFLAGS to g-ir-scanner when building GLib.gir so that
2342         libintl.h is found.
2343
2344 2008-08-26  Colin Walters  <walters@verbum.org>
2345
2346         * girepository/girepository.c: Search
2347         $DATADIR/girepository instead of
2348         $DATADIR/gitypelibs; this naming makes
2349         it clearer that e.g. jgir can install
2350         .jars there.
2351         * gir/Makefile.am: Install there.
2352
2353 2008-08-26  Colin Walters  <walters@verbum.org>
2354
2355         * girepository/gtypelib.c (_g_typelib_init): Also
2356         use G_MODULE_SUFFIX instead of hardcoding .so.
2357
2358 2008-08-26  Colin Walters  <walters@verbum.org>
2359
2360         * girepository/gtypelib.c (_g_typelib_init): Free
2361         string in the right place.
2362
2363 2008-08-26  Colin Walters  <walters@verbum.org>
2364
2365         * girepository/gtypelib.c (_g_typelib_init): Handle
2366         both .la and .so names; this works better in the
2367         uninstalled library case.
2368
2369 2008-08-26  Johan Dahlin  <johan@gnome.org>
2370
2371         * gir/Makefile.am:
2372         * giscanner/Makefile.am:
2373         * giscanner/cgobject.py:
2374         * giscanner/config.py.in:
2375         * giscanner/sourcescanner.py:
2376         Avoid undeffing __GNUC__, instead define
2377         __attribute__ & friends. Remove glibconfig.h hack.
2378         This makes gobject-introspection work better on
2379         MacOS X, Thanks to Richard Hult for kind help.
2380
2381 2008-08-25  Colin Walters  <walters@verbum.org>
2382
2383         * giscanner/glibtransformer.py: Always print
2384         statistics.
2385
2386 2008-08-25  Colin Walters  <walters@verbum.org>
2387
2388         * giscanner/glibtransformer.py: Skip over
2389         interfaces we don't know.
2390
2391 2008-08-25  Colin Walters  <walters@verbum.org>
2392
2393         * girepository/girparser.c: Parse new implements
2394         syntax, drop gapi one.
2395         * tests/object.gir: Update.
2396         * tools/generate.c: Generate new syntax.
2397
2398 2008-08-25  Colin Walters  <walters@verbum.org>
2399
2400         * giscanner/ast.py: Add interfaces property
2401         to class.
2402         * giscanner/girwriter.py: Write out implemented
2403         interfaces.
2404         * giscanner/glibtransformer.py: Introspect
2405         implemented interfaces.
2406         * tests/scanner/*: Make FooObject implement
2407         FooInterface.
2408
2409 2008-08-25  Colin Walters  <walters@verbum.org>
2410
2411         * giscanner/glibtransformer.py: More correctly pair
2412         methods; if we have a symbol that starts with
2413         e.g. hippo_canvas look for a matching HippoCanvas
2414         class before accepting e.g. HippoCanvasImage.
2415
2416 2008-08-24  Colin Walters  <walters@verbum.org>
2417
2418         * tools/g-ir-scanner: Filter out unknown options from
2419         pkg-config files.
2420
2421 2008-08-24  Colin Walters  <walters@verbum.org>
2422
2423         * giscanner/glibtransformer.py: Fail with better
2424         error if we can't find library.
2425
2426 2008-08-24  Colin Walters  <walters@verbum.org>
2427
2428         * tools/g-ir-scanner: Use subprocess instead of
2429         commands, works on Windows and avoids the evil
2430         shell on Unix.
2431
2432 2008-08-24  Colin Walters  <walters@verbum.org>
2433
2434         * giscanner/glibtransformer.py: Skip over
2435         g_object_get_type from GLib trunk.
2436
2437 2008-08-24  Colin Walters  <walters@verbum.org>
2438
2439         * girepository/girepository.c (g_irepository_require): 
2440         Don't open shared library here; we already do it
2441         in gtypelib.c.
2442
2443 2008-08-24  Colin Walters  <walters@verbum.org>
2444
2445         * girepository/gtypelib.c: Add context stack so
2446         when we get an error we can print out nicely
2447         where it is.
2448
2449 2008-08-24  Johan Dahlin  <johan@gnome.org>
2450
2451         * girepository/girparser.c (start_glib_boxed), (start_function),
2452         (start_field), (start_alias):
2453         Refactor a couple of parsing functions to be simpler to follow.
2454         Avoid huge ifs.
2455
2456 2008-08-24  Johan Dahlin  <johan@gnome.org>
2457
2458         * girepository/girparser.c (start_function):
2459         Remove left-over code, checking type of function.
2460
2461 2008-08-23  Colin Walters  <walters@verbum.org>
2462
2463         * giscanner/config.py: Define DATADIR.
2464         * giscanner/transformer.py: Look in DATADIR.
2465
2466 2008-08-23  Colin Walters  <walters@verbum.org>
2467
2468         * girepository/gtypelib.c: Check constructor
2469         returns.
2470         * girepository/girnode.c: Small tweaks.
2471         * girepository/ginfo.c: Calculate signature offsets
2472         more robustly.
2473         * girepository/girparser.c: Remove duplicate
2474         start_boxed.
2475         * giscanner/glibtransformer.py: Avoid marking
2476         functions which return a basic type as
2477         constructors.
2478
2479 2008-08-23  Colin Walters  <walters@verbum.org>
2480
2481         * girepository/girparser.c: Ignore <include>.
2482         * giscanner/girparser.py: Parse them.
2483         * giscanner/girwriter.py: Generate them.
2484         * giscanner/transformer.py: Process <include>
2485         recursively.  Don't require full path for
2486         includes, look in {$XDG_DATA_DIRS}/gir.
2487         * tools/g-ir-scanner: Pass through includes.
2488         * Makefile.am: Remove extra --include
2489         args for scanner.
2490         * *-expected.gir: Add expected includes.
2491
2492 2008-08-23  Johan Dahlin  <johan@gnome.org>
2493
2494         * tests/scanner/Makefile.am:
2495         * tests/scanner/annotation-expected.gir:
2496         * tests/scanner/drawable-expected.gir:
2497         Avoid duplication in the Makefile, regenerate with new
2498         namespaces (same as the filename)
2499
2500 2008-08-22  Colin Walters  <walters@verbum.org>
2501
2502         * girepository/girnode.c: Don't hardcode integers,
2503         use GITypeTag.
2504
2505 2008-08-22  Johan Dahlin  <johan@gnome.org>
2506
2507         * giscanner/sourcescanner.py:
2508         Check for ../gobject-introspection-1.0.pc.in to determine
2509         if we run installed or uninstalled.
2510
2511 2008-08-22  Johan Dahlin  <johan@gnome.org>
2512
2513         * gir/Makefile.am:
2514         * giscanner/sourcescanner.py:
2515         Send in undefs/defines via writing it directly to stdin
2516         of cpp instead of via arguments.
2517
2518 2008-08-22  Colin Walters  <walters@verbum.org>
2519
2520         * tools/generate.c, tools/compiler.c: Default
2521         to --raw.
2522         * all Makefile.am: Update.
2523
2524 2008-08-22  Colin Walters  <walters@verbum.org>
2525
2526         * girepository/girparser.c: Pass through
2527         recursive types.  Avoid overwriting errors.
2528         * giscanner/xmlwriter.py: Always write the
2529         XML header.
2530         * tests/*.gir: Adjust.
2531         * tests/scanner/Makefile.am: Build typelibs,
2532         and generate XML from those.  Once we
2533         have a good diff mechanism...
2534         * tests/scanner/*-expected.gir: Add XML
2535         header.
2536         * tools/g-ir-scanner: Accept --typelib-xml
2537         option.
2538         * tools/generate.c: Better defaults for transfer.
2539
2540 2008-08-22  Johan Dahlin  <johan@gnome.org>
2541
2542         * configure.ac:
2543         * gir/Makefile.am:
2544         * giscanner/Makefile.am:
2545         * giscanner/config.py.in:
2546         * giscanner/sourcescanner.py:
2547         Use the generated glibconfig.h for all scanner invokations.
2548         Rename it to glibconfig-scanner.h and install it.
2549         Add a config.py which so far contains the include dir.
2550
2551 2008-08-22  Johan Dahlin  <johan@gnome.org>
2552
2553         * gir/Makefile.am:
2554         Replace glibconfig.h with our own, do some replacement
2555         for CPP/C features we do not support
2556
2557 2008-08-22  Colin Walters  <walters@verbum.org>
2558
2559         * tools/generate.c (write_callable_info): Fix unref
2560         sequence.
2561
2562 2008-08-22  Colin Walters  <walters@verbum.org>
2563
2564         * gobject-introspection-1.0.pc.in: Add g-ir-generate.
2565         * tests/Makefile.am: Support $(DEBUG)
2566         * tools/generate.c: Do immediate close tags if no
2567         sub-elements.
2568
2569 2008-08-21  Colin Walters  <walters@verbum.org>
2570
2571         * tests/scanner/drawable-expected.gir,
2572         * tests/scanner/drawable.c,
2573         * tests/scanner/drawable.h:
2574         Add a method.
2575
2576 2008-08-21  Colin Walters  <walters@verbum.org>
2577
2578         * giscanner/glibtransformer.py: Compute prefix
2579         by searching through the symbol for bits
2580         rather than going directly from ctype; this fixes
2581         webkit_ namespace.
2582
2583 2008-08-21  Colin Walters  <walters@verbum.org>
2584
2585         * giscanner/glibtransformer.py: Also try squashing
2586         underscores from namespace, fixes webkit_web_view_new.
2587
2588 2008-08-21  Colin Walters  <walters@verbum.org>
2589
2590         * giscanner/glibtransformer.py: More ctor work,
2591         avoid having gtk_window_group_new end up under
2592         GtkWindow.
2593
2594 2008-08-21  Colin Walters  <walters@verbum.org>
2595
2596         * giscanner/glibtransformer.py: Much simpler approach
2597         of mapping uscored names to classes.
2598         * giscanner/utils.py: Remove unnecessary function.
2599
2600 2008-08-21  Johan Dahlin  <johan@gnome.org>
2601
2602         * girepository/girepository.c (g_irepository_require):
2603         Plug memory leak and avoid using freed memory.
2604         Resolve the whole module path, here as well.
2605
2606 2008-08-21  Colin Walters  <walters@verbum.org>
2607
2608         * giscanner/glibtransformer.py: Look up all permutations
2609         of class names when scanning methods/ctors based on
2610         the prefix instead of using the return value.  This
2611         associates gtk_window_new with the right class.
2612
2613 2008-08-21  Colin Walters  <walters@verbum.org>
2614
2615         * girepository/girmodule.c (g_ir_module_build_typelib): 
2616         Revert change to increment header_size; we do that in
2617         write_string.
2618
2619 2008-08-21  Colin Walters  <walters@verbum.org>
2620
2621         * girepository/girnode.c (write_string): Tweak to
2622         use UINT instead of INT.  Not likely to matter.
2623         * girepository/girmodule.c (g_ir_module_build_typelib):
2624         Add to header_offset as well for header strings
2625         to match what write_string does.
2626         * girepository/gtypelib.c: Replace is_name with
2627         validate_name, which more strongly validates and
2628         handles errors in a better way.  Update all callers.
2629         * giscanner/glibtransformer.py: Handle constructors
2630         better.
2631
2632 2008-08-21  Johan Dahlin  <johan@gnome.org>
2633
2634         * gir/Makefile.am (typelibs_DATA): Build and 
2635         install the Gio.typelib too
2636
2637         * girepository/gtypelib.c (_g_typelib_init):
2638         Use g_module_build_path to resolve the shlib name
2639
2640 2008-08-21  Colin Walters  <walters@verbum.org>
2641
2642         * gir/Makefile.am: CLEANFILES typelibs too.
2643
2644 2008-08-21  Johan Dahlin  <johan@gnome.org>
2645
2646         * giscanner/glibtransformer.py:
2647         Do not send .la files through find_library.
2648
2649 2008-08-21  Colin Walters  <walters@verbum.org>
2650
2651         * girepository/girparser.c (g_irepository_require):
2652         Fix one small leak in error case.
2653
2654 2008-08-21  Johan Dahlin  <johan@gnome.org>
2655
2656         * gir/Makefile.am:
2657         Parse glibconfig.h as well and install the compiled
2658         typelib
2659
2660 2008-08-21  Johan Dahlin  <johan@gnome.org>
2661
2662         * gir/Makefile.am:
2663         * giscanner/glibtransformer.py:
2664         * tools/g-ir-scanner:
2665         Do not hard-core library names in the Makefile, reuse
2666         ctypes find_library instead.
2667
2668 2008-08-21  Johan Dahlin  <johan@gnome.org>
2669
2670         * girepository/girparser.c (resolve_aliases):
2671         Remove compilation warnings
2672
2673 2008-08-21  Johan Dahlin  <johan@gnome.org>
2674
2675         * girepository/girepository.c (g_irepository_require):
2676         Rewrap and fix double free bug by leaking a bit.
2677
2678 2008-08-20  Colin Walters  <walters@verbum.org>
2679
2680         * girepository/girepository.c: Add new function
2681         g_irepository_get_typelib_path which tells
2682         us from where we loaded a namespace.
2683
2684 2008-08-20  Colin Walters  <walters@verbum.org>
2685
2686         * tests/scanner/*-expected.gir: Adjust for
2687         added shared-library.
2688         * giscanner/giwriter.py: Make pylint happy.
2689
2690 2008-08-20  Colin Walters  <walters@verbum.org>
2691
2692         * girepository/girmodule.c (g_ir_module_build_typelib):
2693         Calculate size correctly, avoid use-after-free.
2694
2695 2008-08-20  Colin Walters  <walters@verbum.org>
2696
2697         * girepository/girepository.c: Remove
2698         g_irepository_register_file in favor of
2699         g_irepository_require.  There are two
2700         possible deployment scenarios for typelibs:
2701         First, separate in $DATADIR/gitypelibs/.  Second,
2702         they may be embedded in shlibs.  However since
2703         the first is now the normal case, the API is
2704         optimized around it.
2705
2706         Refactor internals to look up typelibs for
2707         namespaces just-in-time, but we expect
2708         consumers to call g_irepository_require.
2709
2710         Also, add some docs.  No one has died from that
2711         before.
2712         * gir/Makefile.am: Need --library for glib.
2713         * giscanner/girwriter.py: Write out shared-library.
2714         * tools/g-ir-writer: Take the first --library
2715         argument as the target of shared-library.  In
2716         the future we should make this nicer with pkg-config
2717         probably.
2718
2719 2008-08-20  Colin Walters  <walters@verbum.org>
2720
2721         * girepository/girparser.py: And parse them.
2722
2723 2008-08-20  Johan Dahlin  <johan@gnome.org>
2724
2725         * giscanner/glibast.py: Add gshort/gushort types
2726
2727 2008-08-20  Colin Walters  <walters@verbum.org>
2728
2729         * gir/Makefile.am: Rename .gir files using GI namespace.
2730         * girepository/girepository.c: Use XDG_DATA_DIRS for
2731         looking up typelibs.  Also typelibs are now suffixed
2732         with .typelib.
2733         * tests/invoke/Makefile.am: Only use metadata.
2734         * girepository/Makefile.am: Remove unnecessary include.
2735         * tests/scanner/Makefile.am: Update using GI namespaces
2736         for scanner includes.
2737
2738 2008-08-20  Colin Walters  <walters@verbum.org>
2739
2740         * girepository/transformer.py: Suppress aliases whose
2741         name is a builtin.
2742         * girepository/ast.py: Define some more aliases.
2743
2744 2008-08-20  Colin Walters  <walters@verbum.org>
2745
2746         * girepository/girparser.c: Avoid alias infloops.
2747
2748 2008-08-20  Colin Walters  <walters@verbum.org>
2749
2750         * tests/scanner/foo-expected.gir: Fix expected list type.
2751
2752 2008-08-20  Johan Dahlin  <johan@gnome.org>
2753
2754         * giscanner/glibtransformer.py (GLibTransformer._resolve_type_name): 
2755         Add a workaround for #548689.
2756         We can now compile gtk!
2757
2758 2008-08-20  Colin Walters  <walters@verbum.org>
2759
2760         * giscanner/glibtransformer.py: Try to look up
2761         aliases using the c:type too.
2762
2763 2008-08-20  Colin Walters  <walters@verbum.org>
2764
2765         * girepository/girparser.c: Parse union fields.
2766
2767 2008-08-20  Johan Dahlin  <johan@gnome.org>
2768
2769         * giscanner/ast.py: Make time_t an alias for long
2770
2771         * gir/gio-2.0-good.gir:
2772         * gir/glib-2.0-good.gir:
2773         * gir/gobject-2.0-good.gir:
2774         Regnerate
2775         * giscanner/glibtransformer.py:
2776         Do not delete Class structures, we need them in gdk/gtk.
2777         * tests/scanner/drawable-expected.gir:
2778         * tests/scanner/foo-expected.gir:
2779         * tests/scanner/utility-expected.gir:
2780         Update tests.
2781
2782 2008-08-20  Johan Dahlin  <johan@gnome.org>
2783
2784         * tests/scanner/Makefile.am:
2785         * tests/scanner/annotation-expected.gir:
2786         * tests/scanner/annotation.c (annotation_object_class_init),
2787         (annotation_object_init), (annotation_object_method),
2788         (annotation_object_in), (annotation_object_out),
2789         (annotation_object_inout), (annotation_object_inout2),
2790         (annotation_object_inout3), (annotation_object_calleeowns),
2791         (annotation_object_calleesowns), (annotation_object_get_strings),
2792         (annotation_object_with_voidp), (annotation_object_get_objects),
2793         (annotation_object_create_object), (annotation_object_allow_none):
2794         * tests/scanner/annotation.h:
2795         * tests/scanner/foo-expected.gir:
2796         * tests/scanner/foo.c:
2797         * tests/scanner/foo.h:
2798         Split out annotation tests out of foo
2799
2800 2008-08-20  Johan Dahlin  <johan@gnome.org>
2801
2802         * tests/scanner/Foo-expected.gir:
2803         * tests/scanner/Makefile.am:
2804         * tests/scanner/foo-expected.gir:
2805         * tests/scanner/foo-object.h:
2806         * tests/scanner/foo.c:
2807         Foo->foo, foo-object.h -> foo.h
2808
2809 2008-08-20  Johan Dahlin  <johan@gnome.org>
2810
2811         * tests/scanner/Foo-expected.gir:
2812         * tests/scanner/Makefile.am:
2813         * tests/scanner/drawable-expected.gir:
2814         * tests/scanner/drawable.c (test_drawable_class_init),
2815         (test_drawable_init):
2816         * tests/scanner/drawable.h:
2817         * tests/scanner/foo-object.h:
2818         * tests/scanner/foo.c (foo_boxed_method):
2819         Move the drawable parts out of Foo to its own test.
2820
2821 2008-08-20  Johan Dahlin  <johan@gnome.org>
2822
2823         * tests/scanner/Foo-expected.gir:
2824         * tests/scanner/foo-object.h:
2825         * tests/scanner/foo.c (foo_drawable_class_init),
2826         (foo_drawable_init):
2827         Add a based on GdkDrawable which generates
2828         a broken gir.
2829
2830 2008-08-19  Colin Walters  <walters@verbum.org>
2831
2832         * giscanner/transformer.py: Don't try
2833         to strip prefix before namespace.
2834
2835 2008-08-19  Johan Dahlin  <johan@gnome.org>
2836
2837         * giscanner/transformer.py:
2838         * tests/scanner/Foo-expected.gir:
2839         * tests/scanner/foo-object.h:
2840         Add support for typedef void foo type of
2841         aliases.
2842
2843 2008-08-19  Johan Dahlin  <johan@gnome.org>
2844
2845         * giscanner/ast.py:
2846         * giscanner/girwriter.py:
2847         * giscanner/glibtransformer.py:
2848         * giscanner/transformer.py:
2849         * tests/scanner/Foo-expected.gir:
2850         Add basic support for union, base the code much
2851         on Struct. Add a testcase.
2852
2853 2008-08-19  Johan Dahlin  <johan@gnome.org>
2854
2855         * tests/scanner/Foo-expected.gir:
2856         * tests/scanner/foo-object.h:
2857         Add a union testcase which the compiler currently
2858         barfs at.
2859
2860 2008-08-19  Johan Dahlin  <johan@gnome.org>
2861
2862         * gobject-introspection-1.0.pc.in:
2863         Add a g_ir_compiler variable
2864
2865 2008-08-19  Colin Walters  <walters@verbum.org>
2866
2867         * giscanner/ast.py: Rework types to be more closely
2868         based on GITypeTag.
2869         * giscanner/girparser.py: Parse more bits.
2870         * giscanner/girwriter.py: Write sequences in a new
2871         way that specifies container type.
2872         * giscanner/glibast.py: Adjust for ast.py changes,
2873         add 'ctype' property to GLibObject and GLibInterface
2874         so we can look things up by it later.
2875         * gicanner/transformer.py: Names is new class holding
2876         the various namespaces we manage.  Do not confuse
2877         with Namespace which is toplevel XML node effectively.
2878         Rework all type resolution to go through
2879         _resolve_type_name_1.
2880         * giscanner/glibtransformer.py: Raise UnknownTypeError
2881         instead of ValueError for cleanliness.  Add Unresolved
2882         class to mark types whose parent we haven't seen yet.
2883         Use new Names object from transformer.py.
2884         Correctly look up parent=.
2885         Fix type validation to handle sequences.
2886         * tests/scanner/Foo-expected.gir: Update for sequence
2887         work, int instead of int32.
2888         * tools/g-ir-scanner: Add --noclosure option
2889         * gir/Makefile.am: Use --noclosure by default for
2890         GLib/GObject.
2891
2892 2008-08-18  Johan Dahlin  <johan@gnome.org>
2893
2894         * gir/gio-2.0-good.gir:
2895         * gir/glib-2.0-good.gir:
2896         * gir/gobject-2.0-good.gir:
2897         Regenerate.
2898
2899 2008-08-18  Johan Dahlin  <johan@gnome.org>
2900
2901         * giscanner/ast.py:
2902         * giscanner/girparser.py:
2903         * giscanner/girwriter.py:
2904         * giscanner/glibast.py:
2905         * giscanner/glibtransformer.py:
2906         * giscanner/transformer.py:
2907         * tests/scanner/Foo-expected.gir:
2908         * tests/scanner/foo-object.h:
2909         * tests/scanner/utility-expected.gir:
2910         * tests/scanner/utility.h:
2911         Redo type resolving and validation.
2912         Add a couple of new tests.
2913         Patch mostly written by Colin.
2914
2915 2008-08-18  Johan Dahlin  <johan@gnome.org>
2916
2917         * gir/Makefile.am:
2918         * giscanner/girparser.py:
2919         Set ctype of enums
2920         * giscanner/transformer.py:
2921         Improve enum parsing for enums without a GType.
2922         Make flags/enum references to other girs work
2923         * giscanner/utils.py:
2924         Simplify this a bit
2925         * tests/scanner/Makefile.am:
2926         * tests/scanner/foo-object.h:
2927         * tests/scanner/utility-expected.gir:
2928         * tests/scanner/utility.h:
2929         Add a new test for external enum references
2930
2931 2008-08-18  Johan Dahlin  <johan@gnome.org>
2932
2933         * docs/global-module-registry.txt: Update
2934
2935         * tests/array.gir: Update with new type proposal
2936
2937         * girepository/girepository.c (g_type_tag_to_string):
2938         * girepository/girepository.h:
2939         * girepository/girnode.c (g_ir_node_get_full_size_internal),
2940         (find_entry_node):
2941         * girepository/girnode.h:
2942         Make enum serializing functions public. Clean up some whitespace.
2943
2944 2008-08-17  Johan Dahlin  <johan@gnome.org>
2945
2946         * docs/global-module-registry.txt:
2947         Add a document for an on disk module registry format
2948
2949 2008-08-17  Johan Dahlin  <johan@gnome.org>
2950
2951         * gir/Makefile.am:
2952         * gir/gio-2.0-good.gir:
2953         Add a gio gir.
2954
2955 2008-08-17  Johan Dahlin  <johan@gnome.org>
2956
2957         * gir/Makefile.am:
2958         * gir/glib-2.0-good.gir:
2959         * gir/gobject-2.0-good.gir:
2960         * giscanner/cgobject.py:
2961         * giscanner/glibtransformer.py:
2962         Regenerate GObject & GType.
2963         Avoid warnings when generating gobject-2.0.gir.
2964         Introspect a little more, and skip *_get_type functions.
2965
2966 2008-08-17  Colin Walters  <walters@verbum.org>
2967
2968         * gir/glib-2.0.gir, gir/gobject-2.0.gir:
2969         Rename to -good, always generate during build.
2970         * gir/Makefile.am: Ensure .gir files dep on
2971         all scanner sources.
2972         * Makefile.am: Switch build order to ensure
2973         the scanner is ready before we do gir/.
2974         * tools/g-ir-scanner: Look for .git too.
2975
2976 2008-08-17  Johan Dahlin  <johan@gnome.org>
2977
2978         * girepository/gtypelib.c (validate_enum_blob):
2979         * giscanner/glibtransformer.py:
2980         * giscanner/transformer.py:
2981         Remove resolve_possible_typedefs, it was unused.
2982         Allow multiple enum values of the sample value in an enum,
2983         since it's actually pretty common.
2984         Register enums so they can be resolved too.
2985
2986 2008-08-16  Johan Dahlin  <johan@gnome.org>
2987
2988         * giscanner/girparser.py:
2989         Parse enumeration/bitfield.
2990
2991 2008-08-16  Johan Dahlin  <johan@gnome.org>
2992
2993         * giscanner/girparser.py:
2994         Parse boxed types.
2995
2996 2008-08-16  Johan Dahlin  <johan@gnome.org>
2997
2998         * giscanner/glibtransformer.py:
2999         Resolve type names for alias targets
3000         * giscanner/transformer.py:
3001         Skip FILE* parameters fow now
3002
3003 2008-08-16  Johan Dahlin  <johan@gnome.org>
3004
3005         * gir/glib-2.0.gir:
3006         * gir/gobject-2.0.gir:
3007         Regenerate
3008
3009         * tests/scanner/Makefile.am:
3010         parser -> scanner
3011
3012 2008-08-15  Colin Walters  <walters@verbum.org>
3013
3014         * giscanner/glibtransformer.py: Explicitly construct
3015         new list, since we're deleting as we iterate.
3016         Don't delete all structures which end in Class; just
3017         ones which have a paired GObject.
3018         Fix printing of type warning.
3019         * giscanner/transformer.py: Make strip_namespace_object
3020         be the identity function if it doesn't match the 
3021         namespace.
3022
3023 2008-08-15  Colin Walters  <walters@verbum.org>
3024
3025         * giscanner/cgobject.py: Define yet more argument
3026         prototypes; fix prototype for g_type_fundamental.
3027
3028 2008-08-14  Johan Dahlin  <johan@gnome.org>
3029
3030         * tests/Makefile.am:
3031         * tests/constant.gir:
3032         * tests/gobject.gir:
3033         * tests/struct.gir:
3034         * tools/generate.c (write_struct_info):
3035         Fix generator for constant/gobject/struct
3036
3037 2008-08-14  Johan Dahlin  <johan@gnome.org>
3038
3039         * tests/Makefile.am:
3040         * tests/enum.gir:
3041         * tools/generate.c (write_enum_info):
3042         Fix generation of enum/bitfields
3043
3044 2008-08-14  Johan Dahlin  <johan@gnome.org>
3045
3046         * girepository/girparser.c (start_field), (start_constant),
3047         (start_type), (end_element_handler):
3048         Clear up constant parsing
3049
3050         * tests/object.gir:
3051         Update
3052
3053         * tools/generate.c (write_callable_info), (write_function_info),
3054         (write_callback_info), (write_constant_info), (write_signal_info),
3055         (write_vfunc_info), (write_property_info), (write_object_info),
3056         (write_interface_info):
3057         Constants/Signals are handled now.
3058
3059 2008-08-14  Johan Dahlin  <johan@gnome.org>
3060
3061         * girepository/girparser.c (start_type):
3062         Don't require c:type.
3063         * tests/Makefile.am:
3064         Test boxed.gir
3065         * tests/boxed.gir:
3066         Update, remove parts we don't support yet
3067         * tests/roundtrips.sh:
3068         Remove
3069         * tools/generate.c (write_type_info), (write_field_info),
3070         (write_callable_info), (write_struct_info):
3071         Make it emit proper gir.
3072
3073 2008-08-14  Johan Dahlin  <johan@gnome.org>
3074
3075         * giscanner/transformer.py:
3076         New internal function for adding a new node.
3077
3078 2008-08-14  Johan Dahlin  <johan@gnome.org>
3079
3080         * gir/Makefile.am:
3081         Define an internal _H_ variable so we skip parsing both
3082         i18n headers, only one is needed.
3083         * gir/glib-2.0.gir:
3084         Add the glib-2.0.gir too.
3085         * giscanner/glibast.py:
3086         Add gconstpointer as an alias for ANY
3087         * giscanner/transformer.py:
3088         Do not lower case enumeration names per se.
3089         Skip functions which has parameters called 'va_list'
3090
3091 2008-08-14  Colin Walters  <walters@verbum.org>
3092
3093         * giscanner/transformer.py: Comment data structures.
3094         Also squash pointers in resolve_type_name to correspond
3095         with what we do for params.
3096         * giscanner/glibtransformer.py: Print warnings in more
3097         situations.  Rework checks for method/constructor to
3098         look up in our GType database instead of just checking
3099         for *.   Avoid generating <record> for GObject which
3100         duplicate the <class>.
3101         * gir/Makefile.am: Generate glib-2.0.gir and gobject-2.0.gir
3102         in here.
3103
3104 2008-08-14  Johan Dahlin  <johan@gnome.org>
3105
3106         * giscanner/girwriter.py:
3107         * giscanner/glibast.py:
3108         * giscanner/glibtransformer.py:
3109         * giscanner/transformer.py:
3110         * misc/pyflakes.py:
3111         * tests/Makefile.am:
3112         Add pyflakes.py and run it in make check.
3113         Update the source code to fix the errors reported by
3114         pyflakes.
3115
3116 2008-08-14  Johan Dahlin  <johan@gnome.org>
3117
3118         * giscanner/ast.py:
3119         * giscanner/girparser.py:
3120         * giscanner/glibast.py:
3121         * giscanner/glibtransformer.py:
3122         Refactor the parser a bit.
3123         Add parent type to interfaces and update callsites.
3124
3125 2008-08-14  Johan Dahlin  <johan@gnome.org>
3126
3127         * giscanner/glibtransformer.py:
3128         * giscanner/utils.py:
3129         Refactor a bit, avoid isinstance and add a method
3130         for each type we parse.
3131
3132 2008-08-14  Johan Dahlin  <johan@gnome.org>
3133
3134         * giscanner/ast.py:
3135         * giscanner/girparser.py:
3136         * giscanner/glibtransformer.py:
3137         * tests/Makefile.am:
3138         Run pep8.py in make check, fix old errors.
3139
3140 2008-08-13  Colin Walters  <walters@verbum.org>
3141
3142         * giscanner/girparser.py: Parse records.
3143
3144 2008-08-13  Colin Walters  <walters@verbum.org>
3145
3146         * gir/Makefile.am: Install again.
3147         * gir/gobject-2.0.gir: Add some more bits.
3148
3149 2008-08-13  Colin Walters  <walters@verbum.org>
3150
3151         * gir/gobject-2.0.gir: Use correct namespace, add GType.
3152         * giscanner/girparser.py: Handle aliases.
3153         * giscanner/transformer.py: Record aliases.  Make resolver
3154         functions public; we now call into these explicitly from
3155         glibtransformer.  Handle resolving aliases.
3156         * giscanner/glibtransformer.py: Separate our internal namespace
3157         from included ones.  Call up into transformer's resolver functions.
3158
3159 2008-08-13  Johan Dahlin  <johan@gnome.org>
3160
3161         * girepository/girnode.c (g_ir_node_get_full_size_internal):
3162         * girepository/girparser.c (start_class):
3163         * giscanner/glibtransformer.py:
3164         Allow get_type to be None, set a get_type for GInitiallyUnowned too.
3165
3166 2008-08-13  Johan Dahlin  <johan@gnome.org>
3167
3168         * giscanner/cgobject.py:
3169         Register GInitiallyUnowned
3170         * giscanner/girwriter.py:
3171         * giscanner/glibtransformer.py:
3172         Special case GObject/GInitially owned as they are a bit special to use.
3173
3174 2008-08-13  Colin Walters  <walters@verbum.org>
3175
3176         * tests/scanner/Foo-expected.gir, tests/scanner/utility-expected.gir:
3177         Object is in GObject namespace.
3178
3179 2008-08-13  Colin Walters  <walters@verbum.org>
3180
3181         * giscanner/girparser.py: Fix processing of functions
3182         from last commit.
3183
3184 2008-08-13  Colin Walters  <walters@verbum.org>
3185
3186         * giscanner/girparser.py: Parse more than just <class.
3187         * giscanner/glibtransformer.py: Put aliases in a separate
3188         data structure since their name is not canonicall.
3189         * giscanner/transformer.py: Handle resolving type names
3190         from includes.
3191
3192 2008-08-13  Johan Dahlin  <johan@gnome.org>
3193
3194         * tools/g-ir-scanner:
3195         Allow multiple libraries
3196         * giscanner/glibtransformer.py:
3197         Rename load_library to add_library, traverse over all libraries
3198         when trying to resolve a function
3199
3200 2008-08-12  Colin Walters  <walters@verbum.org>
3201
3202         * giscanner/transformer.py: Record typedefs as <alias> elements.
3203           Also attempt to look up types in external namespaces.
3204         * giscanner/girwriter.py: Write them.
3205         * giscanner/glibtransformer.py: Rework resolver using real instanceof
3206         checks.  Resolve interface methods and properties.
3207         * tests/scanner/foo-object.h: Add a method with typedef.
3208         * tests/scanner/Foo-expected.gir: Update.
3209         * girepository/girnode.c: Debug tweaks.
3210         * girepository/girparser.c: Make a first pass through the XML where we
3211         record all the aliases.  This lets us resolve them as we go through the
3212         second pass.
3213         * gir/Makefile.am: Don't install gobject-2.0.gir; we want that to come
3214         from gir-repository.
3215
3216 2008-08-12  Colin Walters  <walters@verbum.org>
3217
3218         * giscanner/glibtransformer.py: Resolve typedefs (e.g. AtkAttributeSet -> GSList).
3219         Correctly do subclasseing in 2nd pass resolution.  Handle callbacks in structure
3220         fields.
3221         * giscanner/transformer.py: Record typedefs and expose public API for resolving
3222         them.
3223         * tests/scanner/Foo-expected.gir: Fix expected callback types.
3224
3225 2008-08-12  Colin Walters  <walters@verbum.org>
3226
3227         * giscanner/glibtransformer.py: Also transform object properties.
3228
3229 2008-08-12  Colin Walters  <walters@verbum.org>
3230
3231         * giscanner/glibtransformer.py: Also transform callbacks
3232         and structure field types.
3233         * tests/scanner/Fooe-expected.gir: Update to expect correct
3234         names for callbacks and structs.
3235
3236 2008-08-12  Colin Walters  <walters@verbum.org>
3237
3238         * girepository/girparser.c: Handle 'any'.
3239         * tests/scanner/Foo-expected.gir, tests/scanner/foo-object.h:
3240         Add test for void *.
3241
3242 2008-08-12  Colin Walters  <walters@verbum.org>
3243
3244         * giscanner/glibtransformer.py: We need to do type
3245         resolution in a second pass after we've seen all the
3246         enums, records, etc.
3247
3248 2008-08-12  Colin Walters  <walters@verbum.org>
3249
3250         * tests/scanner/Foo-expected.gir, tests/scanner/foo-object.h:
3251         Add enum return value.
3252         * giscanner/glibtransformer.py: Transform function return types
3253         too.
3254
3255 2008-08-12  Colin Walters  <walters@verbum.org>
3256
3257         * tests/scanner/Makefile.am: Dep .gir files on scanner
3258         sources too.  Also remove @ so we see scanner invocations.
3259
3260 2008-08-12  Colin Walters  <walters@verbum.org>
3261
3262         * girepository/girparser.c, girepository/gtypelib.c,
3263         girepository/gtypelib.h, girepository/girnode.c:
3264         Remove usage of (GAPI-oriented) TypeTag in favor of
3265         GITypeTag from girepository.h.
3266
3267 2008-08-10  Colin Walters  <walters@verbum.org>
3268
3269         * tests/roundtrips.sh: Use the correct tests.
3270
3271 2008-08-10  Colin Walters  <walters@verbum.org>
3272
3273         * giscanner/cgobject.py: Declare/wrap a few more functions.
3274         Fix parameter types for g_object_new and g_type_fundamental.
3275
3276 2008-08-10  Colin Walters  <walters@verbum.org>
3277
3278         * giscanner/cgobject.py: Add new decorator @gwrap which forces
3279         us to declare types for both return value and parameters.  The
3280         ctypes default of 'int' is bad because it hides 32/64 bit
3281         problems.  Convert all existing functions to use it.
3282
3283 2008-08-09  Johan Dahlin  <johan@gnome.org>
3284
3285         * giscanner/__init__.py:
3286         * giscanner/ast.py:
3287         * giscanner/cgobject.py:
3288         * giscanner/gidlparser.py:
3289         * giscanner/gidlwriter.py:
3290         * giscanner/girparser.py:
3291         * giscanner/girwriter.py:
3292         * giscanner/glibast.py:
3293         * giscanner/glibtransformer.py:
3294         * giscanner/odict.py:
3295         * giscanner/sourcescanner.py:
3296         * giscanner/transformer.py:
3297         * giscanner/utils.py:
3298         * giscanner/xmlwriter.py:
3299         * tools/g-ir-scanner:
3300
3301         PEP8ify
3302
3303 2008-08-09  Johan Dahlin  <johan@gnome.org>
3304
3305         * relaxng/api.xml:
3306         * relaxng/c-types.xml:
3307         * relaxng/g-types.xml:
3308         * relaxng/relaxng.rng:
3309         * relaxng/util.xml:
3310         Remove outdated relaxng schemas.
3311
3312 2008-08-09  Johan Dahlin  <johan@gnome.org>
3313
3314         * *.[ch]:
3315         Rename metadata to typelib in variable names,
3316         comments and apis.
3317
3318 2008-08-09  Johan Dahlin  <johan@gnome.org>
3319
3320         * tools/scanner.c:
3321         * tools/scanner.h:
3322         Remove old C scanner, which got rewritten in python.
3323
3324 2008-08-09  Johan Dahlin  <johan@gnome.org>
3325
3326         * girepository/Makefile.am:
3327         * tools/Makefile.am:
3328         * tools/girmodule.c:
3329         * tools/girmodule.h:
3330         * tools/girnode.c:
3331         * tools/girnode.h:
3332         * tools/girparser.c:
3333         * tools/girparser.h:
3334         * tools/girwriter.c:
3335         * tools/girwriter.h:
3336         Move shared *.[ch] files to girepository from tools
3337
3338 2008-08-09  Johan Dahlin  <johan@gnome.org>
3339
3340         * tests/Makefile.am:
3341         * tests/array.test:
3342         * tests/boxed.test:
3343         * tests/constant.test:
3344         * tests/enum.test:
3345         * tests/errors.test:
3346         * tests/function.test:
3347         * tests/gobject.test:
3348         * tests/interface.test:
3349         * tests/object.test:
3350         * tests/struct.test:
3351         * tests/types.test:
3352         * tests/union.test:
3353         * tests/xref1.test:
3354         * tests/xref2.test:
3355         Rename *.test to *.gir
3356
3357 2008-08-09  Johan Dahlin  <johan@gnome.org>
3358
3359         * configure.ac:
3360         * tests/Makefile.am:
3361         * tests/parser/Foo-expected.gir:
3362         * tests/parser/Makefile.am:
3363         * tests/parser/foo-object.h:
3364         * tests/parser/foo.c:
3365         * tests/parser/utility-expected.gir:
3366         * tests/parser/utility.c:
3367         * tests/parser/utility.h:
3368         * tests/scanner/Makefile.am:
3369         Rename tests/parser to test/scanner
3370
3371 2008-08-08  Colin Walters  <walters@verbum.org>
3372
3373         * tests/roundtrips.sh: Use local .gir files again.
3374
3375 2008-08-08  Colin Walters  <walters@verbum.org>
3376
3377         * tests/invoke/Makefile.am: .gir file depends on libtool
3378         library.
3379
3380 2008-08-08  Colin Walters  <walters@verbum.org>
3381
3382         * tools/girnode.c: Pass through parent node so we can
3383         print the node whose child is NULL, if that occurs.
3384
3385 2008-08-08  Johan Dahlin  <johan@gnome.org>
3386
3387         * tests/Makefile.am:
3388         Disable roundtrip tests which are not yet working
3389         * tests/invoke/testfns.gir:
3390         Rewrite as gir.
3391
3392 2008-08-08  Johan Dahlin  <johan@gnome.org>
3393
3394         * giscanner/girwriter.py:
3395         type -> ntype
3396         * giscanner/glibast.py:
3397         * giscanner/glibtransformer.py:
3398         Swap order of members, to keep it consistent with
3399         base enum class
3400
3401 2008-08-08  Johan Dahlin  <johan@gnome.org>
3402
3403         * girepository/gtypelib.c (validate_header):
3404         * girepository/gtypelib.h:
3405         * giscanner/ast.py:
3406         * giscanner/girwriter.py:
3407         * giscanner/sourcescanner.c (gi_source_symbol_ref),
3408         (gi_source_symbol_unref):
3409         * tests/array.test:
3410         * tests/boxed.test:
3411         * tests/constant.test:
3412         * tests/enum.test:
3413         * tests/errors.test:
3414         * tests/function.test:
3415         * tests/gobject.test:
3416         * tests/interface.test:
3417         * tests/invoke/Makefile.am:
3418         * tests/invoke/testfns.xml:
3419         * tests/object.test:
3420         * tests/parser/Makefile.am:
3421         * tests/roundtrips.sh:
3422         * tests/struct.test:
3423         * tests/types.test:
3424         * tests/union.test:
3425         * tests/xref1.test:
3426         * tests/xref2.test:
3427         * tools/Makefile.am:
3428         * tools/compiler.c (main):
3429         * tools/generate.c (write_callable_info), (write_function_info),
3430         (write_repository):
3431         * tools/gidlmodule.c:
3432         * tools/gidlmodule.h:
3433         * tools/gidlnode.c:
3434         * tools/gidlnode.h:
3435         * tools/gidlparser.c:
3436         * tools/gidlparser.h:
3437         * tools/gidlwriter.c:
3438         * tools/gidlwriter.h:
3439         * tools/scanner.c (create_node_from_gtype),
3440         (create_node_from_ctype), (g_igenerator_process_properties),
3441         (g_igenerator_process_signals), (g_igenerator_create_object),
3442         (g_igenerator_create_interface), (g_igenerator_create_boxed),
3443         (g_igenerator_create_enum), (g_igenerator_create_flags),
3444         (g_igenerator_process_function_symbol),
3445         (g_igenerator_process_unregistered_struct_typedef),
3446         (g_igenerator_process_struct_typedef),
3447         (g_igenerator_process_union_typedef),
3448         (g_igenerator_process_enum_typedef),
3449         (g_igenerator_process_function_typedef),
3450         (g_igenerator_process_constant), (g_igenerator_process_symbols),
3451         (g_igenerator_add_module), (g_igenerator_add_include_idl):
3452         Merge in the gir-compiler branch.
3453         Thanks to Philip and Colin for their help.
3454
3455 2008-07-26  Colin Walters  <walters@verbum.org>
3456
3457         * tools/Makefile.am (bin_PROGRAMS): Install g-idl-compiler
3458         and g-idl-generate to go along with how we're changing this
3459         module to be installed.
3460         * gobject-introspection-1.0.pc.in: Set up Cflags and Libs.
3461
3462 2008-07-24  Colin Walters  <walters@verbum.org>
3463
3464         * girepository/girepository.c (g_irepository_register): Add
3465         environment variable G_IREPOSITORY_VERBOSE so we can print
3466         out what we're doing.
3467         * girepository/girepository.c (g_irepository_register_file): 
3468         Add GError error message to g_debug call.
3469
3470 2008-07-08  Jürg Billeter  <j@bitron.ch>
3471
3472         * giscanner/glibast.py:
3473
3474         Fix typo
3475
3476 2008-06-21  Johan Dahlin  <jdahlin@async.com.br>
3477
3478         * giscanner/girparser.py (GIRParser._parse_api): Ignore a few
3479         more tags
3480
3481 2008-06-20  Johan Dahlin  <jdahlin@async.com.br>
3482
3483         * giscanner/ast.py:
3484         * giscanner/girwriter.py:
3485         * giscanner/transformer.py:
3486         * tests/parser/Foo-expected.gir:
3487         * tests/parser/foo-object.h:
3488         * tests/parser/foo.c (foo_object_allow_none):
3489         Add support for gtk-doc annotations for allow-none.
3490         Add test case.
3491
3492 2008-06-19  Johan Dahlin  <jdahlin@async.com.br>
3493
3494         * giscanner/ast.py:
3495         * giscanner/girwriter.py:
3496         * giscanner/glibast.py:
3497         * giscanner/glibtransformer.py:
3498         * giscanner/transformer.py:
3499         * tests/parser/Foo-expected.gir:
3500         Start using abstract type instead of the raw C types.
3501         Register a bunch of glib types we care about.
3502
3503 2008-06-19  Rob Taylor  <rob.taylor@codethink.co.uk>
3504
3505         * AUTHORS:
3506         Update authors
3507
3508 2008-06-08  Philip Van Hoof  <pvanhoof@gnome.org>
3509
3510         * girepository/girepository.c:
3511         * girepository/gtypelib.c:
3512         * girepository/ginfo.c:
3513         * girepository/ginvoke.c:
3514         * girepository/girepository.h:
3515         * girepository/gtypelib.h:
3516         * girepository/gmetadata.c:
3517         * girepository/Makefile.am:
3518         * girepository/gmetadata.h:
3519         * tools/compiler.c:
3520         * tools/gidlmodule.c:
3521         * tools/gidlnode.c
3522         * tools/generate.c:
3523         * tools/gidlmodule.h:
3524         * tools/gidlparser.c:
3525
3526         Renamed GMetadata to GTypelib
3527
3528 2008-06-07  Johan Dahlin  <jdahlin@async.com.br>
3529
3530         * giscanner/xmlwriter.py:
3531         Improve line wrapping when > 79 charaters
3532
3533 2008-06-05  Jürg Billeter  <j@bitron.ch>
3534
3535         * giscanner/ast.py:
3536         * giscanner/girwriter.py:
3537         * giscanner/transformer.py:
3538         Use <type> element for field types
3539         * tests/parser/Foo-expected.gir:
3540         Update testcase
3541
3542 2008-06-04  Johan Dahlin  <jdahlin@async.com.br>
3543
3544         * giscanner/glibtransformer.py:
3545         Fix a bug which prevented GdkEvent from being generated
3546
3547 2008-06-03  Johan Dahlin  <jdahlin@async.com.br>
3548
3549         * giscanner/Makefile.am:
3550         * giscanner/ast.py:
3551         * giscanner/girwriter.py:
3552         * giscanner/glibast.py:
3553         * giscanner/glibtransformer.py:
3554         * giscanner/transformer.py:
3555         * giscanner/utils.py:
3556         * tests/parser/Foo-expected.gir:
3557         Improve enum member parsing and introspection
3558
3559 2008-05-31  Johan Dahlin  <jdahlin@async.com.br>
3560
3561         * giscanner/scannerparser.y:
3562         * giscanner/sourcescanner.h:
3563         * giscanner/sourcescanner.py:
3564         Add a new source type enum for member.
3565         Use __repr__ for improved debugging
3566         * giscanner/girparser.py:
3567         Ignore some more
3568         * giscanner/transformer.py:
3569         Improve parsing of struct members.
3570         * tests/parser/foo-object.h:
3571         Add a new testcase
3572
3573 2008-05-31  Johan Dahlin  <jdahlin@async.com.br>
3574
3575         * giscanner/xmlwriter.py:
3576         Improve error reporting when trying to quote None.
3577         * giscanner/girparser.py:
3578         Do not print warnings when including more complete .gir files
3579         * giscanner/girwriter.py:
3580         Do not require a name for parameters, add a todo for singletons
3581         * giscanner/glibtransformer.py:
3582         Refactor the way structs are done, add a couple of hacks to allow
3583         us to get further.
3584         * giscanner/transformer.py:
3585         Add enough hacks so cairo, atk and pango.gir can be parsed properly
3586         * gobject-introspection-1.0.pc.in:
3587         Export girdir, so we can access gobject-2.0.gir from outside
3588
3589 2008-05-31  Johan Dahlin  <jdahlin@async.com.br>
3590
3591         * tools/g-ir-scanner:
3592         * tests/parser/Makefile.am:
3593         Update sys.path before running the parser so we don't have
3594         to setup PYTHONPATH ourselves.
3595
3596         * Makefile.am:
3597         * configure.ac:
3598         * girepository/Makefile.am:
3599         * giscanner/transformer.py:
3600         * gobject-introspection-1.0.pc.in:
3601         * gobject-introspection.pc.in:
3602         * tools/Makefile.am:
3603
3604         Rename pkg-config name to gobject-introspection-1.0,
3605         Do not installed anything which is not using the gir format.
3606         Disable compililation the old C scanner, but still keep the source
3607         until all the remaning functionallity has been ported.
3608
3609 2008-05-31  Johan Dahlin  <jdahlin@async.com.br>
3610
3611         * giscanner/giscannermodule.c (symbol_get_ident): Prevent
3612         a crash when symbol->indent is NULL.
3613
3614         * giscanner/sourcescanner.py (ctype_name): Add ctype_name,
3615         a function to convert a CTYPE symbol to a string
3616
3617 2008-05-24  Johan Dahlin  <jdahlin@async.com.br>
3618
3619         * giscanner/ast.py:
3620         * giscanner/girwriter.py:
3621         * giscanner/giscannermodule.c
3622         (pygi_source_scanner_append_filename),
3623         (pygi_source_scanner_parse_file):
3624         * giscanner/glibtransformer.py:
3625         * giscanner/sourcescanner.py:
3626         Revert back to using temporary files to send in headers.
3627         Allow Functions to be passed in as callbacks, add a couple
3628         of try/excepts missing features.
3629         We can now scan pango
3630
3631 2008-05-08  Johan Dahlin  <johan@gnome.org>
3632
3633         * giscanner/glibtransformer.py:
3634         * giscanner/transformer.py:
3635         Move namespace stripping glibtransformer->transformer
3636
3637 2008-05-08  Johan Dahlin  <johan@gnome.org>
3638
3639         * giscanner/ast.py:
3640         * giscanner/girwriter.py:
3641         * giscanner/glibtransformer.py:
3642         * giscanner/transformer.py:
3643         * tools/g-ir-scanner:
3644         Introduce a namespace ast node
3645
3646 2008-05-05  Johan Dahlin  <johan@gnome.org>
3647
3648         * giscanner/__init__.py:
3649         * giscanner/sourcescanner.py:
3650         * giscanner/transformer.py:
3651         Move sourcescanner symbols to the sourcescanner module, instead
3652         of in the global __init__ namespace.
3653
3654 2008-05-03  Johan Dahlin  <johan@gnome.org>
3655
3656         * giscanner/glibtransformer.py:
3657         * tools/g-ir-scanner:
3658         Handle missing parameters better, allow - and + in .la dlname
3659         filenames.
3660
3661 2008-05-03  Johan Dahlin  <johan@gnome.org>
3662
3663         * giscanner/__init__.py:
3664         * giscanner/ast.py:
3665         * giscanner/girwriter.py:
3666         * giscanner/glibtransformer.py:
3667         * giscanner/transformer.py:
3668         Parse struct fields properly, improve debugging.
3669
3670 2008-04-29  Johan Dahlin  <johan@gnome.org>
3671
3672         * giscanner/ast.py:
3673         * giscanner/girwriter.py:
3674         * giscanner/transformer.py:
3675         * tests/parser/Foo-expected.gir:
3676         * TODO:
3677         Use transfer-ownership everywhere, to mark ownership/calle/caller etc.
3678
3679 2008-04-29  Johan Dahlin  <jdahlin@async.com.br>
3680
3681         * Makefile.am:
3682         * docs/g-ir-scanner.1:
3683         * metadata-annotations-proposal.txt:
3684         * metadata-format.txt:
3685         Add a basic, unfinshed man page for g-ir-scanner, move documents into .txt
3686
3687 2008-04-29  Johan Dahlin  <jdahlin@async.com.br>
3688
3689         * giscanner/girwriter.py:
3690         * giscanner/glibtransformer.py:
3691         * giscanner/transformer.py:
3692         * giscanner/xmlwriter.py:
3693         * tests/parser/Foo-expected.gir:
3694         * tests/parser/foo-object.h:
3695         Write record/structs to gir file too. Add a couple of tests,
3696         fix an off by one error in xmlwriter.py.
3697
3698 2008-04-28  Johan Dahlin  <johan@gnome.org>
3699
3700         * giscanner/xmlwriter.py: Calculate the line length properly,
3701         include the provided extra indentation in the calculation, really.
3702
3703 2008-04-28  Johan Dahlin  <jdahlin@async.com.br>
3704
3705         * giscanner/ast.py:
3706         * giscanner/glibast.py:
3707         * giscanner/glibtransformer.py:
3708         * giscanner/transformer.py:
3709         * tools/g-ir-scanner:
3710         Add a --strip-prefix and sort out confusion between names and symbols
3711         for functions and struct + derivaties.
3712         Refactor bootstrap of g-ir-scanner, so we can set options on
3713         Transformer() before parsing everything.
3714
3715 2008-04-28  Johan Dahlin  <johan@gnome.org>
3716
3717         * giscanner/transformer.py (Transformer._traverse_one): Avoid recursion
3718         when scanning girepository.h
3719
3720         * giscanner/sourcescanner.py (SourceScanner._preprocess): Define
3721         a __GI_SCANNER__ when we run.
3722
3723 2008-04-28  Johan Dahlin  <jdahlin@async.com.br>
3724
3725         * giscanner/ast.py:
3726         * giscanner/girwriter.py:
3727         * giscanner/glibast.py:
3728         * giscanner/glibtransformer.py:
3729         * tests/parser/Foo-expected.gir:
3730         * tests/parser/utility-expected.gir:
3731         Rename most c:identifier to c:type. Add new ones to
3732         class/interface/enum/boxed.
3733
3734 2008-04-28  Johan Dahlin  <jdahlin@async.com.br>
3735
3736         * giscanner/ast.py:
3737         * giscanner/girwriter.py:
3738         * giscanner/glibtransformer.py:
3739         * tests/parser/Foo-expected.gidl:
3740         * tests/parser/Makefile.am:
3741         Move c:identifier from return-value to subchild type,
3742         as per Jürgs suggestion
3743
3744 2008-04-28  Johan Dahlin  <johan@gnome.org>
3745
3746         * giscanner/girwriter.py:
3747         * tests/parser/Foo-expected.gir:
3748         Write property.type as a child node.
3749
3750 2008-04-27  Johan Dahlin  <johan@gnome.org>
3751
3752         * Makefile.am:
3753         * configure.ac:
3754         * gidl/Makefile.am:
3755         * gidl/gobject-2.0.gidl:
3756         * gir/Makefile.am:
3757         * gir/gobject-2.0.gir:
3758         * tests/parser/Makefile.am:
3759         Replace the GObject gidl with a GObject gir.
3760
3761 2008-04-27  Johan Dahlin  <johan@gnome.org>
3762
3763         * tools/Makefile.am (bin_SCRIPTS): g-ir-scanner is a script,
3764         not a program.
3765
3766         * giscanner/xmlwriter.py:
3767         * tests/parser/Foo-expected.gir:
3768         Include indentation in line length calculation
3769
3770 2008-04-27  Johan Dahlin  <johan@gnome.org>
3771
3772         * giscanner/girparser.py:
3773         Prettify NS parsing using elementtree.
3774
3775 2008-04-27  Johan Dahlin  <johan@gnome.org>
3776
3777         * configure.ac:
3778         * giscanner/Makefile.am:
3779         * giscanner/girparser.py:
3780         * giscanner/glibtransformer.py:
3781         * tests/parser/Foo-expected.gidl:
3782         * tests/parser/Foo-expected.gir:
3783         * tests/parser/Makefile.am:
3784         * tests/parser/utility-expected.gidl:
3785         * tests/parser/utility-expected.gir:
3786         * tools/g-ir-scanner:
3787         Switch over to GIR as the default format. Add a simple GIDL
3788         parser.
3789         Update tests and fix simplify makefiles by depending
3790         on GNU make extensions.
3791
3792 2008-04-27  Johan Dahlin  <johan@gnome.org>
3793
3794         * giscanner/xmlwriter.py:
3795         Wrap attributes for lines which are wider than 79 characters
3796
3797         * giscanner/scannerlexer.l:
3798         Allow parenthesis in annotations
3799
3800         * giscanner/ast.py:
3801         * giscanner/gidlwriter.py:
3802         * giscanner/girwriter.py:
3803         * giscanner/glibtransformer.py:
3804         * giscanner/transformer.py:
3805         Add initial sequence support, including annotation.
3806         Refactor type handling a bit.
3807
3808 2008-04-27  Johan Dahlin  <johan@gnome.org>
3809
3810         * tests/parser/Foo-expected.gidl:
3811         * tests/parser/foo-object.h:
3812         * tests/parser/foo.c (foo_object_class_init),
3813         (foo_object_get_strings), (foo_object_get_objects):
3814         Add two new functions to check sequence return values.
3815         Also fixes a compilation warning.
3816
3817 2008-04-27  Johan Dahlin  <johan@gnome.org>
3818
3819         * giscanner/giscannermodule.c (]): Cast the getter, avoids
3820         a compilation warning.
3821
3822         * tools/Makefile.am (g_ir_scanner_SOURCES):
3823         g-ir-scanner has no sources.
3824
3825 2008-04-25  Johan Dahlin  <johan@gnome.org>
3826
3827         * giscanner/Makefile.am:
3828         * giscanner/ast.py:
3829         * giscanner/gidlparser.py:
3830         * giscanner/gidlwriter.py:
3831         * giscanner/girwriter.py:
3832         * giscanner/glibast.py:
3833         * giscanner/glibtransformer.py:
3834         * giscanner/transformer.py:
3835         Split out nodes to ast.py and glibast.py
3836
3837 2008-04-25  Johan Dahlin  <jdahlin@async.com.br>
3838
3839         * giscanner/Makefile.am:
3840         * giscanner/gidlparser.py:
3841         * giscanner/gidlwriter.py:
3842         * giscanner/girwriter.py:
3843         * giscanner/glibtransformer.py:
3844         * giscanner/gobjecttreebuilder.py:
3845         * giscanner/transformer.py:
3846         * giscanner/treebuilder.py:
3847         * tools/g-ir-scanner:
3848         Rename treebuilder to transformer and
3849         gobjectreebuilder to glibtransformer.
3850
3851 2008-04-25  Johan Dahlin  <jdahlin@async.com.br>
3852
3853         * giscanner/Makefile.am:
3854         * giscanner/__init__.py:
3855         * giscanner/cgobject.py:
3856         * giscanner/gidlparser.py:
3857         * giscanner/gidlwriter.py:
3858         * giscanner/girwriter.py:
3859         * giscanner/gobjecttreebuilder.py:
3860         * giscanner/odict.py:
3861         * giscanner/sourcescanner.py:
3862         * giscanner/treebuilder.py:
3863         * giscanner/xmlwriter.py:
3864         * tools/Makefile.am:
3865         * tools/g-ir-scanner:
3866         Add LGPLv2 license header and install all python files
3867
3868 2008-04-25  Johan Dahlin  <jdahlin@async.com.br>
3869
3870         * TODO:
3871         * giscanner/gidlwriter.py:
3872         * giscanner/giscannermodule.c (pygi_source_directive_new),
3873         (directive_get_options), (pygi_source_symbol_new),
3874         (symbol_get_base_type), (pygi_source_type_new),
3875         (type_get_base_type), (type_get_child_list),
3876         (pygi_source_scanner_get_symbols),
3877         (pygi_source_scanner_get_directives):
3878         * giscanner/gobjecttreebuilder.py:
3879         * giscanner/sourcescanner.py:
3880         * giscanner/treebuilder.py:
3881         * tests/parser/foo-object.h:
3882         Add support for virtual methods.
3883         Pair struct FooClass with struct Foo.
3884         Clean up the SourceScanner bindings a bit.
3885         Add a testcase for virtual methods.
3886
3887 2008-04-25  Johan Dahlin  <jdahlin@async.com.br>
3888
3889         * giscanner/cgobject.py:
3890         * giscanner/gidlwriter.py:
3891         * giscanner/gobjecttreebuilder.py:
3892         Add support for signals
3893
3894         * tests/parser/foo.c (foo_object_class_init):
3895         * Foo-expected.gidl:
3896         Add a signal and update the expected output.
3897
3898 2008-04-24  Johan Dahlin  <jdahlin@async.com.br>
3899
3900         * giscanner/gidlwriter.py:
3901         * giscanner/girwriter.py:
3902         * giscanner/giscannermodule.c (directive_get_name),
3903         (directive_get_value), (directive_get_options),
3904         (symbol_get_directives), (symbol_set_directives),
3905         (pygi_source_scanner_parse_file),
3906         (pygi_source_scanner_lex_filename),
3907         (pygi_source_scanner_get_directives), (init_giscanner):
3908         * giscanner/sourcescanner.c (gi_source_scanner_get_directives):
3909         * giscanner/sourcescanner.h:
3910         * giscanner/sourcescanner.py:
3911         * giscanner/treebuilder.py:
3912         * tools/g-ir-scanner:
3913         Add support for source/header annotations.
3914
3915 2008-04-22  Johan Dahlin  <jdahlin@async.com.br>
3916
3917         * giscanner/gidlwriter.py:
3918         * giscanner/girwriter.py:
3919         * giscanner/gobjecttreebuilder.py:
3920         * giscanner/treebuilder.py:
3921         Add support for Callbacks
3922
3923 2008-04-22  Havoc Pennington  <hp@pobox.com>
3924
3925         * girepository/ginvoke.c (g_function_info_invoke): If a symbol is
3926         not in metadata->module, look for it in the global module, in case
3927         some other object or the app itself provides the symbol.
3928
3929 2008-04-22  Havoc Pennington  <hp@pobox.com>
3930
3931         * girepository/gmetadata.c (_g_metadata_init): hack to avoid
3932         dlopening a library that is already in the main app, by checking
3933         whether one of the lib's symbols is already loaded.
3934
3935 2008-04-22  Johan Dahlin  <jdahlin@async.com.br>
3936
3937         * tests/parser/Foo-expected.gidl:
3938         * tests/parser/foo-object.h:
3939         Add a callback test
3940
3941 2008-04-22  Havoc Pennington  <hp@pobox.com>
3942
3943         * girepository/ginfo.c (g_interface_info_find_method):
3944         Use interface_blob_size not object_blob_size to compute offset.
3945
3946 2008-04-22  Havoc Pennington  <hp@pobox.com>
3947
3948         * girepository/gmetadata.c (_g_metadata_init): remove
3949         G_MODULE_BIND_LOCAL flag when loading libraries, since some libs
3950         (Glade and Clutter for example) rely on being loaded globally.
3951
3952 2008-04-22  Havoc Pennington  <hp@pobox.com>
3953
3954         * girepository/ginfo.c (g_registered_type_info_get_g_type): new
3955         function to get the GType given a RegisteredTypeInfo
3956
3957 2008-04-22  Johan Dahlin  <johan@gnome.org>
3958
3959         * COPYING: Add a LGPL license, to prevent automake to
3960         put in a copy of GPL here. Pointed out by Havoc.
3961
3962         * girepository/ginfo.c (g_info_from_entry), (g_type_info_new),
3963         (g_type_info_is_pointer), (g_type_info_get_tag),
3964         (g_type_info_get_param_type), (g_type_info_get_interface),
3965         (g_type_info_get_array_length), (g_type_info_is_zero_terminated),
3966         (g_type_info_get_n_error_domains), (g_type_info_get_error_domain),
3967         (g_error_domain_info_get_codes), (g_enum_info_get_value),
3968         (g_object_info_get_interface), (g_object_info_get_field),
3969         (g_interface_info_get_prerequisite),
3970         (g_signal_info_get_class_closure), (g_constant_info_get_value):
3971         * girepository/ginvoke.c (get_ffi_type):
3972         * girepository/girepository.h:
3973         * girepository/gmetadata.c (g_metadata_get_dir_entry),
3974         (g_metadata_check_sanity), (validate_header),
3975         (validate_array_type_blob), (validate_iface_type_blob),
3976         (validate_param_type_blob), (validate_error_type_blob),
3977         (validate_type_blob), (validate_constant_blob),
3978         (validate_struct_blob), (validate_enum_blob):
3979         * girepository/gmetadata.h:
3980         * tests/Makefile.am:
3981         * tests/invoke/Makefile.am:
3982         * tests/invoke/invoke.c (main):
3983         * tests/roundtrips.sh:
3984         * tools/Makefile.am:
3985         * tools/compiler.c (format_output), (write_out_metadata), (main):
3986         * tools/generate.c (write_type_name), (write_type_info),
3987         (write_constant_value), (write_enum_info), (load_metadata), (main):
3988         * tools/gidlcompilercontext.c:
3989         * tools/gidlcompilercontext.h:
3990         * tools/gidlcompilerentrynode.c:
3991         * tools/gidlcompilerentrynode.h:
3992         * tools/gidlcompilertypenode.c:
3993         * tools/gidlcompilertypenode.h:
3994         * tools/gidlmodule.c (g_idl_module_build_metadata):
3995         * tools/gidlmodule.h:
3996         * tools/gidlnode.c (init_stats), (dump_stats),
3997         (g_idl_node_get_size), (g_idl_node_get_full_size),
3998         (g_idl_node_cmp), (g_idl_node_can_have_member),
3999         (g_idl_node_add_member), (g_idl_node_param_direction_string),
4000         (parse_int_value), (parse_uint_value), (parse_float_value),
4001         (parse_boolean_value), (find_entry_node), (find_entry),
4002         (serialize_type), (g_idl_node_build_metadata), (write_string):
4003         * tools/gidlnode.h:
4004         * tools/gidlparser.c (parse_type_internal):
4005         * tools/quote-file.sh:
4006         Revert revisions 157,149-148,136-129 and 120.
4007         Move back to using g-idl-generate to generate the metadata and
4008         avoids dependency on a c compiler.
4009
4010 2008-04-22  Johan Dahlin  <jdahlin@async.com.br>
4011
4012         * giscanner/girwriter.py:
4013         * tools/g-ir-scanner:
4014         Add an initial GIR writer and a --format option to g-ir-scanner
4015
4016 2008-04-21  Johan Dahlin  <johan@gnome.org>
4017
4018         * giscanner/cgobject.py: Use ctypes.util.find_library to locate
4019         gobject-2.0 and raise ImportError if not found.
4020
4021         * giscanner/gidlparser.py:
4022         * giscanner/gidlwriter.py:
4023         * giscanner/gobjecttreebuilder.py:
4024         * tools/g-ir-scanner:
4025         Add a --include argument to include types from other idls.
4026         Add a minimalistic GIDL parser (just objects for now)
4027         Implement resolving of external type references and use it to
4028         resolve parent types, argument types and return types.
4029
4030 2008-04-21  Johan Dahlin  <johan@gnome.org>
4031
4032         * giscanner/gidlwriter.py:
4033         * giscanner/gobjecttreebuilder.py:
4034         * giscanner/treebuilder.py:
4035         Add support for properties.
4036         Refactor Class/Interface support a bit, to share more code and
4037         always initialize their method attribute to an empty list.
4038
4039 2008-04-21  Johan Dahlin  <johan@gnome.org>
4040
4041         * giscanner/cgobject.py:
4042         Add a workaround for a glib bug interface introspection bug
4043         (object_interface_list_properties, object_class_list_properties):
4044         Cast the return value to GParamSpec.
4045
4046         * tests/parser/Foo-expected.gidl: Update
4047         * tests/parser/foo.c: Add a string property
4048
4049         * giscanner/gobjecttreebuilder.py:
4050         After stripping namespaces, remove the original
4051         item to avoid duplication (GtkButton struct and Button object)
4052
4053 2008-04-21  Johan Dahlin  <johan@gnome.org>
4054
4055         * giscanner/gobjecttreebuilder.py:
4056         * giscanner/treebuilder.py:
4057         Strip namespaces before objects, so we'll export
4058         GtkButton as Button in the gtk namespace
4059
4060 2008-04-21  Johan Dahlin  <johan@gnome.org>
4061
4062         * giscanner/gidlwriter.py:
4063         * giscanner/gobjecttreebuilder.py:
4064         * giscanner/treebuilder.py:
4065         Add constructors for object/boxed types.
4066
4067 2008-04-21  Johan Dahlin  <johan@gnome.org>
4068
4069         * giscanner/gidlwriter.py:
4070         * giscanner/gobjecttreebuilder.py:
4071         Add support for boxed types
4072
4073 2008-04-21  Johan Dahlin  <johan@gnome.org>
4074
4075         * giscanner/giscannermodule.c: Mark structures as const,
4076         wrap SourceType.const_string.
4077
4078         * tests/parser/foo-object.h: Add a couple of constants.
4079
4080         * giscanner/gidlwriter.py:
4081         * giscanner/gobjecttreebuilder.py:
4082         * giscanner/treebuilder.py:
4083         Add basic support for interfaces
4084
4085         * tools/g-ir-scanner:
4086         Add -o/--output for writing to a file
4087
4088 2008-04-21  Havoc Pennington  <hp@redhat.com>
4089
4090         * TODO: add some C API wishlist items I could think of quickly
4091
4092 2008-04-21  Johan Dahlin  <jdahlin@async.com.br>
4093
4094         * giscanner/gidlwriter.py:
4095         * giscanner/xmlwriter.py:
4096         Add a simple api for writing tags which can be used 
4097         with the new 'with statement' in python 2.5
4098
4099 2008-04-21  Johan Dahlin  <johan@gnome.org>
4100
4101         * giscanner/gobjecttreebuilder.py:
4102         Strip namespace and object prefix from method names.
4103
4104 2008-04-21  Johan Dahlin  <johan@gnome.org>
4105
4106         * tools/g-ir-scanner (main): Add --pkg option to pass in
4107         pkg-config modules to get cflags from.
4108
4109         * giscanner/gidlwriter.py (GIDLWriter._write_method): 
4110         Avoid duplication, reuse function writer for methods.
4111
4112 2008-04-21  Johan Dahlin  <jdahlin@async.com.br>
4113
4114         * giscanner/gidlwriter.py:
4115         * giscanner/gobjecttreebuilder.py:
4116         * giscanner/treebuilder.py:
4117         * tools/g-ir-scanner:
4118         Resolve libtool .la files.
4119         Strip name spaces for methods.
4120         Add function symbols
4121
4122 2008-04-20  Johan Dahlin  <jdahlin@async.com.br>
4123
4124         * giscanner/cgobject.py:
4125         * giscanner/gidlwriter.py:
4126         * giscanner/gobjecttreebuilder.py:
4127         * giscanner/treebuilder.py:
4128         Add support for classes and methods
4129
4130 2008-04-20  Johan Dahlin  <johan@gnome.org>
4131
4132         * giscanner/gidlwriter.py:
4133         * giscanner/gobjecttreebuilder.py:
4134         * giscanner/odict.py:
4135         Avoid conflicts, keep the output ordered similar to
4136         the order of the input.
4137         Add a simple ordered dictionary implemenation
4138
4139 2008-04-19  Johan Dahlin  <johan@gnome.org>
4140
4141         * giscanner/cgobject.py:
4142         * giscanner/gidlwriter.py:
4143         * giscanner/gobjecttreebuilder.py:
4144         * tools/g-ir-scanner:
4145         Start introspecting get-type functions.
4146         Implement support for GLib/GFlags GTypes.
4147         Add a ctype based GObject binding.
4148
4149 2008-04-18  Johan Dahlin  <jdahlin@async.com.br>
4150
4151         * giscanner/gidlwriter.py:
4152         * giscanner/xmlwriter.py:
4153         * tools/g-ir-scanner:
4154         Add a simplistic gidl writer, which can't do too much.
4155
4156 2008-04-18  Johan Dahlin  <johan@gnome.org>
4157
4158         * giscanner/sourcescanner.py:
4159         * giscanner/treebuilder.py:
4160         * tools/g-ir-scanner:
4161         split tree building and source scanning interface to separate files.
4162
4163 2008-04-18  Johan Dahlin  <johan@gnome.org>
4164
4165         * tools/g-ir-scanner (Parameter.__init__): Start constructing
4166         a real node tree.
4167         - Add support for struct/parameter/return, start parsing of ctypes
4168
4169         * giscanner/giscannermodule.c: wrap GISourceType.child_list and
4170         fix the style
4171
4172 2008-03-31  Johan Dahlin  <johan@gnome.org>
4173
4174         * tools/g-ir-scanner:
4175         Start to build abstract syntax node of scanned sources.
4176         Add support for cpp options.
4177
4178 2008-03-27  Johan Dahlin  <johan@gnome.org>
4179
4180         * giscanner/giscannermodule.c:
4181         * giscanner/scannerlexer.l:
4182         * giscanner/sourcescanner.c:
4183         * tools/g-ir-scanner:
4184
4185         Add simple pre-processor using subprocess and a PIPE.
4186         Change the parse_file apis to accept a file descriptor.
4187
4188 2008-03-25  Johan Dahlin  <johan@gnome.org>
4189
4190         * giscanner/__init__.py:
4191         * tools/g-ir-scanner:
4192         Fix a typo and add an example python test program.
4193
4194 2008-03-25  Johan Dahlin  <johan@gnome.org>
4195         
4196         * giscanner/__init__.py:
4197         * giscanner/giscannermodule.c:
4198         * giscanner/sourcescanner.c:
4199         * giscanner/sourcescanner.h:
4200         Add constants and wrap a few more SymbolType fields
4201
4202 2008-03-25  Johan Dahlin  <johan@gnome.org>
4203         
4204         * configure.ac:
4205         * giscanner:
4206         * giscanner/__init__.py:
4207         * giscanner/giscannermodule.c:
4208         * giscanner/Makefile.am:
4209
4210         Add initial python bindings for the scanner and 
4211         depend on python 2.5.
4212
4213 2008-03-25  Johan Dahlin  <johan@gnome.org>
4214
4215         * Makefile.am:
4216         * configure.ac:
4217         * giscanner/Makefile.am:
4218         * giscanner/sourcescanner.c:
4219         * giscanner/sourcescanner.h:
4220         * tools/Makefile.am:
4221         * tools/grealpath.h:
4222         * tools/sourcescanner.c:
4223         * tools/sourcescanner.h:
4224
4225         Move the scanner to a separate library.
4226         
4227 2008-03-23  Johan Dahlin  <johan@gnome.org>
4228
4229         * tools/Makefile.am:
4230         * tools/scanner.c:
4231         * tools/scanner.h:
4232         * tools/scannerlexer.l:
4233         * tools/scannerparser.y:
4234         * tools/sourcescanner.c:
4235         * tools/sourcescanner.h:
4236         Split out the source scanner from the generator.
4237         Rename the symbols used in the scanner to use the gi_ prefix.
4238         This should make it possible to use the raw C parser from
4239         other programs.
4240
4241 2008-03-23  Johan Dahlin  <johan@gnome.org>
4242
4243         * tests/parser/Makefile.am (utility.gidl): 
4244         * tests/parser/utility-expected.gidl: 
4245         Pass in the gobject.gidl since we're defining a GObject.
4246
4247 2008-03-12  Johan Dahlin  <johan@gnome.org>
4248
4249         * relaxng/relaxng.rng:
4250         Add a releaxng in relaxng we can use to validate the relaxngs
4251         schemas
4252
4253 2008-03-12  Jürg Billeter  <j@bitron.ch>
4254
4255         * tools/scanner.c: (g_igenerator_new):
4256         * tools/scannerparser.y:
4257         Fix compiler warnings.
4258
4259 2008-03-12  Jürg Billeter  <j@bitron.ch>
4260
4261         * tools/scanner.c:
4262         * tools/scanner.h:
4263         * tools/scannerparser.y:
4264         Start fixing memory management in g-idl-scanner.
4265
4266 2008-03-12  Rob Taylor  <rob.taylor@codethink.co.uk>
4267
4268         * tools/gidlcompilercontext.c: (write_compiled):
4269         Fix critical warning when no shlib passed to g-idl-compiler.
4270
4271 2008-03-12  Johan Dahlin  <johan@gnome.org>
4272
4273         * tests/parser/utility-expected.gidl:
4274         * tests/parser/utility.h:
4275         Add a get_type-function, so the scanner actually
4276         parses it as an object.
4277         
4278 2008-03-12  Johan Dahlin  <johan@gnome.org>
4279
4280         * tools/gidlwriter.c (function_generate): Add missing trailing quote.
4281         Bad Philip!
4282
4283         * tests/parser/Foo-expected.gidl:
4284         * tests/parser/Makefile.am:
4285         * tests/parser/foo-object.h:
4286         * tests/parser/foo.c:
4287         * tests/parser/utility-expected.gidl:
4288         * tests/parser/utility.c:
4289         * tests/parser/utility.h:
4290
4291         Add a new gidl test. 'utility.gidl', which is used to be able
4292         to test external type references. Add a reference to UtilityObject*
4293         in the idl file.
4294
4295 2008-03-11  Johan Dahlin  <johan@gnome.org>
4296
4297         * tools/compiler.c:
4298         * tools/generate.c:
4299         Remove most global variables
4300
4301 2008-03-11  Philip Van Hoof  <me@pvanhoof.be>
4302  
4303         * tools/scannerlexer.l:
4304         * tools/scanner.c:
4305         * tests/parser/Foo-expected.gidl:
4306         * tests/parser/foo.c:
4307         * tests/parser/Makefile.am:
4308         * tests/parser/foo-object.h:
4309  
4310         Added a few extra tests. Which resulted in finding a few
4311         bugs. Which resulted in me fixing those bugs
4312
4313 2008-03-11  Rob Taylor  <rob.taylor@codethink.co.uk>
4314
4315         * tools/gidlcompilercontext.c: (g_idl_compiler_write_dir_entry),
4316         (g_idl_compiler_write_xref_entry), (g_idl_compiler_add_xref):
4317         Add some comments for strings into generated output for
4318         easier debugging.
4319
4320 2008-03-11  Rob Taylor  <rob.taylor@codethink.co.uk>
4321
4322         * tools/gidlcompilercontext.c: (write_compiled):
4323         Write out the shlibs variable before writing out the strings
4324         length. Fixes compiler warning when using '-l' flag with
4325         g-idl-compiler
4326
4327 2008-03-11  Johan Dahlin  <johan@gnome.org>
4328
4329         * tests/parser/Foo-expected.gidl:
4330         * tests/parser/foo-object.h:
4331         * tools/scanner.c:
4332         * tools/scanner.h:
4333         * tools/scannerlexer.l:
4334         Add support for parsing return arguments. Add support for
4335         caller-owns return types.
4336         Patch by Philip Van Hoof.
4337         
4338         * tools/scannerparser.y:
4339         Remove parsing of the @deprecated syntax used in headers.
4340         We will support gtk-doc deprecation in the future instead.
4341
4342 2008-03-11  Johan Dahlin  <johan@gnome.org>
4343
4344         * tools/compiler.c (main): Coding style fixes
4345
4346 2008-03-10  Johan Dahlin  <johan@gnome.org>
4347
4348         * configure.ac:
4349         Add GCOV_LIBS to GILIBS
4350
4351 2008-03-10  Johan Dahlin  <johan@gnome.org>
4352
4353         * tests/parser/Foo-expected.gidl:
4354         * tests/parser/foo.c:
4355         Rename null-ok to direction=out
4356
4357 2008-03-10  Philip Van Hoof  <me@pvanhoof.be>
4358
4359         reviewed and extensively tested by Johan
4360
4361         * tests/parser/Foo-expected.gidl:
4362         * tests/parser/foo-object.h:
4363         * tests/parser/foo.c:
4364         * tools/gidlnode.c:
4365         * tools/gidlnode.h:
4366         * tools/gidlwriter.c:
4367         * tools/scanner.c:
4368         * tools/scanner.h:
4369         * tools/scannerlexer.l:
4370         * tools/scannerparser.y:
4371
4372         Add support for scanning for gtk-doc comments inside
4373         C source files. Add tests
4374
4375 2008-03-10  Johan Dahlin  <johan@gnome.org>
4376
4377         * tests/parser/Makefile.am:
4378         * tests/parser/foo.c:
4379         * tools/scanner.c:
4380         * tools/scanner.h:
4381         * tools/scannerparser.y:
4382         Add an api to lex filenames.
4383         Lex all source .c files passed in on the command line.
4384         Scan sources in a test and a couple of private structures
4385         which should not be included in the generated gidl
4386
4387 2008-03-10  Johan Dahlin  <johan@gnome.org>
4388
4389         * tests/invoke/Makefile.am: Make the generated metadata 
4390         depend on the g-idl-compiler
4391
4392 2008-02-21  Mark Doffman  <mark.doffman@codethink.co.uk>
4393
4394         * tools/gidlmodule.c
4395         * tools/gidlmodule.h
4396         * tools/gidlnode.c
4397         * tools/gidlnode.h
4398         Remove the old g-idl-compiler code.
4399
4400
4401 2008-02-22  Mark Doffman  <mark.doffman@codethink.co.uk>
4402
4403         * tools/quote-file.sh
4404         * tools/compiler.c
4405         * tools/generate.c
4406         Move to using the 'C' struct compiler code.
4407
4408 2008-02-21  Mark Doffman  <mark.doffman@codethink.co.uk>
4409
4410         * girepository/ginfo.c
4411         * tools/generate.c
4412         Change the way that external references with no namespace
4413         are dealt with. External references with no namespace
4414         are placed into the XML as-if they are a local reference.
4415         This is temporary, but helps with roundtrip tests.
4416
4417 2008-02-21  Mark Doffman  <mark.doffman@codethink.co.uk>
4418
4419         * girepository/ginfo.c
4420         Add the ability to get the value of a constant of
4421         type TYPE_TAG_SYMBOL. In the case of a symbol the value
4422         is provided as a string.
4423
4424         This would deal properly with:
4425         typedef char* random;
4426         const random = "A string";
4427
4428 2008-02-21  Mark Doffman  <mark.doffman@codethink.co.uk>
4429
4430         * girepository/ginfo.c
4431         * girepository/girepository.h
4432         * tools/generate.c
4433         Add a function to check if an enum is registered or not.
4434         Previously anything testing this relied on the g-type
4435         string offset having a value of 0.
4436
4437         * girepository/gmetadata.c
4438         * girepository/gmetadata.h
4439         * tools/generate.c
4440         Remove unneccesary or erroneous checks. There were two
4441         metadata validation checks which made sure that the blob
4442         sizes were the same as some magic numbers compiled into the code.
4443         This is wrong as it breaks any forwards compatibility that may
4444         be possible.
4445
4446         Checks were also present that made sure that unregistered type
4447         blobs had a value of 0 in the g-type offset field. This is
4448         unneccessary. If a type blob is unregistered then any value
4449         in its g-type field is simply invalid.
4450
4451 2008-02-21  Mark Doffman  <mark.doffman@codethink.co.uk>
4452
4453         * girepository/ginfo.c
4454         * girepository/gmetadata.c
4455         * girepository/gmetadata.h
4456
4457           Change the metadata format to have a standard header
4458           for all the type blobs. Merge the SimpleTypeBlob
4459           and InterfaceTypeBlob into a union. A union of these
4460           two blobs existed previously but was not explicit
4461           in the metadata format.
4462
4463 2008-02-21  Mark Doffman  <mark.doffman@codethink.co.uk>
4464
4465         * tools/gidlcompilercontext.c
4466         * tools/gidlcompilercontext.h
4467         * tools/gidlcompilerentrynode.c
4468         * tools/gidlcompilerentrynode.h
4469         * tools/gidlcompilertypenode.c
4470         * tools/gidlcompilertypenode.h
4471
4472         Add code to compile a tree of GIdlNodes to
4473         a 'C' struct representing the metadata.
4474         This is to aid cross-compiling. Previously
4475         the g-idl-compiler created a binary blob with
4476         data written in the byte order and alignment
4477         of the tool rather than the intended target.
4478
4479         Cleaned up and improved by Johan and Robert :-)
4480
4481 2008-02-21  Mark Doffman  <mark.doffman@codethink.co.uk>
4482
4483         * girepository/ginvoke.c
4484         * girepository/girepository.h
4485         * girepository/gmetadata.c
4486         * girepository/gmetadata.h
4487         * tools/generate.c
4488         * tools/gidlparser.c
4489         Modify TYPE_TAG_INTERFACE to TYPE_TAG_SYMBOL
4490         to avoid confusion with the interface blob.
4491
4492         * tools/generate.c
4493         * tools/gidlparser.c
4494         Remove magic numbers and replace with type-tag
4495         enumeration symbols.
4496
4497         * girepository/gmetadata.c
4498         Add validate declaration.
4499
4500 2008-03-10  Jürg Billeter  <j@bitron.ch>
4501
4502         * tools/gidlparser.c: (parse_type_internal):
4503         * tools/scannerlexer.l:
4504         * tools/scannerparser.y:
4505         Support C99 _Bool type in scanner.
4506
4507 2008-03-10  Jürg Billeter  <j@bitron.ch>
4508
4509         * tests/parser/Foo-expected.gidl:
4510         * tests/parser/foo-object.h:
4511         * tests/parser/foo.c: (foo_enum_method):
4512         * tools/scanner.c: (g_igenerator_process_function_symbol):
4513         Don't skip functions that are defined in the namespace of a type
4514         that doesn't support methods, as for example enums.
4515
4516 2008-03-10  Johan Dahlin  <johan@gnome.org>
4517
4518         * gidl.dtd: Remove, we're using relaxng for now
4519
4520         * tests/parser/Foo-expected.gidl:
4521         * tests/parser/foo-object.h:
4522         * tests/parser/foo.c:
4523         Rename the enum/flags get_type functions to include the whole type.
4524
4525 2008-03-08  Marc-Andre Lureau  <marcandre.lureau@gmail.com>
4526
4527         * tools/gidlwriter.c (enum_generate): added "type-name",
4528         "get-type" and "deprecated" missing arguments.
4529         * tests/parser/Foo-expected.gidl:
4530         * tests/parser/foo-object.h: test enum type, and no type.
4531
4532 2008-03-06  Johan Dahlin  <jdahlin@async.com.br>
4533
4534         * configure.ac:
4535         Consistent checks, add missing 'test'
4536
4537 2008-03-05  Havoc Pennington  <hp@redhat.com>
4538
4539         * configure.ac: Take advantage of a libffi.pc if one exists, as it
4540         does on Fedora 8. Make libffi a hard requirement, since it was in
4541         practice anyway (was not really conditional in the code or
4542         makefile, only in configure).
4543
4544 2008-02-21  Mark Doffman  <mark.doffman@codethink.co.uk>
4545
4546         reviewed by: Rob Taylor  <rob.taylor@codethink.co.uk>
4547         reviewed by: Johan Dahlin  <johan@gnome.org>
4548
4549         * tests/Makefile.am:
4550         * tests/roundtrips.sh:
4551         Modify the roundtrips test so that they do not use the
4552         --raw option of the gidl compiler but instead compile a
4553         shared library to use with g_module.
4554
4555         * tests/invoke/Makefile.am:
4556         * tests/invoke/invoke.c:
4557         Modify the invoke tests to build a shared library rather
4558         than use the --raw option.
4559
4560         * tests/invoke/invoke-namespace-find.sh: Removed:
4561         Noone knows why this was here, so removed.
4562
4563 2008-02-19  Rob Taylor  <rob.taylor@codethink.co.uk>
4564
4565         * tools/scanner.c: (g_igenerator_process_function_symbol):
4566         Move g_idl_node_can_have_member test later, as it broke spotting
4567         get_type's for nodes that can't have members.
4568
4569 2008-02-18  Rob Taylor  <rob.taylor@codethink.co.uk>
4570
4571         * tools/gidlnode.h:
4572         * tools/gidlnode.c: (g_idl_node_can_have_member):
4573         Add g_idl_node_can_have_member.
4574
4575         * tools/scanner.c: (g_igenerator_process_function_symbol):
4576         Use g_idl_node_can_have_member to test if we should add a function
4577         as a member of the type node.
4578
4579 2008-02-18  Rob Taylor  <rob.taylor@codethink.co.uk>
4580
4581         * gidl/GLib.gidl: Renamed to gidl/gobject-2.0.gidl:
4582         * gidl/Makefile.am:
4583         * tests/parser/Makefile.am:
4584         Rename GLib.gidl to gobject-2.0.gidl and install in /usr/share/gidl.
4585
4586 2008-02-18  Rob Taylor  <rob.taylor@codethink.co.uk>
4587
4588         * tools/scanner.c: (main):
4589         Ignore -pthread when passed to g-idl-scanner.
4590
4591 2008-02-18  Rob Taylor  <rob.taylor@codethink.co.uk>
4592
4593         * tools/grealpath.h: Added:
4594         * tools/scanner.c: (main):
4595         * tools/scannerlexer.l:
4596         * tools/Makefile.am:
4597         Always use absolute paths with symbolic links resolved when
4598         comparing filenames.
4599
4600 2008-02-18  Rob Taylor  <rob.taylor@codethink.co.uk>
4601
4602         * gobject-introspection.pc.in:
4603         Provide variables for g-idl-parser, scanner and compiler in the
4604         pkgconfig file.
4605
4606 2008-02-13  Rob Taylor  <rob.taylor@codethink.co.uk>
4607
4608         * gcov.mak:
4609         * girepository/Makefile.am:
4610         * tools/Makefile.am:
4611         Rename GCOV_SOURCES to GCOVSOURCES to top automake complaining.
4612
4613 2008-02-10  Johan Dahlin  <johan@gnome.org>
4614
4615         * tests/parser/Foo-expected.gidl:
4616         * tests/parser/foo-object.h:
4617         * tests/parser/foo.c: (foo_boxed_copy), (foo_boxed_free),
4618         (foo_boxed_get_type), (foo_boxed_new), (foo_boxed_method):
4619         Add boxed test.
4620
4621 2008-02-10  Johan Dahlin  <johan@gnome.org>
4622
4623         * tests/parser/Foo-expected.gidl:
4624         * tests/parser/foo-object.h:
4625         * tests/parser/foo.c: (foo_enum_get_type), (foo_flags_get_type):
4626         Add enum and flags test.
4627
4628 2008-02-10  Johan Dahlin  <johan@gnome.org>
4629
4630         * Makefile.am:
4631         * configure.ac:
4632         * girepository/Makefile.am:
4633         Make 'make distcheck' work again.
4634
4635 2008-02-10  Johan Dahlin  <johan@gnome.org>
4636
4637         * m4/Makefile.am (EXTRA_DIST): its called as-compiler-flag.m4,
4638         not as-compiler.m4.
4639
4640         * tests/parser/Makefile.am: Only create Foo.gidl when running make
4641         check, eg exclude it from BUILT_SOURCES.
4642
4643 2008-02-08  Rob Taylor  <rob.taylor@codethink.co.uk>
4644
4645         * Makefile.am:
4646         * configure.ac:
4647         * gcov.mak: Added:
4648         * girepository/Makefile.am:
4649         * m4/Makefile.am: Added:
4650         * m4/as-compiler-flag.m4: Added:
4651         * m4/gcov.m4: Added:
4652         * tools/Makefile.am:
4653         Add ability to generate a coverage report.
4654         Adds configure option --enable-gcov and make rule 'check-coverage'.
4655
4656 2008-02-08  Rob Taylor  <rob.taylor@codethink.co.uk>
4657
4658         * Makefile.am:
4659         * configure.ac:
4660         * gidl/Makefile.am: Added:
4661         * girepository/Makefile.am: Added:
4662         * src/Makefile.am: Renamed to tools/Makefile.am:
4663         * src/compiler.c: Renamed to tools/compiler.c:
4664         * src/g-idl-offsets.pl: Renamed to tools/g-idl-offsets.pl:
4665         * src/generate.c: Renamed to tools/generate.c:
4666         * src/gidlmodule.c: Renamed to tools/gidlmodule.c:
4667         * src/gidlmodule.h: Renamed to tools/gidlmodule.h:
4668         * src/gidlnode.c: Renamed to tools/gidlnode.c:
4669         * src/gidlnode.h: Renamed to tools/gidlnode.h:
4670         * src/gidlparser.c: Renamed to tools/gidlparser.c:
4671         * src/gidlparser.h: Renamed to tools/gidlparser.h:
4672         * src/gidlwriter.c: Renamed to tools/gidlwriter.c:
4673         * src/gidlwriter.h: Renamed to tools/gidlwriter.h:
4674         * src/ginfo.c: Renamed to girepository/ginfo.c:
4675         * src/ginvoke.c: Renamed to girepository/ginvoke.c:
4676         * src/girepository.c: Renamed to girepository/girepository.c:
4677         * src/girepository.h: Renamed to girepository/girepository.h:
4678         * src/gmetadata.c: Renamed to girepository/gmetadata.c:
4679         * src/gmetadata.h: Renamed to girepository/gmetadata.h:
4680         * src/scanner.c: Renamed to tools/scanner.c:
4681         * src/scanner.h: Renamed to tools/scanner.h:
4682         * src/scannerlexer.l: Renamed to tools/scannerlexer.l:
4683         * src/scannerparser.y: Renamed to tools/scannerparser.y:
4684         * tests/invoke/Makefile.am:
4685         Split src/ into girepository/ and tools/
4686
4687         * Makefile.am:
4688         * configure.ac:
4689         * girepository/Makefile.am:
4690         * tests/Makefile.am:
4691         * tests/invoke/Makefile.am:
4692         * tests/parser/Makefile.am:
4693         * tests/roundtrips.sh:
4694         * tools/Makefile.am:
4695         Make distcheck work.
4696
4697 2008-02-04  Rob Taylor  <rob.taylor@codethink.co.uk>
4698
4699         * tests/invoke/invoke.c: (main):
4700         * tests/invoke/testfns.c: (test6), (test7):
4701         * tests/invoke/testfns.xml:
4702         Add tests for invokation with a GList argument.
4703         Also tests caller-owns return values.
4704
4705 2008-02-04  Rob Taylor  <robtaylor@floopily.org>
4706
4707         * src/ginfo.c:
4708         Add some documentation for GICallableInfo
4709
4710 2008-02-01  Mark Doffman  <mark.doffman@codethink.co.uk>
4711
4712         * gidl.dtd:
4713         Correct syntax errors in the DTD file.
4714         * relaxng/api.xml:
4715         * relaxng/c-types.xml:
4716         * relaxng/g-types.xml:
4717         * relaxng/util.xml:
4718         Add a RelaxNG specification for the GObject Introspection XML data.
4719         The Specification has validated all of the test files.
4720
4721 2008-01-25  Rob Taylor  <robtaylor@floopily.org>
4722
4723         * tests/roundtrips.sh:
4724         * tests/struct.test:
4725         Add roundtrip tests for structs.
4726
4727 2008-01-11  Johan Dahlin  <johan@gnome.org>
4728
4729         * src/scanner.c (g_igenerator_process_function_symbol):
4730         Refactor out g_idle_node_add_member.
4731         (create_node_from_gtype, create_node_from_ctype):
4732         Use case instead of if...else
4733         (get_type_from_type_id):
4734         Rename to create_node_from_gtype
4735         (get_type_from_ctype):
4736         Rename to create_node_from_ctype
4737
4738         Rename ginode -> node, gitype -> type, gifunc -> func.
4739
4740         * src/gidlnode.c (g_idl_node_add_member, g_idl_node_cmp):
4741         Two new functions, refactor out of scanner.c
4742
4743         * src/scanner.c: (g_igenerator_process_function_symbol):
4744         * src/scannerlexer.l:
4745         Do not save the content of the deprecated variable, only
4746         if it's set or not.
4747
4748 2008-01-11  Johan Dahlin  <johan@gnome.org>
4749
4750         * tests/parser/foo-object.h: Add a couple of comment parser tests.
4751
4752 2008-01-11  Jürg Billeter  <j@bitron.ch>
4753
4754         * src/scannerlexer.l:
4755         Fix GTK-Doc parsing.
4756
4757 2008-01-11  Jürg Billeter  <j@bitron.ch>
4758
4759         * src/scannerlexer.l:
4760         Fix GTK-Doc parsing.
4761
4762 2008-01-11  Jürg Billeter  <j@bitron.ch>
4763
4764         * src/scanner.c: (lookup_symbol):
4765         Return unresolved name if we find unknown symbol.
4766
4767 2008-01-11  Jürg Billeter  <j@bitron.ch>
4768
4769         * src/scanner.c: (g_igenerator_generate):
4770         Initialize GObject to fix scanning interface properties.
4771
4772         * tests/parser/Foo-expected.gidl:
4773         * tests/parser/foo-object.h:
4774         * tests/parser/foo.c: (foo_interface_get_type):
4775         Test interfaces with GObject prerequisite.
4776
4777         * tests/parser/Makefile.am:
4778         Set G_DEBUG=fatal_warnings to abort test on warnings and criticals.
4779
4780 2007-12-27  Johan Dahlin  <johan@gnome.org>
4781
4782         * src/scannerlexer.l:
4783         Parse gtk-doc comments.
4784
4785         * src/gidlwriter.c: (function_generate):
4786         Reorganize, avoid duplication and add support for
4787         writing deprecated functions.
4788
4789         * src/scannerparser.y:
4790         * src/scanner.h:
4791         Add new structure CDirective and functions to create/free them.
4792
4793         * src/scanner.c: (g_igenerator_process_function_symbol),
4794         (g_igenerator_process_unregistered_struct_typedef),
4795         (g_igenerator_process_struct_typedef),
4796         (g_igenerator_process_union_typedef),
4797         (g_igenerator_process_enum_typedef),
4798         (g_igenerator_process_function_typedef), (g_igenerator_add_symbol),
4799         (g_igenerator_start_preprocessor):
4800         Parse @deprecated directive for functions.
4801         Remove some more C99isms.
4802         Send in -C to cpp to avoid stripping comments.
4803
4804         * tests/parser/foo-object.h:
4805         * tests/parser/Foo-expected.gidl:
4806         Add deprecated directive
4807
4808 2007-12-27  Johan Dahlin  <johan@gnome.org>
4809
4810         * src/scannerlexer.l (intsuffix): Add emacs mode line and
4811         escape ' and " so it looks more like C.
4812
4813         * src/scanner.c:
4814         Unlink temporary file used.
4815
4816 2007-12-27  Johan Dahlin  <johan@gnome.org>
4817
4818         * src/scanner.c: (g_igenerator_new), (g_igenerator_free),
4819         (g_igenerator_start_preprocessor), (main):
4820         * src/scanner.h:
4821         * src/scannerparser.y:
4822         Plug a couple of simple memory leaks.
4823
4824 2007-12-27  Johan Dahlin  <johan@gnome.org>
4825
4826         * src/scanner.c: (g_igenerator_parse_macros),
4827         (g_igenerator_start_preprocessor), (g_igenerator_set_verbose),
4828         (main):
4829         * src/scanner.h:
4830         * src/scannerparser.y:
4831         * tests/parser/Makefile.am:
4832
4833         Improve error reporting, return when the preprocessor fails.
4834         Add a verbose parameter, to aid debugging.
4835         Revert to using a temporary file to communicate between the
4836         preprocessor and the parser, because we need to wait for
4837         the exit code from the pre-processor before starting to parse.
4838
4839 2007-12-16  Johan Dahlin  <jdahlin@async.com.br>
4840
4841         * src/Makefile.am: Rename clexer.l to scannerlexer.l and
4842         cparser.y to scannerparser.y
4843
4844 2007-12-11  Johan Dahlin  <johan@gnome.org>
4845
4846         * src/clexer.l:
4847         * src/cparser.y:
4848         * src/scanner.c: (g_igenerator_new):
4849         * src/scanner.h:
4850         Get rid of the global the_generator variable.
4851
4852 2007-12-10  Johan Dahlin  <johan@gnome.org>
4853
4854         * src/scanner.c (main): Add an output option,
4855         add checks for required parameters
4856
4857         * src/Makefile.am:
4858         set BUILD_SOURCES and CLEANFILES properly
4859
4860         * src/gidlwriter.c: (g_writer_write_inline), (g_writer_write),
4861         (g_writer_write_indent), (g_writer_write_unindent),
4862         (field_generate), (value_generate), (constant_generate),
4863         (property_generate), (function_generate), (vfunc_generate),
4864         (signal_generate), (interface_generate), (struct_generate),
4865         (union_generate), (boxed_generate), (enum_generate),
4866         (node_generate), (g_writer_write_module), (g_idl_writer_save_file):
4867         * src/gidlwriter.h:
4868         * src/scanner.c: (g_igenerator_generate):
4869         * src/scanner.h:
4870         * src/scannerwriter.c:
4871
4872         Refactor scannerwriter to only be tied to a GIdlModule and move
4873         it (again!) to gidlwriter.c. Change the writer function to take
4874         a filename.
4875
4876 2007-12-10  Johan Dahlin  <johan@gnome.org>
4877
4878         * src/Makefile.am:
4879         * src/scanner.c: (g_igenerator_generate):
4880         * src/scanner.h:
4881         * src/scannerwriter.c: (g_igenerator_write_inline),
4882         (g_igenerator_write), (g_igenerator_write_indent),
4883         (g_igenerator_write_unindent), (field_generate), (value_generate),
4884         (constant_generate), (property_generate), (function_generate),
4885         (vfunc_generate), (signal_generate), (interface_generate),
4886         (struct_generate), (union_generate), (boxed_generate),
4887         (enum_generate), (node_generate), (module_generate),
4888         (g_scanner_write_file):
4889
4890         Move the scanner gidl writing to a separate source file.
4891
4892 2007-12-10  Johan Dahlin  <johan@gnome.org>
4893
4894         * src/cparser.y:
4895         * src/scanner.c:
4896         * src/scanner.h:
4897         Move over all CType construction functions.
4898
4899         * tests/parser/Makefile.am:
4900         Be verbose when printing parsing tests results.
4901
4902 2007-12-10  Johan Dahlin  <johan@gnome.org>
4903
4904         * src/scanner.c (g_igenerator_start_preprocessor): Refactor
4905         preprocessor handling to here. Start cpp insteado of cc -E,
4906         always include -U__GNUC__, since it's specific to the preprocessor
4907         we use.
4908
4909         * tests/parser/Makefile.am (check-local): Silent diff and skip
4910         -U__GNUC__ which is always defined now
4911
4912 2007-12-10  Johan Dahlin,,,  <jdahlin@plasttroll>
4913
4914         reviewed by: <delete if not using a buddy>
4915
4916         * src/scanner.c: (g_igenerator_start_preprocessor), (main):
4917         * tests/parser/Makefile.am:
4918
4919 2007-12-09  Johan Dahlin  <johan@gnome.org>
4920
4921         * src/scanner.c:
4922         Use GOption for command line options.
4923         (g_igenerator_new, main): Simplify constructor and they way
4924         parameters are passed into it.
4925
4926         * src/cparser.y:
4927         * src/Makefile.am:
4928         * src/clexer.l:
4929         * src/cparser.y:
4930         * src/gen-introspect.c:
4931         * src/gen-introspect.h:
4932         * src/scanner.c:
4933         Rename gen-introspect.[ch] to scanner.[ch]
4934
4935 2007-12-09  Johan Dahlin  <johan@gnome.org>
4936
4937         * TODO: Update
4938
4939         * src/Makefile.am: Rename gen-introspect to g-idl-scanner,
4940         don't make the repository library and the other utilites link against
4941         gthread-2.0
4942
4943         * src/gen-introspect.c: (g_igenerator_create_object),
4944         (g_igenerator_create_interface), (g_igenerator_create_boxed),
4945         (g_igenerator_create_enum), (g_igenerator_create_flags),
4946         (g_igenerator_process_module_symbol),
4947         (g_igenerator_process_module), (g_igenerator_generate), (main):
4948         * src/gen-introspect.h:
4949         Refactor g_igenerator_process_types into smaller pieces.
4950
4951         * tests/parser/Makefile.am:
4952         Depend on the gen-introspect binary
4953
4954 2007-12-09  Johan Dahlin  <johan@gnome.org>
4955
4956         * src/gen-introspect.c (g_igenerator_process_types):
4957         Break into smaller pieces, one for each generated node type.
4958
4959 2007-12-08  Johan Dahlin  <johan@gnome.org>
4960
4961         * src/gen-introspect.c: (g_igenerator_process_types),
4962         (g_igenerator_add_module):
4963         * tests/parser/Foo-expected.gidl:
4964         * tests/parser/foo-object.h:
4965         * tests/parser/foo.c: (foo_subobject_class_init),
4966         (foo_subobject_init):
4967
4968         Add a subobject test and make sure to register defined classes
4969         in the lookup symbol hash table.
4970
4971 2007-12-08  Johan Dahlin  <johan@gnome.org>
4972
4973         * gidl/GLib.gidl:
4974         * src/Makefile.am:
4975         * src/gen-introspect.c: (g_igenerator_new), (lookup_symbol),
4976         (g_igenerator_process_types), (g_igenerator_add_module),
4977         (g_igenerator_add_include_idl), (main):
4978         * src/gen-introspect.h:
4979         * tests/parser/Makefile.am:
4980         * tests/parser/Foo-expected.gidl:
4981
4982         Change the gen-introspect to generate namespaced module names,
4983         such as GLib.Object instead of GObject.
4984         Add a GLib.gidl which introduces GLib.Object and GLib.InitiallyUnowned,
4985         add a --include-idl parameter to gen-introspect,
4986         and update the parser test.
4987
4988 2007-12-08  Johan Dahlin  <johan@gnome.org>
4989
4990         * src/gen-introspect.c:
4991         Move main to the end of the file and attempt to make it valid
4992         ansi c.
4993
4994         * tests/parser/Makefile.am (BUILT_SOURCES): Remove .repo here,
4995         we're not quite ready to generate metadata yet.
4996
4997         * tests/parser/:
4998         * configure.ac:
4999
5000         Add a simple gen-introspect parser test
5001
5002 2007-12-06  Gustavo J. A. M. Carneiro  <gjc@gnome.org>
5003
5004         reviewed by: Johan Dahlin  <johan@gnome.org>
5005
5006         * configure.ac:
5007         * gobject-introspection.pc.in:
5008         * src/Makefile.am:
5009         * src/compiler.c: (format_output), (write_out_metadata), (main):
5010         * src/gen-introspect.c: (main):
5011         * src/gen-introspect.h:
5012         * src/generate.c: (write_callable_info), (write_repository),
5013         (load_metadata), (main):
5014         * src/gidlmodule.c: (g_idl_module_new),
5015         (g_idl_module_build_metadata):
5016         * src/gidlmodule.h:
5017         * src/gidlparser.c: (start_element_handler):
5018         * src/ginfo.c: (g_info_new), (g_info_from_entry),
5019         (g_base_info_get_name), (g_base_info_get_namespace),
5020         (g_base_info_is_deprecated), (g_base_info_get_annotation),
5021         (g_base_info_get_metadata), (g_function_info_get_symbol),
5022         (g_function_info_get_flags), (g_function_info_get_property),
5023         (g_function_info_get_vfunc), (signature_offset), (g_type_info_new),
5024         (g_callable_info_may_return_null),
5025         (g_callable_info_get_caller_owns), (g_callable_info_get_n_args),
5026         (g_callable_info_get_arg), (g_arg_info_get_direction),
5027         (g_arg_info_is_return_value), (g_arg_info_is_dipper),
5028         (g_arg_info_is_optional), (g_arg_info_may_be_null),
5029         (g_arg_info_get_ownership_transfer), (g_type_info_is_pointer),
5030         (g_type_info_get_tag), (g_type_info_get_param_type),
5031         (g_type_info_get_interface), (g_type_info_get_array_length),
5032         (g_type_info_is_zero_terminated),
5033         (g_type_info_get_n_error_domains), (g_type_info_get_error_domain),
5034         (g_error_domain_info_get_quark), (g_error_domain_info_get_codes),
5035         (g_value_info_get_value), (g_field_info_get_flags),
5036         (g_field_info_get_size), (g_field_info_get_offset),
5037         (g_registered_type_info_get_type_name),
5038         (g_registered_type_info_get_type_init),
5039         (g_struct_info_get_n_fields), (g_struct_info_get_field),
5040         (g_struct_info_get_n_methods), (g_struct_info_get_method),
5041         (find_method), (g_struct_info_find_method),
5042         (g_enum_info_get_n_values), (g_enum_info_get_value),
5043         (g_object_info_get_parent), (g_object_info_get_type_name),
5044         (g_object_info_get_type_init), (g_object_info_get_n_interfaces),
5045         (g_object_info_get_interface), (g_object_info_get_n_fields),
5046         (g_object_info_get_field), (g_object_info_get_n_properties),
5047         (g_object_info_get_property), (g_object_info_get_n_methods),
5048         (g_object_info_get_method), (g_object_info_find_method),
5049         (g_object_info_get_n_signals), (g_object_info_get_signal),
5050         (g_object_info_get_n_vfuncs), (g_object_info_get_vfunc),
5051         (g_object_info_get_n_constants), (g_object_info_get_constant),
5052         (g_interface_info_get_n_prerequisites),
5053         (g_interface_info_get_prerequisite),
5054         (g_interface_info_get_n_properties),
5055         (g_interface_info_get_property), (g_interface_info_get_n_methods),
5056         (g_interface_info_get_method), (g_interface_info_find_method),
5057         (g_interface_info_get_n_signals), (g_interface_info_get_signal),
5058         (g_interface_info_get_n_vfuncs), (g_interface_info_get_vfunc),
5059         (g_interface_info_get_n_constants),
5060         (g_interface_info_get_constant), (g_property_info_get_flags),
5061         (g_signal_info_get_flags), (g_signal_info_get_class_closure),
5062         (g_signal_info_true_stops_emit), (g_vfunc_info_get_flags),
5063         (g_vfunc_info_get_offset), (g_vfunc_info_get_signal),
5064         (g_constant_info_get_value), (g_union_info_get_n_fields),
5065         (g_union_info_get_field), (g_union_info_get_n_methods),
5066         (g_union_info_get_method), (g_union_info_is_discriminated),
5067         (g_union_info_get_discriminator_offset),
5068         (g_union_info_get_discriminator):
5069         * src/ginvoke.c: (g_function_info_invoke):
5070         * src/girepository.c: (g_irepository_register),
5071         (g_irepository_unregister), (g_irepository_get_default),
5072         (count_interfaces), (g_irepository_get_n_infos), (find_interface),
5073         (g_irepository_get_info), (g_irepository_find_by_name),
5074         (g_irepository_get_shared_library),
5075         (g_irepository_build_search_path), (g_irepository_register_file),
5076         (g_irepository_error_quark):
5077         * src/girepository.h:
5078         * src/gmetadata.c: (g_metadata_get_dir_entry),
5079         (g_metadata_check_sanity), (validate_header),
5080         (validate_array_type_blob), (validate_iface_type_blob),
5081         (validate_param_type_blob), (validate_error_type_blob),
5082         (validate_type_blob), (validate_arg_blob),
5083         (validate_signature_blob), (validate_function_blob),
5084         (validate_callback_blob), (validate_constant_blob),
5085         (validate_value_blob), (validate_field_blob),
5086         (validate_property_blob), (validate_signal_blob),
5087         (validate_vfunc_blob), (validate_struct_blob),
5088         (validate_enum_blob), (validate_object_blob),
5089         (validate_interface_blob), (validate_errordomain_blob),
5090         (validate_union_blob), (validate_blob), (validate_directory),
5091         (validate_annotations), (g_metadata_validate), (_g_metadata_init),
5092         (g_metadata_new_from_memory), (g_metadata_new_from_const_memory),
5093         (g_metadata_new_from_mapped_file), (g_metadata_free),
5094         (g_metadata_set_module), (g_metadata_get_namespace):
5095         * src/gmetadata.h:
5096         * tests/Makefile.am:
5097         * tests/invoke/Makefile.am:
5098         * tests/invoke/invoke-namespace-find.sh:
5099         * tests/invoke/invoke.c: (main):
5100
5101         Add a namespace/shared library mapping. fixes #313268.
5102
5103 2007-12-03  Johan Dahlin  <johan@gnome.org>
5104
5105         * src/gidlparser.c (parse_type_internal): Disable char/gchar and
5106         guchar for now.
5107
5108 2007-11-30  Jürg Billeter  <j@bitron.ch>
5109
5110         * configure.ac:
5111         * src/Makefile.am:
5112         * src/clexer.l:
5113         * src/cparser.y:
5114         * src/gen-introspect.c: (g_idl_node_cmp), (g_igenerator_new),
5115         (g_igenerator_write_inline), (g_igenerator_write),
5116         (g_igenerator_write_indent), (g_igenerator_write_unindent),
5117         (field_generate), (value_generate), (constant_generate),
5118         (property_generate), (function_generate), (vfunc_generate),
5119         (signal_generate), (interface_generate), (struct_generate),
5120         (union_generate), (boxed_generate), (enum_generate),
5121         (node_generate), (module_generate), (get_type_from_type_id),
5122         (str_replace), (g_igenerator_process_properties),
5123         (g_igenerator_process_signals), (g_igenerator_process_types),
5124         (get_type_from_ctype), (g_igenerator_process_function_symbol),
5125         (g_igenerator_process_unregistered_struct_typedef),
5126         (g_igenerator_process_struct_typedef),
5127         (g_igenerator_process_union_typedef),
5128         (g_igenerator_process_enum_typedef),
5129         (g_igenerator_process_function_typedef),
5130         (g_igenerator_process_constant), (g_igenerator_process_symbols),
5131         (g_igenerator_add_symbol), (g_igenerator_is_typedef),
5132         (g_igenerator_generate), (main), (csymbol_new),
5133         (csymbol_get_const_boolean), (ctype_new), (ctype_copy),
5134         (cbasic_type_new), (ctypedef_new), (cstruct_new), (cunion_new),
5135         (cenum_new), (cpointer_new), (carray_new), (cfunction_new),
5136         (eat_hspace), (eat_line), (read_identifier),
5137         (g_igenerator_parse_macros):
5138         * src/gen-introspect.h:
5139
5140         Import gen-introspect to generate introspection information by
5141         parsing C headers.
5142
5143 2007-11-30  Jürg Billeter  <j@bitron.ch>
5144
5145         * src/gidlnode.c: (g_idl_node_new): support creating callback nodes
5146
5147 2007-11-30  Jürg Billeter  <j@bitron.ch>
5148
5149         * src/gidlparser.c: (end_element_handler): Don't leave requires
5150         state too early.
5151
5152 2007-11-29  Johan Dahlin  <johan@gnome.org>
5153
5154         * src/gidlparser.c (parse_type_internal): Add char,
5155         gchar and guchar to the builtin types.
5156
5157 2007-11-26  Johan Dahlin  <johan@gnome.org>
5158
5159         * src/ginfo.c: (g_object_info_get_type_name),
5160         (g_object_info_get_type_init):
5161         * src/girepository.c: (g_irepository_is_registered):
5162         * src/girepository.h:
5163
5164         Add g_object_info_get_type_name, g_object_info_get_type_init and
5165         g_irepository_is_registered.
5166
5167 2006-08-14  Jürg Billeter  <j@bitron.ch>
5168
5169       * src/gidlparser.c: (end_element_handler): Don't leave
5170         namespace and implements states too early.
5171         Fixes #351264
5172
5173 2007-11-26  Johan Dahlin  <johan@gnome.org>
5174
5175         * src/gmetadata.c (validate_struct_blob):
5176         pass blob_type to validate_function_blob instead of
5177         hard-coding BLOB_TYPE_STRUCT.
5178
5179         Patch by Torsten Schoenfeld, fixes #314190
5180
5181 2006-10-03  Torsten Schoenfeld  <tsch@cvs.gnome.org>
5182
5183         * src/compiler.c, src/generate.c, src/gidlnode.c,
5184         src/gidlparser.c, src/ginfo.c, src/girepository.c,
5185         tests/invoke/invoke.c, test/invoke/testfns.c: Hush compiler
5186         warnings about return values, signedness mismatches, unused
5187         variables, and unhandles enum values in switch statements.
5188
5189         * tests/invoke/Makefile.am: Don't install the invoke test program.
5190         Add -I ../../src to the cflags used for the test functions files.
5191
5192 2005-08-31  Torsten Schoenfeld  <tsch@cvs.gnome.org>
5193
5194         * src/girepository.h: Export g_invoke_error_quark.
5195
5196 2005-08-31  Torsten Schoenfeld  <tsch@cvs.gnome.org>
5197
5198         * src/ginvoke.c: Remove the fallback implementation of
5199         g_function_info_invoke since we now formally depend on libffi.
5200
5201 2005-07-25  Matthias Clasen  <mclasen@redhat.com>
5202
5203         * src/Makefile, tests/Makefile, tests/invoke/Makefile:
5204         Remove these files from cvs, as they are now generated.
5205
5206         * src/gmetadata.c (validate_iface_type_blob): Don't
5207         complain if blob->pointer is not set, since that
5208         happens for enum and flag types.  (#308935, Gustavo
5209         Carneiro)
5210
5211         * Commit an autoconf-conversion patch by
5212         Gustavo Carneiro (#308708)
5213
5214 2005-05-24  Matthias Clasen  <mclasen@redhat.com>
5215
5216         * src/compiler.c (main): Use it here to validate
5217         the generated metadata.
5218
5219         * src/gmetadata.[hc]: Add code to validate a
5220         metadata blob.
5221
5222         * metadata-format.txt: Updates
5223
5224 2005-05-22  Matthias Clasen  <mclasen@redhat.com>
5225
5226         * tests/*: Add struct offsets to field and vfunc
5227         elements.
5228
5229         * src/generate.c (write_vfunc_info): Write offset
5230         information for vfuncs.
5231
5232         * src/gidlnode.c (g_idl_node_build_metadata): Write
5233         the struct offsets into the metadata.
5234
5235         * src/gidlparser.c: Parse the offset attributes of
5236         field and vfunc elements.
5237
5238         * src/gidlnode.h: Add offset members to field and
5239         vfunc nodes.
5240
5241 2005-05-21  Matthias Clasen  <mclasen@redhat.com>
5242
5243         * TODO: Updates.
5244
5245         * gidl.dtd: Updates.
5246
5247         * src/g-idl-offsets.pl: A perl script which reads a .gidl
5248         file, creates, compiles and runs a C file, and folds the
5249         resulting struct offsets back into the .gidl file.
5250
5251 2005-05-20  Matthias Clasen  <mclasen@redhat.com>
5252
5253         * src/gidlparser.c (start_field): Make fields in objects
5254         work.
5255
5256         * src/gidlmodule.c: Include string.h
5257
5258         * TODO: Updates.
5259         :
5260
5261         * metadata-format.txt: Cleanup basic types.
5262         * src/*: Adapt to the changes.
5263         * tests/*: Adapt to the changes.
5264         * examples/gdk-pixbuf.gidl: Adapt to the changes.
5265
5266         * src/gidlnode.c (g_idl_node_get_size): Report the correct
5267         size for enum blobs.
5268         (g_idl_node_get_full_size): Report the correct size for
5269         function blobs.
5270
5271         * src/gidlmodule.c (g_idl_module_build_metadata): Add some
5272         error checking for blob sizes.
5273
5274 2005-05-19  Matthias Clasen  <mclasen@redhat.com>
5275
5276         * src/gidlnode.c (g_idl_node_build_metadata): Correctly handle
5277         interface types for which is_pointer is FALSE, e.g. enums.
5278
5279         * src/gidlnode.c (g_idl_node_get_full_size)
5280         * src/gidlparser.c (parse_type_internal):
5281         * src/generate.c (write_type_info): Support unspecialized
5282         lists, hashtables and errors. Also emit a '*' after these.
5283
5284         * TODO: Updates
5285
5286 2005-05-17  Matthias Clasen  <mclasen@redhat.com>
5287
5288         * TODO: Updates
5289
5290         * metadata-format.txt: Cleanups by Maciej Katafiasz.
5291
5292 2005-05-15  Matthias Clasen  <mclasen@redhat.com>
5293
5294         * src/*.c: Change the directory to be addressed by
5295         1-based indexes, and use an index of zero to mean
5296         'no object'.
5297
5298 2005-05-15  Matthias Clasen  <mclasen@redhat.com>
5299
5300         * tests/roundtrips.sh (SIMPLE_TESTS): Add union.test.
5301
5302         * tests/union.test: Add a union test.
5303
5304         * src/generate.c: Handle unions.
5305
5306         * src/girepository.h:
5307         * src/ginfo.c: Add GIUnionInfo and functions to access it.
5308
5309         * src/gidlnode.c: Handle GIdlNodeUnion nodes.
5310
5311         * src/gidlparser.c (start_union): Parse <union> elements.
5312
5313         * src/gidlnode.h: Add a GIdlNodeUnion.
5314
5315         * gidl.dtd: Add a <union> element.
5316
5317         * src/gmetadata.c (g_metadata_check_sanity): Check
5318         union_blob_size.
5319
5320         * src/gmetadata.h: Add union_blob_size to Header,
5321         add a UnionBlob.
5322
5323         * metadata-format.txt: Add a UnionBlob.
5324
5325 2005-05-13  Matthias Clasen  <mclasen@redhat.com>
5326
5327         * tests/*: Update testcases.
5328
5329         * src/generate.c (write_callable_info): Don't forget to
5330         write transfer and null-ok attributes for return types
5331         and parameters.
5332
5333         * src/girepository.h:
5334         * src/ginfo.c (g_callable_info_may_return_null):
5335         New function to find out if a function may return NULL.
5336
5337         * src/compiler.c (format_output): Make the generated
5338         C code compile.
5339
5340         * README: Point to a recent libffi snapshot.
5341
5342         * tests/invoke/*: Some invoke tests.
5343
5344         * src/Makefile: Add ginvoke.c and the necessary
5345         libffi information.
5346
5347         * src/girepository.h (g_function_info_invoke): Add
5348         a GError argument.
5349
5350         * src/ginvoke.c (g_function_info_invoke): Initial
5351         implementation of invoke functionality based on libffi.
5352
5353         * src/gidlnode.c (g_idl_node_build_metadata): Pass the
5354         strings and types hash tables in the right order when
5355         recursing.
5356         (find_entry_node): Free the name parts.
5357
5358 2005-05-12  Johan Dahlin  <johan@gnome.org>
5359
5360         * src/generate.c: Generate consistent end tags.
5361
5362         * tests/*: Update
5363
5364 2005-05-12  Matthias Clasen  <mclasen@redhat.com>
5365
5366         * TODO: Updates
5367
5368         * src/gidlparser.c (start_function): Actually add
5369         methods to objects.  (Steven Walter)
5370
5371         * src/girepository.h:
5372         * src/ginfo.c: Rename Transfer and Direction to
5373         GITransfer and GIDirection. (Torsten Schoenfeld)
5374
5375         * tests/*: Make tests work with the changes in name
5376         handling.
5377
5378         * src/gidlnode.c (find_entry_node): Parse qualified
5379         names and generate xref nodes for them if needed. Don't
5380         require all modules to be loaded any more.
5381
5382         * src/gidlmodule.c (g_idl_module_build_metadata): Choke
5383         on '.' in names.
5384
5385         * src/ginfo.c (g_object_info_get_parent): Return NULL
5386         if blob->parent is 0. Still need to make sure index
5387         0 is not used.
5388
5389         * src/generate.c: Generate qualified names when
5390         referring to non-local types. Emit transfer attribute
5391         for return types.
5392
5393         * src/compiler.c (format_output): Put the function
5394         attributes where gcc accepts them.
5395
5396 2005-05-11  Matthias Clasen  <mclasen@redhat.com>
5397
5398         * src/compiler.c (main): Add a --verbose cmdline option
5399         and only log messages if it is specified.
5400
5401         * src/gidlnode.h:
5402         * src/gidlnode.c (init_stats, dump_stats): Collect some
5403         statistics on string and type sharing.
5404
5405         * src/gidlmodule.c (g_idl_module_build_metadata): Use
5406         g_message() instead of fprintf().
5407
5408         * src/gidlnode.c (g_idl_node_free): Make this more robust.
5409         (g_idl_node_get_size): Implement for structs.
5410         (g_idl_node_get_full_size): Handle parent being NULL.
5411         (serialize_type): Handle lookup failures more gracefully.
5412
5413 2005-05-10  Matthias Clasen  <mclasen@redhat.com>
5414
5415         * src/gidlnode.c (g_idl_node_get_full_size): Correct the
5416         size calculation for 2-parameter types and for objects.
5417
5418         * src/compiler.c: Add a cmdline option for debug output
5419         and install a log handler to implement it.
5420         * src/gidlnode.c: Add some debug spew.
5421
5422         * TODO: Updates
5423
5424         * src/gidlmodule.c (g_idl_module_build_metadata): Don't
5425         forget to count the module name when calculating the
5426         required size for the metadata.
5427
5428         * src/gidlnode.c:
5429         * src/gidlparser.c: Fix compiler warnings.
5430
5431 2005-05-09  Matthias Clasen  <mclasen@redhat.com>
5432
5433         * src/compiler.c (main): Free the option context.
5434
5435         * gidl.dtd: Clean up handling of names. All elements
5436         have a "name", only the elements corresponding to
5437         actual callable functions (function, method, constructor),
5438         have an additional "symbol" attribute holding the
5439         dlsym()-able function name.
5440
5441         * src/generate.c: Adapt to generate xml matching the
5442         new dtd.
5443
5444         * src/gidlparser.c:
5445         * src/gidlnode.c: Adapt to parse the new dtd.
5446
5447         * tests/*.test: Adjust to the new dtd.
5448
5449         * metadata-format.txt:
5450         * src/gmetadata.h: Remove the short_name field
5451         from the ValueBlob.
5452         * src/gmetadata.c: Shrink size of ValueBlob to 12.
5453         * src/girepository.h:
5454         * src/ginfo.c (g_value_info_get_short_name): Removed
5455
5456 2005-05-09  Matthias Clasen  <mclasen@redhat.com>
5457
5458         * gidl.dtd: Allow constructors for boxed types,
5459         patch by Jonathan Blandford.
5460
5461
5462 2005-05-09  Matthias Clasen  <mclasen@redhat.com>
5463
5464         * --- Initial import ---