commit 7b037393e640711f54837794c942003b3a8df0af
Author: Martin Pitt <martinpitt@gnome.org>
Date:   Mon Nov 11 14:58:19 2013 +0100

    release 3.10.2

 NEWS | 4 ++++
 1 file changed, 4 insertions(+)

commit 9c44080f95c4c73688a34cf8033605c049fed77d
Author: Simon Feltman <sfeltman@src.gnome.org>
Date:   Sun Oct 27 22:09:27 2013 -0700

    Fix toggleref safety problems by always enabling the GIL

    Call PyEval_InitThreads for the base gi module import. This forces the
    Python internals create the GIL and always support threading with the
    various thread state enter/exit funcs. This is needed since we cannot
    predict which GI repositories might accept Python callbacks and run
    them in
    non-Python threads or trigger toggle ref notifications in a thread
    other
    than main.

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

 gi/gimodule.c        | 18 +++++++-----------
 gi/overrides/GLib.py |  8 +++++++-
 2 files changed, 14 insertions(+), 12 deletions(-)

commit 9f913abdfa46af3c6ddf2fd35f1fb0e08d7791d4
Author: Martin Pitt <martinpitt@gnome.org>
Date:   Mon Nov 11 14:34:12 2013 +0100

    Revert "Add type checking to positional Gtk.Box and Gtk.Window
    ctor arguments"

    While this enforces correctness, this can cause new crashes in
    software which
    incorrectly uses the GObject constructor and needs
    fixing. E. g. Ubuntu's
    current sofware-center (wrongly) does

      Gtk.Box(Gtk.Orientation.HORIZONTAL)

    which now causes a crash with this new check.

    This reverts commit 2cc4dfaf877f202977de4a7ede24aa3bad7d91c8.

 gi/overrides/Gtk.py         |  7 -------
 tests/test_overrides_gtk.py | 18 ------------------
 tests/test_properties.py    |  9 ---------
 3 files changed, 34 deletions(-)

commit 2cc4dfaf877f202977de4a7ede24aa3bad7d91c8
Author: Martin Pitt <martinpitt@gnome.org>
Date:   Tue Nov 5 15:28:12 2013 +0100

    Add type checking to positional Gtk.Box and Gtk.Window ctor arguments

    Gtk.Box and Gtk.Window are base classes of a lot of widgets. Avoid
    confusion
    when trying to create a subclass of them through the GObject
    constructor with
    positional arguments by at least verifying that their type is
    right. Otherwise
    you can do things like

      chooser = Gtk.FileChooserWidget(Gtk.FileChooserAction.SELECT_FOLDER)

    which succeeds, but does not have the desired effect (it sets the
    "homogenous"
    property of the Gtk.Box superclass instead).

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

 gi/overrides/Gtk.py         |  7 +++++++
 tests/test_overrides_gtk.py | 18 ++++++++++++++++++
 tests/test_properties.py    |  9 +++++++++
 3 files changed, 34 insertions(+)

commit 7036e9d79ed49fe153758ec0507d6af62f067f2f
Author: Simon Feltman <sfeltman@src.gnome.org>
Date:   Fri Oct 18 17:15:06 2013 -0700

    Add threads_init back as a requirement for non-Python threaded repos

    Re-add a "threads_init" function to gi for explicit intialization
    of Python
    threading support. This was marked as deprecated in the previous cycle
    because using Python threads already initializes everything.
    However, we still need an explicit initalization when using
    repositories
    with non-Python threads which may interact with Python callbacks
    (GStreamer).

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

 gi/gimodule.c        | 10 ++++++++++
 gi/overrides/GLib.py |  9 +--------
 2 files changed, 11 insertions(+), 8 deletions(-)

commit 26c34534f8771e0ee31cf37eb8df3be8cb1cb2f6
Author: Martin Pitt <martinpitt@gnome.org>
Date:   Mon Oct 14 12:54:36 2013 +0200

    configure.ac: Post-release bump to 3.10.2

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 863124b6268d1ea2c649d27771813c27cc9faa06
Author: Martin Pitt <martinpitt@gnome.org>
Date:   Mon Oct 14 12:51:44 2013 +0200

    release 3.10.1

 NEWS | 8 ++++++++
 1 file changed, 8 insertions(+)

