1 2008-11-10 Owen Taylor <otaylor@redhat.com>
3 Bug 560250 - Fully parse included modules
5 For some things, like computing structure offsets to put into the typelib
6 we need more than just the aliases from included modules. Do a completel
7 parse of included modules and store in module->included_modules.
9 Also add g_ir_find_node() to find node information from within the
10 active set of modules and their includes.
12 2008-11-10 Owen Taylor <otaylor@redhat.com>
14 Split g_ir_ffi_get_ffi_type() out from ginvoke.c
16 Extract a function to convert GITypeTag to ffi_type from the internals
17 of ginvoke.c. This will be useful in figure out structure alignment.
19 Also fix handling of gsize and time_t to be portable. (Add a check
20 to configure.ac to figure out the width of time_t.)
22 2008-11-10 Owen Taylor <otaylor@redhat.com>
24 Bug 560248 – "disguised structures"
26 Certain types like GIConv and GdkAtom are pointers internally but don't
27 look like pointers when referenced. They have the form.
31 Parse these as structures/records but mark them in the gir with a 'disguised'
32 attribute so that we know that they need special handling.
34 In the typelib treat them like any other structure.
36 2008-11-09 Jürg Billeter <j@bitron.ch>
39 * giscanner/girwriter.py:
41 Write throws attribute for virtual functions, fixes bug 559703
43 2008-11-07 Johan Dahlin <jdahlin@async.com.br>
45 * giscanner/libtoolimporter.py (LibtoolImporter.find_module): Clear
46 up some confusion about the second argument to find_module, it's
47 actually the packages __path__ attribute which we can safely ignore
49 (LibtoolImporter.load_module): Set module.__loader__ as per PEP 302.
51 2008-11-07 Owen Taylor <otaylor@redhat.com>
53 Bug 559737 – Deal with continuations in macros
55 * giscanner/giscannerlexer.l: Treat continuation lines the same
56 as regular newlines. This makes the scanner not complain about
57 #define foo(x) \ <stuff> inside a C file. There's no attempt
58 however to handle parsing macro definitions split across lines.
60 2008-11-07 Johan Dahlin <jdahlin@async.com.br>
62 * giscanner/cachestore.py:
63 Handle broken cache entries, write only filesystems and
64 running out of diskspace.
66 2008-11-07 Owen Taylor <otaylor@redhat.com>
68 * giscanner/giscannermodule.c (pygi_source_scanner_lex_filename):
69 Set current_filename before lexing the file so error messages
70 are reported in the right file.
72 2008-11-06 Colin Walters <walters@verbum.org>
74 * tests/everything/*: Add some tests for strv.
76 2008-11-05 Colin Walters <walters@verbum.org>
78 * girepository/ginvoke.c (g_function_info_invoke): Don't use
79 nested scope local variable for error which may go away after
80 conditional is complete.
82 2008-11-05 Colin Walters <walters@verbum.org>
84 * giscanner/scannerlexer.l: Avoid static 256 char buf which we
85 manipulate hackily; just use GString. This avoids an
86 uninitialized memory read pointed out by Havoc.
88 2008-11-04 Johan Dahlin <jdahlin@async.com.br>
90 * giscanner/__init__.py:
92 * giscanner/cachestore.py:
93 * giscanner/cgobject.py:
94 * giscanner/girparser.py:
95 * giscanner/girwriter.py:
96 * giscanner/giscannermodule.c:
97 * giscanner/glibast.py:
98 * giscanner/glibtransformer.py:
99 * giscanner/libtoolimporter.py:
100 * giscanner/minixpath.py:
101 * giscanner/odict.py:
102 * giscanner/sourcescanner.c:
103 * giscanner/sourcescanner.h:
104 * giscanner/sourcescanner.py:
105 * giscanner/transformer.py:
106 * giscanner/utils.py:
107 * giscanner/xmlwriter.py:
109 Relicense the giscanner library under LGPLv2+.
110 This has been approved by all contributors.
112 2008-11-01 Owen Taylor <otaylor@redhat.com>
114 Bug 558848 giparser.py: shared library should be optional
116 When parsing a .gir, allow the shared-library attribute
117 of <namespace/> to be missing: this corresponds to the handling
118 in libgirepository and elsewhere.
120 2008-11-01 Tommi Komulainen <tommi.komulainen@iki.fi>
122 Bug 557898 – Fails to build on OSX 10.4
124 * configure.ac: Check for $shrext_cmds that should be implicitly
125 available if you're using libtool >= 2.0. If undefined, call
126 libtool --config explicitly to get its value.
127 * girepository/gtypelib.c: Remove special case for (non-)Darwin
130 2008-10-31 Colin Walters <walters@verbum.org>
132 * COPYING, COPYING.lib, COPYING.tools: Clarify licensing status.
134 2008-10-31 Johan Dahlin <jdahlin@async.com.br>
136 * configure.ac: Post release version bump
139 2008-10-31 Johan Dahlin <jdahlin@async.com.br>
143 * docs/release-checklist.txt:
146 2008-10-31 Johan Dahlin <jdahlin@async.com.br>
148 * Makefile.am: add an upload-release target
149 * docs/release-checklist.txt:
150 Release process documentation
152 2008-10-31 Colin Walters <walters@verbum.org>
154 Bug 558109 – _g_typelib_init fails to find shared libraries
156 * transformer/glibtransformer.py: Use ctypes' find_library
157 on passed libraries and write that for the shared-library
158 entry. We want to avoid depending on -devel packages.
160 2008-10-31 Johan Dahlin <jdahlin@async.com.br>
162 * docs/g-ir-scanner.1:
163 Document the renaming options.
165 2008-10-31 Tommi Komulainen <tommi.komulainen@iki.fi>
167 * giscanner/Makefile.am:
168 * tests/invoke/Makefile.am:
169 * tests/repository/Makefile.am: List in-tree libraries first in
170 LDADD / LIBADD. If installed library is listed first, the
171 resulting binary will prefer installed version to one in .libs,
172 possibly making 'make check' behave strangely.
174 2008-10-30 Tommi Komulainen <tommi.komulainen@iki.fi>
176 * giscanner/ast.py: map 'id' (ObjC) to 'any' type to stop
177 gir-repository from choking with gdk/quartz
179 2008-10-30 Johan Dahlin <jdahlin@async.com.br>
181 * giscanner/giscannermodule.c (calc_attrs_length),
182 (pygi_collect_attributes):
183 * giscanner/xmlwriter.py:
184 Write a C version of the xml namespace formatter.
185 Saves 15% of the time it takes to create a gtk gir.
187 2008-10-30 Johan Dahlin <jdahlin@async.com.br>
189 * giscanner/xmlwriter.py: Abstract attribute formatting
190 to a function external to the XMLWriter class.
192 * giscanner/scannerlexer.l:
193 Parse and discard __typeof and __attribute.
195 2008-10-30 Johan Dahlin <jdahlin@async.com.br>
197 * giscanner/girparser.py:
198 Remove arguments from the constructor, move them to
199 separate accessors. Add a new parse_tree method
200 which takes an element tree instance.
201 * tools/g-ir-scanner:
202 Update callsite for this
204 * giscanner/Makefile.am:
205 * giscanner/cachestore.py:
206 * giscanner/transformer.py:
207 Cache the include parsing. Saves ~25% time when
208 creating vte (which includes everything up to gtk+).
210 2008-10-30 Colin Walters <walters@verbum.org>
212 * giscanner/transformer.py: Don't reparse includes
213 we've already processed.
215 2008-10-30 Johan Dahlin <jdahlin@async.com.br>
217 * giscanner/girparser.py:
218 * giscanner/transformer.py:
219 Avoid parsing parameters, types etc when parsing
220 includes. Should speed up include parsing a bit.
222 2008-10-30 Johan Dahlin <jdahlin@async.com.br>
224 * giscanner/girparser.py:
225 Avoid big if/else and use a dispatch table like
228 2008-10-30 Johan Dahlin <jdahlin@async.com.br>
230 * giscanner/transformer.py:
231 Clean up include parsing and registration.
233 2008-10-30 Johan Dahlin <jdahlin@async.com.br>
235 * giscanner/transformer.py:
238 2008-10-30 Johan Dahlin <jdahlin@async.com.br>
240 Bug 558383 – builddir != srcdir build fails if giscanner python module not already installed
243 construct PYTHONPATH just once
245 * tests/everything/Makefile.am:
246 * tests/scanner/Makefile.am:
247 add $(top_srcdir) to PYTHONPATH to
248 handle builddir != srcdir
250 * giscanner/libtoolimporter.py:
251 * giscanner/sourcescanner.py:
252 Make the libtoolimporter work when distchecking too.
254 Mostly based on patch by Tommi Komulainen
256 2008-10-29 Owen Taylor <otaylor@redhat.com>
258 * giscanner/glibtransformer.py: If a filename of an existing
259 file is passed to --library, hunt for it directly, rather than
260 searching for a corresponding library.
262 2008-10-29 Johan Dahlin <jdahlin@async.com.br>
264 * giscanner/libtoolimporter.py:
265 * giscanner/sourcescanner.py:
266 Clean up the libtool importer a bit. Add a context so we
267 can use it through a with statement.
268 Don't just look in the current directory, look in the whole
271 2008-10-29 Tommi Komulainen <tommi.komulainen@iki.fi>
273 Bug 558065 – gitesttypes should be installed
277 * tests/types/Makefile.am -> tests/everything/Makefile.am
278 * tests/types/gitesttypes.c -> tests/everything/gitesttypes.c
279 * tests/types/gitesttypes.h -> tests/everything/gitesttypes.h
280 move tests/types to tests/everything
282 * tests/everything/Makefile.am: build normal shared library
283 libgirepository-everything.so.1.0.0 and corresponding typelib
284 Everything-1.0.typelib
286 * tests/everything/Makefile.am: explicitly link libtool
287 versioning with typelib versioning with variables
289 2008-10-28 Johan Bilien <jobi@via.ecp.fr>
291 * tools/g-ir-scanner: add LD_LIBRARY_PATH to LPATH before calling ld.
293 2008-10-27 Johan Bilien <jobi@via.ecp.fr>
295 * gio/gio-2.0.c: add allow-none annotations, based on the pygobject
298 2008-10-27 Johan Bilien <jobi@via.ecp.fr>
300 Bug 558068 – when invoking a method, offset the in arguments by one,
303 * tests/invoke/invoke.c, tests/invoke/testfns.c,
304 tests/invoke/testfns-1.0.gir: Add testing of method and constructor.
305 * girepository/ginvoke.c: do not offset the index of given out
306 arguments by one for methods, "this" is provided as in argument only.
308 2008-10-27 Johan Bilien <jobi@via.ecp.fr>
310 * gir/gio-2.0.c: add annotation for g_file_delete
312 2008-10-27 Tommi Komulainen <tommi.komulainen@iki.fi>
314 Bug 558062 – provide and use paths in the .pc file
316 * gobject-introspection-1.0.pc.in: provide typelibdir variable
317 for where .typelibs should be installed (callers shouldn't need
318 to construct paths from bits and pieces)
320 2008-10-25 Andreas Rottmann <a.rottmann@gmx.at>
322 Bug 557791 – g_irepository_require() could return a GTypelib *
324 * girepository/girepository.c: Return GTypelib; this is useful
325 for low level manipulation.
327 2008-10-25 Colin Walters <walters@verbum.org>
329 Bug 557788 – Return types for constructors in generated typelib bogus
331 * giscanner/glibtransformer.py: Don't resolve ctors incrementally,
332 rely on end pass resolution.
334 2008-10-25 Andreas Rottmann <a.rottmann@gmx.at>
336 Bug 557786 - support fixed size arrays
338 * girepository/ginfo.c: Add g_type_info_get_array_fixed_size.
339 * giscanner/scannerparser.y: Retain fixed array size.
340 * giscanner/ast.py: Add to note.
341 * giscanner/girwriter.py: Write to gir.
342 * girepository/girnode.c: Write it to typelib.
343 * tools/generate.c: Generate.
344 * tests/*: Add tests.
346 2008-10-25 Colin Walters <walters@verbum.org>
348 Bug 557076 - move typelibs to $libdir
350 * configure.ac: Steal some configury bits from dbus to expand
352 * gir/Makefile.am: Move to libdir.
353 * girepository/girepository.c: Stop searching XDG_DATA_DIRS;
354 instead just look at one hardcoded path in libdir.
355 * acinclude.m4: Bits from dbus.
357 2008-10-24 Johan Dahlin <johan@gnome.org>
359 * girepository/girnode.c (g_ir_node_check_unhandled_members):
360 Be quiet, do not warn about unhandled members.
362 2008-10-24 Johan Dahlin <johan@gnome.org>
364 * girepository/gtypelib.c:
365 Only use SHLIB_SUFFIX on darwin, otherwise use
366 G_MODULE_SUFFIX, we cannot get shext_cmds from libtool 2.2.
368 2008-10-24 Lucas Rocha <lucasr@gnome.org>
370 Bug 557623 - Constructors shouldn't be flagged as methods.
372 * girepository/ginfo.c (g_function_info_get_flags): ditto.
374 2008-10-24 Johan Dahlin <johan@gnome.org>
376 * giscanner/scannerparser.y:
377 Check against division by zero for the modula operator.
378 This fixes header parsing of OSX system headers included
381 2008-10-24 Johan Dahlin <johan@gnome.org>
385 Add a CONTRIBUTORS file and dist it.
387 2008-10-23 Tommi Komulainen <tommi.komulainen@iki.fi>
389 Bug 556739 – transfer-ownership attribute should be mandatory in .gir
391 * girepository/girparser.c (parse_param_transfer):
392 * giscanner/transformer.py (_create_parameter, _create_return):
393 * giscanner/girwriter.py (_write_return, _write_parameter):
394 * tools/generate.c (write_callable_info): always write and
395 require "transfer-ownership" for return-values and parameters
398 * tests/invoke/testfns-1.0.gir:
400 * tests/scanner/DrawableAdditions.xml:
401 * tests/scanner/GtkFrob-1.0-expected.tgir:
402 * tests/scanner/annotation-1.0-expected.tgir:
403 * tests/scanner/drawable-1.0-expected.tgir:
404 * tests/scanner/drawable-injected-1.0-expected.gir:
405 * tests/scanner/drawable-injected-1.0-expected.tgir:
406 * tests/scanner/foo-1.0-expected.tgir: Updated
408 2008-10-23 Tommi Komulainen <tommi.komulainen@iki.fi>
410 * giscanner/cgobject.py: build fundamental types same way as glib
412 * giscanner/glibtransformer.py (_type_from_gtype): record GType
413 when constructing the Type from it
415 * giscanner/glibtransformer.py (_adjust_transfer): Check whether
416 the parameter is a GObject from its GType, if available.
418 * giscanner/glibtransformer.py (_adjust_transfer):
419 * tests/scanner/foo-1.0-expected.gir:
420 * tests/scanner/foo-1.0-expected.tgir: deduce
421 transfer-ownership from GTypes
423 2008-10-23 Tommi Komulainen <tommi.komulainen@iki.fi>
425 * giscanner/transformer.py (_create_parameter):
426 * tests/scanner/foo-1.0-expected.gir: make varargs
427 transfer-ownership="none"
429 2008-10-23 Colin Walters <walters@verbum.org>
431 Bug 556739 - transfer ownership
433 * giscanner/ast.py: Refactor Parameter/Return to share
434 common attributes. Add transfer_inferred attribute
435 which says whether or not we made a guess.
436 * giscanner/transformer.py: Add much more extensive
437 heuristics around parameter and return transfer.
438 * giscanner/glibtransformer.py: Adjust to inspect
442 2008-10-22 Tommi Komulainen <tommi.komulainen@iki.fi>
444 Bug 557377 – Add test to ensure annotations survive the roundtrip via typelib
446 * tests/scanner/Makefile.am:
447 * tests/scanner/annotation-1.0-expected.tgir:
448 * tests/scanner/drawable-1.0-expected.tgir:
449 * tests/scanner/drawable-injected-1.0-expected.tgir:
450 * tests/scanner/foo-1.0-expected.tgir:
451 * tests/scanner/GtkFrob-1.0-expected.tgir:
452 * tests/scanner/utility-1.0-expected.tgir: Add test to ensure
453 annotations survive the roundtrip via typelib
455 The expectations are as currently produced by g-ir-generate,
456 comparison with the .gir files shows there are differences.
458 2008-10-23 Johan Bilien <jobi@via.ecp.fr>
460 Bug 557468 – Support for GI_TYPELIB_PATH
462 * girepository/girepository.c: if the GI_TYPELIB_PATH is set, add the
463 provided paths to the global search path.
465 2008-10-22 Tommi Komulainen <tommi.komulainen@iki.fi>
467 Bug 557379 – g-ir-generate not writing the 'abstract' attribute
469 * tests/scanner/drawable-1.0-expected.tgir:
470 * tests/scanner/drawable-injected-1.0-expected.tgir:
471 * tests/scanner/foo-1.0-expected.tgir:
472 * tools/generate.c (write_object_info): write 'abstract'
473 attribute for classes
475 2008-10-22 Lucas Rocha <lucasr@gnome.org>
477 * girepository/girmodule.c, girepository/gtypelib.c,
478 girepository/girparser.[ch]: fix some build warnings.
480 2008-10-22 Tommi Komulainen <tommi.komulainen@iki.fi>
482 Bug 557405 – Use 'allow-none' consistently
484 * docs/typelib-format.txt:
485 * girepository/ginfo.c (g_arg_info_may_be_null):
486 * girepository/girnode.c (g_ir_node_build_typelib):
487 * girepository/girnode.h (struct _GIrNodeParam):
488 * girepository/girparser.c (start_parameter):
489 * girepository/girwriter.c (function_generate):
490 * girepository/gtypelib.h (ArgBlob):
492 * tests/function.gir:
493 * tools/generate.c (write_callable_info): Use 'allow-none'
494 consistently throughout
496 2008-10-22 Tommi Komulainen <tommi.komulainen@iki.fi>
498 Bug 557092 – Callback annotations not used
500 * giscanner/transformer.py (_create_callback): use annotations
502 * tests/scanner/annotation.h
503 * tests/scanner/annotation-1.0-expected.gir: add tests
505 2008-10-21 Colin Walters <walters@verbum.org>
507 * giscanner/scannerlexer.l: Don't require trailing whitespace after
508 uncommented parameters.
511 2008-10-21 Colin Walters <walters@verbum.org>
513 * girepository/girepository.c: Ensure that when doing an unversioned
514 require, we prefer items earlier in the search path to later ones.
516 2008-10-21 Owen Taylor <otaylor@redhat.com>
518 * giscanner/transformer.py: For string parameters allow transfer annotation
519 to override the standard automatic guessing based on 'const'.
521 2008-10-21 Johan Bilien <jobi@via.ecp.fr>
523 Bug 557241 – "throws" flag for functions
525 * tests/scanner/drawable-1.0-expected.gir,
526 tests/scanner/drawable-injected-1.0-expected.gir,
527 tests/scanner/drawable.[ch]: add simple test for throwing
528 function (has GError ** as last argument)
530 * giscanner/ast.py: add a 'throws' flag to Function
531 * giscanner/glibtransformer.py: if a function's last paramerter is
532 a GError, set the 'throws' flag and remove that parameter
533 * giscanner/girwriter.py: write out the 'throws' attribute
534 * giscanner/girparser.py: support parsing the 'throws' attribute
536 * tests/repository/gitestthrows.c: add a simple test to check the
537 throws flag in a typelib and invoke the function
539 * girepository/ginfo.c, girepository/girnode.[ch],
540 girepository/girnode.h, girepository/girparser.c,
541 girepository/girepository.h: Add and parse the GI_FUNCTION_THROWS flag
543 * girepository/ginvoke.c: if a function throws, add a GError as last
544 arguments, and propagate the error to the invoker.
546 2008-10-21 Tommi Komulainen <tommi.komulainen@iki.fi>
548 * giscanner/transformer.py (_create_parameters): Warn if we see
549 annotations for unknown parameters. If .h and .c files name
550 parameters differently, the annotations may be lost.
552 2008-10-21 Johan Dahlin <johan@gnome.org>
554 Bug 556358 - don't use libtool internals
556 * giscanner/Makefile.am:
557 * giscanner/libtoolimporter.py:
558 * giscanner/sourcescanner.py:
559 * giscanner/utils.py:
560 Add a python meta importer and remove a libtool symlink hack.
562 2008-10-20 Andreas Rottmann <a.rottmann@gmx.at>
564 * tests/scanner/Makefile.am (%.typelib): Set PYTHONPATH
565 and --add-include-path appropriately when invoking the scanner.
566 * tests/types/Makefile.am (%typelib): Likewise.
568 2008-10-20 Colin Walters <walters@verbum.org>
570 Bug 556777 - validate properties
572 * giscanner/transformer.py: Add option to throw on unknown types.
573 * giscanner/glibtransformer.py: Use it on properties.
574 * tests/*: Add a test.
576 2008-10-20 Colin Walters <walters@verbum.org>
578 * giscanner/glibast.py: Also register g variants of
579 default_array_types. This is not beautiful, but
580 good alternatives aren't easy to come by.
581 This fixes gchar ** parsing.
583 2008-10-20 Colin Walters <walters@verbum.org>
585 * docs/typelib-format.txt, girepository/gtypelib.h:
586 Take a bit from ObjectInfo to represent abstract flag.
587 * giscanner/cgobject.py: Expose g_type_get_flags.
588 * girepository/girepository.h: Add accessor.
589 * girepository/ginfo.c: Implement it.
590 * giscanner/ast.py: Add is_abstract flag to generic
592 * giscanner/glibast.py: Use it.
593 * giscanner/girwriter.py: Write it.
594 * girepository/girparser.c: Parse it.
597 2008-10-20 Tommi Komulainen <tommi.komulainen@iki.fi>
599 * giscanner/girparser.py (_parse_function): don't lose
600 'transfer-ownership' attributes when injecting, check for the
603 2008-10-19 Johan Dahlin <johan@gnome.org>
605 * giscanner/scannerlexer.l: Parse and ignore __asm.
607 2008-10-19 Colin Walters <walters@verbum.org>
609 * giscanner/girparser.py: Parse array length= to ensure
610 it doesn't get lost from --inject.
612 2008-10-17 Colin Walters <walters@verbum.org>
614 Bug 556795 - char ** regression
616 * giscanner/transformer.py: Fix parsing of ctypes, add some
617 comments about what's going on.
618 * tests/*: Add a test for char **.
620 2008-10-17 Colin Walters <walters@verbum.org>
622 Bug 556783 - change namespace handling to be more consistent
624 * giscanner/transformer.py: Eliminate usage of
625 strip_namespace_object. We now treat --namespace as the default
626 --strip-prefix; however, if --strip-prefix is specified it
627 overrides --namespace. This applies to everything except function
628 names, where we do also strip the namespace.
629 * giscanner/glibtransformer.py: Remove usage of
630 strip_namespace_object.
632 * tests/*: Add skeletal GtkFrob-1.0 test which has different
633 --namespace and --strip-prefix.
635 2008-10-17 Tommi Komulainen <tommi.komulainen@iki.fi>
637 Bug 556732 – generate gir files consistently
639 * girepository/girparser.c (start_parameter):
641 * tests/invoke/testfns-1.0.gir:
642 * tools/generate.c (write_callable_info): write
643 'transfer-ownership' attribute consistently with both
644 return-value and parameter elements
646 2008-10-17 Tommi Komulainen <tommi.komulainen@iki.fi>
648 Bug 556732 – generate gir files consistently
650 * tools/generate.c (write_callable_info): write 'direction'
651 attribute only if other than 'in' to be consistent with
654 * tests/object.gir: remove direction="in" which is the default
656 2008-10-17 Tommi Komulainen <tommi.komulainen@iki.fi>
658 Bug 556732 – generate gir files consistently
660 * giscanner/ast.py (Field): add readable and writable properties
661 * giscanner/girparser.py (_parse_field): copy 'readable' and
662 'writable' attributes
663 * giscanner/transformer.py (_create_member): create fields as
665 * giscanner/glibtransformer.py (_introspect_object,
666 _pair_class_struct): make object instance and class fields
668 * giscanner/girwriter.py (_write_field):
669 * tools/generate.c (write_field_info): write field 'readable'
670 and 'writable' attributes only if non-default (read-only)
671 * girepository/girparser.c (start_field): in the absence of
672 attributes assume fields are read-only
674 * tests/struct.gir: remove redundant readable="1" from fields
675 * tests/scanner/foo-1.0-expected.gir:
676 * tests/scanner/utility-1.0-expected.gir: add writable="1" to
677 all record and union fields
679 2008-10-17 Tommi Komulainen <tommi.komulainen@iki.fi>
681 Bug 556732 – generate gir files consistently
683 * giscanner/girwriter.py (_write_property): write properties
684 'construct' attribute if set
685 * tools/generate.c (write_property_info): write properties
686 'readable' and 'writable' attributes only if non-default
687 * tests/object.gir: add writable="0"
688 * tests/scanner/foo-1.0-expected.gir: add construct="1"
690 2008-10-17 Johan Bilien <jobi@via.ecp.fr>
692 * gir/glib-2.0.c: added annotations
694 2008-10-16 Johan Bilien <jobi@via.ecp.fr>
696 * giscanner/ast.py: Also assume direction=out for size_t*, ssize_t*
699 2008-10-16 Johan Bilien <jobi@via.ecp.fr>
701 Bug 556610 – giscanner/girparser.py drops parameter options
703 * tests/scanner/drawable-injected-1.0-expected.gir,
704 tests/scanner/DrawableAdditions.xml: added simple test for injection.
705 * giscanner/ast.py: allow Parameter to take options in the constructor
706 * giscanner/girparser.py: parse parameter options (transfer,
707 direction, allow-none)
709 2008-10-16 Colin Walters <walters@verbum.org>
711 Bug 556185 - segfault on g_callable_info_get_return_type
713 Initial patch from John Ehresman.
715 * tests/repository/*: Add a test using
716 g_callable_info_get_return_type. Instead of casting a
717 GITypeInfo directly to a GIRegisteredTypeInfo, we need
718 to call g_type_info_get_interface.
720 2008-10-16 Colin Walters <walters@verbum.org>
722 Bug 556579 - union and struct name misresolved
724 * giscanner/transformer.py: The calls to _resolve_type_name
725 for struct/union names was a legacy holdover from when type
726 resolution had multiple phases. Now it's actively harmful
727 since we might pull in an identical name from another
731 2008-10-16 Colin Walters <walters@verbum.org>
733 Bug 556432 - transfer annotations and defaults
735 * giscanner/transformer.py: Canonicalize type
736 after removing *, not before. This ensures that
737 guchar* is transformed to 'uint8'.
738 Add some comments here.
739 * giscanner/glibtransformer.py: Add _adjust_transfer
740 phase for tweaking GObject transfers.
743 2008-10-16 Tommi Komulainen <tommi.komulainen@iki.fi>
745 * configure.ac: enable bunch of gcc warning CFLAGS
747 2008-10-16 Tommi Komulainen <tommi.komulainen@iki.fi>
749 Bug 556543 – reduce compiler warnings
751 * girepository/ginfo.c:
752 * girepository/girepository.c (register_internal,
753 count_interfaces, find_interface, find_namespace_version,
754 parse_version, g_irepository_require):
755 * girepository/girmodule.c (g_ir_module_build_typelib):
756 * girepository/girnode.c (init_stats, dump_stats,
757 _g_irnode_init_stats, _g_irnode_dump_stats,
758 g_ir_node_can_have_member):
759 * girepository/girparser.c (firstpass_end_element_handler,
760 locate_gir, parse_basic, parse_type_internal, resolve_aliases,
761 start_alias, start_type, end_type_top, parse_include, cleanup,
763 * girepository/gtypelib.c (validate_function_blob, validate_enum_blob):
764 * giscanner/giscannermodule.c (directive_get_options,
765 type_get_child_list):
766 * giscanner/scannerlexer.l (parse_gtkdoc):
767 * giscanner/scannerparser.y (ctype_free):
768 * giscanner/sourcescanner.c:
769 * giscanner/sourcescanner.h (gi_source_scanner_parse_macros):
770 * tests/types/gitesttypes.c:
771 * tools/compiler.c (main):
772 * tools/generate.c (write_repository): Remove unused variables
773 and code, add missing includes, declarations and case
776 2008-10-16 Tommi Komulainen <tommi.komulainen@iki.fi>
778 Bug 556541 – access union members through UnionBlob rather than
781 * girepository/ginfo.c (g_union_info_find_method): access union
782 members through UnionBlob rather than StructBlob
784 2008-10-15 Colin Walters <walters@verbum.org>
786 Bug 556331 - clean up includes handling
788 * tools/g-ir-scanner: Rework command line arguments; now we take
789 --add-include-path and --include separately.
790 * giscanner/girwriter.py: Separate name= and version= in include
792 * giscanner/ast.py: Add Include type.
793 * giscanner/transformer.py: Cleanups to register_include now that
794 we don't need to handle mixed filenames and relative arguments.
795 * girepository/girparser.c: Parse name and version separately;
796 this fixes a bug as a side effect where we weren't resolving
797 through aliases for basic types.
798 * girepository/girepository.c: Fix format string args.
799 * gir/Makefile.am: Update.
802 2008-10-15 Tommi Komulainen <tommi.komulainen@iki.fi>
804 Bug 556434 – unhandled interface/object/... member types
806 * girepository/girnode.c (g_ir_node_check_unhandled_members,
807 g_ir_node_build_typelib): Check all
808 interface/object/boxed/struct/union members are processed and
809 abort if they are not. (Mostly callbacks in structs, but also
810 fields in interfaces.)
812 2008-10-15 Tommi Komulainen <tommi.komulainen@iki.fi>
814 * a/girepository/girnode.c (g_ir_node_build_members,
815 g_ir_node_build_typelib): refactor common code for processing
816 members to a function
818 2008-10-15 Tommi Komulainen <tommi.komulainen@iki.fi>
820 * gir/Makefile.am (check-local): check that typelib -> gir -> typelib
821 transformation is lossless (it's not)
823 2008-10-15 Tommi Komulainen <tommi.komulainen@iki.fi>
825 * tests/Makefile.am: fix tests to compare xml to xml instead of
826 typelib to xml, and stop on error
828 2008-10-15 Tommi Komulainen <tommi.komulainen@iki.fi>
830 * tools/generate.c (write_type_name, write_type_info,
831 write_type_info, write_object_info, write_object_info,
832 write_interface_info, write_error_domain_info): reduce code
835 2008-10-15 Tommi Komulainen <tommi.komulainen@iki.fi>
837 Bug 556174 – parse types for lists etc.
839 * girepository/girparser.c (end_type_recurse):
841 * tools/generate.c (write_type_info, write_field_info,
842 write_callable_info, write_callable_info, write_constant_info,
843 write_property_info): use nested <type>s for lists and hashes
845 2008-10-15 Tommi Komulainen <tommi.komulainen@iki.fi>
848 * tests/object.gir: remove trailing whitespace from inside
849 elements to match g-ir-generate output
851 2008-10-15 Tommi Komulainen <tommi.komulainen@iki.fi>
853 * tools/generate.c (xml_printf): quote printf arguments so that
854 we don't generate invalid XML by writing unescaped double quotes
855 and such in attributes
857 2008-10-15 Tommi Komulainen <tommi.komulainen@iki.fi>
859 * tools/generate.c (write_field_info, write_callable_info,
860 write_function_info, write_callback_info, write_struct_info,
861 write_constant_value, write_signal_info, write_vfunc_info,
862 write_object_info, write_interface_info, write_union_info,
863 write_repository): remove unused indent parameters, xmlwriter
864 keeps track of necessary indentation
866 2008-10-15 Tommi Komulainen <tommi.komulainen@iki.fi>
868 * tools/generate.c (xml_element_new, xml_element_free,
869 xml_start_element, xml_end_element, xml_end_element_unchecked,
870 xml_open, xml_close): Keep track of generated XML tree and
871 handle indentation and closing tags properly.
872 (write_field_info, write_callable_info, write_function_info,
873 write_callback_info, write_struct_info, write_value_info,
874 write_constant_info, write_enum_info, write_signal_info,
875 write_vfunc_info, write_property_info, write_object_info,
876 write_interface_info, write_error_domain_info, write_union_info,
877 write_repository): Use xml_start_element and xml_end_element to
880 2008-10-15 Tommi Komulainen <tommi.komulainen@iki.fi>
882 * tools/generate.c (xml_printf, xml_open, xml_close, xml_free):
883 (write_type_name, write_type_info, write_field_info,
884 write_callable_info, write_function_info, write_callback_info,
885 write_struct_info, write_value_info, write_constant_value,
886 write_constant_info, write_enum_info, write_signal_info,
887 write_vfunc_info, write_property_info, write_object_info,
888 write_interface_info, write_error_domain_info, write_union_info,
889 write_repository): wrap all FILE access to go through simple xmlwriter
891 2008-10-15 Tommi Komulainen <tommi.komulainen@iki.fi>
893 Bug 556400 – Fails to build on OS X 10.4
895 * configure.ac: check for functions backtrace and backtrace_symbols
896 * girepository/girparser.c (backtrace_stderr): Comment out
897 implementation if the functions are not available.
898 * gcov.mak (clean-gcov, clean-gcno): always call 'find' with a
899 directory for better portability
901 2008-10-15 Johan Bilien <jobi@via.ecp.fr>
903 Bug 556433 – assume direction = out for int * parameters
905 * giscanner/ast.py: define a list of types for which, if passed as
906 reference, we assume a default direction of 'out'
907 * giscanner/transformer.py: if a type has type pointer to one of the
908 previously defined types, and no direction is set, assume out.
909 * tests/scanner/drawable.[ch]: added tests for guessed direction=out
911 2008-10-15 Johan Bilien <jobi@via.ecp.fr>
913 * tests/scanner/annotation.c: fixed a few copy-paste errors
915 2008-10-14 Johan Bilien <jobi@via.ecp.fr>
917 Bug 556323 – transfer-ownership is wrong for functions returning const
920 * giscanner/transformer.py: check for a const string as return value,
921 not just const char*. Suggested by Colin Walters
922 * tests/scanner/annotation-1.0-expected.gir: updated expected output
924 2008-10-14 Johan Bilien <jobi@via.ecp.fr>
926 * girepository/ginfo.c, girepository/girepository.h: add
927 g_union_info_find_method
929 2008-10-14 Colin Walters <walters@verbum.org>
931 * tests/repository/Makefile.am: Reenable repo test.
932 * tests/repository/gitestrepo.c: Prepend search
933 path for $(top_builddir)/gir dir so that we don't
934 require installation for "make check" to pass.
936 2008-10-13 Jürg Billeter <j@bitron.ch>
938 * giscanner/glibtransformer.py:
939 * tests/scanner/annotation-1.0-expected.gir:
940 * tests/scanner/drawable-1.0-expected.gir:
941 * tests/scanner/foo-1.0-expected.gir:
942 * tests/scanner/utility-1.0-expected.gir:
944 Support fields in GObject structs
946 2008-10-13 Jürg Billeter <j@bitron.ch>
948 * giscanner/ast.py: add signed integer and off_t to type_names
950 2008-10-12 Jürg Billeter <j@bitron.ch>
952 * giscanner/girparser.py: Parse bits attribute of fields
954 2008-10-12 Tommi Komulainen <tommi.komulainen@iki.fi>
956 * tests/repository/Makefile.am: run 'gitestrepo' in 'make check'
957 * tests/repository/gitestrepo.c (main): instantiate
958 'GCancellable' to ensure the GType is registered before using
961 2008-10-12 Johan Bilien <jobi@via.ecp.fr>
963 * giscanner/girparser.py: actually add the parsed constant nodes
965 2008-10-12 Colin Walters <walters@verbum.org>
967 * girepository/girepository.c: Don't cast DirEntry to Blob,
968 actually look it up by offset.
970 2008-10-12 Johan Bilien <jobi@via.ecp.fr>
972 * giscanner/girparser.py: parse constant nodes in gir files
974 2008-10-12 Johan Bilien <jobi@via.ecp.fr>
976 * giscanner/transformer.py: prefix for constants have an underscore,
977 so remove them as if they were functions, not objects.
979 2008-10-12 Johan Bilien <jobi@via.ecp.fr>
981 * tests/scanner/foo-1.0-expected.gir: add constants to expected gir
984 2008-10-12 Colin Walters <walters@verbum.org>
986 Initial patch from Jani Monoses.
988 * girepository/gtypelib.c: Fix inverted test for success
991 2008-10-12 Tommi Komulainen <tommi.komulainen@iki.fi>
993 * tools/generate.c (write_callable_info): use "transfer-ownership"
994 attribute for return values
996 2008-10-12 Tommi Komulainen <tommi.komulainen@iki.fi>
998 * tools/generate.c (write_callable_info): move "transfer" and
999 "null-ok" attributes from <function> to <return-value> element
1001 2008-10-12 Tommi Komulainen <tommi.komulainen@iki.fi>
1003 * girepository/girparser.c (start_return_value): handle
1004 "transfer-ownership" attribute
1006 2008-10-12 Tommi Komulainen <tommi.komulainen@iki.fi>
1008 * girepository/girparser.c (parse_param_transfer):
1009 * tools/generate.c (write_callable_info): use "container" for
1010 container/shallow ownership transfer (not "shallow")
1012 2008-10-12 Tommi Komulainen <tommi.komulainen@iki.fi>
1014 * girepository/girparser.c (parse_param_transfer,
1015 start_parameter): Refactor handling of transfer=none/shallow/full
1016 to separate function
1018 2008-10-12 Tommi Komulainen <tommi.komulainen@iki.fi>
1020 Bug 556048 – Crash in g_irepository_find_by_gtype
1022 * girepository/gtypelib.h (BLOB_IS_REGISTERED_TYPE): added
1023 * girepository/girepository.c (find_interface): Fix
1024 find_by_gtype case to get the type name from right offset
1026 2008-10-12 Jürg Billeter <j@bitron.ch>
1028 * giscanner/girparser.py: Fix parsing transfer-ownership attribute
1031 2008-10-12 Tommi Komulainen <tommi.komulainen@iki.fi>
1033 * girepository/gtypelib.h (RegisteredTypeBlob): make
1034 'unregistered' one bit wide as everywhere else
1036 2008-10-12 Jürg Billeter <j@bitron.ch>
1038 * giscanner/glibtransformer.py:
1039 * tests/scanner/annotation-1.0-expected.gir:
1040 * tests/scanner/drawable-1.0-expected.gir:
1041 * tests/scanner/drawable.h:
1042 * tests/scanner/foo-1.0-expected.gir:
1043 * tests/scanner/utility-1.0-expected.gir:
1045 Readd class records as workaround to not break Gtk typelib
1047 2008-10-12 Tommi Komulainen <tommi.komulainen@iki.fi>
1049 * tests/types/Makefile.am: fix typo in gitesttypes namespace
1051 2008-10-12 Jürg Billeter <j@bitron.ch>
1053 * giscanner/glibtransformer.py: Don't generate <record> elements
1055 * tests/scanner/*: Update test cases
1057 2008-10-11 Colin Walters <walters@verbum.org>
1059 Bug 552858: versioning
1061 This is a big patch. You should probably remove your installation
1064 * docs/typelib-format.txt: Add nsversion entry which holds
1065 version of namespace.
1066 * girepository/girepository.h: Add 'version' parameter to
1067 g_irepository_require. This may be NULL. Normally
1068 bindings should pass an explicit version though.
1069 * girepository/girepository.c: Lots of infrastructure to
1070 support versioning. Add some more documentation. Disallow
1071 some usage of NULL namespaces.
1072 * girepository/girmodule.c: Add version parameter.
1073 * girepository/gtypelib.c: Update header size.
1074 * giscanner/ast.py: Add version to Namespace.
1075 * giscanner/girparser.py: Parse version attribute from
1076 XML, pass to Namespace.
1077 * giscanner/girwriter.py: Write out version parameter.
1078 * giscanner/transformer.py: Clean up include registration.
1079 * tests/*: Add version attribute.
1080 * tests/invoke/invoke.c: Don't try looking up test before
1081 it's loaded in repository.
1082 * tools/generate.c: Output version parameter.
1083 * gir/Makefile.am: Add 2.0 version to .gir files.
1085 2008-10-11 Colin Walters <walters@verbum.org>
1087 * giscanner/scannerlexer.l (parse_gtkdoc): Don't lose
1088 if we have mismatched parens.
1090 2008-10-11 Lucas Rocha <lucasr@gnome.org>
1092 * giscanner/girparser.py (_parse_enumeration_bitfield): fix typo
1093 on 'members' variable.
1095 2008-10-11 Colin Walters <walters@verbum.org>
1097 Bug 555947 - update annotations syntax
1099 * giscanner/ast.py: Default to None for transfer. Remove
1100 default transfers for container types; we require this to
1102 * giscanner/girwriter.py: Transfer is now 'none', 'container',
1103 'full' to match repository.
1104 * giscanner/scannerlexer.l: Annotations now are parenthesized.
1105 * giscanner/transformer.py: Update for new annotations syntax.
1108 2008-10-11 Johan Bilien <jobi@litl.com>
1110 * giscanner/scannerparser.y: ignore non-UTF-8 string constants
1112 2008-10-11 Johan Bilien <jobi@litl.com>
1114 Bug 552347: Parse #defines constants
1116 * girepository/gtypelib.c: update the list of value_size
1117 with recently defined type tags
1118 * giscanner/scannerparser.y: brought back parsing of #defined, as
1119 present in older version
1120 * giscanner/giscannermodule.c: bind gi_source_scanner_append_filename
1121 * giscanner/girwriter.py: write out constant tags in the gir
1122 * giscanner/sourcescanner.py: add accessor for const_string
1123 * giscanner/transformer.py, giscanner/glibtransformer.py: handle
1126 2008-10-11 Tommi Komulainen <tommi.komulainen@iki.fi>
1128 Bug 555946: Install a test module exercising all types, transfer
1133 * tests/types/*: Add and install a test module that has functions
1134 accepting and returning most of the basic types to enable bindings
1135 implementors to more easily test their type conversion routines.
1137 2008-10-11 Jürg Billeter <j@bitron.ch>
1139 Bug 552374: Const strings should be identified in the gir.
1141 * giscanner/transformer.py: support string memory management
1142 * tests/scanner/foo.h: use char * and const char *
1143 * tests/scanner/foo-expected.gir: test that
1145 2008-10-11 Johan Dahlin <johan@gnome.org>
1147 * giscanner/girparser.py:
1148 Also parse enums which are not glib types.
1150 2008-10-11 Lucas Rocha <lucasr@gnome.org>
1152 Bug 552370: add one more test for unsigned as a type, not as
1155 * giscanner/ast.py: add 'uint' type name for 'unsigned'.
1156 * test/scanner/foo.h: add function which uses unsigned as a type.
1157 * test/scanner/foo-expected.gir: test that.
1159 2008-10-11 Andreas Rottmann <a.rottmann@gmx.at>
1161 Bug 555712: Struct and union issues
1163 * giscanner/scannerparser.y (struct_declarator): Use information
1164 provided about the bit width of a field.
1165 * giscanner/transformer.py (Transformer._create_member): Pass the
1166 symbol's const_int member to the created field (it represents the
1168 * giscanner/girwriter.py (GIRWriter._write_field): Output 'bits'
1169 field attribute, if present.
1170 * giscanner/ast.py (Field): Add 'bits' member, specifying the
1171 width in bits of the field (only relevant for bitfields).
1174 * giscanner/transformer.py (Transformer._create_typedef_struct)
1175 (Transformer._create_typedef_union): Add calls to _create_struct()
1176 and _create_union(), respectively. This causes the scanner to
1177 generate output for fields of struct and union typedefs.
1180 2008-10-11 Jürg Billeter <j@bitron.ch>
1182 Bug 552370: unsigned not scanned properly
1184 * giscanner/scannerparser.y: combine basic types such as unsigned
1185 int and long long when scanning
1186 * tests/scanner/foo-expected.gir:
1187 * tests/scanner/foo.c: (foo_test_unsigned):
1188 * tests/scanner/foo.h: test that
1190 2008-10-11 Lucas Rocha <lucasr@gnome.org>
1192 Bug 554854: The --typelib-xml and --inject options should reuse
1193 giscanner parser/writer.
1195 * giscanner/ast.py: add constructor list to Struct and Union.
1196 Add new param in Return's contructor to define transfer.
1197 * giscanner/girparser.py: several additions to the parser in order
1198 to have parsing all nodes of the gir xml files.
1199 * tools/g-ir-scanner (typelib_xml_strip, inject): use gir parser
1200 and writer in --inject and --typelib-xml options.
1201 * giscanner/xmlwriter.py: ignore empty attributes instead of
1202 raising an error as this basically exposes a bug in GIRParser.
1203 This should be reverted as soon as the parser is fixed.
1205 2008-10-11 Lucas Rocha <lucasr@gnome.org>
1207 Bug 552376: scanner generates wrong names for enum members when
1208 there's no defined gtype.
1210 * giscanner/utils.py (strip_common_prefix): Always strip common
1211 prefix exactly up to the last "_", and not beyond.
1212 * tests/scanner/foo.h (FooEnumNoType): add FOO_ENUM_NEUF. The point
1213 here is that the first character after the last '_' should should be
1214 the same as the character in the same position on the type name.
1215 * tests/scanner/foo-expected.gir: test that
1217 2008-10-10 Lucas Rocha <lucasr@gnome.org>
1219 Bug 555293: append library_paths to LPATH env variable to work
1220 around a bug in find_library when using ldconfig.
1222 * tools/g-ir-scanner (main): ditto.
1224 2008-10-09 Lucas Rocha <lucasr@gnome.org>
1226 * girepository/girepository.c (register_internal): fix regression on
1227 invoke test case by making sure we load the global module in the
1228 typelib when dealing with inline typelibs.
1229 * girepository/gtypelib.c: a couple of coding style fixes.
1231 2008-10-06 Lucas Rocha <lucasr@gnome.org>
1233 Bug 555294: Add support for multiple shared libraries per typelib.
1235 * girepository/ginvoke.c (g_function_info_invoke),
1236 girepository/ginfo.c(g_registered_type_info_get_g_type): use
1237 g_typelib_symbol instead of g_module_symbol.
1238 * girepository/girepository.h: remove g_typelib_set_module and add
1240 * girepository/gtypelib.[ch] (find_some_symbol, _g_typelib_init,
1241 g_typelib_new_from_memory, g_typelib_new_from_const_memory,
1242 g_typelib_free, g_typelib_symbol): chnage GTypeLib to hold a list of
1243 modules instead of just one. The symbol lookup is now abstracted
1244 behind g_typelib_symbol which tries to find the passed symbol name in
1246 * giscanner/girwriter.py, tools/g-ir-scanner: change scanner to read
1247 and write shared_library attribute as a comma-separated list of libs.
1249 2008-10-06 Colin Walters <walters@verbum.org>
1251 * giscanner/transformer.py: Parse length= annotation as
1252 a parameter name, not a raw int.
1255 2008-10-03 Colin Walters <walters@verbum.org>
1257 Bug 551744: Non-GObject types aren't aggregating ctors and methods
1259 * girepository/gtypelib.c: Allow ctors/methods on struct,union,
1261 * giscanner/glibtransformer.py: Ditto, and GLibBoxed is also a
1265 2008-10-03 Colin Walters <walters@verbum.org>
1267 Bug 554576: scan problem with ev_selection_render_selection()
1269 * giscanner/transformer.py: Only do type resolution once we've
1270 scanned all types. What could happen before is that we'd strip
1271 the namespace from local type "EvSelection" => Selection, and
1272 then later pull a "Selection" from some other namespace because
1273 we hadn't yet seen the local EvSelection. This could come
1274 down to hash table ordering and other things so not easy
1275 to write a test for.
1277 2008-10-03 Lucas Rocha <lucasr@gnome.org>
1279 * giscanner/girwriter.py (_parser_member): fix the last parameter of
1280 GLibEnumMember constructor as it should be the enum member nick.
1282 2008-10-02 Colin Walters <walters@verbum.org>
1284 Bug 552961: remove this parameter for methods
1286 * giscanner/glibtransformer.py: Delete this parameter; it is
1288 * girepository/ginvoke.c: Insert this parameter for methods.
1289 * girepository/gtypelib.c: Remove no longer needed verification of
1290 method this parameter.
1293 2008-09-30 Dan Winship <danw@gnome.org>
1295 Bug 554490: g-ir-scanner gets confused by '\\'
1297 * giscanner/scannerlexer.l (chartext, stringtext): fix use of
1298 backslashes so it will correctly parse '\\' and "\\"
1300 * tests/scanner/annotation.c: add a use of '\\' to make sure that
1303 * giscanner/glibtransformer.py (GLibTransformer.count_type): typo
1305 2008-10-02 Colin Walters <walters@verbum.org>
1307 bug 552393: Note variadic functions
1309 * giscanner/scannerparser.y: Parse ellipsis. Refactor grammar
1310 to use parameter_list directly.
1311 * giscanner/sourcescanner.h: Add ellipsis csymbol type.
1312 * giscanner/ast.py: Add Varargs type.
1313 * giscanner/transformer.py: Check for ellipsis symbol, transform
1315 * girepository/girnode.h: Add varargs flag to in-memory nodes.
1316 Parse varargs functions, but filter them out before we start
1317 compiling the typelib.
1319 2008-10-02 Colin Walters <walters@verbum.org>
1321 Bug 554632: type tag for GType
1323 * girepository/girepository.h, girepository/girepository.c:
1324 Add type tag for GType - it's a special type we don't want
1325 to resolve to just "long".
1326 * docs/typelib-format.txt: Update.
1327 * girepository/girparser.c: Parse it.
1328 * giscanner/glibtransformer.py: Ensure we don't put GType in
1330 * tools/generate.c: Remove hardcoded type list.
1333 2008-09-30 Dan Winship <danw@gnome.org>
1335 Bug 554521: scanner generates wrong names for enum members with
1336 full type name prefix
1338 * giscanner/utils.py (strip_common_prefix): Fix this to strip the
1339 right amount when the entire "first" string is a prefix of
1342 * tests/scanner/foo.h (FooEnumFullname):
1343 * tests/scanner/foo-expected.gir: test that
1345 2008-09-29 Colin Walters <walters@verbum.org>
1347 Bug 552380: Array parameters should be marked in the gir
1349 * giscanner/ast.py: Default char** to utf8[], and guchar* to
1350 uint8[]. Add Array, List, and Map subclasses of Type;
1351 these types can be generic. Return transfer defaults
1352 to true if return value is string or container type.
1353 Delete Sequence type.
1354 * giscanner/scannerlexer.l: Syntax change for annotations;
1355 use <> since it's more readable.
1356 * giscanner/girwriter.py: Write out these changes.
1357 * giscanner/girparser.py: Parse them.
1358 * giscanner/transformer.py: Have a defined set of
1359 both list and map types. When creating a type,
1360 check if the ctype we've parsed is one of them,
1361 if so create a container type subclass as appropriate.
1362 * girepository/girparser.c: Parse in generic types.
1365 2008-09-27 Colin Walters <walters@verbum.org>
1367 * tools/g-ir-scanner: Add --inject option.
1369 2008-09-25 Colin Walters <walters@verbum.org>
1371 Remove non-repository types from GIR
1373 * giscanner/ast.py: The canonical name is 'utf8', not
1375 * giscanner/glibast.py: A few more glib type mappings.
1376 * girepository/girparser.c: We only parse repository types.
1377 * tests/*.gir: Update.
1379 2008-09-23 Colin Walters <walters@verbum.org>
1381 Bug 552566: Add time_t type
1383 We need a type for time_t since it's special in C, and just
1384 mapping it to long precluded bindings from handling it
1387 2008-09-19 Colin Walters <walters@verbum.org>
1389 Bug 552390: Handle capitialization like "DBus" more robustly
1391 The to_underscores function was designed for use against prefixed
1392 names; we need a separate function which will convert names like
1393 DBusFoo into dbus_foo, not d_bus_foo.
1395 2008-09-19 Colin Walters <walters@verbum.org>
1397 Add check to make sure we're not hitting out unresolved types
1399 Validate the "this" argument for methods
1401 Remove heuristic matching of methods to classes based on prefix
1403 It was a broken hack that dated from when we handled underscoring
1404 and capitalization conventions less well.
1406 2008-09-18 Colin Walters <walters@verbum.org>
1408 Bug 552384: Use SHLIB_SUFFIX intead of G_MODULE_SUFFIX for Darwin
1410 On Darwin, the suffix for installed shared libraries (.dylib) is
1411 different from loadable modules (.so). We use a bit of magic shell
1412 script from Behdad Esfahbod to figure out the right suffix.
1414 2008-09-15 Johan Dahlin <johan@gnome.org>
1416 * giscanner/sourcescanner.py (SourceType.type_qualifier): Add
1417 a wrapper for type_qualifier as well.
1419 2008-09-15 Colin Walters <walters@verbum.org>
1421 http://bugzilla.gnome.org/show_bug.cgi?id=552065
1423 * giscanner/ast.py: Add deprecation attributes.
1424 * giscanner/girwriter.py: Write out deprecation data.
1425 * girepository/girparser.c: Relax parsing; deprecated
1426 attribute now includes freeform string.
1427 * giscanner/scannerlexer.l: Parse Deprecated.
1428 * giscanner/transformer.py: Look for deprecated attribute
1430 * tests/scanner/*: Add a Deprecated test.
1432 2008-09-14 Tor Lillqvist <tml@novell.com>
1434 * tests/scanner/Makefile.am (%.typelib): Use $(EXEEXT).
1436 2008-09-14 Colin Walters <walters@verbum.org>
1438 * giscanner/glibtransformer.py: Ignore functions with
1441 2008-09-12 Colin Walters <walters@verbum.org>
1443 * giscanner/glibtransformer.py: Accept Gtk.Type as GType.
1445 2008-09-12 Colin Walters <walters@verbum.org>
1447 * giscanner/ast.py: Bind pid_t to INT for vte.
1449 2008-09-12 Colin Walters <walters@verbum.org>
1451 * giscanner/girparser.py: Parse c:type for boxed records/unions.
1452 * giscanner/glibast.py: Avoid overwriting ctype.
1453 * giscsanner/transformer.py: Try resolving types using the GType names.
1455 2008-09-12 Colin Walters <walters@verbum.org>
1457 * giscanner/minixpath.py: Code to run an "XPath"
1458 assertion against an XML tree, taken from
1459 gir-repository/gir/tests.py.
1460 * giscanner/Makefile.am: Ship it.
1461 * tools/g-ir-scanner: Add --xpath-assertions option.
1462 * gir/GLib-assertions.txt: Add a few assertions.
1463 * gir/Makefile.am: Run them.
1465 2008-09-11 Colin Walters <walters@verbum.org>
1467 http://bugzilla.gnome.org/show_bug.cgi?id=551737
1469 * giscanner/transformer.py: Fix strip_namespace_func to only strip
1470 prefix if it ends with _. Tweak callback stripping to determine
1471 based on presence of _ whether we need to use strip_namespace_func
1472 or strip_namespace_object.
1474 2008-09-09 Owen Taylor <otaylor@redhat.com>
1476 * docs/typelib-format.txt: Wether => Whether
1478 2008-09-08 Colin Walters <walters@verbum.org>
1480 * girepository/girparser.c: Default to "readable" for properties.
1481 * giscanner/ast.py: Add readable, writable etc.
1482 * giscanner/girwriter.py: Writ them.
1483 * giscanner/glibtransformer.py: Inspect them.
1486 2008-09-07 Colin Walters <walters@verbum.org>
1488 * giscanner/cgobject.py: Add comment.
1490 2008-09-07 Colin Walters <walters@verbum.org>
1492 * giscanner/cgobject.py: Also call g_thread_init.
1494 2008-09-07 Colin Walters <walters@verbum.org>
1496 * giscanner/transformer.py: Fix regression by not
1497 stripping prefix before stripping namespace for unions
1500 2008-09-06 Colin Walters <walters@verbum.org>
1502 * giscanner/transformer.py: If a namespace contains
1503 multiple caps, try stripping both gnomekeyring_ and
1506 2008-09-07 Johan Dahlin <johan@gnome.org>
1508 Bug 551162 – giscanner does not recognize asm and __asm__
1509 * giscanner/scannerlexer.l:
1510 Patch by Jani Monoses.
1512 2008-09-06 Colin Walters <walters@verbum.org>
1514 * girepository/girnode.c: Allow gtype_name
1515 and gtype_init in struct and union.
1516 * girepository/girparser.c: Parse glib:
1517 boxed bits for both structure and union.
1518 * girepository/gtypelib.c: Don't barf
1519 if structure is boxed.
1520 * giscanner/girparser.py: Parse new XML
1522 * giscanner/girwriter.py: Write out new
1524 * giscanner/glibast.py: Define new classes
1525 which are both Boxed and Struct/Union, as
1526 well as an "Other" for everything else.
1527 * giscanner/glibtransformer.py: Handle
1528 boxed types specially; we try to merge
1529 them with a struct/union if one exists,
1530 otherwise fall back to generic boxed.
1532 * tools/generate.c: Write out new format.
1534 2008-09-06 Johan Dahlin <johan@gnome.org>
1536 * giscanner/grealpath.h: Include stdlib.h
1538 * docs/g-ir-generate.1: Remove leading %
1540 2008-09-01 Colin Walters <walters@verbum.org>
1542 * girepository/girparser.c: Look at c:type to determine
1543 whether or not an item is a pointer.
1545 2008-09-01 Johan Dahlin <johan@gnome.org>
1547 * tests/scanner/Makefile.am:
1548 Set PYTHONPATH so the scanner can run
1549 even if you didn't install anything.
1551 2008-09-01 Johan Dahlin <johan@gnome.org>
1554 Post-release version bump
1557 2008-09-01 Johan Dahlin <johan@gnome.org>
1561 2008-08-31 Colin Walters <walters@verbum.org>
1563 * giscanner/glibtransformer.py: Quiet info
1566 2008-08-31 Johan Dahlin <johan@gnome.org>
1569 Bump version to 0.5.0
1571 2008-08-31 Colin Walters <walters@verbum.org>
1573 * giscanner/glibtransformer.py: Follow aliases to ensure
1574 we don't get a constructor returning a basic type.
1575 * giscanner/transformer.py: Add function to follow aliases.
1578 2008-08-31 Johan Dahlin <johan@gnome.org>
1580 * giscanner/scannerlexer.l:
1581 * giscanner/scannerparser.y:
1582 * giscanner/sourcescanner.h:
1583 * giscanner/sourcescanner.py:
1584 Parse GCC extensions in the parser instead of just undeffing them
1585 in the pre-processor.
1587 2008-08-31 Johan Dahlin <johan@gnome.org>
1589 * giscanner/glibtransformer.py:
1590 Clean up a huge if. Do not add methods or constructors
1592 * giscanner/utils.py:
1593 second might be longer than first, check that.
1595 2008-08-31 Johan Dahlin <johan@gnome.org>
1600 2008-08-31 Colin Walters <walters@verbum.org>
1602 * girepository/girparser.c: Don't lose if we
1605 2008-08-31 Colin Walters <walters@verbum.org>
1607 * giscanner/glibtransformer.py: Look for libtool
1608 library in current directory
1609 * tests/scanner - Update.
1611 2008-08-30 Colin Walters <walters@verbum.org>
1613 * docs/typelib-format.txt: Add a guint32
1615 * gir/Makefile.am: Dep on Makefile
1616 * girepository/ginfo.c:
1617 * girepository/girepository.c: Clean up
1618 default typelib handling; remove global
1619 default_typelib variable. Ensure we handle
1620 NULL repository in more places.
1621 Support dependency resolution.
1622 Support lazy loading.
1623 * girepository/girepository.h: Remove
1624 g_irepository_unregister; we don't support
1625 unloading typelibs since really they're
1626 process-global. Update for lazy loading
1628 * girepository/girmodule.c: Use g_new0.
1629 Add dependencies to GirModule.
1630 * girepository/girparser.c: Parse dependencies.
1631 * girepository/gtypelib.c: Add 4 bytes for
1633 * tests/Makefile.am: Kill off gobject.gir,
1634 it conflicts with the real one.
1635 * tests/object.gir: Dep on GObject.
1636 * tools/generate.c: Take --includedir
1637 argument to say which directories to search
1638 for typelibs. Print out dependencies.
1640 2008-08-30 Colin Walters <walters@verbum.org>
1642 * giscanner/glibtransformer.py: Reduce warning noise.
1644 2008-08-29 Colin Walters <walters@verbum.org>
1646 * girepository/ginfo.c: Add some assertions regarding
1647 refcounts, just to be sure.
1648 * giscanner/glibtransformer.py: Blacklist a few more
1651 2008-08-29 Colin Walters <walters@verbum.org>
1653 * giscanner/glibtransformer.py: Blacklist a few
1654 functions that use GError oddly
1656 2008-08-29 Colin Walters <walters@verbum.org>
1658 * girepository/gtypelib.c: Don't crash if no
1661 2008-08-29 Colin Walters <walters@verbum.org>
1663 * girepository/girparser.c: Handle chains of aliases
1664 across modules by ensuring we fully qualify aliases
1667 2008-08-29 Colin Walters <walters@verbum.org>
1669 * girepository/girparser.c: Don't search aliases
1672 2008-08-29 Colin Walters <walters@verbum.org>
1674 * girepository/girparser.c: Rewrite type parsing
1675 to handle both GLib parsing case as well as correctly
1676 handling GLib.List and friends. Don't try to treat
1677 e.g. ListStore as a List.
1679 2008-08-29 Colin Walters <walters@verbum.org>
1681 * girepository/gtypelib.c: Add more context
1684 2008-08-29 Colin Walters <walters@verbum.org>
1686 * giscanner/glibtransformer.py: Add some informative
1687 logging messages in corner cases. Be sure we use
1688 the most recent node set instead of a cache
1689 when generating result set.
1690 * tests/: Remove duplicated bits in expected girs
1691 * girepository/girparser.c: Accept both List (for
1692 compiling GLib) and GLib.List (what the scanner
1695 * tools/generate.c: Generate canonical form.
1697 2008-08-29 Johan Dahlin <johan@gnome.org>
1699 * giscanner/config.py.in:
1700 Use datarootdir instead of datadir to avoid
1701 an autoconf warning.
1703 2008-08-29 Johan Dahlin <johan@gnome.org>
1707 * examples/gdk-pixbuf.gidl:
1709 Update and remove old cruft.
1711 2008-08-29 Johan Dahlin <johan@gnome.org>
1714 * docs/g-ir-compiler.1:
1715 * docs/g-ir-generate.1:
1716 * docs/g-ir-scanner.1:
1717 Add man pages for the generator and compiler.
1719 2008-08-29 Johan Dahlin <johan@gnome.org>
1721 * docs/g-ir-scanner.1: Document
1723 * giscanner/Makefile.am:
1724 * giscanner/gidlparser.py:
1725 * giscanner/gidlwriter.py:
1726 * tools/g-ir-scanner:
1727 Remove gidl support.
1729 2008-08-28 Colin Walters <walters@verbum.org>
1731 * tests/scanner/Makefile.am: Pass the right
1732 --includedir args. Add a Makefile dep.
1733 * tools/compiler.c: Pass includedirs down.
1734 * girepository/girparser.c: Actually put
1735 includedirs in context, pass down. Fix
1738 2008-08-28 Colin Walters <walters@verbum.org>
1740 * gir/Makefile.am: Use --includedir
1741 * girepository/girparser.c: Recursively parse
1742 includes to pull in aliases and expand them.
1743 We need this to avoid putting unknown names in
1745 * tools/compiler.c: Add --includedir option.
1746 * giscanner/ast.py: Map size/ssize to types
1749 2008-08-28 Tor Lillqvist <tml@novell.com>
1751 Make check now runs successfully on Windows.
1753 * tools/compiler.c (write_out_typelib): Use binary mode for output
1756 * girepository/girnode.c: Don't print NULL strings.
1758 * tests/invoke/Makefile.am
1759 * tests/scanner/Makefile.am: Use -no-undefined on Windows to
1760 convince libtool to build shared libraries.
1762 * tests/invoke/invoke.c: Don't needlessly include <dlfcn.h>. Use
1763 g_assert() instead of printing out expected errors.
1765 2008-08-28 Tor Lillqvist <tml@novell.com>
1767 * girepository/gtypelib.h: Change type of bitfield fields from
1768 guint to the most suitable smaller type. This makes the struct
1769 sizes match the ones on Linux that the sanity check expects when
1770 using gcc -mms-bitfields on Windows.
1772 2008-08-28 Johan Dahlin <johan@gnome.org>
1777 * giscanner/Makefile.am:
1778 * tests/Makefile.am:
1779 * tests/scanner/Makefile.am:
1780 Make distcheck pass.
1782 2008-08-27 Johan Dahlin <johan@gnome.org>
1784 * giscanner/Makefile.am:
1785 Only send in -no-undefined on Win32 as it breaks on MacOS X.
1787 2008-08-27 Tor Lillqvist <tml@novell.com>
1789 Make g-ir-scanner work on Windows. Still problems with the typelib
1790 code. Changes okayed by jdahlin.
1792 * configure.ac: Check for Windows, set Automake conditional
1793 OS_WIN32. Change backslashes to forward slashes in pyexecdir to
1794 avoid shell quoting issues
1796 * girepository/Makefile.am: Use -no-undefined so that libtool
1797 agrees to build a shared library on Windows.
1799 * girepository/girparser.c (backtrace_stderr): No backtrace() on
1800 Windows. Empty implementation on Windows so far.
1802 * girepository/gtypelib.c (g_typelib_check_sanity): Give more
1803 informative error message for the assertion failures. Tell also
1804 what the expected size of the struct is. Check all sizes first and
1805 fail afterwards if at least one size was different from expected.
1807 * tools/Makefile.am: Reorder libraries into proper logical
1810 * tools/generate.c: Don't include <dlfcn.h>, not used.
1812 * giscanner/Makefile.am: On Windows, link with the Python library,
1813 and install the module DLL as _giscanner.pyd. Remove the
1814 unnecessary import library and libtool library that libtool has
1817 * giscanner/scannerlexer.l: Recognize the gcc __attribute__ syntax
1818 and just skip it. Recognize also two "l" suffixes for long long
1819 constants. Recognize also __inline__.
1821 * giscanner/grealpath.h (g_realpath): Implement on Windows, using
1822 GetFullPathName(). As such, GetFullPathName() does more than the
1823 UNIX realpath(). It also changes relative paths into absolute
1824 paths. But for our purposes that shouldn't matter.
1826 * giscanner/giscannermodule.c (pygi_source_scanner_parse_file): On
1827 Windows the file descriptor passed to us is from Python. Python
1828 Python2.5 uses the msvcr71.dll C library, while mingw-built code
1829 uses msvcrt.dll. On Windows, file descriptors are specific to
1830 which C library is used. So we must find out what underlying OS
1831 handle corresponds to the file descriptor Python passes us, and
1832 then make that into a file descriptor valid for the C library this
1835 * giscanner/sourcescanner.py (_parse): Don't need to bypass
1836 __attribute__ as the lexer now handles it. The definition as empty
1837 was ineffective for mingw anyway, as mingw's _mingw.h undefines
1838 __attribute__. Close the temp file before unlinking it.
1840 * giscanner/cgobject.py: Use correct library name for the gobject
1843 * gir/Makefile.am: Must pass the full basename of the DLLs on
1844 Windows to g-ir-scanner. It's a bit ugly that we have to "know"
1845 that the names of the GLib DLLs are like libglib-2.0-0.dll, but in
1846 reality they won't change, until there is a GLib 3, and then also
1847 the Unix code here needs changing.
1849 Must pass CPPFLAGS to g-ir-scanner when building GLib.gir so that
1852 2008-08-26 Colin Walters <walters@verbum.org>
1854 * girepository/girepository.c: Search
1855 $DATADIR/girepository instead of
1856 $DATADIR/gitypelibs; this naming makes
1857 it clearer that e.g. jgir can install
1859 * gir/Makefile.am: Install there.
1861 2008-08-26 Colin Walters <walters@verbum.org>
1863 * girepository/gtypelib.c (_g_typelib_init): Also
1864 use G_MODULE_SUFFIX instead of hardcoding .so.
1866 2008-08-26 Colin Walters <walters@verbum.org>
1868 * girepository/gtypelib.c (_g_typelib_init): Free
1869 string in the right place.
1871 2008-08-26 Colin Walters <walters@verbum.org>
1873 * girepository/gtypelib.c (_g_typelib_init): Handle
1874 both .la and .so names; this works better in the
1875 uninstalled library case.
1877 2008-08-26 Johan Dahlin <johan@gnome.org>
1880 * giscanner/Makefile.am:
1881 * giscanner/cgobject.py:
1882 * giscanner/config.py.in:
1883 * giscanner/sourcescanner.py:
1884 Avoid undeffing __GNUC__, instead define
1885 __attribute__ & friends. Remove glibconfig.h hack.
1886 This makes gobject-introspection work better on
1887 MacOS X, Thanks to Richard Hult for kind help.
1889 2008-08-25 Colin Walters <walters@verbum.org>
1891 * giscanner/glibtransformer.py: Always print
1894 2008-08-25 Colin Walters <walters@verbum.org>
1896 * giscanner/glibtransformer.py: Skip over
1897 interfaces we don't know.
1899 2008-08-25 Colin Walters <walters@verbum.org>
1901 * girepository/girparser.c: Parse new implements
1902 syntax, drop gapi one.
1903 * tests/object.gir: Update.
1904 * tools/generate.c: Generate new syntax.
1906 2008-08-25 Colin Walters <walters@verbum.org>
1908 * giscanner/ast.py: Add interfaces property
1910 * giscanner/girwriter.py: Write out implemented
1912 * giscanner/glibtransformer.py: Introspect
1913 implemented interfaces.
1914 * tests/scanner/*: Make FooObject implement
1917 2008-08-25 Colin Walters <walters@verbum.org>
1919 * giscanner/glibtransformer.py: More correctly pair
1920 methods; if we have a symbol that starts with
1921 e.g. hippo_canvas look for a matching HippoCanvas
1922 class before accepting e.g. HippoCanvasImage.
1924 2008-08-24 Colin Walters <walters@verbum.org>
1926 * tools/g-ir-scanner: Filter out unknown options from
1929 2008-08-24 Colin Walters <walters@verbum.org>
1931 * giscanner/glibtransformer.py: Fail with better
1932 error if we can't find library.
1934 2008-08-24 Colin Walters <walters@verbum.org>
1936 * tools/g-ir-scanner: Use subprocess instead of
1937 commands, works on Windows and avoids the evil
1940 2008-08-24 Colin Walters <walters@verbum.org>
1942 * giscanner/glibtransformer.py: Skip over
1943 g_object_get_type from GLib trunk.
1945 2008-08-24 Colin Walters <walters@verbum.org>
1947 * girepository/girepository.c (g_irepository_require):
1948 Don't open shared library here; we already do it
1951 2008-08-24 Colin Walters <walters@verbum.org>
1953 * girepository/gtypelib.c: Add context stack so
1954 when we get an error we can print out nicely
1957 2008-08-24 Johan Dahlin <johan@gnome.org>
1959 * girepository/girparser.c (start_glib_boxed), (start_function),
1960 (start_field), (start_alias):
1961 Refactor a couple of parsing functions to be simpler to follow.
1964 2008-08-24 Johan Dahlin <johan@gnome.org>
1966 * girepository/girparser.c (start_function):
1967 Remove left-over code, checking type of function.
1969 2008-08-23 Colin Walters <walters@verbum.org>
1971 * giscanner/config.py: Define DATADIR.
1972 * giscanner/transformer.py: Look in DATADIR.
1974 2008-08-23 Colin Walters <walters@verbum.org>
1976 * girepository/gtypelib.c: Check constructor
1978 * girepository/girnode.c: Small tweaks.
1979 * girepository/ginfo.c: Calculate signature offsets
1981 * girepository/girparser.c: Remove duplicate
1983 * giscanner/glibtransformer.py: Avoid marking
1984 functions which return a basic type as
1987 2008-08-23 Colin Walters <walters@verbum.org>
1989 * girepository/girparser.c: Ignore <include>.
1990 * giscanner/girparser.py: Parse them.
1991 * giscanner/girwriter.py: Generate them.
1992 * giscanner/transformer.py: Process <include>
1993 recursively. Don't require full path for
1994 includes, look in {$XDG_DATA_DIRS}/gir.
1995 * tools/g-ir-scanner: Pass through includes.
1996 * Makefile.am: Remove extra --include
1998 * *-expected.gir: Add expected includes.
2000 2008-08-23 Johan Dahlin <johan@gnome.org>
2002 * tests/scanner/Makefile.am:
2003 * tests/scanner/annotation-expected.gir:
2004 * tests/scanner/drawable-expected.gir:
2005 Avoid duplication in the Makefile, regenerate with new
2006 namespaces (same as the filename)
2008 2008-08-22 Colin Walters <walters@verbum.org>
2010 * girepository/girnode.c: Don't hardcode integers,
2013 2008-08-22 Johan Dahlin <johan@gnome.org>
2015 * giscanner/sourcescanner.py:
2016 Check for ../gobject-introspection-1.0.pc.in to determine
2017 if we run installed or uninstalled.
2019 2008-08-22 Johan Dahlin <johan@gnome.org>
2022 * giscanner/sourcescanner.py:
2023 Send in undefs/defines via writing it directly to stdin
2024 of cpp instead of via arguments.
2026 2008-08-22 Colin Walters <walters@verbum.org>
2028 * tools/generate.c, tools/compiler.c: Default
2030 * all Makefile.am: Update.
2032 2008-08-22 Colin Walters <walters@verbum.org>
2034 * girepository/girparser.c: Pass through
2035 recursive types. Avoid overwriting errors.
2036 * giscanner/xmlwriter.py: Always write the
2038 * tests/*.gir: Adjust.
2039 * tests/scanner/Makefile.am: Build typelibs,
2040 and generate XML from those. Once we
2041 have a good diff mechanism...
2042 * tests/scanner/*-expected.gir: Add XML
2044 * tools/g-ir-scanner: Accept --typelib-xml
2046 * tools/generate.c: Better defaults for transfer.
2048 2008-08-22 Johan Dahlin <johan@gnome.org>
2052 * giscanner/Makefile.am:
2053 * giscanner/config.py.in:
2054 * giscanner/sourcescanner.py:
2055 Use the generated glibconfig.h for all scanner invokations.
2056 Rename it to glibconfig-scanner.h and install it.
2057 Add a config.py which so far contains the include dir.
2059 2008-08-22 Johan Dahlin <johan@gnome.org>
2062 Replace glibconfig.h with our own, do some replacement
2063 for CPP/C features we do not support
2065 2008-08-22 Colin Walters <walters@verbum.org>
2067 * tools/generate.c (write_callable_info): Fix unref
2070 2008-08-22 Colin Walters <walters@verbum.org>
2072 * gobject-introspection-1.0.pc.in: Add g-ir-generate.
2073 * tests/Makefile.am: Support $(DEBUG)
2074 * tools/generate.c: Do immediate close tags if no
2077 2008-08-21 Colin Walters <walters@verbum.org>
2079 * tests/scanner/drawable-expected.gir,
2080 * tests/scanner/drawable.c,
2081 * tests/scanner/drawable.h:
2084 2008-08-21 Colin Walters <walters@verbum.org>
2086 * giscanner/glibtransformer.py: Compute prefix
2087 by searching through the symbol for bits
2088 rather than going directly from ctype; this fixes
2091 2008-08-21 Colin Walters <walters@verbum.org>
2093 * giscanner/glibtransformer.py: Also try squashing
2094 underscores from namespace, fixes webkit_web_view_new.
2096 2008-08-21 Colin Walters <walters@verbum.org>
2098 * giscanner/glibtransformer.py: More ctor work,
2099 avoid having gtk_window_group_new end up under
2102 2008-08-21 Colin Walters <walters@verbum.org>
2104 * giscanner/glibtransformer.py: Much simpler approach
2105 of mapping uscored names to classes.
2106 * giscanner/utils.py: Remove unnecessary function.
2108 2008-08-21 Johan Dahlin <johan@gnome.org>
2110 * girepository/girepository.c (g_irepository_require):
2111 Plug memory leak and avoid using freed memory.
2112 Resolve the whole module path, here as well.
2114 2008-08-21 Colin Walters <walters@verbum.org>
2116 * giscanner/glibtransformer.py: Look up all permutations
2117 of class names when scanning methods/ctors based on
2118 the prefix instead of using the return value. This
2119 associates gtk_window_new with the right class.
2121 2008-08-21 Colin Walters <walters@verbum.org>
2123 * girepository/girmodule.c (g_ir_module_build_typelib):
2124 Revert change to increment header_size; we do that in
2127 2008-08-21 Colin Walters <walters@verbum.org>
2129 * girepository/girnode.c (write_string): Tweak to
2130 use UINT instead of INT. Not likely to matter.
2131 * girepository/girmodule.c (g_ir_module_build_typelib):
2132 Add to header_offset as well for header strings
2133 to match what write_string does.
2134 * girepository/gtypelib.c: Replace is_name with
2135 validate_name, which more strongly validates and
2136 handles errors in a better way. Update all callers.
2137 * giscanner/glibtransformer.py: Handle constructors
2140 2008-08-21 Johan Dahlin <johan@gnome.org>
2142 * gir/Makefile.am (typelibs_DATA): Build and
2143 install the Gio.typelib too
2145 * girepository/gtypelib.c (_g_typelib_init):
2146 Use g_module_build_path to resolve the shlib name
2148 2008-08-21 Colin Walters <walters@verbum.org>
2150 * gir/Makefile.am: CLEANFILES typelibs too.
2152 2008-08-21 Johan Dahlin <johan@gnome.org>
2154 * giscanner/glibtransformer.py:
2155 Do not send .la files through find_library.
2157 2008-08-21 Colin Walters <walters@verbum.org>
2159 * girepository/girparser.c (g_irepository_require):
2160 Fix one small leak in error case.
2162 2008-08-21 Johan Dahlin <johan@gnome.org>
2165 Parse glibconfig.h as well and install the compiled
2168 2008-08-21 Johan Dahlin <johan@gnome.org>
2171 * giscanner/glibtransformer.py:
2172 * tools/g-ir-scanner:
2173 Do not hard-core library names in the Makefile, reuse
2174 ctypes find_library instead.
2176 2008-08-21 Johan Dahlin <johan@gnome.org>
2178 * girepository/girparser.c (resolve_aliases):
2179 Remove compilation warnings
2181 2008-08-21 Johan Dahlin <johan@gnome.org>
2183 * girepository/girepository.c (g_irepository_require):
2184 Rewrap and fix double free bug by leaking a bit.
2186 2008-08-20 Colin Walters <walters@verbum.org>
2188 * girepository/girepository.c: Add new function
2189 g_irepository_get_typelib_path which tells
2190 us from where we loaded a namespace.
2192 2008-08-20 Colin Walters <walters@verbum.org>
2194 * tests/scanner/*-expected.gir: Adjust for
2195 added shared-library.
2196 * giscanner/giwriter.py: Make pylint happy.
2198 2008-08-20 Colin Walters <walters@verbum.org>
2200 * girepository/girmodule.c (g_ir_module_build_typelib):
2201 Calculate size correctly, avoid use-after-free.
2203 2008-08-20 Colin Walters <walters@verbum.org>
2205 * girepository/girepository.c: Remove
2206 g_irepository_register_file in favor of
2207 g_irepository_require. There are two
2208 possible deployment scenarios for typelibs:
2209 First, separate in $DATADIR/gitypelibs/. Second,
2210 they may be embedded in shlibs. However since
2211 the first is now the normal case, the API is
2212 optimized around it.
2214 Refactor internals to look up typelibs for
2215 namespaces just-in-time, but we expect
2216 consumers to call g_irepository_require.
2218 Also, add some docs. No one has died from that
2220 * gir/Makefile.am: Need --library for glib.
2221 * giscanner/girwriter.py: Write out shared-library.
2222 * tools/g-ir-writer: Take the first --library
2223 argument as the target of shared-library. In
2224 the future we should make this nicer with pkg-config
2227 2008-08-20 Colin Walters <walters@verbum.org>
2229 * girepository/girparser.py: And parse them.
2231 2008-08-20 Johan Dahlin <johan@gnome.org>
2233 * giscanner/glibast.py: Add gshort/gushort types
2235 2008-08-20 Colin Walters <walters@verbum.org>
2237 * gir/Makefile.am: Rename .gir files using GI namespace.
2238 * girepository/girepository.c: Use XDG_DATA_DIRS for
2239 looking up typelibs. Also typelibs are now suffixed
2241 * tests/invoke/Makefile.am: Only use metadata.
2242 * girepository/Makefile.am: Remove unnecessary include.
2243 * tests/scanner/Makefile.am: Update using GI namespaces
2244 for scanner includes.
2246 2008-08-20 Colin Walters <walters@verbum.org>
2248 * girepository/transformer.py: Suppress aliases whose
2250 * girepository/ast.py: Define some more aliases.
2252 2008-08-20 Colin Walters <walters@verbum.org>
2254 * girepository/girparser.c: Avoid alias infloops.
2256 2008-08-20 Colin Walters <walters@verbum.org>
2258 * tests/scanner/foo-expected.gir: Fix expected list type.
2260 2008-08-20 Johan Dahlin <johan@gnome.org>
2262 * giscanner/glibtransformer.py (GLibTransformer._resolve_type_name):
2263 Add a workaround for #548689.
2264 We can now compile gtk!
2266 2008-08-20 Colin Walters <walters@verbum.org>
2268 * giscanner/glibtransformer.py: Try to look up
2269 aliases using the c:type too.
2271 2008-08-20 Colin Walters <walters@verbum.org>
2273 * girepository/girparser.c: Parse union fields.
2275 2008-08-20 Johan Dahlin <johan@gnome.org>
2277 * giscanner/ast.py: Make time_t an alias for long
2279 * gir/gio-2.0-good.gir:
2280 * gir/glib-2.0-good.gir:
2281 * gir/gobject-2.0-good.gir:
2283 * giscanner/glibtransformer.py:
2284 Do not delete Class structures, we need them in gdk/gtk.
2285 * tests/scanner/drawable-expected.gir:
2286 * tests/scanner/foo-expected.gir:
2287 * tests/scanner/utility-expected.gir:
2290 2008-08-20 Johan Dahlin <johan@gnome.org>
2292 * tests/scanner/Makefile.am:
2293 * tests/scanner/annotation-expected.gir:
2294 * tests/scanner/annotation.c (annotation_object_class_init),
2295 (annotation_object_init), (annotation_object_method),
2296 (annotation_object_in), (annotation_object_out),
2297 (annotation_object_inout), (annotation_object_inout2),
2298 (annotation_object_inout3), (annotation_object_calleeowns),
2299 (annotation_object_calleesowns), (annotation_object_get_strings),
2300 (annotation_object_with_voidp), (annotation_object_get_objects),
2301 (annotation_object_create_object), (annotation_object_allow_none):
2302 * tests/scanner/annotation.h:
2303 * tests/scanner/foo-expected.gir:
2304 * tests/scanner/foo.c:
2305 * tests/scanner/foo.h:
2306 Split out annotation tests out of foo
2308 2008-08-20 Johan Dahlin <johan@gnome.org>
2310 * tests/scanner/Foo-expected.gir:
2311 * tests/scanner/Makefile.am:
2312 * tests/scanner/foo-expected.gir:
2313 * tests/scanner/foo-object.h:
2314 * tests/scanner/foo.c:
2315 Foo->foo, foo-object.h -> foo.h
2317 2008-08-20 Johan Dahlin <johan@gnome.org>
2319 * tests/scanner/Foo-expected.gir:
2320 * tests/scanner/Makefile.am:
2321 * tests/scanner/drawable-expected.gir:
2322 * tests/scanner/drawable.c (test_drawable_class_init),
2323 (test_drawable_init):
2324 * tests/scanner/drawable.h:
2325 * tests/scanner/foo-object.h:
2326 * tests/scanner/foo.c (foo_boxed_method):
2327 Move the drawable parts out of Foo to its own test.
2329 2008-08-20 Johan Dahlin <johan@gnome.org>
2331 * tests/scanner/Foo-expected.gir:
2332 * tests/scanner/foo-object.h:
2333 * tests/scanner/foo.c (foo_drawable_class_init),
2334 (foo_drawable_init):
2335 Add a based on GdkDrawable which generates
2338 2008-08-19 Colin Walters <walters@verbum.org>
2340 * giscanner/transformer.py: Don't try
2341 to strip prefix before namespace.
2343 2008-08-19 Johan Dahlin <johan@gnome.org>
2345 * giscanner/transformer.py:
2346 * tests/scanner/Foo-expected.gir:
2347 * tests/scanner/foo-object.h:
2348 Add support for typedef void foo type of
2351 2008-08-19 Johan Dahlin <johan@gnome.org>
2354 * giscanner/girwriter.py:
2355 * giscanner/glibtransformer.py:
2356 * giscanner/transformer.py:
2357 * tests/scanner/Foo-expected.gir:
2358 Add basic support for union, base the code much
2359 on Struct. Add a testcase.
2361 2008-08-19 Johan Dahlin <johan@gnome.org>
2363 * tests/scanner/Foo-expected.gir:
2364 * tests/scanner/foo-object.h:
2365 Add a union testcase which the compiler currently
2368 2008-08-19 Johan Dahlin <johan@gnome.org>
2370 * gobject-introspection-1.0.pc.in:
2371 Add a g_ir_compiler variable
2373 2008-08-19 Colin Walters <walters@verbum.org>
2375 * giscanner/ast.py: Rework types to be more closely
2377 * giscanner/girparser.py: Parse more bits.
2378 * giscanner/girwriter.py: Write sequences in a new
2379 way that specifies container type.
2380 * giscanner/glibast.py: Adjust for ast.py changes,
2381 add 'ctype' property to GLibObject and GLibInterface
2382 so we can look things up by it later.
2383 * gicanner/transformer.py: Names is new class holding
2384 the various namespaces we manage. Do not confuse
2385 with Namespace which is toplevel XML node effectively.
2386 Rework all type resolution to go through
2387 _resolve_type_name_1.
2388 * giscanner/glibtransformer.py: Raise UnknownTypeError
2389 instead of ValueError for cleanliness. Add Unresolved
2390 class to mark types whose parent we haven't seen yet.
2391 Use new Names object from transformer.py.
2392 Correctly look up parent=.
2393 Fix type validation to handle sequences.
2394 * tests/scanner/Foo-expected.gir: Update for sequence
2395 work, int instead of int32.
2396 * tools/g-ir-scanner: Add --noclosure option
2397 * gir/Makefile.am: Use --noclosure by default for
2400 2008-08-18 Johan Dahlin <johan@gnome.org>
2402 * gir/gio-2.0-good.gir:
2403 * gir/glib-2.0-good.gir:
2404 * gir/gobject-2.0-good.gir:
2407 2008-08-18 Johan Dahlin <johan@gnome.org>
2410 * giscanner/girparser.py:
2411 * giscanner/girwriter.py:
2412 * giscanner/glibast.py:
2413 * giscanner/glibtransformer.py:
2414 * giscanner/transformer.py:
2415 * tests/scanner/Foo-expected.gir:
2416 * tests/scanner/foo-object.h:
2417 * tests/scanner/utility-expected.gir:
2418 * tests/scanner/utility.h:
2419 Redo type resolving and validation.
2420 Add a couple of new tests.
2421 Patch mostly written by Colin.
2423 2008-08-18 Johan Dahlin <johan@gnome.org>
2426 * giscanner/girparser.py:
2428 * giscanner/transformer.py:
2429 Improve enum parsing for enums without a GType.
2430 Make flags/enum references to other girs work
2431 * giscanner/utils.py:
2433 * tests/scanner/Makefile.am:
2434 * tests/scanner/foo-object.h:
2435 * tests/scanner/utility-expected.gir:
2436 * tests/scanner/utility.h:
2437 Add a new test for external enum references
2439 2008-08-18 Johan Dahlin <johan@gnome.org>
2441 * docs/global-module-registry.txt: Update
2443 * tests/array.gir: Update with new type proposal
2445 * girepository/girepository.c (g_type_tag_to_string):
2446 * girepository/girepository.h:
2447 * girepository/girnode.c (g_ir_node_get_full_size_internal),
2449 * girepository/girnode.h:
2450 Make enum serializing functions public. Clean up some whitespace.
2452 2008-08-17 Johan Dahlin <johan@gnome.org>
2454 * docs/global-module-registry.txt:
2455 Add a document for an on disk module registry format
2457 2008-08-17 Johan Dahlin <johan@gnome.org>
2460 * gir/gio-2.0-good.gir:
2463 2008-08-17 Johan Dahlin <johan@gnome.org>
2466 * gir/glib-2.0-good.gir:
2467 * gir/gobject-2.0-good.gir:
2468 * giscanner/cgobject.py:
2469 * giscanner/glibtransformer.py:
2470 Regenerate GObject & GType.
2471 Avoid warnings when generating gobject-2.0.gir.
2472 Introspect a little more, and skip *_get_type functions.
2474 2008-08-17 Colin Walters <walters@verbum.org>
2476 * gir/glib-2.0.gir, gir/gobject-2.0.gir:
2477 Rename to -good, always generate during build.
2478 * gir/Makefile.am: Ensure .gir files dep on
2479 all scanner sources.
2480 * Makefile.am: Switch build order to ensure
2481 the scanner is ready before we do gir/.
2482 * tools/g-ir-scanner: Look for .git too.
2484 2008-08-17 Johan Dahlin <johan@gnome.org>
2486 * girepository/gtypelib.c (validate_enum_blob):
2487 * giscanner/glibtransformer.py:
2488 * giscanner/transformer.py:
2489 Remove resolve_possible_typedefs, it was unused.
2490 Allow multiple enum values of the sample value in an enum,
2491 since it's actually pretty common.
2492 Register enums so they can be resolved too.
2494 2008-08-16 Johan Dahlin <johan@gnome.org>
2496 * giscanner/girparser.py:
2497 Parse enumeration/bitfield.
2499 2008-08-16 Johan Dahlin <johan@gnome.org>
2501 * giscanner/girparser.py:
2504 2008-08-16 Johan Dahlin <johan@gnome.org>
2506 * giscanner/glibtransformer.py:
2507 Resolve type names for alias targets
2508 * giscanner/transformer.py:
2509 Skip FILE* parameters fow now
2511 2008-08-16 Johan Dahlin <johan@gnome.org>
2514 * gir/gobject-2.0.gir:
2517 * tests/scanner/Makefile.am:
2520 2008-08-15 Colin Walters <walters@verbum.org>
2522 * giscanner/glibtransformer.py: Explicitly construct
2523 new list, since we're deleting as we iterate.
2524 Don't delete all structures which end in Class; just
2525 ones which have a paired GObject.
2526 Fix printing of type warning.
2527 * giscanner/transformer.py: Make strip_namespace_object
2528 be the identity function if it doesn't match the
2531 2008-08-15 Colin Walters <walters@verbum.org>
2533 * giscanner/cgobject.py: Define yet more argument
2534 prototypes; fix prototype for g_type_fundamental.
2536 2008-08-14 Johan Dahlin <johan@gnome.org>
2538 * tests/Makefile.am:
2539 * tests/constant.gir:
2540 * tests/gobject.gir:
2542 * tools/generate.c (write_struct_info):
2543 Fix generator for constant/gobject/struct
2545 2008-08-14 Johan Dahlin <johan@gnome.org>
2547 * tests/Makefile.am:
2549 * tools/generate.c (write_enum_info):
2550 Fix generation of enum/bitfields
2552 2008-08-14 Johan Dahlin <johan@gnome.org>
2554 * girepository/girparser.c (start_field), (start_constant),
2555 (start_type), (end_element_handler):
2556 Clear up constant parsing
2561 * tools/generate.c (write_callable_info), (write_function_info),
2562 (write_callback_info), (write_constant_info), (write_signal_info),
2563 (write_vfunc_info), (write_property_info), (write_object_info),
2564 (write_interface_info):
2565 Constants/Signals are handled now.
2567 2008-08-14 Johan Dahlin <johan@gnome.org>
2569 * girepository/girparser.c (start_type):
2570 Don't require c:type.
2571 * tests/Makefile.am:
2574 Update, remove parts we don't support yet
2575 * tests/roundtrips.sh:
2577 * tools/generate.c (write_type_info), (write_field_info),
2578 (write_callable_info), (write_struct_info):
2579 Make it emit proper gir.
2581 2008-08-14 Johan Dahlin <johan@gnome.org>
2583 * giscanner/transformer.py:
2584 New internal function for adding a new node.
2586 2008-08-14 Johan Dahlin <johan@gnome.org>
2589 Define an internal _H_ variable so we skip parsing both
2590 i18n headers, only one is needed.
2592 Add the glib-2.0.gir too.
2593 * giscanner/glibast.py:
2594 Add gconstpointer as an alias for ANY
2595 * giscanner/transformer.py:
2596 Do not lower case enumeration names per se.
2597 Skip functions which has parameters called 'va_list'
2599 2008-08-14 Colin Walters <walters@verbum.org>
2601 * giscanner/transformer.py: Comment data structures.
2602 Also squash pointers in resolve_type_name to correspond
2603 with what we do for params.
2604 * giscanner/glibtransformer.py: Print warnings in more
2605 situations. Rework checks for method/constructor to
2606 look up in our GType database instead of just checking
2607 for *. Avoid generating <record> for GObject which
2608 duplicate the <class>.
2609 * gir/Makefile.am: Generate glib-2.0.gir and gobject-2.0.gir
2612 2008-08-14 Johan Dahlin <johan@gnome.org>
2614 * giscanner/girwriter.py:
2615 * giscanner/glibast.py:
2616 * giscanner/glibtransformer.py:
2617 * giscanner/transformer.py:
2619 * tests/Makefile.am:
2620 Add pyflakes.py and run it in make check.
2621 Update the source code to fix the errors reported by
2624 2008-08-14 Johan Dahlin <johan@gnome.org>
2627 * giscanner/girparser.py:
2628 * giscanner/glibast.py:
2629 * giscanner/glibtransformer.py:
2630 Refactor the parser a bit.
2631 Add parent type to interfaces and update callsites.
2633 2008-08-14 Johan Dahlin <johan@gnome.org>
2635 * giscanner/glibtransformer.py:
2636 * giscanner/utils.py:
2637 Refactor a bit, avoid isinstance and add a method
2638 for each type we parse.
2640 2008-08-14 Johan Dahlin <johan@gnome.org>
2643 * giscanner/girparser.py:
2644 * giscanner/glibtransformer.py:
2645 * tests/Makefile.am:
2646 Run pep8.py in make check, fix old errors.
2648 2008-08-13 Colin Walters <walters@verbum.org>
2650 * giscanner/girparser.py: Parse records.
2652 2008-08-13 Colin Walters <walters@verbum.org>
2654 * gir/Makefile.am: Install again.
2655 * gir/gobject-2.0.gir: Add some more bits.
2657 2008-08-13 Colin Walters <walters@verbum.org>
2659 * gir/gobject-2.0.gir: Use correct namespace, add GType.
2660 * giscanner/girparser.py: Handle aliases.
2661 * giscanner/transformer.py: Record aliases. Make resolver
2662 functions public; we now call into these explicitly from
2663 glibtransformer. Handle resolving aliases.
2664 * giscanner/glibtransformer.py: Separate our internal namespace
2665 from included ones. Call up into transformer's resolver functions.
2667 2008-08-13 Johan Dahlin <johan@gnome.org>
2669 * girepository/girnode.c (g_ir_node_get_full_size_internal):
2670 * girepository/girparser.c (start_class):
2671 * giscanner/glibtransformer.py:
2672 Allow get_type to be None, set a get_type for GInitiallyUnowned too.
2674 2008-08-13 Johan Dahlin <johan@gnome.org>
2676 * giscanner/cgobject.py:
2677 Register GInitiallyUnowned
2678 * giscanner/girwriter.py:
2679 * giscanner/glibtransformer.py:
2680 Special case GObject/GInitially owned as they are a bit special to use.
2682 2008-08-13 Colin Walters <walters@verbum.org>
2684 * tests/scanner/Foo-expected.gir, tests/scanner/utility-expected.gir:
2685 Object is in GObject namespace.
2687 2008-08-13 Colin Walters <walters@verbum.org>
2689 * giscanner/girparser.py: Fix processing of functions
2692 2008-08-13 Colin Walters <walters@verbum.org>
2694 * giscanner/girparser.py: Parse more than just <class.
2695 * giscanner/glibtransformer.py: Put aliases in a separate
2696 data structure since their name is not canonicall.
2697 * giscanner/transformer.py: Handle resolving type names
2700 2008-08-13 Johan Dahlin <johan@gnome.org>
2702 * tools/g-ir-scanner:
2703 Allow multiple libraries
2704 * giscanner/glibtransformer.py:
2705 Rename load_library to add_library, traverse over all libraries
2706 when trying to resolve a function
2708 2008-08-12 Colin Walters <walters@verbum.org>
2710 * giscanner/transformer.py: Record typedefs as <alias> elements.
2711 Also attempt to look up types in external namespaces.
2712 * giscanner/girwriter.py: Write them.
2713 * giscanner/glibtransformer.py: Rework resolver using real instanceof
2714 checks. Resolve interface methods and properties.
2715 * tests/scanner/foo-object.h: Add a method with typedef.
2716 * tests/scanner/Foo-expected.gir: Update.
2717 * girepository/girnode.c: Debug tweaks.
2718 * girepository/girparser.c: Make a first pass through the XML where we
2719 record all the aliases. This lets us resolve them as we go through the
2721 * gir/Makefile.am: Don't install gobject-2.0.gir; we want that to come
2722 from gir-repository.
2724 2008-08-12 Colin Walters <walters@verbum.org>
2726 * giscanner/glibtransformer.py: Resolve typedefs (e.g. AtkAttributeSet -> GSList).
2727 Correctly do subclasseing in 2nd pass resolution. Handle callbacks in structure
2729 * giscanner/transformer.py: Record typedefs and expose public API for resolving
2731 * tests/scanner/Foo-expected.gir: Fix expected callback types.
2733 2008-08-12 Colin Walters <walters@verbum.org>
2735 * giscanner/glibtransformer.py: Also transform object properties.
2737 2008-08-12 Colin Walters <walters@verbum.org>
2739 * giscanner/glibtransformer.py: Also transform callbacks
2740 and structure field types.
2741 * tests/scanner/Fooe-expected.gir: Update to expect correct
2742 names for callbacks and structs.
2744 2008-08-12 Colin Walters <walters@verbum.org>
2746 * girepository/girparser.c: Handle 'any'.
2747 * tests/scanner/Foo-expected.gir, tests/scanner/foo-object.h:
2748 Add test for void *.
2750 2008-08-12 Colin Walters <walters@verbum.org>
2752 * giscanner/glibtransformer.py: We need to do type
2753 resolution in a second pass after we've seen all the
2754 enums, records, etc.
2756 2008-08-12 Colin Walters <walters@verbum.org>
2758 * tests/scanner/Foo-expected.gir, tests/scanner/foo-object.h:
2759 Add enum return value.
2760 * giscanner/glibtransformer.py: Transform function return types
2763 2008-08-12 Colin Walters <walters@verbum.org>
2765 * tests/scanner/Makefile.am: Dep .gir files on scanner
2766 sources too. Also remove @ so we see scanner invocations.
2768 2008-08-12 Colin Walters <walters@verbum.org>
2770 * girepository/girparser.c, girepository/gtypelib.c,
2771 girepository/gtypelib.h, girepository/girnode.c:
2772 Remove usage of (GAPI-oriented) TypeTag in favor of
2773 GITypeTag from girepository.h.
2775 2008-08-10 Colin Walters <walters@verbum.org>
2777 * tests/roundtrips.sh: Use the correct tests.
2779 2008-08-10 Colin Walters <walters@verbum.org>
2781 * giscanner/cgobject.py: Declare/wrap a few more functions.
2782 Fix parameter types for g_object_new and g_type_fundamental.
2784 2008-08-10 Colin Walters <walters@verbum.org>
2786 * giscanner/cgobject.py: Add new decorator @gwrap which forces
2787 us to declare types for both return value and parameters. The
2788 ctypes default of 'int' is bad because it hides 32/64 bit
2789 problems. Convert all existing functions to use it.
2791 2008-08-09 Johan Dahlin <johan@gnome.org>
2793 * giscanner/__init__.py:
2795 * giscanner/cgobject.py:
2796 * giscanner/gidlparser.py:
2797 * giscanner/gidlwriter.py:
2798 * giscanner/girparser.py:
2799 * giscanner/girwriter.py:
2800 * giscanner/glibast.py:
2801 * giscanner/glibtransformer.py:
2802 * giscanner/odict.py:
2803 * giscanner/sourcescanner.py:
2804 * giscanner/transformer.py:
2805 * giscanner/utils.py:
2806 * giscanner/xmlwriter.py:
2807 * tools/g-ir-scanner:
2811 2008-08-09 Johan Dahlin <johan@gnome.org>
2814 * relaxng/c-types.xml:
2815 * relaxng/g-types.xml:
2816 * relaxng/relaxng.rng:
2818 Remove outdated relaxng schemas.
2820 2008-08-09 Johan Dahlin <johan@gnome.org>
2823 Rename metadata to typelib in variable names,
2826 2008-08-09 Johan Dahlin <johan@gnome.org>
2830 Remove old C scanner, which got rewritten in python.
2832 2008-08-09 Johan Dahlin <johan@gnome.org>
2834 * girepository/Makefile.am:
2835 * tools/Makefile.am:
2836 * tools/girmodule.c:
2837 * tools/girmodule.h:
2840 * tools/girparser.c:
2841 * tools/girparser.h:
2842 * tools/girwriter.c:
2843 * tools/girwriter.h:
2844 Move shared *.[ch] files to girepository from tools
2846 2008-08-09 Johan Dahlin <johan@gnome.org>
2848 * tests/Makefile.am:
2851 * tests/constant.test:
2853 * tests/errors.test:
2854 * tests/function.test:
2855 * tests/gobject.test:
2856 * tests/interface.test:
2857 * tests/object.test:
2858 * tests/struct.test:
2863 Rename *.test to *.gir
2865 2008-08-09 Johan Dahlin <johan@gnome.org>
2868 * tests/Makefile.am:
2869 * tests/parser/Foo-expected.gir:
2870 * tests/parser/Makefile.am:
2871 * tests/parser/foo-object.h:
2872 * tests/parser/foo.c:
2873 * tests/parser/utility-expected.gir:
2874 * tests/parser/utility.c:
2875 * tests/parser/utility.h:
2876 * tests/scanner/Makefile.am:
2877 Rename tests/parser to test/scanner
2879 2008-08-08 Colin Walters <walters@verbum.org>
2881 * tests/roundtrips.sh: Use local .gir files again.
2883 2008-08-08 Colin Walters <walters@verbum.org>
2885 * tests/invoke/Makefile.am: .gir file depends on libtool
2888 2008-08-08 Colin Walters <walters@verbum.org>
2890 * tools/girnode.c: Pass through parent node so we can
2891 print the node whose child is NULL, if that occurs.
2893 2008-08-08 Johan Dahlin <johan@gnome.org>
2895 * tests/Makefile.am:
2896 Disable roundtrip tests which are not yet working
2897 * tests/invoke/testfns.gir:
2900 2008-08-08 Johan Dahlin <johan@gnome.org>
2902 * giscanner/girwriter.py:
2904 * giscanner/glibast.py:
2905 * giscanner/glibtransformer.py:
2906 Swap order of members, to keep it consistent with
2909 2008-08-08 Johan Dahlin <johan@gnome.org>
2911 * girepository/gtypelib.c (validate_header):
2912 * girepository/gtypelib.h:
2914 * giscanner/girwriter.py:
2915 * giscanner/sourcescanner.c (gi_source_symbol_ref),
2916 (gi_source_symbol_unref):
2919 * tests/constant.test:
2921 * tests/errors.test:
2922 * tests/function.test:
2923 * tests/gobject.test:
2924 * tests/interface.test:
2925 * tests/invoke/Makefile.am:
2926 * tests/invoke/testfns.xml:
2927 * tests/object.test:
2928 * tests/parser/Makefile.am:
2929 * tests/roundtrips.sh:
2930 * tests/struct.test:
2935 * tools/Makefile.am:
2936 * tools/compiler.c (main):
2937 * tools/generate.c (write_callable_info), (write_function_info),
2939 * tools/gidlmodule.c:
2940 * tools/gidlmodule.h:
2943 * tools/gidlparser.c:
2944 * tools/gidlparser.h:
2945 * tools/gidlwriter.c:
2946 * tools/gidlwriter.h:
2947 * tools/scanner.c (create_node_from_gtype),
2948 (create_node_from_ctype), (g_igenerator_process_properties),
2949 (g_igenerator_process_signals), (g_igenerator_create_object),
2950 (g_igenerator_create_interface), (g_igenerator_create_boxed),
2951 (g_igenerator_create_enum), (g_igenerator_create_flags),
2952 (g_igenerator_process_function_symbol),
2953 (g_igenerator_process_unregistered_struct_typedef),
2954 (g_igenerator_process_struct_typedef),
2955 (g_igenerator_process_union_typedef),
2956 (g_igenerator_process_enum_typedef),
2957 (g_igenerator_process_function_typedef),
2958 (g_igenerator_process_constant), (g_igenerator_process_symbols),
2959 (g_igenerator_add_module), (g_igenerator_add_include_idl):
2960 Merge in the gir-compiler branch.
2961 Thanks to Philip and Colin for their help.
2963 2008-07-26 Colin Walters <walters@verbum.org>
2965 * tools/Makefile.am (bin_PROGRAMS): Install g-idl-compiler
2966 and g-idl-generate to go along with how we're changing this
2967 module to be installed.
2968 * gobject-introspection-1.0.pc.in: Set up Cflags and Libs.
2970 2008-07-24 Colin Walters <walters@verbum.org>
2972 * girepository/girepository.c (g_irepository_register): Add
2973 environment variable G_IREPOSITORY_VERBOSE so we can print
2974 out what we're doing.
2975 * girepository/girepository.c (g_irepository_register_file):
2976 Add GError error message to g_debug call.
2978 2008-07-08 Jürg Billeter <j@bitron.ch>
2980 * giscanner/glibast.py:
2984 2008-06-21 Johan Dahlin <jdahlin@async.com.br>
2986 * giscanner/girparser.py (GIRParser._parse_api): Ignore a few
2989 2008-06-20 Johan Dahlin <jdahlin@async.com.br>
2992 * giscanner/girwriter.py:
2993 * giscanner/transformer.py:
2994 * tests/parser/Foo-expected.gir:
2995 * tests/parser/foo-object.h:
2996 * tests/parser/foo.c (foo_object_allow_none):
2997 Add support for gtk-doc annotations for allow-none.
3000 2008-06-19 Johan Dahlin <jdahlin@async.com.br>
3003 * giscanner/girwriter.py:
3004 * giscanner/glibast.py:
3005 * giscanner/glibtransformer.py:
3006 * giscanner/transformer.py:
3007 * tests/parser/Foo-expected.gir:
3008 Start using abstract type instead of the raw C types.
3009 Register a bunch of glib types we care about.
3011 2008-06-19 Rob Taylor <rob.taylor@codethink.co.uk>
3016 2008-06-08 Philip Van Hoof <pvanhoof@gnome.org>
3018 * girepository/girepository.c:
3019 * girepository/gtypelib.c:
3020 * girepository/ginfo.c:
3021 * girepository/ginvoke.c:
3022 * girepository/girepository.h:
3023 * girepository/gtypelib.h:
3024 * girepository/gmetadata.c:
3025 * girepository/Makefile.am:
3026 * girepository/gmetadata.h:
3028 * tools/gidlmodule.c:
3031 * tools/gidlmodule.h:
3032 * tools/gidlparser.c:
3034 Renamed GMetadata to GTypelib
3036 2008-06-07 Johan Dahlin <jdahlin@async.com.br>
3038 * giscanner/xmlwriter.py:
3039 Improve line wrapping when > 79 charaters
3041 2008-06-05 Jürg Billeter <j@bitron.ch>
3044 * giscanner/girwriter.py:
3045 * giscanner/transformer.py:
3046 Use <type> element for field types
3047 * tests/parser/Foo-expected.gir:
3050 2008-06-04 Johan Dahlin <jdahlin@async.com.br>
3052 * giscanner/glibtransformer.py:
3053 Fix a bug which prevented GdkEvent from being generated
3055 2008-06-03 Johan Dahlin <jdahlin@async.com.br>
3057 * giscanner/Makefile.am:
3059 * giscanner/girwriter.py:
3060 * giscanner/glibast.py:
3061 * giscanner/glibtransformer.py:
3062 * giscanner/transformer.py:
3063 * giscanner/utils.py:
3064 * tests/parser/Foo-expected.gir:
3065 Improve enum member parsing and introspection
3067 2008-05-31 Johan Dahlin <jdahlin@async.com.br>
3069 * giscanner/scannerparser.y:
3070 * giscanner/sourcescanner.h:
3071 * giscanner/sourcescanner.py:
3072 Add a new source type enum for member.
3073 Use __repr__ for improved debugging
3074 * giscanner/girparser.py:
3076 * giscanner/transformer.py:
3077 Improve parsing of struct members.
3078 * tests/parser/foo-object.h:
3081 2008-05-31 Johan Dahlin <jdahlin@async.com.br>
3083 * giscanner/xmlwriter.py:
3084 Improve error reporting when trying to quote None.
3085 * giscanner/girparser.py:
3086 Do not print warnings when including more complete .gir files
3087 * giscanner/girwriter.py:
3088 Do not require a name for parameters, add a todo for singletons
3089 * giscanner/glibtransformer.py:
3090 Refactor the way structs are done, add a couple of hacks to allow
3092 * giscanner/transformer.py:
3093 Add enough hacks so cairo, atk and pango.gir can be parsed properly
3094 * gobject-introspection-1.0.pc.in:
3095 Export girdir, so we can access gobject-2.0.gir from outside
3097 2008-05-31 Johan Dahlin <jdahlin@async.com.br>
3099 * tools/g-ir-scanner:
3100 * tests/parser/Makefile.am:
3101 Update sys.path before running the parser so we don't have
3102 to setup PYTHONPATH ourselves.
3106 * girepository/Makefile.am:
3107 * giscanner/transformer.py:
3108 * gobject-introspection-1.0.pc.in:
3109 * gobject-introspection.pc.in:
3110 * tools/Makefile.am:
3112 Rename pkg-config name to gobject-introspection-1.0,
3113 Do not installed anything which is not using the gir format.
3114 Disable compililation the old C scanner, but still keep the source
3115 until all the remaning functionallity has been ported.
3117 2008-05-31 Johan Dahlin <jdahlin@async.com.br>
3119 * giscanner/giscannermodule.c (symbol_get_ident): Prevent
3120 a crash when symbol->indent is NULL.
3122 * giscanner/sourcescanner.py (ctype_name): Add ctype_name,
3123 a function to convert a CTYPE symbol to a string
3125 2008-05-24 Johan Dahlin <jdahlin@async.com.br>
3128 * giscanner/girwriter.py:
3129 * giscanner/giscannermodule.c
3130 (pygi_source_scanner_append_filename),
3131 (pygi_source_scanner_parse_file):
3132 * giscanner/glibtransformer.py:
3133 * giscanner/sourcescanner.py:
3134 Revert back to using temporary files to send in headers.
3135 Allow Functions to be passed in as callbacks, add a couple
3136 of try/excepts missing features.
3137 We can now scan pango
3139 2008-05-08 Johan Dahlin <johan@gnome.org>
3141 * giscanner/glibtransformer.py:
3142 * giscanner/transformer.py:
3143 Move namespace stripping glibtransformer->transformer
3145 2008-05-08 Johan Dahlin <johan@gnome.org>
3148 * giscanner/girwriter.py:
3149 * giscanner/glibtransformer.py:
3150 * giscanner/transformer.py:
3151 * tools/g-ir-scanner:
3152 Introduce a namespace ast node
3154 2008-05-05 Johan Dahlin <johan@gnome.org>
3156 * giscanner/__init__.py:
3157 * giscanner/sourcescanner.py:
3158 * giscanner/transformer.py:
3159 Move sourcescanner symbols to the sourcescanner module, instead
3160 of in the global __init__ namespace.
3162 2008-05-03 Johan Dahlin <johan@gnome.org>
3164 * giscanner/glibtransformer.py:
3165 * tools/g-ir-scanner:
3166 Handle missing parameters better, allow - and + in .la dlname
3169 2008-05-03 Johan Dahlin <johan@gnome.org>
3171 * giscanner/__init__.py:
3173 * giscanner/girwriter.py:
3174 * giscanner/glibtransformer.py:
3175 * giscanner/transformer.py:
3176 Parse struct fields properly, improve debugging.
3178 2008-04-29 Johan Dahlin <johan@gnome.org>
3181 * giscanner/girwriter.py:
3182 * giscanner/transformer.py:
3183 * tests/parser/Foo-expected.gir:
3185 Use transfer-ownership everywhere, to mark ownership/calle/caller etc.
3187 2008-04-29 Johan Dahlin <jdahlin@async.com.br>
3190 * docs/g-ir-scanner.1:
3191 * metadata-annotations-proposal.txt:
3192 * metadata-format.txt:
3193 Add a basic, unfinshed man page for g-ir-scanner, move documents into .txt
3195 2008-04-29 Johan Dahlin <jdahlin@async.com.br>
3197 * giscanner/girwriter.py:
3198 * giscanner/glibtransformer.py:
3199 * giscanner/transformer.py:
3200 * giscanner/xmlwriter.py:
3201 * tests/parser/Foo-expected.gir:
3202 * tests/parser/foo-object.h:
3203 Write record/structs to gir file too. Add a couple of tests,
3204 fix an off by one error in xmlwriter.py.
3206 2008-04-28 Johan Dahlin <johan@gnome.org>
3208 * giscanner/xmlwriter.py: Calculate the line length properly,
3209 include the provided extra indentation in the calculation, really.
3211 2008-04-28 Johan Dahlin <jdahlin@async.com.br>
3214 * giscanner/glibast.py:
3215 * giscanner/glibtransformer.py:
3216 * giscanner/transformer.py:
3217 * tools/g-ir-scanner:
3218 Add a --strip-prefix and sort out confusion between names and symbols
3219 for functions and struct + derivaties.
3220 Refactor bootstrap of g-ir-scanner, so we can set options on
3221 Transformer() before parsing everything.
3223 2008-04-28 Johan Dahlin <johan@gnome.org>
3225 * giscanner/transformer.py (Transformer._traverse_one): Avoid recursion
3226 when scanning girepository.h
3228 * giscanner/sourcescanner.py (SourceScanner._preprocess): Define
3229 a __GI_SCANNER__ when we run.
3231 2008-04-28 Johan Dahlin <jdahlin@async.com.br>
3234 * giscanner/girwriter.py:
3235 * giscanner/glibast.py:
3236 * giscanner/glibtransformer.py:
3237 * tests/parser/Foo-expected.gir:
3238 * tests/parser/utility-expected.gir:
3239 Rename most c:identifier to c:type. Add new ones to
3240 class/interface/enum/boxed.
3242 2008-04-28 Johan Dahlin <jdahlin@async.com.br>
3245 * giscanner/girwriter.py:
3246 * giscanner/glibtransformer.py:
3247 * tests/parser/Foo-expected.gidl:
3248 * tests/parser/Makefile.am:
3249 Move c:identifier from return-value to subchild type,
3250 as per Jürgs suggestion
3252 2008-04-28 Johan Dahlin <johan@gnome.org>
3254 * giscanner/girwriter.py:
3255 * tests/parser/Foo-expected.gir:
3256 Write property.type as a child node.
3258 2008-04-27 Johan Dahlin <johan@gnome.org>
3263 * gidl/gobject-2.0.gidl:
3265 * gir/gobject-2.0.gir:
3266 * tests/parser/Makefile.am:
3267 Replace the GObject gidl with a GObject gir.
3269 2008-04-27 Johan Dahlin <johan@gnome.org>
3271 * tools/Makefile.am (bin_SCRIPTS): g-ir-scanner is a script,
3274 * giscanner/xmlwriter.py:
3275 * tests/parser/Foo-expected.gir:
3276 Include indentation in line length calculation
3278 2008-04-27 Johan Dahlin <johan@gnome.org>
3280 * giscanner/girparser.py:
3281 Prettify NS parsing using elementtree.
3283 2008-04-27 Johan Dahlin <johan@gnome.org>
3286 * giscanner/Makefile.am:
3287 * giscanner/girparser.py:
3288 * giscanner/glibtransformer.py:
3289 * tests/parser/Foo-expected.gidl:
3290 * tests/parser/Foo-expected.gir:
3291 * tests/parser/Makefile.am:
3292 * tests/parser/utility-expected.gidl:
3293 * tests/parser/utility-expected.gir:
3294 * tools/g-ir-scanner:
3295 Switch over to GIR as the default format. Add a simple GIDL
3297 Update tests and fix simplify makefiles by depending
3298 on GNU make extensions.
3300 2008-04-27 Johan Dahlin <johan@gnome.org>
3302 * giscanner/xmlwriter.py:
3303 Wrap attributes for lines which are wider than 79 characters
3305 * giscanner/scannerlexer.l:
3306 Allow parenthesis in annotations
3309 * giscanner/gidlwriter.py:
3310 * giscanner/girwriter.py:
3311 * giscanner/glibtransformer.py:
3312 * giscanner/transformer.py:
3313 Add initial sequence support, including annotation.
3314 Refactor type handling a bit.
3316 2008-04-27 Johan Dahlin <johan@gnome.org>
3318 * tests/parser/Foo-expected.gidl:
3319 * tests/parser/foo-object.h:
3320 * tests/parser/foo.c (foo_object_class_init),
3321 (foo_object_get_strings), (foo_object_get_objects):
3322 Add two new functions to check sequence return values.
3323 Also fixes a compilation warning.
3325 2008-04-27 Johan Dahlin <johan@gnome.org>
3327 * giscanner/giscannermodule.c (]): Cast the getter, avoids
3328 a compilation warning.
3330 * tools/Makefile.am (g_ir_scanner_SOURCES):
3331 g-ir-scanner has no sources.
3333 2008-04-25 Johan Dahlin <johan@gnome.org>
3335 * giscanner/Makefile.am:
3337 * giscanner/gidlparser.py:
3338 * giscanner/gidlwriter.py:
3339 * giscanner/girwriter.py:
3340 * giscanner/glibast.py:
3341 * giscanner/glibtransformer.py:
3342 * giscanner/transformer.py:
3343 Split out nodes to ast.py and glibast.py
3345 2008-04-25 Johan Dahlin <jdahlin@async.com.br>
3347 * giscanner/Makefile.am:
3348 * giscanner/gidlparser.py:
3349 * giscanner/gidlwriter.py:
3350 * giscanner/girwriter.py:
3351 * giscanner/glibtransformer.py:
3352 * giscanner/gobjecttreebuilder.py:
3353 * giscanner/transformer.py:
3354 * giscanner/treebuilder.py:
3355 * tools/g-ir-scanner:
3356 Rename treebuilder to transformer and
3357 gobjectreebuilder to glibtransformer.
3359 2008-04-25 Johan Dahlin <jdahlin@async.com.br>
3361 * giscanner/Makefile.am:
3362 * giscanner/__init__.py:
3363 * giscanner/cgobject.py:
3364 * giscanner/gidlparser.py:
3365 * giscanner/gidlwriter.py:
3366 * giscanner/girwriter.py:
3367 * giscanner/gobjecttreebuilder.py:
3368 * giscanner/odict.py:
3369 * giscanner/sourcescanner.py:
3370 * giscanner/treebuilder.py:
3371 * giscanner/xmlwriter.py:
3372 * tools/Makefile.am:
3373 * tools/g-ir-scanner:
3374 Add LGPLv2 license header and install all python files
3376 2008-04-25 Johan Dahlin <jdahlin@async.com.br>
3379 * giscanner/gidlwriter.py:
3380 * giscanner/giscannermodule.c (pygi_source_directive_new),
3381 (directive_get_options), (pygi_source_symbol_new),
3382 (symbol_get_base_type), (pygi_source_type_new),
3383 (type_get_base_type), (type_get_child_list),
3384 (pygi_source_scanner_get_symbols),
3385 (pygi_source_scanner_get_directives):
3386 * giscanner/gobjecttreebuilder.py:
3387 * giscanner/sourcescanner.py:
3388 * giscanner/treebuilder.py:
3389 * tests/parser/foo-object.h:
3390 Add support for virtual methods.
3391 Pair struct FooClass with struct Foo.
3392 Clean up the SourceScanner bindings a bit.
3393 Add a testcase for virtual methods.
3395 2008-04-25 Johan Dahlin <jdahlin@async.com.br>
3397 * giscanner/cgobject.py:
3398 * giscanner/gidlwriter.py:
3399 * giscanner/gobjecttreebuilder.py:
3400 Add support for signals
3402 * tests/parser/foo.c (foo_object_class_init):
3403 * Foo-expected.gidl:
3404 Add a signal and update the expected output.
3406 2008-04-24 Johan Dahlin <jdahlin@async.com.br>
3408 * giscanner/gidlwriter.py:
3409 * giscanner/girwriter.py:
3410 * giscanner/giscannermodule.c (directive_get_name),
3411 (directive_get_value), (directive_get_options),
3412 (symbol_get_directives), (symbol_set_directives),
3413 (pygi_source_scanner_parse_file),
3414 (pygi_source_scanner_lex_filename),
3415 (pygi_source_scanner_get_directives), (init_giscanner):
3416 * giscanner/sourcescanner.c (gi_source_scanner_get_directives):
3417 * giscanner/sourcescanner.h:
3418 * giscanner/sourcescanner.py:
3419 * giscanner/treebuilder.py:
3420 * tools/g-ir-scanner:
3421 Add support for source/header annotations.
3423 2008-04-22 Johan Dahlin <jdahlin@async.com.br>
3425 * giscanner/gidlwriter.py:
3426 * giscanner/girwriter.py:
3427 * giscanner/gobjecttreebuilder.py:
3428 * giscanner/treebuilder.py:
3429 Add support for Callbacks
3431 2008-04-22 Havoc Pennington <hp@pobox.com>
3433 * girepository/ginvoke.c (g_function_info_invoke): If a symbol is
3434 not in metadata->module, look for it in the global module, in case
3435 some other object or the app itself provides the symbol.
3437 2008-04-22 Havoc Pennington <hp@pobox.com>
3439 * girepository/gmetadata.c (_g_metadata_init): hack to avoid
3440 dlopening a library that is already in the main app, by checking
3441 whether one of the lib's symbols is already loaded.
3443 2008-04-22 Johan Dahlin <jdahlin@async.com.br>
3445 * tests/parser/Foo-expected.gidl:
3446 * tests/parser/foo-object.h:
3449 2008-04-22 Havoc Pennington <hp@pobox.com>
3451 * girepository/ginfo.c (g_interface_info_find_method):
3452 Use interface_blob_size not object_blob_size to compute offset.
3454 2008-04-22 Havoc Pennington <hp@pobox.com>
3456 * girepository/gmetadata.c (_g_metadata_init): remove
3457 G_MODULE_BIND_LOCAL flag when loading libraries, since some libs
3458 (Glade and Clutter for example) rely on being loaded globally.
3460 2008-04-22 Havoc Pennington <hp@pobox.com>
3462 * girepository/ginfo.c (g_registered_type_info_get_g_type): new
3463 function to get the GType given a RegisteredTypeInfo
3465 2008-04-22 Johan Dahlin <johan@gnome.org>
3467 * COPYING: Add a LGPL license, to prevent automake to
3468 put in a copy of GPL here. Pointed out by Havoc.
3470 * girepository/ginfo.c (g_info_from_entry), (g_type_info_new),
3471 (g_type_info_is_pointer), (g_type_info_get_tag),
3472 (g_type_info_get_param_type), (g_type_info_get_interface),
3473 (g_type_info_get_array_length), (g_type_info_is_zero_terminated),
3474 (g_type_info_get_n_error_domains), (g_type_info_get_error_domain),
3475 (g_error_domain_info_get_codes), (g_enum_info_get_value),
3476 (g_object_info_get_interface), (g_object_info_get_field),
3477 (g_interface_info_get_prerequisite),
3478 (g_signal_info_get_class_closure), (g_constant_info_get_value):
3479 * girepository/ginvoke.c (get_ffi_type):
3480 * girepository/girepository.h:
3481 * girepository/gmetadata.c (g_metadata_get_dir_entry),
3482 (g_metadata_check_sanity), (validate_header),
3483 (validate_array_type_blob), (validate_iface_type_blob),
3484 (validate_param_type_blob), (validate_error_type_blob),
3485 (validate_type_blob), (validate_constant_blob),
3486 (validate_struct_blob), (validate_enum_blob):
3487 * girepository/gmetadata.h:
3488 * tests/Makefile.am:
3489 * tests/invoke/Makefile.am:
3490 * tests/invoke/invoke.c (main):
3491 * tests/roundtrips.sh:
3492 * tools/Makefile.am:
3493 * tools/compiler.c (format_output), (write_out_metadata), (main):
3494 * tools/generate.c (write_type_name), (write_type_info),
3495 (write_constant_value), (write_enum_info), (load_metadata), (main):
3496 * tools/gidlcompilercontext.c:
3497 * tools/gidlcompilercontext.h:
3498 * tools/gidlcompilerentrynode.c:
3499 * tools/gidlcompilerentrynode.h:
3500 * tools/gidlcompilertypenode.c:
3501 * tools/gidlcompilertypenode.h:
3502 * tools/gidlmodule.c (g_idl_module_build_metadata):
3503 * tools/gidlmodule.h:
3504 * tools/gidlnode.c (init_stats), (dump_stats),
3505 (g_idl_node_get_size), (g_idl_node_get_full_size),
3506 (g_idl_node_cmp), (g_idl_node_can_have_member),
3507 (g_idl_node_add_member), (g_idl_node_param_direction_string),
3508 (parse_int_value), (parse_uint_value), (parse_float_value),
3509 (parse_boolean_value), (find_entry_node), (find_entry),
3510 (serialize_type), (g_idl_node_build_metadata), (write_string):
3512 * tools/gidlparser.c (parse_type_internal):
3513 * tools/quote-file.sh:
3514 Revert revisions 157,149-148,136-129 and 120.
3515 Move back to using g-idl-generate to generate the metadata and
3516 avoids dependency on a c compiler.
3518 2008-04-22 Johan Dahlin <jdahlin@async.com.br>
3520 * giscanner/girwriter.py:
3521 * tools/g-ir-scanner:
3522 Add an initial GIR writer and a --format option to g-ir-scanner
3524 2008-04-21 Johan Dahlin <johan@gnome.org>
3526 * giscanner/cgobject.py: Use ctypes.util.find_library to locate
3527 gobject-2.0 and raise ImportError if not found.
3529 * giscanner/gidlparser.py:
3530 * giscanner/gidlwriter.py:
3531 * giscanner/gobjecttreebuilder.py:
3532 * tools/g-ir-scanner:
3533 Add a --include argument to include types from other idls.
3534 Add a minimalistic GIDL parser (just objects for now)
3535 Implement resolving of external type references and use it to
3536 resolve parent types, argument types and return types.
3538 2008-04-21 Johan Dahlin <johan@gnome.org>
3540 * giscanner/gidlwriter.py:
3541 * giscanner/gobjecttreebuilder.py:
3542 * giscanner/treebuilder.py:
3543 Add support for properties.
3544 Refactor Class/Interface support a bit, to share more code and
3545 always initialize their method attribute to an empty list.
3547 2008-04-21 Johan Dahlin <johan@gnome.org>
3549 * giscanner/cgobject.py:
3550 Add a workaround for a glib bug interface introspection bug
3551 (object_interface_list_properties, object_class_list_properties):
3552 Cast the return value to GParamSpec.
3554 * tests/parser/Foo-expected.gidl: Update
3555 * tests/parser/foo.c: Add a string property
3557 * giscanner/gobjecttreebuilder.py:
3558 After stripping namespaces, remove the original
3559 item to avoid duplication (GtkButton struct and Button object)
3561 2008-04-21 Johan Dahlin <johan@gnome.org>
3563 * giscanner/gobjecttreebuilder.py:
3564 * giscanner/treebuilder.py:
3565 Strip namespaces before objects, so we'll export
3566 GtkButton as Button in the gtk namespace
3568 2008-04-21 Johan Dahlin <johan@gnome.org>
3570 * giscanner/gidlwriter.py:
3571 * giscanner/gobjecttreebuilder.py:
3572 * giscanner/treebuilder.py:
3573 Add constructors for object/boxed types.
3575 2008-04-21 Johan Dahlin <johan@gnome.org>
3577 * giscanner/gidlwriter.py:
3578 * giscanner/gobjecttreebuilder.py:
3579 Add support for boxed types
3581 2008-04-21 Johan Dahlin <johan@gnome.org>
3583 * giscanner/giscannermodule.c: Mark structures as const,
3584 wrap SourceType.const_string.
3586 * tests/parser/foo-object.h: Add a couple of constants.
3588 * giscanner/gidlwriter.py:
3589 * giscanner/gobjecttreebuilder.py:
3590 * giscanner/treebuilder.py:
3591 Add basic support for interfaces
3593 * tools/g-ir-scanner:
3594 Add -o/--output for writing to a file
3596 2008-04-21 Havoc Pennington <hp@redhat.com>
3598 * TODO: add some C API wishlist items I could think of quickly
3600 2008-04-21 Johan Dahlin <jdahlin@async.com.br>
3602 * giscanner/gidlwriter.py:
3603 * giscanner/xmlwriter.py:
3604 Add a simple api for writing tags which can be used
3605 with the new 'with statement' in python 2.5
3607 2008-04-21 Johan Dahlin <johan@gnome.org>
3609 * giscanner/gobjecttreebuilder.py:
3610 Strip namespace and object prefix from method names.
3612 2008-04-21 Johan Dahlin <johan@gnome.org>
3614 * tools/g-ir-scanner (main): Add --pkg option to pass in
3615 pkg-config modules to get cflags from.
3617 * giscanner/gidlwriter.py (GIDLWriter._write_method):
3618 Avoid duplication, reuse function writer for methods.
3620 2008-04-21 Johan Dahlin <jdahlin@async.com.br>
3622 * giscanner/gidlwriter.py:
3623 * giscanner/gobjecttreebuilder.py:
3624 * giscanner/treebuilder.py:
3625 * tools/g-ir-scanner:
3626 Resolve libtool .la files.
3627 Strip name spaces for methods.
3628 Add function symbols
3630 2008-04-20 Johan Dahlin <jdahlin@async.com.br>
3632 * giscanner/cgobject.py:
3633 * giscanner/gidlwriter.py:
3634 * giscanner/gobjecttreebuilder.py:
3635 * giscanner/treebuilder.py:
3636 Add support for classes and methods
3638 2008-04-20 Johan Dahlin <johan@gnome.org>
3640 * giscanner/gidlwriter.py:
3641 * giscanner/gobjecttreebuilder.py:
3642 * giscanner/odict.py:
3643 Avoid conflicts, keep the output ordered similar to
3644 the order of the input.
3645 Add a simple ordered dictionary implemenation
3647 2008-04-19 Johan Dahlin <johan@gnome.org>
3649 * giscanner/cgobject.py:
3650 * giscanner/gidlwriter.py:
3651 * giscanner/gobjecttreebuilder.py:
3652 * tools/g-ir-scanner:
3653 Start introspecting get-type functions.
3654 Implement support for GLib/GFlags GTypes.
3655 Add a ctype based GObject binding.
3657 2008-04-18 Johan Dahlin <jdahlin@async.com.br>
3659 * giscanner/gidlwriter.py:
3660 * giscanner/xmlwriter.py:
3661 * tools/g-ir-scanner:
3662 Add a simplistic gidl writer, which can't do too much.
3664 2008-04-18 Johan Dahlin <johan@gnome.org>
3666 * giscanner/sourcescanner.py:
3667 * giscanner/treebuilder.py:
3668 * tools/g-ir-scanner:
3669 split tree building and source scanning interface to separate files.
3671 2008-04-18 Johan Dahlin <johan@gnome.org>
3673 * tools/g-ir-scanner (Parameter.__init__): Start constructing
3675 - Add support for struct/parameter/return, start parsing of ctypes
3677 * giscanner/giscannermodule.c: wrap GISourceType.child_list and
3680 2008-03-31 Johan Dahlin <johan@gnome.org>
3682 * tools/g-ir-scanner:
3683 Start to build abstract syntax node of scanned sources.
3684 Add support for cpp options.
3686 2008-03-27 Johan Dahlin <johan@gnome.org>
3688 * giscanner/giscannermodule.c:
3689 * giscanner/scannerlexer.l:
3690 * giscanner/sourcescanner.c:
3691 * tools/g-ir-scanner:
3693 Add simple pre-processor using subprocess and a PIPE.
3694 Change the parse_file apis to accept a file descriptor.
3696 2008-03-25 Johan Dahlin <johan@gnome.org>
3698 * giscanner/__init__.py:
3699 * tools/g-ir-scanner:
3700 Fix a typo and add an example python test program.
3702 2008-03-25 Johan Dahlin <johan@gnome.org>
3704 * giscanner/__init__.py:
3705 * giscanner/giscannermodule.c:
3706 * giscanner/sourcescanner.c:
3707 * giscanner/sourcescanner.h:
3708 Add constants and wrap a few more SymbolType fields
3710 2008-03-25 Johan Dahlin <johan@gnome.org>
3714 * giscanner/__init__.py:
3715 * giscanner/giscannermodule.c:
3716 * giscanner/Makefile.am:
3718 Add initial python bindings for the scanner and
3719 depend on python 2.5.
3721 2008-03-25 Johan Dahlin <johan@gnome.org>
3725 * giscanner/Makefile.am:
3726 * giscanner/sourcescanner.c:
3727 * giscanner/sourcescanner.h:
3728 * tools/Makefile.am:
3729 * tools/grealpath.h:
3730 * tools/sourcescanner.c:
3731 * tools/sourcescanner.h:
3733 Move the scanner to a separate library.
3735 2008-03-23 Johan Dahlin <johan@gnome.org>
3737 * tools/Makefile.am:
3740 * tools/scannerlexer.l:
3741 * tools/scannerparser.y:
3742 * tools/sourcescanner.c:
3743 * tools/sourcescanner.h:
3744 Split out the source scanner from the generator.
3745 Rename the symbols used in the scanner to use the gi_ prefix.
3746 This should make it possible to use the raw C parser from
3749 2008-03-23 Johan Dahlin <johan@gnome.org>
3751 * tests/parser/Makefile.am (utility.gidl):
3752 * tests/parser/utility-expected.gidl:
3753 Pass in the gobject.gidl since we're defining a GObject.
3755 2008-03-12 Johan Dahlin <johan@gnome.org>
3757 * relaxng/relaxng.rng:
3758 Add a releaxng in relaxng we can use to validate the relaxngs
3761 2008-03-12 Jürg Billeter <j@bitron.ch>
3763 * tools/scanner.c: (g_igenerator_new):
3764 * tools/scannerparser.y:
3765 Fix compiler warnings.
3767 2008-03-12 Jürg Billeter <j@bitron.ch>
3771 * tools/scannerparser.y:
3772 Start fixing memory management in g-idl-scanner.
3774 2008-03-12 Rob Taylor <rob.taylor@codethink.co.uk>
3776 * tools/gidlcompilercontext.c: (write_compiled):
3777 Fix critical warning when no shlib passed to g-idl-compiler.
3779 2008-03-12 Johan Dahlin <johan@gnome.org>
3781 * tests/parser/utility-expected.gidl:
3782 * tests/parser/utility.h:
3783 Add a get_type-function, so the scanner actually
3784 parses it as an object.
3786 2008-03-12 Johan Dahlin <johan@gnome.org>
3788 * tools/gidlwriter.c (function_generate): Add missing trailing quote.
3791 * tests/parser/Foo-expected.gidl:
3792 * tests/parser/Makefile.am:
3793 * tests/parser/foo-object.h:
3794 * tests/parser/foo.c:
3795 * tests/parser/utility-expected.gidl:
3796 * tests/parser/utility.c:
3797 * tests/parser/utility.h:
3799 Add a new gidl test. 'utility.gidl', which is used to be able
3800 to test external type references. Add a reference to UtilityObject*
3803 2008-03-11 Johan Dahlin <johan@gnome.org>
3807 Remove most global variables
3809 2008-03-11 Philip Van Hoof <me@pvanhoof.be>
3811 * tools/scannerlexer.l:
3813 * tests/parser/Foo-expected.gidl:
3814 * tests/parser/foo.c:
3815 * tests/parser/Makefile.am:
3816 * tests/parser/foo-object.h:
3818 Added a few extra tests. Which resulted in finding a few
3819 bugs. Which resulted in me fixing those bugs
3821 2008-03-11 Rob Taylor <rob.taylor@codethink.co.uk>
3823 * tools/gidlcompilercontext.c: (g_idl_compiler_write_dir_entry),
3824 (g_idl_compiler_write_xref_entry), (g_idl_compiler_add_xref):
3825 Add some comments for strings into generated output for
3828 2008-03-11 Rob Taylor <rob.taylor@codethink.co.uk>
3830 * tools/gidlcompilercontext.c: (write_compiled):
3831 Write out the shlibs variable before writing out the strings
3832 length. Fixes compiler warning when using '-l' flag with
3835 2008-03-11 Johan Dahlin <johan@gnome.org>
3837 * tests/parser/Foo-expected.gidl:
3838 * tests/parser/foo-object.h:
3841 * tools/scannerlexer.l:
3842 Add support for parsing return arguments. Add support for
3843 caller-owns return types.
3844 Patch by Philip Van Hoof.
3846 * tools/scannerparser.y:
3847 Remove parsing of the @deprecated syntax used in headers.
3848 We will support gtk-doc deprecation in the future instead.
3850 2008-03-11 Johan Dahlin <johan@gnome.org>
3852 * tools/compiler.c (main): Coding style fixes
3854 2008-03-10 Johan Dahlin <johan@gnome.org>
3857 Add GCOV_LIBS to GILIBS
3859 2008-03-10 Johan Dahlin <johan@gnome.org>
3861 * tests/parser/Foo-expected.gidl:
3862 * tests/parser/foo.c:
3863 Rename null-ok to direction=out
3865 2008-03-10 Philip Van Hoof <me@pvanhoof.be>
3867 reviewed and extensively tested by Johan
3869 * tests/parser/Foo-expected.gidl:
3870 * tests/parser/foo-object.h:
3871 * tests/parser/foo.c:
3874 * tools/gidlwriter.c:
3877 * tools/scannerlexer.l:
3878 * tools/scannerparser.y:
3880 Add support for scanning for gtk-doc comments inside
3881 C source files. Add tests
3883 2008-03-10 Johan Dahlin <johan@gnome.org>
3885 * tests/parser/Makefile.am:
3886 * tests/parser/foo.c:
3889 * tools/scannerparser.y:
3890 Add an api to lex filenames.
3891 Lex all source .c files passed in on the command line.
3892 Scan sources in a test and a couple of private structures
3893 which should not be included in the generated gidl
3895 2008-03-10 Johan Dahlin <johan@gnome.org>
3897 * tests/invoke/Makefile.am: Make the generated metadata
3898 depend on the g-idl-compiler
3900 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
3902 * tools/gidlmodule.c
3903 * tools/gidlmodule.h
3906 Remove the old g-idl-compiler code.
3909 2008-02-22 Mark Doffman <mark.doffman@codethink.co.uk>
3911 * tools/quote-file.sh
3914 Move to using the 'C' struct compiler code.
3916 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
3918 * girepository/ginfo.c
3920 Change the way that external references with no namespace
3921 are dealt with. External references with no namespace
3922 are placed into the XML as-if they are a local reference.
3923 This is temporary, but helps with roundtrip tests.
3925 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
3927 * girepository/ginfo.c
3928 Add the ability to get the value of a constant of
3929 type TYPE_TAG_SYMBOL. In the case of a symbol the value
3930 is provided as a string.
3932 This would deal properly with:
3933 typedef char* random;
3934 const random = "A string";
3936 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
3938 * girepository/ginfo.c
3939 * girepository/girepository.h
3941 Add a function to check if an enum is registered or not.
3942 Previously anything testing this relied on the g-type
3943 string offset having a value of 0.
3945 * girepository/gmetadata.c
3946 * girepository/gmetadata.h
3948 Remove unneccesary or erroneous checks. There were two
3949 metadata validation checks which made sure that the blob
3950 sizes were the same as some magic numbers compiled into the code.
3951 This is wrong as it breaks any forwards compatibility that may
3954 Checks were also present that made sure that unregistered type
3955 blobs had a value of 0 in the g-type offset field. This is
3956 unneccessary. If a type blob is unregistered then any value
3957 in its g-type field is simply invalid.
3959 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
3961 * girepository/ginfo.c
3962 * girepository/gmetadata.c
3963 * girepository/gmetadata.h
3965 Change the metadata format to have a standard header
3966 for all the type blobs. Merge the SimpleTypeBlob
3967 and InterfaceTypeBlob into a union. A union of these
3968 two blobs existed previously but was not explicit
3969 in the metadata format.
3971 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
3973 * tools/gidlcompilercontext.c
3974 * tools/gidlcompilercontext.h
3975 * tools/gidlcompilerentrynode.c
3976 * tools/gidlcompilerentrynode.h
3977 * tools/gidlcompilertypenode.c
3978 * tools/gidlcompilertypenode.h
3980 Add code to compile a tree of GIdlNodes to
3981 a 'C' struct representing the metadata.
3982 This is to aid cross-compiling. Previously
3983 the g-idl-compiler created a binary blob with
3984 data written in the byte order and alignment
3985 of the tool rather than the intended target.
3987 Cleaned up and improved by Johan and Robert :-)
3989 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
3991 * girepository/ginvoke.c
3992 * girepository/girepository.h
3993 * girepository/gmetadata.c
3994 * girepository/gmetadata.h
3996 * tools/gidlparser.c
3997 Modify TYPE_TAG_INTERFACE to TYPE_TAG_SYMBOL
3998 to avoid confusion with the interface blob.
4001 * tools/gidlparser.c
4002 Remove magic numbers and replace with type-tag
4003 enumeration symbols.
4005 * girepository/gmetadata.c
4006 Add validate declaration.
4008 2008-03-10 Jürg Billeter <j@bitron.ch>
4010 * tools/gidlparser.c: (parse_type_internal):
4011 * tools/scannerlexer.l:
4012 * tools/scannerparser.y:
4013 Support C99 _Bool type in scanner.
4015 2008-03-10 Jürg Billeter <j@bitron.ch>
4017 * tests/parser/Foo-expected.gidl:
4018 * tests/parser/foo-object.h:
4019 * tests/parser/foo.c: (foo_enum_method):
4020 * tools/scanner.c: (g_igenerator_process_function_symbol):
4021 Don't skip functions that are defined in the namespace of a type
4022 that doesn't support methods, as for example enums.
4024 2008-03-10 Johan Dahlin <johan@gnome.org>
4026 * gidl.dtd: Remove, we're using relaxng for now
4028 * tests/parser/Foo-expected.gidl:
4029 * tests/parser/foo-object.h:
4030 * tests/parser/foo.c:
4031 Rename the enum/flags get_type functions to include the whole type.
4033 2008-03-08 Marc-Andre Lureau <marcandre.lureau@gmail.com>
4035 * tools/gidlwriter.c (enum_generate): added "type-name",
4036 "get-type" and "deprecated" missing arguments.
4037 * tests/parser/Foo-expected.gidl:
4038 * tests/parser/foo-object.h: test enum type, and no type.
4040 2008-03-06 Johan Dahlin <jdahlin@async.com.br>
4043 Consistent checks, add missing 'test'
4045 2008-03-05 Havoc Pennington <hp@redhat.com>
4047 * configure.ac: Take advantage of a libffi.pc if one exists, as it
4048 does on Fedora 8. Make libffi a hard requirement, since it was in
4049 practice anyway (was not really conditional in the code or
4050 makefile, only in configure).
4052 2008-02-21 Mark Doffman <mark.doffman@codethink.co.uk>
4054 reviewed by: Rob Taylor <rob.taylor@codethink.co.uk>
4055 reviewed by: Johan Dahlin <johan@gnome.org>
4057 * tests/Makefile.am:
4058 * tests/roundtrips.sh:
4059 Modify the roundtrips test so that they do not use the
4060 --raw option of the gidl compiler but instead compile a
4061 shared library to use with g_module.
4063 * tests/invoke/Makefile.am:
4064 * tests/invoke/invoke.c:
4065 Modify the invoke tests to build a shared library rather
4066 than use the --raw option.
4068 * tests/invoke/invoke-namespace-find.sh: Removed:
4069 Noone knows why this was here, so removed.
4071 2008-02-19 Rob Taylor <rob.taylor@codethink.co.uk>
4073 * tools/scanner.c: (g_igenerator_process_function_symbol):
4074 Move g_idl_node_can_have_member test later, as it broke spotting
4075 get_type's for nodes that can't have members.
4077 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
4080 * tools/gidlnode.c: (g_idl_node_can_have_member):
4081 Add g_idl_node_can_have_member.
4083 * tools/scanner.c: (g_igenerator_process_function_symbol):
4084 Use g_idl_node_can_have_member to test if we should add a function
4085 as a member of the type node.
4087 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
4089 * gidl/GLib.gidl: Renamed to gidl/gobject-2.0.gidl:
4091 * tests/parser/Makefile.am:
4092 Rename GLib.gidl to gobject-2.0.gidl and install in /usr/share/gidl.
4094 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
4096 * tools/scanner.c: (main):
4097 Ignore -pthread when passed to g-idl-scanner.
4099 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
4101 * tools/grealpath.h: Added:
4102 * tools/scanner.c: (main):
4103 * tools/scannerlexer.l:
4104 * tools/Makefile.am:
4105 Always use absolute paths with symbolic links resolved when
4106 comparing filenames.
4108 2008-02-18 Rob Taylor <rob.taylor@codethink.co.uk>
4110 * gobject-introspection.pc.in:
4111 Provide variables for g-idl-parser, scanner and compiler in the
4114 2008-02-13 Rob Taylor <rob.taylor@codethink.co.uk>
4117 * girepository/Makefile.am:
4118 * tools/Makefile.am:
4119 Rename GCOV_SOURCES to GCOVSOURCES to top automake complaining.
4121 2008-02-10 Johan Dahlin <johan@gnome.org>
4123 * tests/parser/Foo-expected.gidl:
4124 * tests/parser/foo-object.h:
4125 * tests/parser/foo.c: (foo_boxed_copy), (foo_boxed_free),
4126 (foo_boxed_get_type), (foo_boxed_new), (foo_boxed_method):
4129 2008-02-10 Johan Dahlin <johan@gnome.org>
4131 * tests/parser/Foo-expected.gidl:
4132 * tests/parser/foo-object.h:
4133 * tests/parser/foo.c: (foo_enum_get_type), (foo_flags_get_type):
4134 Add enum and flags test.
4136 2008-02-10 Johan Dahlin <johan@gnome.org>
4140 * girepository/Makefile.am:
4141 Make 'make distcheck' work again.
4143 2008-02-10 Johan Dahlin <johan@gnome.org>
4145 * m4/Makefile.am (EXTRA_DIST): its called as-compiler-flag.m4,
4148 * tests/parser/Makefile.am: Only create Foo.gidl when running make
4149 check, eg exclude it from BUILT_SOURCES.
4151 2008-02-08 Rob Taylor <rob.taylor@codethink.co.uk>
4156 * girepository/Makefile.am:
4157 * m4/Makefile.am: Added:
4158 * m4/as-compiler-flag.m4: Added:
4159 * m4/gcov.m4: Added:
4160 * tools/Makefile.am:
4161 Add ability to generate a coverage report.
4162 Adds configure option --enable-gcov and make rule 'check-coverage'.
4164 2008-02-08 Rob Taylor <rob.taylor@codethink.co.uk>
4168 * gidl/Makefile.am: Added:
4169 * girepository/Makefile.am: Added:
4170 * src/Makefile.am: Renamed to tools/Makefile.am:
4171 * src/compiler.c: Renamed to tools/compiler.c:
4172 * src/g-idl-offsets.pl: Renamed to tools/g-idl-offsets.pl:
4173 * src/generate.c: Renamed to tools/generate.c:
4174 * src/gidlmodule.c: Renamed to tools/gidlmodule.c:
4175 * src/gidlmodule.h: Renamed to tools/gidlmodule.h:
4176 * src/gidlnode.c: Renamed to tools/gidlnode.c:
4177 * src/gidlnode.h: Renamed to tools/gidlnode.h:
4178 * src/gidlparser.c: Renamed to tools/gidlparser.c:
4179 * src/gidlparser.h: Renamed to tools/gidlparser.h:
4180 * src/gidlwriter.c: Renamed to tools/gidlwriter.c:
4181 * src/gidlwriter.h: Renamed to tools/gidlwriter.h:
4182 * src/ginfo.c: Renamed to girepository/ginfo.c:
4183 * src/ginvoke.c: Renamed to girepository/ginvoke.c:
4184 * src/girepository.c: Renamed to girepository/girepository.c:
4185 * src/girepository.h: Renamed to girepository/girepository.h:
4186 * src/gmetadata.c: Renamed to girepository/gmetadata.c:
4187 * src/gmetadata.h: Renamed to girepository/gmetadata.h:
4188 * src/scanner.c: Renamed to tools/scanner.c:
4189 * src/scanner.h: Renamed to tools/scanner.h:
4190 * src/scannerlexer.l: Renamed to tools/scannerlexer.l:
4191 * src/scannerparser.y: Renamed to tools/scannerparser.y:
4192 * tests/invoke/Makefile.am:
4193 Split src/ into girepository/ and tools/
4197 * girepository/Makefile.am:
4198 * tests/Makefile.am:
4199 * tests/invoke/Makefile.am:
4200 * tests/parser/Makefile.am:
4201 * tests/roundtrips.sh:
4202 * tools/Makefile.am:
4203 Make distcheck work.
4205 2008-02-04 Rob Taylor <rob.taylor@codethink.co.uk>
4207 * tests/invoke/invoke.c: (main):
4208 * tests/invoke/testfns.c: (test6), (test7):
4209 * tests/invoke/testfns.xml:
4210 Add tests for invokation with a GList argument.
4211 Also tests caller-owns return values.
4213 2008-02-04 Rob Taylor <robtaylor@floopily.org>
4216 Add some documentation for GICallableInfo
4218 2008-02-01 Mark Doffman <mark.doffman@codethink.co.uk>
4221 Correct syntax errors in the DTD file.
4223 * relaxng/c-types.xml:
4224 * relaxng/g-types.xml:
4226 Add a RelaxNG specification for the GObject Introspection XML data.
4227 The Specification has validated all of the test files.
4229 2008-01-25 Rob Taylor <robtaylor@floopily.org>
4231 * tests/roundtrips.sh:
4232 * tests/struct.test:
4233 Add roundtrip tests for structs.
4235 2008-01-11 Johan Dahlin <johan@gnome.org>
4237 * src/scanner.c (g_igenerator_process_function_symbol):
4238 Refactor out g_idle_node_add_member.
4239 (create_node_from_gtype, create_node_from_ctype):
4240 Use case instead of if...else
4241 (get_type_from_type_id):
4242 Rename to create_node_from_gtype
4243 (get_type_from_ctype):
4244 Rename to create_node_from_ctype
4246 Rename ginode -> node, gitype -> type, gifunc -> func.
4248 * src/gidlnode.c (g_idl_node_add_member, g_idl_node_cmp):
4249 Two new functions, refactor out of scanner.c
4251 * src/scanner.c: (g_igenerator_process_function_symbol):
4252 * src/scannerlexer.l:
4253 Do not save the content of the deprecated variable, only
4256 2008-01-11 Johan Dahlin <johan@gnome.org>
4258 * tests/parser/foo-object.h: Add a couple of comment parser tests.
4260 2008-01-11 Jürg Billeter <j@bitron.ch>
4262 * src/scannerlexer.l:
4263 Fix GTK-Doc parsing.
4265 2008-01-11 Jürg Billeter <j@bitron.ch>
4267 * src/scannerlexer.l:
4268 Fix GTK-Doc parsing.
4270 2008-01-11 Jürg Billeter <j@bitron.ch>
4272 * src/scanner.c: (lookup_symbol):
4273 Return unresolved name if we find unknown symbol.
4275 2008-01-11 Jürg Billeter <j@bitron.ch>
4277 * src/scanner.c: (g_igenerator_generate):
4278 Initialize GObject to fix scanning interface properties.
4280 * tests/parser/Foo-expected.gidl:
4281 * tests/parser/foo-object.h:
4282 * tests/parser/foo.c: (foo_interface_get_type):
4283 Test interfaces with GObject prerequisite.
4285 * tests/parser/Makefile.am:
4286 Set G_DEBUG=fatal_warnings to abort test on warnings and criticals.
4288 2007-12-27 Johan Dahlin <johan@gnome.org>
4290 * src/scannerlexer.l:
4291 Parse gtk-doc comments.
4293 * src/gidlwriter.c: (function_generate):
4294 Reorganize, avoid duplication and add support for
4295 writing deprecated functions.
4297 * src/scannerparser.y:
4299 Add new structure CDirective and functions to create/free them.
4301 * src/scanner.c: (g_igenerator_process_function_symbol),
4302 (g_igenerator_process_unregistered_struct_typedef),
4303 (g_igenerator_process_struct_typedef),
4304 (g_igenerator_process_union_typedef),
4305 (g_igenerator_process_enum_typedef),
4306 (g_igenerator_process_function_typedef), (g_igenerator_add_symbol),
4307 (g_igenerator_start_preprocessor):
4308 Parse @deprecated directive for functions.
4309 Remove some more C99isms.
4310 Send in -C to cpp to avoid stripping comments.
4312 * tests/parser/foo-object.h:
4313 * tests/parser/Foo-expected.gidl:
4314 Add deprecated directive
4316 2007-12-27 Johan Dahlin <johan@gnome.org>
4318 * src/scannerlexer.l (intsuffix): Add emacs mode line and
4319 escape ' and " so it looks more like C.
4322 Unlink temporary file used.
4324 2007-12-27 Johan Dahlin <johan@gnome.org>
4326 * src/scanner.c: (g_igenerator_new), (g_igenerator_free),
4327 (g_igenerator_start_preprocessor), (main):
4329 * src/scannerparser.y:
4330 Plug a couple of simple memory leaks.
4332 2007-12-27 Johan Dahlin <johan@gnome.org>
4334 * src/scanner.c: (g_igenerator_parse_macros),
4335 (g_igenerator_start_preprocessor), (g_igenerator_set_verbose),
4338 * src/scannerparser.y:
4339 * tests/parser/Makefile.am:
4341 Improve error reporting, return when the preprocessor fails.
4342 Add a verbose parameter, to aid debugging.
4343 Revert to using a temporary file to communicate between the
4344 preprocessor and the parser, because we need to wait for
4345 the exit code from the pre-processor before starting to parse.
4347 2007-12-16 Johan Dahlin <jdahlin@async.com.br>
4349 * src/Makefile.am: Rename clexer.l to scannerlexer.l and
4350 cparser.y to scannerparser.y
4352 2007-12-11 Johan Dahlin <johan@gnome.org>
4356 * src/scanner.c: (g_igenerator_new):
4358 Get rid of the global the_generator variable.
4360 2007-12-10 Johan Dahlin <johan@gnome.org>
4362 * src/scanner.c (main): Add an output option,
4363 add checks for required parameters
4366 set BUILD_SOURCES and CLEANFILES properly
4368 * src/gidlwriter.c: (g_writer_write_inline), (g_writer_write),
4369 (g_writer_write_indent), (g_writer_write_unindent),
4370 (field_generate), (value_generate), (constant_generate),
4371 (property_generate), (function_generate), (vfunc_generate),
4372 (signal_generate), (interface_generate), (struct_generate),
4373 (union_generate), (boxed_generate), (enum_generate),
4374 (node_generate), (g_writer_write_module), (g_idl_writer_save_file):
4376 * src/scanner.c: (g_igenerator_generate):
4378 * src/scannerwriter.c:
4380 Refactor scannerwriter to only be tied to a GIdlModule and move
4381 it (again!) to gidlwriter.c. Change the writer function to take
4384 2007-12-10 Johan Dahlin <johan@gnome.org>
4387 * src/scanner.c: (g_igenerator_generate):
4389 * src/scannerwriter.c: (g_igenerator_write_inline),
4390 (g_igenerator_write), (g_igenerator_write_indent),
4391 (g_igenerator_write_unindent), (field_generate), (value_generate),
4392 (constant_generate), (property_generate), (function_generate),
4393 (vfunc_generate), (signal_generate), (interface_generate),
4394 (struct_generate), (union_generate), (boxed_generate),
4395 (enum_generate), (node_generate), (module_generate),
4396 (g_scanner_write_file):
4398 Move the scanner gidl writing to a separate source file.
4400 2007-12-10 Johan Dahlin <johan@gnome.org>
4405 Move over all CType construction functions.
4407 * tests/parser/Makefile.am:
4408 Be verbose when printing parsing tests results.
4410 2007-12-10 Johan Dahlin <johan@gnome.org>
4412 * src/scanner.c (g_igenerator_start_preprocessor): Refactor
4413 preprocessor handling to here. Start cpp insteado of cc -E,
4414 always include -U__GNUC__, since it's specific to the preprocessor
4417 * tests/parser/Makefile.am (check-local): Silent diff and skip
4418 -U__GNUC__ which is always defined now
4420 2007-12-10 Johan Dahlin,,, <jdahlin@plasttroll>
4422 reviewed by: <delete if not using a buddy>
4424 * src/scanner.c: (g_igenerator_start_preprocessor), (main):
4425 * tests/parser/Makefile.am:
4427 2007-12-09 Johan Dahlin <johan@gnome.org>
4430 Use GOption for command line options.
4431 (g_igenerator_new, main): Simplify constructor and they way
4432 parameters are passed into it.
4438 * src/gen-introspect.c:
4439 * src/gen-introspect.h:
4441 Rename gen-introspect.[ch] to scanner.[ch]
4443 2007-12-09 Johan Dahlin <johan@gnome.org>
4447 * src/Makefile.am: Rename gen-introspect to g-idl-scanner,
4448 don't make the repository library and the other utilites link against
4451 * src/gen-introspect.c: (g_igenerator_create_object),
4452 (g_igenerator_create_interface), (g_igenerator_create_boxed),
4453 (g_igenerator_create_enum), (g_igenerator_create_flags),
4454 (g_igenerator_process_module_symbol),
4455 (g_igenerator_process_module), (g_igenerator_generate), (main):
4456 * src/gen-introspect.h:
4457 Refactor g_igenerator_process_types into smaller pieces.
4459 * tests/parser/Makefile.am:
4460 Depend on the gen-introspect binary
4462 2007-12-09 Johan Dahlin <johan@gnome.org>
4464 * src/gen-introspect.c (g_igenerator_process_types):
4465 Break into smaller pieces, one for each generated node type.
4467 2007-12-08 Johan Dahlin <johan@gnome.org>
4469 * src/gen-introspect.c: (g_igenerator_process_types),
4470 (g_igenerator_add_module):
4471 * tests/parser/Foo-expected.gidl:
4472 * tests/parser/foo-object.h:
4473 * tests/parser/foo.c: (foo_subobject_class_init),
4474 (foo_subobject_init):
4476 Add a subobject test and make sure to register defined classes
4477 in the lookup symbol hash table.
4479 2007-12-08 Johan Dahlin <johan@gnome.org>
4483 * src/gen-introspect.c: (g_igenerator_new), (lookup_symbol),
4484 (g_igenerator_process_types), (g_igenerator_add_module),
4485 (g_igenerator_add_include_idl), (main):
4486 * src/gen-introspect.h:
4487 * tests/parser/Makefile.am:
4488 * tests/parser/Foo-expected.gidl:
4490 Change the gen-introspect to generate namespaced module names,
4491 such as GLib.Object instead of GObject.
4492 Add a GLib.gidl which introduces GLib.Object and GLib.InitiallyUnowned,
4493 add a --include-idl parameter to gen-introspect,
4494 and update the parser test.
4496 2007-12-08 Johan Dahlin <johan@gnome.org>
4498 * src/gen-introspect.c:
4499 Move main to the end of the file and attempt to make it valid
4502 * tests/parser/Makefile.am (BUILT_SOURCES): Remove .repo here,
4503 we're not quite ready to generate metadata yet.
4508 Add a simple gen-introspect parser test
4510 2007-12-06 Gustavo J. A. M. Carneiro <gjc@gnome.org>
4512 reviewed by: Johan Dahlin <johan@gnome.org>
4515 * gobject-introspection.pc.in:
4517 * src/compiler.c: (format_output), (write_out_metadata), (main):
4518 * src/gen-introspect.c: (main):
4519 * src/gen-introspect.h:
4520 * src/generate.c: (write_callable_info), (write_repository),
4521 (load_metadata), (main):
4522 * src/gidlmodule.c: (g_idl_module_new),
4523 (g_idl_module_build_metadata):
4525 * src/gidlparser.c: (start_element_handler):
4526 * src/ginfo.c: (g_info_new), (g_info_from_entry),
4527 (g_base_info_get_name), (g_base_info_get_namespace),
4528 (g_base_info_is_deprecated), (g_base_info_get_annotation),
4529 (g_base_info_get_metadata), (g_function_info_get_symbol),
4530 (g_function_info_get_flags), (g_function_info_get_property),
4531 (g_function_info_get_vfunc), (signature_offset), (g_type_info_new),
4532 (g_callable_info_may_return_null),
4533 (g_callable_info_get_caller_owns), (g_callable_info_get_n_args),
4534 (g_callable_info_get_arg), (g_arg_info_get_direction),
4535 (g_arg_info_is_return_value), (g_arg_info_is_dipper),
4536 (g_arg_info_is_optional), (g_arg_info_may_be_null),
4537 (g_arg_info_get_ownership_transfer), (g_type_info_is_pointer),
4538 (g_type_info_get_tag), (g_type_info_get_param_type),
4539 (g_type_info_get_interface), (g_type_info_get_array_length),
4540 (g_type_info_is_zero_terminated),
4541 (g_type_info_get_n_error_domains), (g_type_info_get_error_domain),
4542 (g_error_domain_info_get_quark), (g_error_domain_info_get_codes),
4543 (g_value_info_get_value), (g_field_info_get_flags),
4544 (g_field_info_get_size), (g_field_info_get_offset),
4545 (g_registered_type_info_get_type_name),
4546 (g_registered_type_info_get_type_init),
4547 (g_struct_info_get_n_fields), (g_struct_info_get_field),
4548 (g_struct_info_get_n_methods), (g_struct_info_get_method),
4549 (find_method), (g_struct_info_find_method),
4550 (g_enum_info_get_n_values), (g_enum_info_get_value),
4551 (g_object_info_get_parent), (g_object_info_get_type_name),
4552 (g_object_info_get_type_init), (g_object_info_get_n_interfaces),
4553 (g_object_info_get_interface), (g_object_info_get_n_fields),
4554 (g_object_info_get_field), (g_object_info_get_n_properties),
4555 (g_object_info_get_property), (g_object_info_get_n_methods),
4556 (g_object_info_get_method), (g_object_info_find_method),
4557 (g_object_info_get_n_signals), (g_object_info_get_signal),
4558 (g_object_info_get_n_vfuncs), (g_object_info_get_vfunc),
4559 (g_object_info_get_n_constants), (g_object_info_get_constant),
4560 (g_interface_info_get_n_prerequisites),
4561 (g_interface_info_get_prerequisite),
4562 (g_interface_info_get_n_properties),
4563 (g_interface_info_get_property), (g_interface_info_get_n_methods),
4564 (g_interface_info_get_method), (g_interface_info_find_method),
4565 (g_interface_info_get_n_signals), (g_interface_info_get_signal),
4566 (g_interface_info_get_n_vfuncs), (g_interface_info_get_vfunc),
4567 (g_interface_info_get_n_constants),
4568 (g_interface_info_get_constant), (g_property_info_get_flags),
4569 (g_signal_info_get_flags), (g_signal_info_get_class_closure),
4570 (g_signal_info_true_stops_emit), (g_vfunc_info_get_flags),
4571 (g_vfunc_info_get_offset), (g_vfunc_info_get_signal),
4572 (g_constant_info_get_value), (g_union_info_get_n_fields),
4573 (g_union_info_get_field), (g_union_info_get_n_methods),
4574 (g_union_info_get_method), (g_union_info_is_discriminated),
4575 (g_union_info_get_discriminator_offset),
4576 (g_union_info_get_discriminator):
4577 * src/ginvoke.c: (g_function_info_invoke):
4578 * src/girepository.c: (g_irepository_register),
4579 (g_irepository_unregister), (g_irepository_get_default),
4580 (count_interfaces), (g_irepository_get_n_infos), (find_interface),
4581 (g_irepository_get_info), (g_irepository_find_by_name),
4582 (g_irepository_get_shared_library),
4583 (g_irepository_build_search_path), (g_irepository_register_file),
4584 (g_irepository_error_quark):
4585 * src/girepository.h:
4586 * src/gmetadata.c: (g_metadata_get_dir_entry),
4587 (g_metadata_check_sanity), (validate_header),
4588 (validate_array_type_blob), (validate_iface_type_blob),
4589 (validate_param_type_blob), (validate_error_type_blob),
4590 (validate_type_blob), (validate_arg_blob),
4591 (validate_signature_blob), (validate_function_blob),
4592 (validate_callback_blob), (validate_constant_blob),
4593 (validate_value_blob), (validate_field_blob),
4594 (validate_property_blob), (validate_signal_blob),
4595 (validate_vfunc_blob), (validate_struct_blob),
4596 (validate_enum_blob), (validate_object_blob),
4597 (validate_interface_blob), (validate_errordomain_blob),
4598 (validate_union_blob), (validate_blob), (validate_directory),
4599 (validate_annotations), (g_metadata_validate), (_g_metadata_init),
4600 (g_metadata_new_from_memory), (g_metadata_new_from_const_memory),
4601 (g_metadata_new_from_mapped_file), (g_metadata_free),
4602 (g_metadata_set_module), (g_metadata_get_namespace):
4604 * tests/Makefile.am:
4605 * tests/invoke/Makefile.am:
4606 * tests/invoke/invoke-namespace-find.sh:
4607 * tests/invoke/invoke.c: (main):
4609 Add a namespace/shared library mapping. fixes #313268.
4611 2007-12-03 Johan Dahlin <johan@gnome.org>
4613 * src/gidlparser.c (parse_type_internal): Disable char/gchar and
4616 2007-11-30 Jürg Billeter <j@bitron.ch>
4622 * src/gen-introspect.c: (g_idl_node_cmp), (g_igenerator_new),
4623 (g_igenerator_write_inline), (g_igenerator_write),
4624 (g_igenerator_write_indent), (g_igenerator_write_unindent),
4625 (field_generate), (value_generate), (constant_generate),
4626 (property_generate), (function_generate), (vfunc_generate),
4627 (signal_generate), (interface_generate), (struct_generate),
4628 (union_generate), (boxed_generate), (enum_generate),
4629 (node_generate), (module_generate), (get_type_from_type_id),
4630 (str_replace), (g_igenerator_process_properties),
4631 (g_igenerator_process_signals), (g_igenerator_process_types),
4632 (get_type_from_ctype), (g_igenerator_process_function_symbol),
4633 (g_igenerator_process_unregistered_struct_typedef),
4634 (g_igenerator_process_struct_typedef),
4635 (g_igenerator_process_union_typedef),
4636 (g_igenerator_process_enum_typedef),
4637 (g_igenerator_process_function_typedef),
4638 (g_igenerator_process_constant), (g_igenerator_process_symbols),
4639 (g_igenerator_add_symbol), (g_igenerator_is_typedef),
4640 (g_igenerator_generate), (main), (csymbol_new),
4641 (csymbol_get_const_boolean), (ctype_new), (ctype_copy),
4642 (cbasic_type_new), (ctypedef_new), (cstruct_new), (cunion_new),
4643 (cenum_new), (cpointer_new), (carray_new), (cfunction_new),
4644 (eat_hspace), (eat_line), (read_identifier),
4645 (g_igenerator_parse_macros):
4646 * src/gen-introspect.h:
4648 Import gen-introspect to generate introspection information by
4651 2007-11-30 Jürg Billeter <j@bitron.ch>
4653 * src/gidlnode.c: (g_idl_node_new): support creating callback nodes
4655 2007-11-30 Jürg Billeter <j@bitron.ch>
4657 * src/gidlparser.c: (end_element_handler): Don't leave requires
4660 2007-11-29 Johan Dahlin <johan@gnome.org>
4662 * src/gidlparser.c (parse_type_internal): Add char,
4663 gchar and guchar to the builtin types.
4665 2007-11-26 Johan Dahlin <johan@gnome.org>
4667 * src/ginfo.c: (g_object_info_get_type_name),
4668 (g_object_info_get_type_init):
4669 * src/girepository.c: (g_irepository_is_registered):
4670 * src/girepository.h:
4672 Add g_object_info_get_type_name, g_object_info_get_type_init and
4673 g_irepository_is_registered.
4675 2006-08-14 Jürg Billeter <j@bitron.ch>
4677 * src/gidlparser.c: (end_element_handler): Don't leave
4678 namespace and implements states too early.
4681 2007-11-26 Johan Dahlin <johan@gnome.org>
4683 * src/gmetadata.c (validate_struct_blob):
4684 pass blob_type to validate_function_blob instead of
4685 hard-coding BLOB_TYPE_STRUCT.
4687 Patch by Torsten Schoenfeld, fixes #314190
4689 2006-10-03 Torsten Schoenfeld <tsch@cvs.gnome.org>
4691 * src/compiler.c, src/generate.c, src/gidlnode.c,
4692 src/gidlparser.c, src/ginfo.c, src/girepository.c,
4693 tests/invoke/invoke.c, test/invoke/testfns.c: Hush compiler
4694 warnings about return values, signedness mismatches, unused
4695 variables, and unhandles enum values in switch statements.
4697 * tests/invoke/Makefile.am: Don't install the invoke test program.
4698 Add -I ../../src to the cflags used for the test functions files.
4700 2005-08-31 Torsten Schoenfeld <tsch@cvs.gnome.org>
4702 * src/girepository.h: Export g_invoke_error_quark.
4704 2005-08-31 Torsten Schoenfeld <tsch@cvs.gnome.org>
4706 * src/ginvoke.c: Remove the fallback implementation of
4707 g_function_info_invoke since we now formally depend on libffi.
4709 2005-07-25 Matthias Clasen <mclasen@redhat.com>
4711 * src/Makefile, tests/Makefile, tests/invoke/Makefile:
4712 Remove these files from cvs, as they are now generated.
4714 * src/gmetadata.c (validate_iface_type_blob): Don't
4715 complain if blob->pointer is not set, since that
4716 happens for enum and flag types. (#308935, Gustavo
4719 * Commit an autoconf-conversion patch by
4720 Gustavo Carneiro (#308708)
4722 2005-05-24 Matthias Clasen <mclasen@redhat.com>
4724 * src/compiler.c (main): Use it here to validate
4725 the generated metadata.
4727 * src/gmetadata.[hc]: Add code to validate a
4730 * metadata-format.txt: Updates
4732 2005-05-22 Matthias Clasen <mclasen@redhat.com>
4734 * tests/*: Add struct offsets to field and vfunc
4737 * src/generate.c (write_vfunc_info): Write offset
4738 information for vfuncs.
4740 * src/gidlnode.c (g_idl_node_build_metadata): Write
4741 the struct offsets into the metadata.
4743 * src/gidlparser.c: Parse the offset attributes of
4744 field and vfunc elements.
4746 * src/gidlnode.h: Add offset members to field and
4749 2005-05-21 Matthias Clasen <mclasen@redhat.com>
4753 * gidl.dtd: Updates.
4755 * src/g-idl-offsets.pl: A perl script which reads a .gidl
4756 file, creates, compiles and runs a C file, and folds the
4757 resulting struct offsets back into the .gidl file.
4759 2005-05-20 Matthias Clasen <mclasen@redhat.com>
4761 * src/gidlparser.c (start_field): Make fields in objects
4764 * src/gidlmodule.c: Include string.h
4769 * metadata-format.txt: Cleanup basic types.
4770 * src/*: Adapt to the changes.
4771 * tests/*: Adapt to the changes.
4772 * examples/gdk-pixbuf.gidl: Adapt to the changes.
4774 * src/gidlnode.c (g_idl_node_get_size): Report the correct
4775 size for enum blobs.
4776 (g_idl_node_get_full_size): Report the correct size for
4779 * src/gidlmodule.c (g_idl_module_build_metadata): Add some
4780 error checking for blob sizes.
4782 2005-05-19 Matthias Clasen <mclasen@redhat.com>
4784 * src/gidlnode.c (g_idl_node_build_metadata): Correctly handle
4785 interface types for which is_pointer is FALSE, e.g. enums.
4787 * src/gidlnode.c (g_idl_node_get_full_size)
4788 * src/gidlparser.c (parse_type_internal):
4789 * src/generate.c (write_type_info): Support unspecialized
4790 lists, hashtables and errors. Also emit a '*' after these.
4794 2005-05-17 Matthias Clasen <mclasen@redhat.com>
4798 * metadata-format.txt: Cleanups by Maciej Katafiasz.
4800 2005-05-15 Matthias Clasen <mclasen@redhat.com>
4802 * src/*.c: Change the directory to be addressed by
4803 1-based indexes, and use an index of zero to mean
4806 2005-05-15 Matthias Clasen <mclasen@redhat.com>
4808 * tests/roundtrips.sh (SIMPLE_TESTS): Add union.test.
4810 * tests/union.test: Add a union test.
4812 * src/generate.c: Handle unions.
4814 * src/girepository.h:
4815 * src/ginfo.c: Add GIUnionInfo and functions to access it.
4817 * src/gidlnode.c: Handle GIdlNodeUnion nodes.
4819 * src/gidlparser.c (start_union): Parse <union> elements.
4821 * src/gidlnode.h: Add a GIdlNodeUnion.
4823 * gidl.dtd: Add a <union> element.
4825 * src/gmetadata.c (g_metadata_check_sanity): Check
4828 * src/gmetadata.h: Add union_blob_size to Header,
4831 * metadata-format.txt: Add a UnionBlob.
4833 2005-05-13 Matthias Clasen <mclasen@redhat.com>
4835 * tests/*: Update testcases.
4837 * src/generate.c (write_callable_info): Don't forget to
4838 write transfer and null-ok attributes for return types
4841 * src/girepository.h:
4842 * src/ginfo.c (g_callable_info_may_return_null):
4843 New function to find out if a function may return NULL.
4845 * src/compiler.c (format_output): Make the generated
4848 * README: Point to a recent libffi snapshot.
4850 * tests/invoke/*: Some invoke tests.
4852 * src/Makefile: Add ginvoke.c and the necessary
4855 * src/girepository.h (g_function_info_invoke): Add
4858 * src/ginvoke.c (g_function_info_invoke): Initial
4859 implementation of invoke functionality based on libffi.
4861 * src/gidlnode.c (g_idl_node_build_metadata): Pass the
4862 strings and types hash tables in the right order when
4864 (find_entry_node): Free the name parts.
4866 2005-05-12 Johan Dahlin <johan@gnome.org>
4868 * src/generate.c: Generate consistent end tags.
4872 2005-05-12 Matthias Clasen <mclasen@redhat.com>
4876 * src/gidlparser.c (start_function): Actually add
4877 methods to objects. (Steven Walter)
4879 * src/girepository.h:
4880 * src/ginfo.c: Rename Transfer and Direction to
4881 GITransfer and GIDirection. (Torsten Schoenfeld)
4883 * tests/*: Make tests work with the changes in name
4886 * src/gidlnode.c (find_entry_node): Parse qualified
4887 names and generate xref nodes for them if needed. Don't
4888 require all modules to be loaded any more.
4890 * src/gidlmodule.c (g_idl_module_build_metadata): Choke
4893 * src/ginfo.c (g_object_info_get_parent): Return NULL
4894 if blob->parent is 0. Still need to make sure index
4897 * src/generate.c: Generate qualified names when
4898 referring to non-local types. Emit transfer attribute
4901 * src/compiler.c (format_output): Put the function
4902 attributes where gcc accepts them.
4904 2005-05-11 Matthias Clasen <mclasen@redhat.com>
4906 * src/compiler.c (main): Add a --verbose cmdline option
4907 and only log messages if it is specified.
4910 * src/gidlnode.c (init_stats, dump_stats): Collect some
4911 statistics on string and type sharing.
4913 * src/gidlmodule.c (g_idl_module_build_metadata): Use
4914 g_message() instead of fprintf().
4916 * src/gidlnode.c (g_idl_node_free): Make this more robust.
4917 (g_idl_node_get_size): Implement for structs.
4918 (g_idl_node_get_full_size): Handle parent being NULL.
4919 (serialize_type): Handle lookup failures more gracefully.
4921 2005-05-10 Matthias Clasen <mclasen@redhat.com>
4923 * src/gidlnode.c (g_idl_node_get_full_size): Correct the
4924 size calculation for 2-parameter types and for objects.
4926 * src/compiler.c: Add a cmdline option for debug output
4927 and install a log handler to implement it.
4928 * src/gidlnode.c: Add some debug spew.
4932 * src/gidlmodule.c (g_idl_module_build_metadata): Don't
4933 forget to count the module name when calculating the
4934 required size for the metadata.
4937 * src/gidlparser.c: Fix compiler warnings.
4939 2005-05-09 Matthias Clasen <mclasen@redhat.com>
4941 * src/compiler.c (main): Free the option context.
4943 * gidl.dtd: Clean up handling of names. All elements
4944 have a "name", only the elements corresponding to
4945 actual callable functions (function, method, constructor),
4946 have an additional "symbol" attribute holding the
4947 dlsym()-able function name.
4949 * src/generate.c: Adapt to generate xml matching the
4953 * src/gidlnode.c: Adapt to parse the new dtd.
4955 * tests/*.test: Adjust to the new dtd.
4957 * metadata-format.txt:
4958 * src/gmetadata.h: Remove the short_name field
4960 * src/gmetadata.c: Shrink size of ValueBlob to 12.
4961 * src/girepository.h:
4962 * src/ginfo.c (g_value_info_get_short_name): Removed
4964 2005-05-09 Matthias Clasen <mclasen@redhat.com>
4966 * gidl.dtd: Allow constructors for boxed types,
4967 patch by Jonathan Blandford.
4970 2005-05-09 Matthias Clasen <mclasen@redhat.com>
4972 * --- Initial import ---