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