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