commit 43ac1f9fd4b1f5132b7fa996da7e307371d11bb1
Author: Nuno Araujo <nuno.araujo@russo79.com>
Date:   Fri Oct 11 18:41:48 2013 +0200

    Fix TypeError when setting drag target_list to None

    When calling Widget.drag_dest_set_target_list(None) or
    Widget.drag_source_set_target_list(None)
    a "TypeError: 'NoneType' object is not iterable" is thrown.

    According to Gtk documentation [1] [2], this shouldn't be the case
    since client code should be
    able to pass NULL in calls made to gtk_drag_dest_set_target_list and
    gtk_drag_source_set_target_list.

    We now check if the target_list is None and do not try to create a
    TargetList if it is the case.

    [1]
    https://developer.gnome.org/gtk3/3.10/gtk3-Drag-and-Drop.html#gtk-drag-dest-set-target-list
    [2]
    https://developer.gnome.org/gtk3/3.10/gtk3-Drag-and-Drop.html#gtk-drag-source-set-target-list

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

 gi/overrides/Gtk.py         | 4 ++--
 tests/test_overrides_gtk.py | 2 ++
 2 files changed, 4 insertions(+), 2 deletions(-)

commit 90beeee7600bf39768c38bcfc47582c0e592eec9
Author: Simon Feltman <sfeltman@src.gnome.org>
Date:   Tue Oct 1 17:09:39 2013 -0700

    Use qdata for wrapper retrieval in toggle reference notifications

    Replace usage of user data holding PyGObject wrappers in toggle ref
    notifications with GObject qdata retrieval. This fixes thread
    safety issues
    where a toggle notify may be called from another thread during
    the PyGObject
    wrappers dealloc. In this case the toggle notify is blocked because
    the GIL
    is held in dealloc, and when it continues, the user data would be
    holding an
    invalid PyGObject wrapper. Using qdata solves this by ensuring
    the wrapper
    retrieval is done within the safety of the GIL and may turn up
    as NULL.

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

 gi/_gobject/pygobject.c | 21 ++++++++++++++-------
 1 file changed, 14 insertions(+), 7 deletions(-)

commit 073f3870f2671a387d99529bab386f2218f44e2e
Author: Simon Feltman <sfeltman@src.gnome.org>
Date:   Thu Oct 3 19:25:34 2013 -0700

    Fix memory leak for caller allocated GValue out arguments

    Swizzle the order of type checks in _cleanup_caller_allocates so
    G_TYPE_VALUE arguments are checked before G_TYPE_BOXED. The
    ordering is
    important because G_TYPE_VALUE is a sub-type of boxed and so its
    specialized
    cleanup code was never being called (g_value_unset).
    Additionally update check to use g_type_is_a instead of a compare
    to handle
    the potential case of a G_TYPE_VALUE sub-type.

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

 gi/pygi-marshal-cleanup.c | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

commit 8e774e61d62c82efa3d907c1201359121878b4b5
Author: Simon Feltman <sfeltman@src.gnome.org>
Date:   Mon Sep 23 03:57:03 2013 -0700

    configure.ac: post-release bump to 3.10.1

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 95af6279a9affff5c816db2db53207ff0f19872d
Author: Simon Feltman <sfeltman@src.gnome.org>
Date:   Mon Sep 23 03:17:19 2013 -0700

    release 3.10.0

 NEWS         | 3 +++
 configure.ac | 4 ++--
 2 files changed, 5 insertions(+), 2 deletions(-)

commit c626be6317b610277c95461108573d1ae6f42b6d
Author: Martin Pitt <martinpitt@gnome.org>
Date:   Mon Sep 23 12:06:11 2013 +0200

    Fix test_gi.TestProjectVersion.test_version_str()

    In this test case we only do a string comparison, not a proper
    "by version
    component" numerical one. So relax the test to also work with 3.10.

 tests/test_gi.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 0a30f8d02099e582ea3ded800303e14d2e7ab212
Author: Martin Pitt <martinpitt@gnome.org>
Date:   Mon Sep 16 10:12:33 2013 -0500

    release 3.9.92

 NEWS | 7 +++++++
 1 file changed, 7 insertions(+)

commit 506f1e35a9375be80a6a79421bf8272165fdd90a
Author: Simon Feltman <sfeltman@src.gnome.org>
Date:   Mon Sep 16 01:23:49 2013 -0700

    Update current maintainers list in README

 README | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit ef120498e060e88a1efcb82de385a23c1fa9c7da
Author: Simon Feltman <sfeltman@src.gnome.org>
Date:   Tue Sep 10 17:11:21 2013 -0700

    Fix union argument regression when marshaling from python

    Check for union members when marshaling boxed types from Python.
    This is a regression caused by stricter type checking added when
    merging code from pygi-argument.c.
    Re-add pyg_boxed_check to the same bit of code in addition to
    __gtype__ checking to avoid a double regression.

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

 gi/pygi-marshal-from-py.c | 53
 ++++++++++++++++++++++++++---------------------
 1 file changed, 29 insertions(+), 24 deletions(-)

