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