Path to this page:
./
devel/py-greenlet,
Lightweight in-process concurrent programming
Branch: CURRENT,
Version: 2.0.1,
Package name: py310-greenlet-2.0.1,
Maintainer: kamel.derouicheThe greenlet package is a spin-off of Stackless, a version of CPython that
supports micro-threads called "tasklets". Tasklets run pseudo-concurrently
(typically in a single or a few OS-level threads) and are synchronized with data
exchanges on "channels".
A "greenlet", on the other hand, is a still more primitive notion of
micro-thread with no implicit scheduling; coroutines, in other words. This is
useful when you want to control exactly when your code runs. You can build
custom scheduled micro-threads on top of greenlet; however, it seems that
greenlets are useful on their own as a way to make advanced control flow
structures. For example, we can recreate generators; the difference with
Python's own generators is that our generators can call nested functions and the
nested functions can yield values too. Additionally, you don't need a "yield"
keyword. See the example in tests/test_generator.py.
Greenlets are provided as a C extension module for the regular unmodified
interpreter.
Greenlets are lightweight coroutines for in-process concurrent programming.
Required to run:[
lang/python27]
Required to build:[
pkgtools/cwrappers]
Master sites:
Filesize: 159.984 KB
Version history: (Expand)
- (2022-11-21) Updated to version: py310-greenlet-2.0.1
- (2022-09-15) Updated to version: py310-greenlet-1.1.3
- (2022-01-05) Updated to version: py39-greenlet-1.1.2nb1
- (2021-10-06) Updated to version: py39-greenlet-1.1.2
- (2021-08-11) Updated to version: py38-greenlet-1.1.1
- (2021-07-05) Updated to version: py38-greenlet-1.1.0
CVS history: (Expand)
2022-11-21 12:28:22 by Adam Ciarcinski | Files touched by this commit (3) |  |
Log message:
py-greenlet: updated to 2.0.1
2.0.1 (2022-11-07)
==================
- Python 3.11: Fix a memory leak. See `issue 328
<https://github.com/python-greenlet/greenlet/issues/328>`_ and
`gevent issue 1924 <https://github.com/gevent/gevent/issues/1924>`_.
2.0.0.post0 (2022-11-03)
========================
- Add ``Programming Language :: Python :: 3.11`` to the PyPI
classifier metadata.
2.0.0 (2022-10-31)
==================
- Nothing changed yet.
2.0.0rc5 (2022-10-31)
=====================
- Linux: Fix another group of rare crashes that could occur when shutting down an
interpeter running multiple threads. See `issue 325 \
<https://github.com/python-greenlet/greenlet/issues/325>`_.
2.0.0rc4 (2022-10-30)
=====================
- Linux: Fix a rare crash that could occur when shutting down an
interpreter running multiple threads, when some of those threads are
in greenlets making calls to functions that release the GIL.
2.0.0rc3 (2022-10-29)
=====================
- Python 2: Fix a crash that could occur when raising an old-style
instance object.
2.0.0rc2 (2022-10-28)
=====================
- Workaround `a CPython 3.8 bug
<https://github.com/python/cpython/issues/81308>`_ that could cause
the interpreter to crash during an early phase of shutdown with the
message "Fatal Python error: Python memory allocator called without
holding the GI." This only impacted CPython 3.8a3 through CPython
3.9a5; the fix is only applied to CPython 3.8 releases (please don't
use an early alpha release of CPython 3.9).
2.0.0rc1 (2022-10-27)
=====================
- Deal gracefully with greenlet switches that occur while deferred
deallocation of objects is happening using CPython's "trash can"
mechanism. Previously, if a large nested container held items that
switched greenlets during delayed deallocation, and that second
greenlet also invoked the trash can, CPython's internal state could
become corrupt. This was visible as an assertion error in debug
builds. Now, the relevant internal state is saved and restored
during greenlet switches. See also `gevent issue 1909
<https://github.com/gevent/gevent/issues/1909>`_.
- Rename the C API function ``PyGreenlet_GET_PARENT`` to
``PyGreenlet_GetParent`` for consistency. The old name remains
available as a deprecated alias.
2.0.0a2 (2022-03-24)
====================
- Fix a crash on older versions of the Windows C runtime when an
unhandled C++ exception was thrown inside a greenlet by another
native extension. This is a bug in that extension, and the
interpreter will still abort, but at least it does so deliberately.
Thanks to Kirill Smelkov. See `PR 286
<https://github.com/python-greenlet/greenlet/pull/286>`_.
- Musllinux wheels for aarch64 are now built, tested, and uploaded to
PyPI. Thanks to Alexander Piskun.
- This version of greenlet is known to compile and pass tests on
CPython 3.11.0a6. Earlier 3.11 releases will not work; later
releases may or may not work. See `PR 294
<https://github.com/python-greenlet/greenlet/pull/294>`_. Special
thanks to Victor Stinner, Brandt Bucher and the CPython developers.
|
2022-09-15 19:48:08 by Adam Ciarcinski | Files touched by this commit (2) |  |
Log message:
py-greenlet: updated to 1.1.3
1.1.3 (2022-08-25)
==================
- Add support for Python 3.11. Please note that Windows binary wheels
are not available at this time.
|
2022-01-04 21:55:40 by Thomas Klausner | Files touched by this commit (1595) |
Log message:
*: bump PKGREVISION for egg.mk users
They now have a tool dependency on py-setuptools instead of a DEPENDS
|
2021-10-26 12:20:11 by Nia Alarie | Files touched by this commit (3016) |
Log message:
archivers: Replace RMD160 checksums with BLAKE2s checksums
All checksums have been double-checked against existing RMD160 and
SHA512 hashes
Could not be committed due to merge conflict:
devel/py-traitlets/distinfo
The following distfiles were unfetchable (note: some may be only fetched
conditionally):
./devel/pvs/distinfo pvs-3.2-solaris.tgz
./devel/eclipse/distinfo eclipse-sourceBuild-srcIncluded-3.0.1.zip
|
2021-10-07 15:44:44 by Nia Alarie | Files touched by this commit (3017) |
Log message:
devel: Remove SHA1 hashes for distfiles
|
2021-10-06 13:02:28 by Adam Ciarcinski | Files touched by this commit (2) |  |
Log message:
py-greenlet: updated to 1.1.2
1.1.2
- Fix a potential crash due to a reference counting error when Python
subclasses of ``greenlet.greenlet`` were deallocated. The crash
became more common on Python 3.10; on earlier versions, silent
memory corruption could result.
- Fix a leak of a list object when the last reference to a greenlet
was deleted from some other thread than the one to which it
belonged. For this to work correctly, you must call a greenlet API
like ``getcurrent()`` before the thread owning the greenlet exits:
this is a long-standing limitation that can also lead to the leak of
a thread's main greenlet if not called; we hope to lift this
limitation. Note that in some cases this may also fix leaks of
greenlet objects themselves.
- Python 3.10: Tracing or profiling into a spawned greenlet didn't
work as expected.
|
2021-08-11 11:47:16 by Adam Ciarcinski | Files touched by this commit (2) |  |
Log message:
py-greenlet: updated to 1.1.1
1.1.1 (2021-08-06)
- Provide Windows binary wheels for Python 3.10 (64-bit only).
- Update Python 3.10 wheels to be built against 3.10rc1, where
applicable.
|
2021-07-05 14:01:45 by Adam Ciarcinski | Files touched by this commit (2) |  |
Log message:
py-greenlet: updated to 1.1.0
1.1.0 (2021-05-06)
Add support for Python 3.10. Pre-built binary wheels for 3.10 are not currently \
available for all platforms. The greenlet ABI is different on Python 3.10 from \
all previous versions, but as 3.10 was never supported before, and the ABI has \
not changed on other Python versions, this is not considered a reason to change \
greenlet's major version.
|