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