commit 59a2964141e963d2961e55d4b84a777927b4f21b
Author: Simon Feltman <sfeltman@src.gnome.org>
Date:   Wed Sep 11 05:05:33 2013 -0700

    Fix GLib.Source sub-classing with initializer args

    Add variable args and keyword args to the GLib.Source.__new__
    method to support sub-classes which want to implement __init__.

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

 gi/overrides/GLib.py |  2 +-
 tests/test_source.py | 11 +++++++++++
 2 files changed, 12 insertions(+), 1 deletion(-)

commit afa42ab95327da1de0cf86005974cd8ab0d46872
Author: Vratislav Podzimek <vpodzime@redhat.com>
Date:   Wed Sep 4 14:17:31 2013 +0200

    Copy __doc__ when wrapping function

    Signed-off-by: Vratislav Podzimek <vpodzime@redhat.com>
    Signed-off-by: Martin Pitt <martinpitt@gnome.org>

 gi/overrides/__init__.py | 1 +
 1 file changed, 1 insertion(+)

commit 7914a6828a533d8c579a5b422351e18b9f9afc8c
Author: Martin Pitt <martinpitt@gnome.org>
Date:   Mon Sep 2 14:56:24 2013 +0200

    configure.ac: post-release bump to 3.9.92

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit ad8b7d1a89eb2d030a504d521f7589a4c1d835fb
Author: Martin Pitt <martinpitt@gnome.org>
Date:   Mon Sep 2 14:38:41 2013 +0200

    release 3.9.91

 NEWS | 10 ++++++++++
 1 file changed, 10 insertions(+)

