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

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


Branch: CURRENT, Version: 2.0.1, Package name: py310-greenlet-2.0.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: 159.984 KB

Version history: (Expand)


CVS history: (Expand)


   2022-11-21 12:28:22 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
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) | Package updated
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) | Package updated
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) | Package updated
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) | Package updated
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.