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