commit 9df8eb79929025f12d51bc7f79b1d160156c2755
Author: Simon Feltman <sfeltman@src.gnome.org>
Date:   Mon Sep 2 04:19:35 2013 -0700

    Fix GObject signal methods to work with new annotations

    Add conditional support for signal methods annotated as gpointer
    or GObject.Object. This is needed to work with newer versions of
    glib which changed annotations to GObject.Object (bug #685387).

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

 gi/overrides/GObject.py | 106
 ++++++++++++++++++++++++++++++------------------
 1 file changed, 66 insertions(+), 40 deletions(-)

commit 9b6b6c7ee6a621cba99f51857eadd622a1535118
Author: Chun-wei Fan <fanchunwei@src.gnome.org>
Date:   Thu Aug 15 14:41:40 2013 +0800

    Fix build on C89 Compilers

    Avoid a variable declaration at the middle of the block

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

 gi/pygi-closure.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 19c1a2dfb91a83a6fb0ca76b9c95c42a49a3736e
Author: Simon Feltman <sfeltman@src.gnome.org>
Date:   Sun Sep 1 20:44:26 2013 -0700

    Change boxed type checking in marshaling to use __gtype__ attribute

    Replace usage of pyg_boxed_check(pyboxed) with g_type_is_a and
    pyg_type_from_object. This has the effect of using the __gtype__
    attribute stashed on object class instead of the PyGBoxed
    internally held gtype. This fixes type descrepencies for objects
    marshaled into overridden signal class closures and passed back
    to functions taking an alias their type.

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

 gi/pygi-marshal-from-py.c   |  8 +++++++-
 tests/test_overrides_gtk.py | 34 ++++++++++++++++++++++++++++++++++
 2 files changed, 41 insertions(+), 1 deletion(-)

commit dab0c09f1996e124ca98334e5aea0852904b44b5
Author: Simon Feltman <sfeltman@src.gnome.org>
Date:   Sun Sep 1 17:49:09 2013 -0700

    Use G_IS_VALUE for checking return values in closure marshaling

    Replace return_value argument NULL checks in GClosureMarshal
    implementations with G_IS_VALUE. This checks both NULL and
    validity of the value (!= G_TYPE_INVALID). This is needed
    because GLib can pass either NULL or an invalid value based
    on whether or not G_ENABLE_DEBUG is set.
    See: https://bugzilla.gnome.org/show_bug.cgi?id=707249

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

 gi/_gobject/pygtype.c    | 4 ++--
 gi/pygi-signal-closure.c | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

commit c7b75a8c250078ac8ea28752f087ed687bd20edd
Author: Yanko Kaneti <yaneti@declera.com>
Date:   Wed Aug 21 08:53:07 2013 +0200

    Fix PEP-8 errors in propertyhelper.py

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

    Signed-off-by: Martin Pitt <martinpitt@gnome.org>

 gi/_gobject/propertyhelper.py | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

commit 6fdd58404103596accb6ab04d4de33846d853c58
Author: Martin Pitt <martinpitt@gnome.org>
Date:   Mon Aug 19 17:13:30 2013 +0200

    configure.ac: post-release bump to 3.9.91

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 6fbe2580deda215896e9583b418b8bc1aceb2f96
Author: Martin Pitt <martinpitt@gnome.org>
Date:   Mon Aug 19 17:10:52 2013 +0200

    release 3.9.90

 NEWS | 9 +++++++++
 1 file changed, 9 insertions(+)

commit a8d5da559ef088b05062681206758d2718946269
Author: Martin Pitt <martinpitt@gnome.org>
Date:   Mon Aug 19 11:38:31 2013 +0200

    NEWS: retroactively fix last version number

 NEWS | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit aba45eb2617c4b35168089bc9028f351732a617f
Author: Benjamin Berg <benjamin@sipsolutions.net>
Date:   Tue Aug 6 00:41:52 2013 +0200

    Create GLib.Pid in the same way on python 2 and 3

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

 gi/_glib/pygspawn.c | 8 --------
 1 file changed, 8 deletions(-)

commit 2d203b7529c95ba4461a5a6d4c6b67169fabc4cf
Author: Benjamin Berg <benjamin@sipsolutions.net>
Date:   Mon Aug 5 17:04:15 2013 +0200

    Use PyLong_Type.tp_new for GLib.Pid

    For GLib.Pid the original implementation for __new__ needs to be used,
    as it is able to initialize the integer correctly.

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

 gi/_glib/pygspawn.c      | 1 +
 tests/test_subprocess.py | 1 +
 2 files changed, 2 insertions(+)

commit c32793dafbd52eab87b14ca064b47f5a4fb9000b
Author: Simon Feltman <sfeltman@src.gnome.org>
Date:   Mon Aug 5 14:40:38 2013 -0700

    Add accumulator and accu_data arguments to GObject.Signal decorator

    Update __init__, __call__, and copy methods to accept and pass
    accumulators and associated user data through them. Update
    accumulator unittests to use Signal decorators for testing accumulator
    pass throughs. Verified the __gsignals__ dictionary accepts None
    as valid values for accumulator and accu_data so specialization
    for these arguments is not necessary.

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

 gi/_gobject/signalhelper.py | 17 ++++++++++-----
 tests/test_signal.py        | 52
 ++++++++++++++++++++++++---------------------
 2 files changed, 40 insertions(+), 29 deletions(-)

commit 78f72654f5cb6c06e76ed9a532fc1ee328b60e50
Author: Simon Feltman <sfeltman@src.gnome.org>
Date:   Mon Aug 5 14:12:24 2013 -0700

    Pass return values through the GObject.Signal.emit wrapper

    Return the result of GObject.emit from the Signal decorators wrapping.
    Update unittest for decorated return type to use skipUnless for
    Python 3.
    Add test for Signal decorator return type.

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

 gi/_gobject/signalhelper.py |  2 +-
 tests/test_signal.py        | 37 +++++++++++++++++++++----------------
 2 files changed, 22 insertions(+), 17 deletions(-)

commit 08cc206afeaefd1ce50ecfd1411807225a11c8f8
Author: Simon Feltman <sfeltman@src.gnome.org>
Date:   Mon Jul 29 03:33:40 2013 -0700

    configure.ac: post-release bump to 3.9.90

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 2d8f5490cdc078b3e56a92deb9eca71b3fc5ef17
Author: Simon Feltman <sfeltman@src.gnome.org>
Date:   Mon Jul 29 02:23:02 2013 -0700

    release 3.9.5

 NEWS         | 41 +++++++++++++++++++++++++++++++++++++++++
 configure.ac |  2 +-
 2 files changed, 42 insertions(+), 1 deletion(-)

commit ec3de7608ec970f6f272c9d7937344f02c6e9c3d
Author: Simon Feltman <sfeltman@src.gnome.org>
Date:   Mon Jul 29 01:21:19 2013 -0700

    Ensure exceptions set in closure out argument marshaling are printed

    Call PyErr_Print when an exception occurs after marshaling closure
    out arguments. These exceptions were being ignored and cleared out
    only to show up in debug builds of Python.

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

 gi/pygi-closure.c              |  8 ++++++++
 tests/test_generictreemodel.py | 17 +++++++++++------
 2 files changed, 19 insertions(+), 6 deletions(-)

commit b5dcb1800839f747a052e487643c234668384677
Author: Simon Feltman <sfeltman@src.gnome.org>
Date:   Sun Jul 28 23:00:26 2013 -0700

    Use Python error messages for marshaling integers from Python

    Use Pythons default error messages where possible.
    Change all explicitly raised ValueError to use OverflowError
    for out of range data.

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

 gi/pygi-marshal-from-py.c | 76
 +++++++++++++++++------------------------------
 tests/test_everything.py  | 52 ++++++++++++++++----------------
 tests/test_gi.py          | 64 +++++++++++++++++++--------------------
 tests/test_gobject.py     |  2 +-
 4 files changed, 86 insertions(+), 108 deletions(-)

commit 3c83bfb14b850670eb7c0208e55c120ca203f8af
Author: Simon Feltman <sfeltman@src.gnome.org>
Date:   Sat Jul 27 21:10:07 2013 -0700

    Use Py_CLEAR for closure cleanup instead of test with Py_DECREF

 gi/pygi-closure.c | 11 ++---------
 1 file changed, 2 insertions(+), 9 deletions(-)

commit f5e3876dee512ca82af6ea798b10d5ecad785dd1
Author: Simon Feltman <sfeltman@src.gnome.org>
Date:   Sat Jul 27 15:25:20 2013 -0700

    Cleanup invoke args and kwargs combiner code

    Change _py_args_combine_and_check_length use cleaner reference
    counting.
    It no longer DECREFs input arguments and always returns a new value
    reference.
    Use PyGICallableCache directly as an argument instead of passing
    various
    members.

 gi/pygi-invoke.c | 44 +++++++++++++++++---------------------------
 1 file changed, 17 insertions(+), 27 deletions(-)

commit 91c49822363d8a1efc82163b46daa667d6cfc1b7
Author: Simon Feltman <sfeltman@src.gnome.org>
Date:   Wed Jul 17 16:10:25 2013 -0700

    Replace Python VFunc descriptor directly with PyGIVFuncInfo

    Add tp_getdesc (__get__) to PyGIVFuncInfo to allow the object
    to be used directly as a callable descriptor. This piggy backs
    off the added support for functions and constructors in previous
    patches.

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

 gi/pygi-info.c | 25 +++++++++++++++++++++++--
 gi/types.py    | 33 ++++-----------------------------
 2 files changed, 27 insertions(+), 31 deletions(-)

commit 35f79b22ec5abf02fd0bb66352eb1f251b65a078
Author: Simon Feltman <sfeltman@src.gnome.org>
Date:   Tue Jul 16 16:00:14 2013 -0700

    Add callable and descriptor protocols to PyGICallableInfo

    Add tp_call (__call__) function to callable info objects.
    This allows for replacement of wrapped invoke methods directly
    with the already created callable info object. This has the
    additional side effect of making doc strings lazily bound
    (only generated when __doc__ is accessed).

    Add tp_desc_get (__get__) to PyGIFunctionInfo which returns
    a bound version of itself for methods and constructors.

    Update various internal type checks to reflect the changes.
    Update tests to reflect the new callable type being the same
    across Python 2 & 3.

    This patch gives roughly a %17 speedup for Gtk imports and
    an %11 speedup for GI method calls.

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

 gi/module.py                |   5 +-
 gi/overrides/__init__.py    |  10 ++-
 gi/pygi-info.c              | 179
 ++++++++++++++++++++++++++++++++++++++++++--
 gi/pygi.h                   |  13 ++++
 gi/types.py                 |  35 +--------
 tests/test_docstring.py     |   6 +-
 tests/test_gi.py            |  32 +++-----
 tests/test_overrides_gtk.py |   4 +-
 8 files changed, 212 insertions(+), 72 deletions(-)

commit 2339e030e4dc4d93ea770bca380a89f831d56be6
Author: Simon Feltman <sfeltman@src.gnome.org>
Date:   Fri Jul 26 19:33:32 2013 -0700

    Move "from Python" GObject out arg marshaler into specialized function

    Move hacks specific to out argument marshaling for vfuncs into a
    a specialized function. This allows standard function call marshaling
    to continue working correctly when there are no extra references
    holding the arguments "foo(SomeObject())". This is currently being
    masked because all GI functions are wrapped by additional layers
    of Python functions. When these layers are removed, it exposes
    bugs introduced by reference counting hacks intended for vfunc
    return arguments.

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

 gi/pygi-argument.c        |  2 +-
 gi/pygi-marshal-from-py.c | 37 ++++++++++++++++++++++++++++++-------
 gi/pygi-marshal-from-py.h |  3 +++
 3 files changed, 34 insertions(+), 8 deletions(-)

commit 627c5faaa54ed9a2b59ac1547833c171cd1a1e87
Author: Simon Feltman <sfeltman@src.gnome.org>
Date:   Fri Jul 26 17:34:01 2013 -0700

    Add underscore prefix and _cache_adapter suffix to marshaling
    functions

    Add underscores to all _pygi_marshal_* functions. We don't currently
    export symbols, but we might need to for C unittesting. This will
    ensure we don't have a "public API".
    Add _cache_adapter suffix to marshaling functions which are light
    weight wrappers intended only for cached marshalers.

 gi/pygi-argument.c        | 40 +++++++++++-----------
 gi/pygi-cache.c           | 10 +++---
 gi/pygi-marshal-from-py.c | 86
 +++++++++++++++++++++++------------------------
 gi/pygi-marshal-from-py.h | 44 ++++++++++++------------
 gi/pygi-marshal-to-py.c   | 48 +++++++++++++-------------
 gi/pygi-marshal-to-py.h   | 34 +++++++++----------
 6 files changed, 131 insertions(+), 131 deletions(-)

commit bec0b543be8d993996d8a17c343c3f2f33a9398f
Author: Simon Feltman <sfeltman@src.gnome.org>
Date:   Tue Jul 16 11:13:17 2013 -0700

    Add common attribute accessors to PyGIBaseInfo

    Add __name__, __module__, and __doc__ accessors to
    PyGIBaseInfo object. This is a precursory patch for setting
    up PyGICallableInfo as a directly callable object with lazy
    doc string evaluation.

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

 gi/_glib/pyglib-python-compat.h |  5 +++
 gi/pygi-info.c                  | 83
 +++++++++++++++++++++++++++++++++++++++--
 gi/types.py                     |  7 ++--
 3 files changed, 88 insertions(+), 7 deletions(-)

commit ea194404843a16555f9a475cc973872a4428bfe1
Author: Simon Feltman <sfeltman@src.gnome.org>
Date:   Sat Jul 13 23:10:31 2013 -0700

    Merge method and constructor setup

    Merge _setup_constructors into _setup_methods as they contain same
    basic logic. This removes an unnecessary call with additional
    filtering of GIObjectInfo.get_methods() which can be large for
    objects with many methods.

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

 gi/types.py | 15 ++++-----------
 1 file changed, 4 insertions(+), 11 deletions(-)

commit 6b36fbe904d19f515578f447daa7657d3a9a859c
Author: Simon Feltman <sfeltman@src.gnome.org>
Date:   Sat Jul 13 18:11:18 2013 -0700

    Remove redundant info.get_name calls

    Remove a number of redundant calls to GIBaseInfo.get_name. Info
    names are already cached on function objects so re-use them when
    possible. This gives a small load time improvement by removing over
    2000 calls when importing Gtk.

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

 gi/module.py | 1 -
 gi/types.py  | 8 +++-----
 2 files changed, 3 insertions(+), 6 deletions(-)

commit 6fdde256e840600c84a648ab21da2fe5c212e5bc
Author: Simon Feltman <sfeltman@src.gnome.org>
Date:   Fri Jul 12 12:21:54 2013 -0700

    Move doc string generator into separate module

    Move the doc string generator for creating function signatures
    into "gi.docstring". This includes a new API for getting and
    setting the doc string creation functions:

    gi.docstring.get_doc_string_generator
    gi.docstring.set_doc_string_generator
    gi.docstring.generate_doc_string

    Beyond adding the ability for custom doc string generators,
    this API is a necessary step for adding lazy __doc__
    attribute access for optimization.

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

 gi/Makefile.am          |   3 +-
 gi/docstring.py         | 106
 ++++++++++++++++++++++++++++++++++++++++++++++++
 gi/types.py             |  55 ++-----------------------
 tests/Makefile.am       |   1 +
 tests/test_docstring.py |  49 ++++++++++++++++++++++
 tests/test_gi.py        |  30 --------------
 6 files changed, 161 insertions(+), 83 deletions(-)

commit f86701b15ee04c717d9c6bf688101606165e4f83
Author: Simon Feltman <sfeltman@src.gnome.org>
Date:   Wed Jul 24 19:36:28 2013 -0700

    tests: Change GHashTable<string,GValue> marshaling test to use GValue

    Add test to explicitly use a boxed GStrv GValue in addition to a
    Python list sub-class.

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

 tests/test_everything.py | 21 +++++++++++++++------
 1 file changed, 15 insertions(+), 6 deletions(-)

commit 6ea41b60691e1ba7e21374582d7aea072af71103
Author: Simon Feltman <sfeltman@src.gnome.org>
Date:   Thu Jul 25 18:00:47 2013 -0700

    gtk-demo: Change demo to use Gtk.Application

    Replace deriving from Gtk.Window with deriving from Gtk.Application
    connected to a Gtk.ApplicationWindow instance.

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

 demos/gtk-demo/demos/printing.py |  2 +-
 demos/gtk-demo/gtk-demo.py       | 40
 ++++++++++++++++++++--------------------
 2 files changed, 21 insertions(+), 21 deletions(-)

commit fae58044ea0b2e7f47fbdacc5b58ac36f673ecbd
Author: Simon Feltman <sfeltman@src.gnome.org>
Date:   Tue Jul 23 14:25:01 2013 -0700

    Move _pygi_argument_to_object_basic_type into pygi-marshal-to-py.c

    Move _pygi_argument_to_object_basic_type into pygi-marshal-to-py.c
    and rename to _pygi_marshal_to_py_basic_type.
    Cleanup and simplify dependant sub-marshalers for unichar, utf8,
    and filename types.

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

 gi/pygi-argument.c      |  73 +-----------------------------
 gi/pygi-argument.h      |   4 --
 gi/pygi-cache.c         |   4 +-
 gi/pygi-marshal-to-py.c | 115
 +++++++++++++++++++++++++++++++++++++-----------
 gi/pygi-marshal-to-py.h |  27 +++---------
 5 files changed, 99 insertions(+), 124 deletions(-)

commit cba401ac1543c2fdb68fff0dba8f6da7eed23bfa
Author: Simon Feltman <sfeltman@src.gnome.org>
Date:   Tue Jul 23 13:06:33 2013 -0700

    Unify and clean up from Python marshalers for basic types

    Unify and cleanup boolean, float, double, gtype, unichar, utf8,
    and filename marshalers.

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

 gi/pygi-cache.c           | 101
 ++--------------------------------------------
 gi/pygi-marshal-from-py.c |  86 ++++++++++++---------------------------
 gi/pygi-marshal-from-py.h |  30 --------------
 3 files changed, 28 insertions(+), 189 deletions(-)

commit 9e6e01d065bf0acc5b99ae0e8c034d689231bfe1
Author: Simon Feltman <sfeltman@src.gnome.org>
Date:   Tue Jul 23 12:35:06 2013 -0700

    Unify from Python int64 and uint64 marshalers

    Replaced int64 and uint64 cached marshalers with usage of the
    unified basic type marshaler. Replace a large amount of int64
    exception formatting code with usage of %S for Python 3 and
    give a more vague message for Python 2.

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

 gi/pygi-cache.c           |  36 +--------
 gi/pygi-marshal-from-py.c | 193
 ++++++++++------------------------------------
 gi/pygi-marshal-from-py.h |  10 ---
 3 files changed, 43 insertions(+), 196 deletions(-)

commit 46653922003c7d1d5d16f5cdb39b3faadf9aff27
Author: Simon Feltman <sfeltman@src.gnome.org>
Date:   Tue Jul 23 11:03:14 2013 -0700

    Unify from Python int16 and int32 marshalers

    Add PyNumber_Check to unified basic type marshaler.
    Add bounds checking to unified int16 and int32 marshalers.
    Replaced int16 and int32 cached marshalers with usage of
    unified basic type marshaler.

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

 gi/pygi-cache.c           |  69 +--------------
 gi/pygi-marshal-from-py.c | 218
 ++++++++++------------------------------------
 gi/pygi-marshal-from-py.h |  20 -----
 3 files changed, 48 insertions(+), 259 deletions(-)

commit 4b9c725a615fcf4a5e8d089d275d4586032d0d1f
Author: Simon Feltman <sfeltman@src.gnome.org>
Date:   Tue Jul 23 00:27:14 2013 -0700

    Unify from Python boolean, int8, and uint8 marshalers

    Replaced boolean, int8, and uint8 cached marshalers with usage of
    unified basic type marshaler. Add bounds checking to unified int8
    marshalers.

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

 gi/pygi-cache.c           |  48 +++------------
 gi/pygi-marshal-from-py.c | 146
 +++++++++++-----------------------------------
 gi/pygi-marshal-from-py.h |  20 ++-----
 3 files changed, 45 insertions(+), 169 deletions(-)

commit f517bfbc134b78a23b754332e59b9bb67bb68e98
Author: Simon Feltman <sfeltman@src.gnome.org>
Date:   Mon Jul 22 23:24:13 2013 -0700

    Add support for PyBytes with int8 and uint8 from Python marshaler

    This additional type marshaling is necessary for unifying marhalers
    due to the same feature being available with cached argument
    marshaling.

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

 gi/pygi-marshal-from-py.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

commit fe9df90531f3dd04c0d13d73ebd4ae7dd396c9b1
Author: Simon Feltman <sfeltman@src.gnome.org>
Date:   Mon Jul 22 23:23:29 2013 -0700

    Move from Python integer marshaling into separate function

    Add _pygi_marshal_from_py_long for marshaling Python objects
    that can convert to a PyLong type. This allows for better
    sharing of code amongst marshalers along with unifying
    them across Python 2.7 and 3.0.

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

 gi/pygi-argument.c        |   3 +-
 gi/pygi-marshal-from-py.c | 159
 ++++++++++++++++++++++++----------------------
 2 files changed, 84 insertions(+), 78 deletions(-)

commit f7748affae3d6ef0cc2e409f65761fb29c01b038
Author: Simon Feltman <sfeltman@src.gnome.org>
Date:   Mon Jul 22 22:19:26 2013 -0700

    Move _pygi_argument_from_object_basic_type into pygi-marshal-from-py.c

    Move _pygi_argument_from_object_basic_type into pygi-marshal-from-py.c
    and rename to: _pygi_marshal_from_py_basic_type

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

 gi/pygi-argument.c        | 149
 +---------------------------------------------
 gi/pygi-marshal-from-py.c | 147
 +++++++++++++++++++++++++++++++++++++++++++++
 gi/pygi-marshal-from-py.h |   4 ++
 3 files changed, 152 insertions(+), 148 deletions(-)

commit 9c9510eec782f242280af24e86adf3561e4fac72
Author: Simon Feltman <sfeltman@src.gnome.org>
Date:   Fri Jul 19 23:37:35 2013 -0700

    Move basic type marshaling out of _pygi_argument_from_object

    Move the marshaling of Python objects to GI arguments for basic types
    into a new function: _pygi_argument_from_object_basic_type
    This is staging work needed before unifying basic type marshaling
    of arguments from Python to GI.

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

 gi/pygi-argument.c | 73
 ++++++++++++++++++++++++++++++++++--------------------
 1 file changed, 46 insertions(+), 27 deletions(-)

commit 0e2441518ef31bd2b4102ba5780c3ded00bec59a
Author: Simon Feltman <sfeltman@src.gnome.org>
Date:   Fri Jul 19 20:16:10 2013 -0700

    Replace to Python cached marshalers with unified basic type marshaler

    Add cached arg marshaler "_pygi_marshal_to_py_basic_type" which
    unifies functions, vfuncs, signals, and property marshaling for
    "basic types". Remove all the individual cached arg marshalers
    for these types.

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

 gi/pygi-argument.c      | 104 +++++++++++------------------------
 gi/pygi-argument.h      |   4 ++
 gi/pygi-cache.c         | 114 +++++++-------------------------------
 gi/pygi-marshal-to-py.c | 142
 ++++--------------------------------------------
 gi/pygi-marshal-to-py.h |  48 ++--------------
 5 files changed, 73 insertions(+), 339 deletions(-)

commit 663fe5893bbc9f34bf8aa4da3cb6f9186a8233b1
Author: Simon Feltman <sfeltman@src.gnome.org>
Date:   Fri Jul 19 18:00:40 2013 -0700

    Move to Python basic type marshaling out of _pygi_argument_to_object

    Move the marshaling of GI arguments to Python objects for basic types
    into a new function. The required information for this marshaler
    is a GITypeTag and GITransfer. Argument marshaling matching these
    requirments are now found in: _pygi_argument_to_object_basic_type.
    The new marshaler can be used with a generic argument cache marshaler
    to unify all of the "basic type" marshaling.

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

 gi/pygi-argument.c | 86
 +++++++++++++++++++++++++++++++++++++++---------------
 1 file changed, 63 insertions(+), 23 deletions(-)

commit dd43a1e19440dbe025451d2e4e07a6074086498d
Author: Simon Feltman <sfeltman@src.gnome.org>
Date:   Sat Jul 6 14:16:36 2013 -0700

    Override GValue.set/get_boxed with static C marshaler

    Override boxed type get/set methods on GValue to use the static C
    GValue marshaler. This works around the inability of the introspection
    version of these methods to know what the held GValue type is.
    With this, all boxed types will now marshal properly with GValues as
    their storage.

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

 gi/_gobject/gobjectmodule.c | 38 ++++++++++++++++++++++++++++++++++++++
 gi/overrides/GObject.py     |  9 +++++++++
 2 files changed, 47 insertions(+)

commit 2cff4827e6d15bcad630316a8a4e67968a70bbbf
Author: Simon Feltman <sfeltman@src.gnome.org>
Date:   Sat Jul 6 14:10:20 2013 -0700

    Refactor pyg_value_from_pyobject into two functions

    Break pyg_value_from_pyobject into two functions. One which keeps
    Python exceptions queued (pyg_value_from_pyobject_with_error) and
    one which clears them (pyg_value_from_pyobject). This allows for
    re-use for code which want to keep the errors around

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

 gi/_gobject/gobjectmodule.c     |  4 ++-
 gi/_gobject/pygobject-private.h |  1 +
