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