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