1.0.0 (unreleased)

  • (Packaging) Require setuptools to build from source.

  • (Packaging) Stop asking setuptools to build both .tar.gz and .zip sdists. PyPI has standardized on .tar.gz for all platforms.

  • (Documentation) Publish the change log to

  • Drop support for Python 2.4, 2.5, 2.6, 3.0, 3.1, 3.2 and 3.4. The project metadata now includes the python_requires data to help installation tools understand supported versions.

0.4.17 (2020-09-22)

  • Support for PEP 567 ContextVars


  • Support for DEC Alpha architecture

  • Support for Python 3.9

  • Support for Python 3.10a0


  • Support for RISC-V architecture

  • Workaround a gcc bug on ppc64


  • Support for C-SKY architecture

  • Fixed support for ppc64 ABI

  • Fixed support for Python 3.7


  • Support for Python 3.7

  • Support for MinGW x64


  • Stop using trashcan api


  • Fixes for aarch64 architecture


  • Added missing files to manifest

  • Added workaround for ppc32 on Linux

  • Start building binary manylinux1 wheels


  • Fixed Windows builds


  • Added support for iOS (arm32)

  • Added support for ppc64le


  • Added a missing workaround for return 0 on mips

  • Restore compatibility with Python 2.5

  • Fixed stack switching on sparc


  • Expose _stack_saved property on greenlet objects, it may be used to introspect the amount of memory used by a saved stack, but the API is subject to change in the future

  • Added a workaround for return 0 compiler optimizations on all architectures

  • C API typo fixes


  • Fixed several bugs in greenlet C API

  • Fixed a bug in multi-threaded applications, which manifested itself with spurious “cannot switch to a different thread” exceptions

  • Fixed some crashes on arm and mips architectures


  • Fixed PyGreenlet_SetParent signature, thanks to BoonsNaibot

  • Fixed 64-bit Windows builds depending on wrong runtime dll


  • Better slp_switch performance on SPARC

  • Drop support for Python 2.3

  • Fix trashcan assertions on debug builds of Python

  • Remove deprecated -fno-tree-dominator-opts compiler switch

  • Enable switch code for SunStudio on 32-bit SunOS

  • Support for abc abstract methods in greenlet subclasses

  • Support custom directories for tests

  • Document switch tracing support


  • Add .travis.yml

  • Fix ‘err’ may be used uninitialized in this function

  • Check _MSC_VER for msvc specific code

  • Fix slp_switch on SPARC for multi-threaded environments

  • Add support for m68k


  • fix segfaults when using gcc 4.8 on amd64/x86 unix

  • try to disable certain gcc 4.8 optimizations that make greenlet crash

  • Fix greenlet on aarch64 with gcc 4.8

  • workaround segfault on SunOS/sun4v

  • Add support for Aarch64

  • Add support for x32 psABI on x86_64

  • Changed memory constraints for assembly macro for PPC Linux platforms.


  • Greenlet has an instance dictionary now, which means it can be used for implementing greenlet local storage, etc. However, this might introduce incompatibility if subclasses have __dict__ in their __slots__. Classes like that will fail, because greenlet already has __dict__ out of the box.

  • Greenlet no longer leaks memory after thread termination, as long as terminated thread has no running greenlets left at the time.

  • Add support for debian sparc and openbsd5-sparc64

  • Add support for ppc64 linux

  • Don’t allow greenlets to be copied with copy.copy/deepcopy

  • Fix arm32/thumb support

  • Restore greenlet’s parent after kill

  • Add experimental greenlet tracing


  • Use plain distutils for install command, this fixes installation of the greenlet.h header.

  • Enhanced arm32 support

  • Fix support for Linux/S390 zSeries

  • Workaround compiler bug on RHEL 3 / CentOS 3


  • Use sphinx to build documentation and publish it on

  • Prevent segfaults on openbsd 4/i386

  • Workaround gcc-4.0 not allowing to clobber rbx

  • Enhance test infrastructure

  • Fix possible compilation problems when including greenlet.h in C++ mode

  • Make the greenlet module work on x64 windows

  • Add a test for greenlet C++ exceptions

  • Fix compilation on Solaris with SunStudio


  • Fix various crashes with recent gcc versions and VC90

  • Try to fix stack save/restore on arm32

  • Store and restore the threadstate on exceptions like pypy/stackless do

  • GreenletExit is now based on BaseException on Python >= 2.5

  • Switch to using PyCapsule for Python 2.7 and 3.1

  • Port for AIX on PowerPC

  • Fix the sparc/solaris header

  • Improved build dependencies patch from flub.

  • Can’t pass parent=None to greenlet.greenlet() (fixes #21)

  • Rudimentary gc support (only non-live greenlets are garbage collected though)


  • Fix reference leak when passing keyword arguments to greenlets (mbachry)

  • Updated documentation.


  • Python 3 support.

  • New C API to expose Greenlets to C Extensions.

  • greenlet.switch() now accept’s keyword arguments.

  • Fix Python crasher caused by switching to new greenlet from another thread.

  • Fix Python 2.6 crash on Windows when built with VS2009. (arigo)

  • arm32 support from stackless (Sylvain Baro)

  • Linux mips support (Thiemo Seufer)

  • MingGW GCC 4.4 support (Giovanni Bajo)

  • Fix for a threading bug (issue 40 in py lib) (arigo and ghazel)

  • Loads more unit tests, some from py lib (3 times as many as Greenlet 0.2)

  • Add documentation from py lib.

  • General code, documentation and repository cleanup (Kyle Ambroff, Jared Kuolt)