doap category core
Use cleanup data for argument marshalling failures

Use state->args_cleanup_data when cleaning up failed argument marshalling.
This was overlooked when cleanup data tracking was implemented (commit 7407367f).

https://bugzilla.gnome.org/show_bug.cgi?id=695128
Remove decrementing argument index for failed marshalling cleanup

Remove index decrement when cleanup function is called for failed argument
marshalling. The decrement is incorrect and causes the failed argument
cleanup to be skipped. The decrement also causes cleanup for arguments
prior to the failed argument to receive "was_successful" as FALSE, which
is also incorrect.

https://bugzilla.gnome.org/show_bug.cgi?id=695128
Add GClosure marshalling cleanup

Add marshalling cleanup for Python callables and boxed GClosures
passed as arguments. Make sure the marshaller owns a reference
until clean. Fix transfer everything case by adding a new reference.
Remove unused header declaration: pygi_arg_gclosure_from_py_marshal

https://bugzilla.gnome.org/show_bug.cgi?id=695128
doap: add <programming-language>
Change maintainer in PKG-INFO to self
doap: Update homepage URL and email address
Added args_offset to the cache instead of checking the function type
Include math headers also on mingw

https://bugzilla.gnome.org/show_bug.cgi?id=734287
Link gi.so with FFI_LIBS

https://bugzilla.gnome.org/show_bug.cgi?id=734286
Use python-config for libs when available

https://bugzilla.gnome.org/show_bug.cgi?id=734289
Use -no-undefined for building on Windows

See LT_INIT([win32-dll]):
http://www.gnu.org/software/libtool/manual/html_node/LT_005fINIT.html

Additionally add PYTHON_LIBS to testhelper.la linking.

https://bugzilla.gnome.org/show_bug.cgi?id=734284
Update and deprecate gi.overrides.keysyms

Replace manually assigned keysyms with a dynamically generated version
pulling names and values from Gdk via GI. Add a runtime warning when
this module is imported.

https://bugzilla.gnome.org/show_bug.cgi?id=721295
Add protection against attempts at importing static bindings

Clobber gobject, gio, glib, gtk, and gtk.gdk in sys.modules upon importing
gi with dummy modules which produce an error upon access.

https://bugzilla.gnome.org/show_bug.cgi?id=709183
Generate .dll libraries on windows

https://bugzilla.gnome.org/show_bug.cgi?id=734288
Split the callable cache into the different types

Instead of doing different things based on the various function types
this adds vfuncs for generate_args_cache() and invoke() which are then
specialized for the various function types. Also add a calling context
to the callable cache which is then used to determine the direction
when generating the arg caches.

This is in preparation for adding closure caches.

https://bugzilla.gnome.org/show_bug.cgi?id=727004
Correctly set the destroy notify for callbacks in closures

https://bugzilla.gnome.org/show_bug.cgi?id=727004
Use the caches for closures, but not yet for marshaling the arguments

Instead of using the various GI functions we use the data from the caches.
This also fixes generating an arg cache for a closure as it was missing some
data or simply setting incorrect data. Also, always included the GITypeInfo
until the closures no longer need it for marshaling the arguments.

https://bugzilla.gnome.org/show_bug.cgi?id=727004
Pass the GIArgument to the closure assign functions

This will be required once we use the caches for marshaling.

https://bugzilla.gnome.org/show_bug.cgi?id=727004
Set the correct meta type for GErrors when marshaling to Python

Otherwise we do not pass the GError into python callbacks and
we also want to convert these into Python Exceptions.

https://bugzilla.gnome.org/show_bug.cgi?id=727004