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