./devel/py-greenlet, Lightweight in-process concurrent programming

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 3.1.1, Package name: py312-greenlet-3.1.1, Maintainer: kamel.derouiche

The 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: 181.662 KB

Version history: (Expand)


CVS history: (Expand)


   2024-11-11 08:29:31 by Thomas Klausner | Files touched by this commit (862)
Log message:
py-*: remove unused tool dependency

py-setuptools includes the py-wheel functionality nowadays
   2024-10-08 00:57:12 by Thomas Klausner | Files touched by this commit (1) | Package updated
Log message:
py-greenlet: require GCC 8

To fix
sorry, unimplemented: non-trivial designated initializers not supported
(tried it with simplified similar code on godbolt)

Comment out FORCE_CXX_STD since it was added for compiling with gcc 4.8.
Re-enable this if it's still needed, with an updated comment, thanks.
   2024-10-01 22:07:24 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
py-greenlet: updated to 3.1.1

3.1.1 (2024-09-20)

- Fix crashes on 32-bit PPC Linux. Note that there is no CI for this,
  and support is best effort; there may be other issues lurking.
- Remove unnecessary logging sometimes during interpreter shutdown.
- Fix some crashes on 32-bit PPC MacOS. This is a very old platform,
  and is only known to be tested on beta versions of an operating
  system that was never released, using the GCC 14 only provided by
  MacPorts; it may or may not work on the final MacOS X release that
  supported 32-bit PowerPC. It has the known issue of leaking memory
  when greenlets are used in multiple threads. Help debugging this
  would be appreciated.
   2024-09-14 10:20:21 by Adam Ciarcinski | Files touched by this commit (4) | Package updated
Log message:
py-greenlet: updated to 3.1.0

3.1.0 (2024-09-10)

This will be the last release to support Python 3.7 and 3.8.

- Adds support for Python 3.13.

  greenlet will not work in no-gil (free threaded) builds of CPython.
  Internally, greenlet heavily depends on the GIL.

- Greatly reduce the chances for crashes during interpreter shutdown.
   2024-03-30 21:11:51 by Thomas Klausner | Files touched by this commit (2)
Log message:
py-greenlet: add upstream bug report URL
   2024-03-30 20:40:05 by Havard Eidnes | Files touched by this commit (2)
Log message:
Re-add support for NetBSD/powerpc.

This time submitted upstream as well, ref.
https://github.com/python-greenlet/greenlet/pull/402
   2024-01-12 14:19:13 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-greenlet: updated to 3.0.3

3.0.3 (2023-12-21)

- Python 3.12: Restore the full ability to walk the stack of a suspended
  greenlet; previously only the innermost frame was exposed.
   2023-12-11 13:22:06 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-greenlet: updated to 3.0.2

3.0.2 (2023-12-08)

- Packaging: Add a minimal ``pyproject.toml`` to sdists.
- Packaging: Various updates to macOS wheels.
- Fix a test case on Arm32. Note that this is not a supported platform
  (there is no CI for it) and support is best effort; there may be
  other issues lurking.