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