Colin Walters [Tue, 27 Jul 2010 10:16:37 +0000 (06:16 -0400)]
Major rewrite
One of the first big changes in this rewrite is changing the Type
object to have separate target_fundamental and target_giname properties,
rather than just being strings. Previously in the scanner, it was
awful because we used heuristics around strings.
The ast.py is refactored so that not everything is a Node - that
was a rather useless abstraction. Now, only things which can have
a GIName are Node. E.g. Type and Field are no longer Node.
More things were merged from glibast.py into ast.py, since it isn't
a very useful split.
transformer.py gains more intelligence and will e.g. turn GLib.List
into a List() object earlier. The namespace processing is a lot
cleaner now; since we parse the included .girs, we know the C
prefix for each namespace, and have functions to parse both
C type names (GtkFooBar) and symbols gtk_foo_bar into their
symbols cleanly. Type resolution is much, much saner because
we know Type(target_giname=Gtk.Foo) maps to the namespace Gtk.
glibtransformer.py now just handles the XML processing from the dump,
and a few miscellaneous things.
The major heavy lifting now lives in primarytransformer.py, which
is a combination of most of annotationparser.py and half of
glibtransformer.py.
annotationparser.py now literally just parses annotations; it's
no longer in the business of e.g. guessing transfer too.
finaltransformer.py is a new file which does post-analysis for
"introspectability" mainly.
girparser.c is fixed for some introspectable=0 processing.
Colin Walters [Tue, 31 Aug 2010 20:04:30 +0000 (16:04 -0400)]
pep8: Update to 99 length lines
69 is just too short for a compiler with long error messages and
nested code.
Colin Walters [Thu, 19 Aug 2010 13:31:47 +0000 (09:31 -0400)]
tests/scanner: Update annotations and tests
First of all, add missing (transfer) annotations that will be
required by the new scanner.
Other changes:
Don't use the (type bitfield) hack; the new scanner will not accept it.
Use shifts in the flag constants instead.
Use typedefs consistently for structures.
Drop scanning of anonymous structure/union members.
Colin Walters [Thu, 22 Jul 2010 01:06:17 +0000 (21:06 -0400)]
Use GLib types consistently
Rather than have the scanner/parser handle both e.g. "glong" and
"long", simply use the GLib types everywhere.
This commit adds TYPE_LONG_LONG and TYPE_LONG_DOUBLE to the
scanner types; however, rather than add them to the typelib,
they're just marked as not-introspectable.
Colin Walters [Tue, 3 Aug 2010 17:01:35 +0000 (13:01 -0400)]
Move alias target to <type>
This makes type parsing more uniform.
Delete the typedef for GSList in foo.h - that's not
supported anymore, or at least for now.
Colin Walters [Wed, 18 Aug 2010 23:38:05 +0000 (19:38 -0400)]
tests: Fix namespacing for BarApp (should be just Bar)
Colin Walters [Sat, 31 Jul 2010 10:56:09 +0000 (06:56 -0400)]
tests: Remove GIMarshallingTests, rename Everything to Regress
GIMarshallingTests will be replaced with automatically
generated code; it was far from comprehensive, and was a pain
to maintain.
The namespacing in Everything was broken; it had an empty C
prefix effectively, because all the symbols just started with
"test". We do want "test" as part of the symbols, since otherwise
the exported API would be weird. Fix this by changing the namespace
to Regress (i.e. prefixing all the C code with Regress). This
makes sense anyways because Everything wasn't really Everything.
We no longer install a pre-built regress.(so,gir,typelib); instead we
install the C code to
$(datadir)/gobject-introspection/tests/regress.[ch].
Bindings should compile this.
Colin Walters [Thu, 19 Aug 2010 17:47:42 +0000 (13:47 -0400)]
gobject-introspection-1.0.pc: Export datadir
This will be used for consumers to find regress.[ch].
Colin Walters [Thu, 19 Aug 2010 13:22:01 +0000 (09:22 -0400)]
.gitignore: Update
Colin Walters [Wed, 25 Aug 2010 14:57:17 +0000 (10:57 -0400)]
scanner: If GI_SCANNER_DEBUG is set, drop into a debugger on error
Useful when debugging build problems for both me, and potentially over
IRC.
Johan Dahlin [Tue, 31 Aug 2010 13:32:32 +0000 (10:32 -0300)]
Add pre-commit to EXTRA_DIST
Luca Bruno [Wed, 25 Aug 2010 17:50:17 +0000 (19:50 +0200)]
Makefile.introspection: Add _EXPORT_PACKAGES variable.
This new variable maps to --pkg-export.
Maxim Ermilov [Sun, 22 Aug 2010 22:43:09 +0000 (02:43 +0400)]
add annotation for g_get_language_names
Tomeu Vizoso [Fri, 20 Aug 2010 12:50:41 +0000 (14:50 +0200)]
Add properties to Everything.TestObj for testing more types
Steve Frécinaux [Wed, 18 Aug 2010 20:26:48 +0000 (22:26 +0200)]
Fix warning when using g_irepository_enumerate_version()
The reason for the warning was that g_irepository_get_version() expects
the typelib to be already loaded, but enumerate_version() can be called
on typelibs that are not.
Steve Frécinaux [Mon, 16 Aug 2010 20:39:19 +0000 (22:39 +0200)]
Include the loaded version in g_irepository_enumerate_versions()
Logically speaking, the already loaded version of a namespace is part of
the currently available versions, and can be forgotten if we only
consider the versions available in GI_TYPELIB_PATH, as it could have
been loaded using g_irepository_require_private().
As a side effect, it meant that bindings relying on enumerate_version()
(like pygobject) were not able to require private versions through their
classical requirement scheme.
This patch fixes it by adding the loaded version to the unsorted list of
available versions returned by g_irepository_enumerate_versions()
This patch also uses g_list_prepend() instead of g_list_append() in that
function.
https://bugzilla.gnome.org/show_bug.cgi?id=625983
Johan Dahlin [Tue, 17 Aug 2010 18:52:03 +0000 (15:52 -0300)]
Add a pre-commit hook and enforce it
Colin Walters [Mon, 26 Jul 2010 20:26:46 +0000 (16:26 -0400)]
[gircompiler] Clean up parsing
We never actually include multiple modules in the compiler,
so just nuke that. Also rather than passing around GIrModule
consistently pass around a GIrTypelibBuild structure which
has various things.
This lets us maintain a stack there which we can walk for
better error messages.
Also, fix up the node lookup in giroffsets.c; previously
it didn't really handle includes correctly. We really need to
switch to always using Foo.Bar (i.e. GIName) names internally...
Colin Walters [Sat, 31 Jul 2010 10:22:52 +0000 (06:22 -0400)]
[girepository] Fix up error printing
We didn't show the right error message if we failed to find
the symbol; fix this by removing error printing from the
middle of the dumper, and add it correctly to the toplevel
dump entry point.
Colin Walters [Wed, 21 Jul 2010 22:55:24 +0000 (18:55 -0400)]
[girparser] Cleanly pass through c:include
Colin Walters [Tue, 17 Aug 2010 17:05:29 +0000 (13:05 -0400)]
gir: Import DBus, DBusGLib
These used to live in gir-repository; similarly to how we're presently just holding
random .gir files for the lowlevel bits of the platform, suck these in.
In the future they'll be obsoleted by foreigns.
Colin Walters [Tue, 17 Aug 2010 16:45:25 +0000 (12:45 -0400)]
compiler: Remove --code argument
It can't really work right now because we rely on dumping data at runtime,
which requires the library. If in the future we support static scanning,
we can reinvestigate embedded typelibs.
Colin Walters [Tue, 27 Jul 2010 08:47:50 +0000 (04:47 -0400)]
Remove tests/invoke
We get better testing through the bindings, having hand-written
.gir files is a maintenance pain, and it uses the --code option
to g-ir-compiler which we also don't want to support.
Colin Walters [Tue, 17 Aug 2010 16:19:02 +0000 (12:19 -0400)]
gir: Drop warn-all from GLib
It isn't going to be fully introspectable anytime soon; we'd need a crap-ton
of (skip).
Johan Dahlin [Mon, 16 Aug 2010 19:30:14 +0000 (16:30 -0300)]
Delete trailing whitespace
Colin Walters [Tue, 3 Aug 2010 16:18:35 +0000 (12:18 -0400)]
Remove --noclosure argument
It's obsoleted by the introspectable=0 handling.
Zachary Goldberg [Tue, 27 Jul 2010 16:03:00 +0000 (12:03 -0400)]
Add ability to write unindented lines via xmlwriter
Tomeu Vizoso [Tue, 17 Aug 2010 15:17:16 +0000 (17:17 +0200)]
Remove uncommitted function from gir/GIMarshallingTests-1.0-expected.gir
Gustavo Noronha Silva [Tue, 17 Aug 2010 14:31:17 +0000 (11:31 -0300)]
[scanner] Also parse C++ files
This is to support cases such as WebKitGTK+, that have C API
implemented in C++ files. Do note this does not mean we support proper
C++ parsing.
https://bugzilla.gnome.org/show_bug.cgi?id=627152
Tomeu Vizoso [Tue, 17 Aug 2010 14:43:05 +0000 (16:43 +0200)]
Update gir/GIMarshallingTests-1.0-expected.gir
Matthias Clasen [Mon, 16 Aug 2010 23:08:18 +0000 (19:08 -0400)]
Add a stub entry for XLib Visual
Matthias Clasen [Mon, 16 Aug 2010 22:55:41 +0000 (18:55 -0400)]
Add Colormap stub
Johan Dahlin [Fri, 13 Aug 2010 13:32:37 +0000 (10:32 -0300)]
[man] Mention XDG_DATA_DIRS
Robert Ancell [Thu, 12 Aug 2010 00:01:37 +0000 (10:01 +1000)]
Fix giscanner crash with no cache directory
Tomeu Vizoso [Tue, 10 Aug 2010 15:05:08 +0000 (17:05 +0200)]
Add g_i_marshalling_tests_gvalue_in_enum
Johan Dahlin [Tue, 10 Aug 2010 14:04:16 +0000 (11:04 -0300)]
[everything] Remove allow-none for Return value
Ryan Lortie [Wed, 4 Aug 2010 03:38:12 +0000 (23:38 -0400)]
Bump the version after releasing 0.9.3
Steve Frécinaux [Tue, 3 Aug 2010 21:39:58 +0000 (23:39 +0200)]
Do not leak typelibs with wrong header info.
Previously the typelibs that were loaded but whose header information
weren't right were just leaked.
https://bugzilla.gnome.org/show_bug.cgi?id=625672
Steve Frécinaux [Fri, 30 Jul 2010 18:38:34 +0000 (20:38 +0200)]
Add new API g_typelib_require_private()
This is equivalent to g_typelib_require() but intended for use with
private typelibs, which get loaded from the provided directory.
https://bugzilla.gnome.org/show_bug.cgi?id=625672
Colin Walters [Wed, 28 Jul 2010 14:35:47 +0000 (16:35 +0200)]
Add BLOB_TYPE_FLAGS to BLOB_IS_REGISTERED_TYPE
Johan Dahlin [Wed, 28 Jul 2010 12:34:16 +0000 (09:34 -0300)]
[dumper] Fix indentation
Johan Dahlin [Wed, 28 Jul 2010 12:32:59 +0000 (09:32 -0300)]
[Gio] Add missing return-value annotations
Johan Dahlin [Wed, 28 Jul 2010 12:32:28 +0000 (09:32 -0300)]
[giscanner] Make warnings less dense
Omit ns=, context= and include the function symbol for Functions
Johan Dahlin [Wed, 28 Jul 2010 12:01:33 +0000 (09:01 -0300)]
[girepository-private] Add ffi declarations
Add declarations for the ffi closure api we're using, this silents
GCC warnings on systems with broken ffi headers.
Johan Dahlin [Wed, 28 Jul 2010 11:52:45 +0000 (08:52 -0300)]
[girepository] Update documentation
Johan Dahlin [Wed, 28 Jul 2010 11:52:05 +0000 (08:52 -0300)]
[GIRepository] Rename g_irepository_enumerate
Rename it to g_irepository_enumerate_versions
Tomeu Vizoso [Wed, 28 Jul 2010 10:24:10 +0000 (12:24 +0200)]
Add g_info_type_to_string (GIInfoType type)
Ryan Lortie [Tue, 27 Jul 2010 21:29:21 +0000 (23:29 +0200)]
Append -Wl,-rpath=. to the scanner compile
This is required if we're not using libtool
Colin Walters [Tue, 27 Jul 2010 11:06:54 +0000 (07:06 -0400)]
Add g_irepository_enumerate
This will be used for pygobject to enumerate namespaces.
Johan Dahlin [Thu, 22 Jul 2010 17:58:13 +0000 (14:58 -0300)]
[giscanner] Calrify missing element-type validation
Avoid using tabs and too long lines as well
Johan Dahlin [Thu, 22 Jul 2010 17:57:13 +0000 (14:57 -0300)]
Update GIMarshallingTests expected gir
To make the tests pass again
Colin Walters [Thu, 22 Jul 2010 17:46:33 +0000 (13:46 -0400)]
[girepository] Include path to file in typelib load failure error
This makes version conflicts more obvious.
Johan Dahlin [Thu, 22 Jul 2010 17:43:02 +0000 (14:43 -0300)]
[scanner] Make it compatible with python 2.y
https://bugzilla.gnome.org/show_bug.cgi?id=618562
Jonathan Matthew [Wed, 14 Jul 2010 04:02:05 +0000 (14:02 +1000)]
warn for missing element-type on GSList params and return values
https://bugzilla.gnome.org/show_bug.cgi?id=623070
dyfet@gnutelephony.org [Tue, 20 Jul 2010 15:39:37 +0000 (11:39 -0400)]
[GIMarshalingTests] Add underscores to more variable names
These may conflict.
https://bugzilla.gnome.org/show_bug.cgi?id=624191
Colin Walters [Mon, 19 Jul 2010 21:48:17 +0000 (17:48 -0400)]
Fix two compilation warnings
Florian Müllner [Thu, 15 Jul 2010 21:40:28 +0000 (23:40 +0200)]
[girepository] Fix ordering in override_search_path
Entries in the GI_TYPELIB_PATH environment variable are added to the
global search path in reverse order - instead, add entries in the
same order in which they are specified.
Tomeu Vizoso [Thu, 15 Jul 2010 15:09:55 +0000 (17:09 +0200)]
Add annotation for g_dbus_proxy_new_sync
Tomeu Vizoso [Thu, 15 Jul 2010 11:33:31 +0000 (13:33 +0200)]
Add annotations for g_variant_new_strv() and g_variant_get_strv()
Colin Walters [Wed, 14 Jul 2010 15:59:11 +0000 (11:59 -0400)]
[girepository] Actually verify header of loaded typelibs in g_irepository_require
Take a GError * for typelib loading code, validate the header. This
fixes bizarre errors from gjs where g_irepository_require would happily
load old typelibs.
Colin Walters [Mon, 12 Jul 2010 14:27:03 +0000 (10:27 -0400)]
Bump for unstable series
Colin Walters [Mon, 12 Jul 2010 14:26:50 +0000 (10:26 -0400)]
Release 0.9.2
Colin Walters [Mon, 12 Jul 2010 15:05:56 +0000 (11:05 -0400)]
Don't conditionalize reference/ build on gtk-doc being enabled
gtk-doc already does that for us
Colin Walters [Mon, 12 Jul 2010 14:31:26 +0000 (10:31 -0400)]
Quote url for AC_INIT to pacify autoconf
Colin Walters [Wed, 7 Jul 2010 18:07:17 +0000 (14:07 -0400)]
Don't include machine-dependent integral types in the typelib
Previously we had both e.g. GI_TYPE_TAG_LONG and GI_TYPE_TAG_INT64,
but in fact the typelib is already machine-specific, so it makes sense
to just encode this as a fixed type. The .gir remains abstract.
We also remove size_t from the typelib; one would never want to treat
it differently than an integer.
time_t is removed as well; while bindings like gjs had special handling
to turn it into e.g. a JS Date object, I don't think we should encourage
people to use these POSIX types in their API. Use GTimeVal or the like
instead.
Because the typelib is now really machine-specific, we need to remove
the -expected.tgirs from git. (We could potentially add a check
which wasn't just a literal diff later)
https://bugzilla.gnome.org/show_bug.cgi?id=623774
Colin Walters [Thu, 8 Jul 2010 18:20:40 +0000 (14:20 -0400)]
Bump shared library version, typelib version
https://bugzilla.gnome.org/show_bug.cgi?id=623774
Colin Walters [Fri, 9 Jul 2010 18:15:27 +0000 (14:15 -0400)]
Fix up tests for last commit
Johan Dahlin [Fri, 9 Jul 2010 14:17:29 +0000 (11:17 -0300)]
Correctly quote printed shell commands
Johan Dahlin [Fri, 9 Jul 2010 13:20:59 +0000 (10:20 -0300)]
Print the command line instead of a python list
Johan Dahlin [Fri, 9 Jul 2010 13:20:57 +0000 (10:20 -0300)]
Remove trailing whitespace
Johan Dahlin [Sat, 12 Jun 2010 21:08:56 +0000 (18:08 -0300)]
Add support for non-GObject fundamental objects
This patch adds support for instantiable fundamental object types,
which are not GObject based. This is mostly interesting for being
able to support GstMiniObject's which are extensivly used in GStreamer.
Includes a big test case to the Everything module (inspired by
GstMiniObject) which should be used by language bindings who wishes to
test this functionallity.
This patch increases the size of the typelib and breaks compatibility
with older typelibs.
https://bugzilla.gnome.org/show_bug.cgi?id=568913
Colin Walters [Wed, 7 Jul 2010 22:18:37 +0000 (18:18 -0400)]
Move doc to toplevel element, write <any> for unknown containers
Moving to <doc> allows us to better preserve whitespace. XML has no
facility for whitespace-preserving attributes.
Second, for arrays and lists, both types with unknown element_type can
occur in the current scanner; it's least wrong if we write out an
<any> type.
Colin Walters [Fri, 25 Jun 2010 17:23:49 +0000 (13:23 -0400)]
In verbose mode, print out the dump compilation
When debugging the dumper, it's extremely useful to be able
to see the argument it's passing to the compiler/linker.
This patch makes g-ir-scanner work the same way as libtool basically;
we default to printing out stuff, and add a --quiet option.
The Makefile.introspection handles passing --quiet automatically.
https://bugzilla.gnome.org/show_bug.cgi?id=622751
Colin Walters [Tue, 29 Jun 2010 21:13:52 +0000 (17:13 -0400)]
[cairo-1.0] Add cairo_rectangle_int_t
Colin Walters [Tue, 29 Jun 2010 20:19:07 +0000 (16:19 -0400)]
[cairo-1.0.gir] Add cairo_region_t
Colin Walters [Tue, 29 Jun 2010 14:13:41 +0000 (10:13 -0400)]
Post-release version bump
Colin Walters [Tue, 29 Jun 2010 14:08:54 +0000 (10:08 -0400)]
Bump version to 0.9.0
Colin Walters [Fri, 25 Jun 2010 17:53:41 +0000 (13:53 -0400)]
Revert "fix bug#605156 by ordering libtool archives that may pull in system"
This reverts commit
e14bdebab725263c3d6f97267090cbf5d06b99d2. While
that commit fixed things in some cases, it broke others. I think the
problem people are running into here that we actually need the library
path order to be:
.:$BUILD_ROOT:/usr
Ensure that the middle happens by explicitly calling pkg-config.
https://bugzilla.gnome.org/show_bug.cgi?id=605156
Colin Walters [Fri, 25 Jun 2010 20:02:15 +0000 (16:02 -0400)]
Fix annotations for g_get_system_*
Colin Walters [Fri, 25 Jun 2010 15:45:55 +0000 (11:45 -0400)]
Remove trailing semicolon
Michael Meeks [Fri, 25 Jun 2010 14:38:18 +0000 (15:38 +0100)]
fix bug#605156 by ordering libtool archives that may pull in system
paths at the end of the libtool command-line
Colin Walters [Fri, 25 Jun 2010 12:07:27 +0000 (08:07 -0400)]
Move pkg-config calls before --library and --program
We need our just-built library path to override what we have
from pkg-config.
https://bugzilla.gnome.org/show_bug.cgi?id=605156
Colin Walters [Fri, 25 Jun 2010 14:00:17 +0000 (10:00 -0400)]
Initialize value member
Colin Walters [Thu, 24 Jun 2010 20:39:35 +0000 (16:39 -0400)]
Clean up annotation parsing, don't try to parse invalid annotations
The old parser tried to parse:
@foo: some text here (other text)
Reject this. We strictly require another colon at the end to parse
the text in between as (option) (other option).
Futher ensure we only attempt to do option parse if we find something
that matches the strict regexp ([A-Za-z]+). This could be tightened
further.
TODO: Have a warning for something that looks like an annotation,
but isn't.
https://bugzilla.gnome.org/show_bug.cgi?id=622659
David Zeuthen [Tue, 15 Jun 2010 15:01:37 +0000 (11:01 -0400)]
Allow attributes on parameters and return values
Any annotation where the key has a dot in the name will go into the
attribute list. For example
* @arg: (foo.bar baz): some arg
the parameter @arg will get the attribute with key foo.bar and value
baz. This also works for.
* Returns: (foo.bar2 baz2): the return value
Also add tests for this new feature.
See https://bugzilla.gnome.org/show_bug.cgi?id=571548
Signed-off-by: David Zeuthen <davidz@redhat.com>
David Zeuthen [Tue, 15 Jun 2010 14:50:42 +0000 (10:50 -0400)]
Attribute bug-fixes
Rectify an assumption that nodes are ordered according to offset
- since this assumption was not true, attributes ended up being not
ordered either and the bsearch() when looking up attributes failed
mysteriously. Instead of making such assumptions, simply sort the
list of nodes we want to extract attributes from.
The total attribute size computation was wrong as we didn't properly
descend into subnodes. This resulted in memory access violations
when writing the typelib (because not enough data was allocated).
Instead of having a separate function for this, just include the
attribute size in the existing function.
See https://bugzilla.gnome.org/show_bug.cgi?id=571548
Signed-off-by: David Zeuthen <davidz@redhat.com>
Colin Walters [Tue, 22 Jun 2010 22:03:36 +0000 (18:03 -0400)]
[girparser] Remove backtrace()
It's not useful; we never got good info from it, and modern operating
systems ship with crash catching systems.
Johan Dahlin [Tue, 22 Jun 2010 17:27:54 +0000 (14:27 -0300)]
[glibtransformer] Fix typo
Colin Walters [Tue, 22 Jun 2010 17:19:23 +0000 (13:19 -0400)]
Walk GLibBoxed
We need to be processing varargs on these.
Johan Dahlin [Tue, 22 Jun 2010 13:17:02 +0000 (10:17 -0300)]
[giregisteredinfo] A Boxed is also a registered type
Johan Dahlin [Tue, 22 Jun 2010 12:49:37 +0000 (09:49 -0300)]
Fix make check broken by Danielle
Johan Dahlin [Mon, 21 Jun 2010 22:24:46 +0000 (19:24 -0300)]
[GIMarshallingTest] Add GByteArray test API
Johan Dahlin [Tue, 22 Jun 2010 12:47:26 +0000 (09:47 -0300)]
[annotationparser] Reuse method for determining array type
Danielle Madeley [Tue, 22 Jun 2010 04:36:36 +0000 (14:36 +1000)]
Merge branch 'gvalue-tests'
Danielle Madeley [Fri, 18 Jun 2010 05:30:55 +0000 (15:30 +1000)]
Add tests to Everything for items stored in GValues
Johan Dahlin [Mon, 21 Jun 2010 22:27:27 +0000 (19:27 -0300)]
Merge remote branch 'origin'
Alan Knowles [Mon, 21 Jun 2010 22:21:24 +0000 (06:21 +0800)]
GIRepository generation broke by code changes
Include all the Info files, and make sure girepository.h is first in the include order
Colin Walters [Sat, 19 Jun 2010 15:30:32 +0000 (11:30 -0400)]
Fix trailing whitespace
Johan Dahlin [Fri, 18 Jun 2010 01:29:48 +0000 (22:29 -0300)]
[gir] Pass in --warn-all/error to our libs
Pass in --warn-all/--warn-error to all the libraries that
are under our control so we can dogfood.
Johan Dahlin [Thu, 17 Jun 2010 20:33:05 +0000 (17:33 -0300)]
Add a .dir-locals file