head	1.10;
access;
symbols
	pkgsrc-2026Q1:1.10.0.2
	pkgsrc-2026Q1-base:1.10
	pkgsrc-2025Q4:1.9.0.4
	pkgsrc-2025Q4-base:1.9
	pkgsrc-2025Q3:1.9.0.2
	pkgsrc-2025Q3-base:1.9
	pkgsrc-2025Q2:1.8.0.2
	pkgsrc-2025Q2-base:1.8
	pkgsrc-2025Q1:1.6.0.4
	pkgsrc-2025Q1-base:1.6
	pkgsrc-2024Q4:1.6.0.2
	pkgsrc-2024Q4-base:1.6
	pkgsrc-2024Q3:1.5.0.2
	pkgsrc-2024Q3-base:1.5
	pkgsrc-2024Q2:1.4.0.6
	pkgsrc-2024Q2-base:1.4
	pkgsrc-2024Q1:1.4.0.4
	pkgsrc-2024Q1-base:1.4
	pkgsrc-2023Q4:1.4.0.2
	pkgsrc-2023Q4-base:1.4
	pkgsrc-2023Q3:1.3.0.8
	pkgsrc-2023Q3-base:1.3
	pkgsrc-2023Q2:1.3.0.6
	pkgsrc-2023Q2-base:1.3
	pkgsrc-2023Q1:1.3.0.4
	pkgsrc-2023Q1-base:1.3
	pkgsrc-2022Q4:1.3.0.2
	pkgsrc-2022Q4-base:1.3
	pkgsrc-2022Q3:1.2.0.14
	pkgsrc-2022Q3-base:1.2
	pkgsrc-2022Q2:1.2.0.12
	pkgsrc-2022Q2-base:1.2
	pkgsrc-2022Q1:1.2.0.10
	pkgsrc-2022Q1-base:1.2
	pkgsrc-2021Q4:1.2.0.8
	pkgsrc-2021Q4-base:1.2
	pkgsrc-2021Q3:1.2.0.6
	pkgsrc-2021Q3-base:1.2
	pkgsrc-2021Q2:1.2.0.4
	pkgsrc-2021Q2-base:1.2
	pkgsrc-2021Q1:1.2.0.2
	pkgsrc-2021Q1-base:1.2
	pkgsrc-2020Q4:1.1.0.56
	pkgsrc-2020Q4-base:1.1
	pkgsrc-2020Q3:1.1.0.54
	pkgsrc-2020Q3-base:1.1
	pkgsrc-2020Q2:1.1.0.50
	pkgsrc-2020Q2-base:1.1
	pkgsrc-2020Q1:1.1.0.30
	pkgsrc-2020Q1-base:1.1
	pkgsrc-2019Q4:1.1.0.52
	pkgsrc-2019Q4-base:1.1
	pkgsrc-2019Q3:1.1.0.48
	pkgsrc-2019Q3-base:1.1
	pkgsrc-2019Q2:1.1.0.46
	pkgsrc-2019Q2-base:1.1
	pkgsrc-2019Q1:1.1.0.44
	pkgsrc-2019Q1-base:1.1
	pkgsrc-2018Q4:1.1.0.42
	pkgsrc-2018Q4-base:1.1
	pkgsrc-2018Q3:1.1.0.40
	pkgsrc-2018Q3-base:1.1
	pkgsrc-2018Q2:1.1.0.38
	pkgsrc-2018Q2-base:1.1
	pkgsrc-2018Q1:1.1.0.36
	pkgsrc-2018Q1-base:1.1
	pkgsrc-2017Q4:1.1.0.34
	pkgsrc-2017Q4-base:1.1
	pkgsrc-2017Q3:1.1.0.32
	pkgsrc-2017Q3-base:1.1
	pkgsrc-2017Q2:1.1.0.28
	pkgsrc-2017Q2-base:1.1
	pkgsrc-2017Q1:1.1.0.26
	pkgsrc-2017Q1-base:1.1
	pkgsrc-2016Q4:1.1.0.24
	pkgsrc-2016Q4-base:1.1
	pkgsrc-2016Q3:1.1.0.22
	pkgsrc-2016Q3-base:1.1
	pkgsrc-2016Q2:1.1.0.20
	pkgsrc-2016Q2-base:1.1
	pkgsrc-2016Q1:1.1.0.18
	pkgsrc-2016Q1-base:1.1
	pkgsrc-2015Q4:1.1.0.16
	pkgsrc-2015Q4-base:1.1
	pkgsrc-2015Q3:1.1.0.14
	pkgsrc-2015Q3-base:1.1
	pkgsrc-2015Q2:1.1.0.12
	pkgsrc-2015Q2-base:1.1
	pkgsrc-2015Q1:1.1.0.10
	pkgsrc-2015Q1-base:1.1
	pkgsrc-2014Q4:1.1.0.8
	pkgsrc-2014Q4-base:1.1
	pkgsrc-2014Q3:1.1.0.6
	pkgsrc-2014Q3-base:1.1
	pkgsrc-2014Q2:1.1.0.4
	pkgsrc-2014Q2-base:1.1
	pkgsrc-2014Q1:1.1.0.2
	pkgsrc-2014Q1-base:1.1;
locks; strict;
comment	@# @;


1.10
date	2026.02.23.15.02.57;	author adam;	state Exp;
branches;
next	1.9;
commitid	X2jmxRHh4DJjPvvG;

1.9
date	2025.07.01.07.10.01;	author adam;	state Exp;
branches;
next	1.8;
commitid	J2szpIJqxCyoP01G;

1.8
date	2025.04.21.05.51.41;	author adam;	state Exp;
branches;
next	1.7;
commitid	f5JI604Ps7cXFSRF;

1.7
date	2025.04.12.11.08.22;	author adam;	state Exp;
branches;
next	1.6;
commitid	15rANoC1na0EIKQF;

1.6
date	2024.10.01.20.07.24;	author adam;	state Exp;
branches;
next	1.5;
commitid	wgAYlD7OgBk4UZrF;

1.5
date	2024.09.14.08.20.21;	author adam;	state Exp;
branches;
next	1.4;
commitid	tVvCxLA3xaooxKpF;

1.4
date	2023.10.29.16.56.42;	author wiz;	state Exp;
branches;
next	1.3;
commitid	fbdVtUaXp0ZkIxKE;

1.3
date	2022.11.21.11.28.21;	author adam;	state Exp;
branches;
next	1.2;
commitid	3aFt2YZo8midTy2E;

1.2
date	2021.03.03.18.05.01;	author adam;	state Exp;
branches;
next	1.1;
commitid	wDVjkMW0YEEPgTJC;

1.1
date	2013.12.31.17.59.08;	author rodent;	state Exp;
branches;
next	;
commitid	HZXlkcE1Rn9jqjjx;


desc
@@


1.10
log
@py-greenlet: updated to 3.3.2

3.3.2 (2026-02-20)

- Fix a crash on Python 3.10 if there are active greenlets during
  interpreter shutdown.
@
text
@@@comment $NetBSD: PLIST,v 1.9 2025/07/01 07:10:01 adam Exp $
${PYINC}/greenlet/greenlet.h
${PYSITELIB}/${WHEEL_INFODIR}/METADATA
${PYSITELIB}/${WHEEL_INFODIR}/RECORD
${PYSITELIB}/${WHEEL_INFODIR}/WHEEL
${PYSITELIB}/${WHEEL_INFODIR}/licenses/LICENSE
${PYSITELIB}/${WHEEL_INFODIR}/licenses/LICENSE.PSF
${PYSITELIB}/${WHEEL_INFODIR}/top_level.txt
${PYSITELIB}/greenlet/CObjects.cpp
${PYSITELIB}/greenlet/PyGreenlet.cpp
${PYSITELIB}/greenlet/PyGreenlet.hpp
${PYSITELIB}/greenlet/PyGreenletUnswitchable.cpp
${PYSITELIB}/greenlet/PyModule.cpp
${PYSITELIB}/greenlet/TBrokenGreenlet.cpp
${PYSITELIB}/greenlet/TExceptionState.cpp
${PYSITELIB}/greenlet/TGreenlet.cpp
${PYSITELIB}/greenlet/TGreenlet.hpp
${PYSITELIB}/greenlet/TGreenletGlobals.cpp
${PYSITELIB}/greenlet/TMainGreenlet.cpp
${PYSITELIB}/greenlet/TPythonState.cpp
${PYSITELIB}/greenlet/TStackState.cpp
${PYSITELIB}/greenlet/TThreadState.hpp
${PYSITELIB}/greenlet/TThreadStateCreator.hpp
${PYSITELIB}/greenlet/TThreadStateDestroy.cpp
${PYSITELIB}/greenlet/TUserGreenlet.cpp
${PYSITELIB}/greenlet/__init__.py
${PYSITELIB}/greenlet/__init__.pyc
${PYSITELIB}/greenlet/__init__.pyo
${PYSITELIB}/greenlet/_greenlet.so
${PYSITELIB}/greenlet/greenlet.cpp
${PYSITELIB}/greenlet/greenlet.h
${PYSITELIB}/greenlet/greenlet_allocator.hpp
${PYSITELIB}/greenlet/greenlet_compiler_compat.hpp
${PYSITELIB}/greenlet/greenlet_cpython_compat.hpp
${PYSITELIB}/greenlet/greenlet_exceptions.hpp
${PYSITELIB}/greenlet/greenlet_internal.hpp
${PYSITELIB}/greenlet/greenlet_msvc_compat.hpp
${PYSITELIB}/greenlet/greenlet_refs.hpp
${PYSITELIB}/greenlet/greenlet_slp_switch.hpp
${PYSITELIB}/greenlet/greenlet_thread_support.hpp
${PYSITELIB}/greenlet/platform/__init__.py
${PYSITELIB}/greenlet/platform/__init__.pyc
${PYSITELIB}/greenlet/platform/__init__.pyo
${PYSITELIB}/greenlet/platform/setup_switch_x64_masm.cmd
${PYSITELIB}/greenlet/platform/switch_aarch64_gcc.h
${PYSITELIB}/greenlet/platform/switch_alpha_unix.h
${PYSITELIB}/greenlet/platform/switch_amd64_unix.h
${PYSITELIB}/greenlet/platform/switch_arm32_gcc.h
${PYSITELIB}/greenlet/platform/switch_arm32_ios.h
${PYSITELIB}/greenlet/platform/switch_arm64_masm.asm
${PYSITELIB}/greenlet/platform/switch_arm64_masm.obj
${PYSITELIB}/greenlet/platform/switch_arm64_msvc.h
${PYSITELIB}/greenlet/platform/switch_csky_gcc.h
${PYSITELIB}/greenlet/platform/switch_loongarch64_linux.h
${PYSITELIB}/greenlet/platform/switch_m68k_gcc.h
${PYSITELIB}/greenlet/platform/switch_mips_unix.h
${PYSITELIB}/greenlet/platform/switch_ppc64_aix.h
${PYSITELIB}/greenlet/platform/switch_ppc64_linux.h
${PYSITELIB}/greenlet/platform/switch_ppc_aix.h
${PYSITELIB}/greenlet/platform/switch_ppc_linux.h
${PYSITELIB}/greenlet/platform/switch_ppc_macosx.h
${PYSITELIB}/greenlet/platform/switch_ppc_unix.h
${PYSITELIB}/greenlet/platform/switch_riscv_unix.h
${PYSITELIB}/greenlet/platform/switch_s390_unix.h
${PYSITELIB}/greenlet/platform/switch_sh_gcc.h
${PYSITELIB}/greenlet/platform/switch_sparc_sun_gcc.h
${PYSITELIB}/greenlet/platform/switch_x32_unix.h
${PYSITELIB}/greenlet/platform/switch_x64_masm.asm
${PYSITELIB}/greenlet/platform/switch_x64_masm.obj
${PYSITELIB}/greenlet/platform/switch_x64_msvc.h
${PYSITELIB}/greenlet/platform/switch_x86_msvc.h
${PYSITELIB}/greenlet/platform/switch_x86_unix.h
${PYSITELIB}/greenlet/slp_platformselect.h
${PYSITELIB}/greenlet/tests/__init__.py
${PYSITELIB}/greenlet/tests/__init__.pyc
${PYSITELIB}/greenlet/tests/__init__.pyo
${PYSITELIB}/greenlet/tests/_test_extension.c
${PYSITELIB}/greenlet/tests/_test_extension.so
${PYSITELIB}/greenlet/tests/_test_extension_cpp.cpp
${PYSITELIB}/greenlet/tests/_test_extension_cpp.so
${PYSITELIB}/greenlet/tests/fail_clearing_run_switches.py
${PYSITELIB}/greenlet/tests/fail_clearing_run_switches.pyc
${PYSITELIB}/greenlet/tests/fail_clearing_run_switches.pyo
${PYSITELIB}/greenlet/tests/fail_cpp_exception.py
${PYSITELIB}/greenlet/tests/fail_cpp_exception.pyc
${PYSITELIB}/greenlet/tests/fail_cpp_exception.pyo
${PYSITELIB}/greenlet/tests/fail_initialstub_already_started.py
${PYSITELIB}/greenlet/tests/fail_initialstub_already_started.pyc
${PYSITELIB}/greenlet/tests/fail_initialstub_already_started.pyo
${PYSITELIB}/greenlet/tests/fail_slp_switch.py
${PYSITELIB}/greenlet/tests/fail_slp_switch.pyc
${PYSITELIB}/greenlet/tests/fail_slp_switch.pyo
${PYSITELIB}/greenlet/tests/fail_switch_three_greenlets.py
${PYSITELIB}/greenlet/tests/fail_switch_three_greenlets.pyc
${PYSITELIB}/greenlet/tests/fail_switch_three_greenlets.pyo
${PYSITELIB}/greenlet/tests/fail_switch_three_greenlets2.py
${PYSITELIB}/greenlet/tests/fail_switch_three_greenlets2.pyc
${PYSITELIB}/greenlet/tests/fail_switch_three_greenlets2.pyo
${PYSITELIB}/greenlet/tests/fail_switch_two_greenlets.py
${PYSITELIB}/greenlet/tests/fail_switch_two_greenlets.pyc
${PYSITELIB}/greenlet/tests/fail_switch_two_greenlets.pyo
${PYSITELIB}/greenlet/tests/leakcheck.py
${PYSITELIB}/greenlet/tests/leakcheck.pyc
${PYSITELIB}/greenlet/tests/leakcheck.pyo
${PYSITELIB}/greenlet/tests/test_contextvars.py
${PYSITELIB}/greenlet/tests/test_contextvars.pyc
${PYSITELIB}/greenlet/tests/test_contextvars.pyo
${PYSITELIB}/greenlet/tests/test_cpp.py
${PYSITELIB}/greenlet/tests/test_cpp.pyc
${PYSITELIB}/greenlet/tests/test_cpp.pyo
${PYSITELIB}/greenlet/tests/test_extension_interface.py
${PYSITELIB}/greenlet/tests/test_extension_interface.pyc
${PYSITELIB}/greenlet/tests/test_extension_interface.pyo
${PYSITELIB}/greenlet/tests/test_gc.py
${PYSITELIB}/greenlet/tests/test_gc.pyc
${PYSITELIB}/greenlet/tests/test_gc.pyo
${PYSITELIB}/greenlet/tests/test_generator.py
${PYSITELIB}/greenlet/tests/test_generator.pyc
${PYSITELIB}/greenlet/tests/test_generator.pyo
${PYSITELIB}/greenlet/tests/test_generator_nested.py
${PYSITELIB}/greenlet/tests/test_generator_nested.pyc
${PYSITELIB}/greenlet/tests/test_generator_nested.pyo
${PYSITELIB}/greenlet/tests/test_greenlet.py
${PYSITELIB}/greenlet/tests/test_greenlet.pyc
${PYSITELIB}/greenlet/tests/test_greenlet.pyo
${PYSITELIB}/greenlet/tests/test_greenlet_trash.py
${PYSITELIB}/greenlet/tests/test_greenlet_trash.pyc
${PYSITELIB}/greenlet/tests/test_greenlet_trash.pyo
${PYSITELIB}/greenlet/tests/test_interpreter_shutdown.py
${PYSITELIB}/greenlet/tests/test_interpreter_shutdown.pyc
${PYSITELIB}/greenlet/tests/test_interpreter_shutdown.pyo
${PYSITELIB}/greenlet/tests/test_leaks.py
${PYSITELIB}/greenlet/tests/test_leaks.pyc
${PYSITELIB}/greenlet/tests/test_leaks.pyo
${PYSITELIB}/greenlet/tests/test_stack_saved.py
${PYSITELIB}/greenlet/tests/test_stack_saved.pyc
${PYSITELIB}/greenlet/tests/test_stack_saved.pyo
${PYSITELIB}/greenlet/tests/test_throw.py
${PYSITELIB}/greenlet/tests/test_throw.pyc
${PYSITELIB}/greenlet/tests/test_throw.pyo
${PYSITELIB}/greenlet/tests/test_tracing.py
${PYSITELIB}/greenlet/tests/test_tracing.pyc
${PYSITELIB}/greenlet/tests/test_tracing.pyo
${PYSITELIB}/greenlet/tests/test_version.py
${PYSITELIB}/greenlet/tests/test_version.pyc
${PYSITELIB}/greenlet/tests/test_version.pyo
${PYSITELIB}/greenlet/tests/test_weakref.py
${PYSITELIB}/greenlet/tests/test_weakref.pyc
${PYSITELIB}/greenlet/tests/test_weakref.pyo
@


1.9
log
@py-greenlet: updated to 3.2.3

3.2.3 (2025-06-05)

- Make greenlet build and run on Python 3.14 beta 2 on Windows amd64.
- Potentially fix build on NetBSD/sparc64.
@
text
@d1 1
a1 1
@@comment $NetBSD: PLIST,v 1.8 2025/04/21 05:51:41 adam Exp $
d129 3
@


1.8
log
@py-greenlet: updated to 3.2.0

3.2.0 (2025-04-15)

- Remove support for Python 3.7 and 3.8.
- Add untested, community supported implementation for RiscV 32.
- Make greenlet build and run on Python 3.14a7. It will not build on
  earlier 3.14 alpha releases, and may not build on later 3.14
  releases.
- Packaging: Use :pep:`639` license expressions and include license files.
@
text
@d1 1
a1 1
@@comment $NetBSD: PLIST,v 1.7 2025/04/12 11:08:22 adam Exp $
d37 1
@


1.7
log
@Fix PLIST after py-setuptools update; bump depends and revision
@
text
@d1 1
a1 1
@@comment $NetBSD: PLIST,v 1.6 2024/10/01 20:07:24 adam Exp $
a5 1
${PYSITELIB}/${WHEEL_INFODIR}/licenses/AUTHORS
a33 1
${PYSITELIB}/greenlet/greenlet_cpython_add_pending.hpp
@


1.6
log
@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.
@
text
@d1 1
a1 1
@@comment $NetBSD: PLIST,v 1.5 2024/09/14 08:20:21 adam Exp $
a2 3
${PYSITELIB}/${WHEEL_INFODIR}/AUTHORS
${PYSITELIB}/${WHEEL_INFODIR}/LICENSE
${PYSITELIB}/${WHEEL_INFODIR}/LICENSE.PSF
d6 3
@


1.5
log
@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.
@
text
@d1 1
a1 1
@@comment $NetBSD: PLIST,v 1.4 2023/10/29 16:56:42 wiz Exp $
d10 5
d18 1
d23 2
a37 1
${PYSITELIB}/greenlet/greenlet_greenlet.hpp
a40 2
${PYSITELIB}/greenlet/greenlet_thread_state.hpp
${PYSITELIB}/greenlet/greenlet_thread_state_dict_cleanup.hpp
@


1.4
log
@py-greenlet: update to 3.0.1.

Switch to wheel.mk.

3.0.1 (2023-10-25)
==================

- Fix a potential crash on Python 3.8 at interpreter shutdown time.
  This was a regression from earlier 3.0.x releases. Reported by Matt
  Wozniski in `issue 376 <https://github.com/python-greenlet/greenlet/issues/376>`_.



3.0.0 (2023-10-02)
==================

- No changes from 3.0rc3 aside from the version number.


3.0.0rc3 (2023-09-12)
=====================

- Fix an intermittent error during process termination on some
  platforms (GCC/Linux/libstdc++).


3.0.0rc2 (2023-09-09)
=====================

- Fix some potential bugs (assertion failures and memory leaks) in
  previously-untested error handling code. In some cases, this means
  that the process will execute a controlled ``abort()`` after severe
  trouble when previously the process might have continued for some
  time with a corrupt state. It is unlikely those errors occurred in
  practice.
- Fix some assertion errors and potential bugs with re-entrant
  switches.
- Fix a potential crash when certain compilers compile greenlet with
  high levels of optimization. The symptom would be that switching to
  a greenlet for the first time immediately crashes.
- Fix a potential crash when the callable object passed to the
  greenlet constructor (or set as the ``greenlet.run`` attribute) has
  a destructor attached to it that switches. Typically, triggering
  this issue would require an unlikely subclass of
  ``greenlet.greenlet``.
- Python 3.11+: Fix rare switching errors that could occur when a
  garbage collection was triggered during the middle of a switch, and
  Python-level code in ``__del__`` or weakref callbacks switched to a
  different greenlet and ultimately switched back to the original
  greenlet. This often manifested as a ``SystemError``: "switch
  returned NULL without an exception set."

For context on the fixes, see `gevent issue #1985
<https://github.com/gevent/gevent/issues/1985>`_.

3.0.0rc1 (2023-09-01)
=====================

- Windows wheels are linked statically to the C runtime in an effort
  to prevent import errors on systems without the correct C runtime
  installed. It's not clear if this will make the situation better or
  worse, so please share your experiences in `issue 346
  <https://github.com/python-greenlet/greenlet/issues/346>`_.

  Note that this only applies to the binary wheels found on PyPI.
  Building greenlet from source defaults to the shared library. Set
  the environment variable ``GREENLET_STATIC_RUNTIME=1`` at build time
  to change that.
- Build binary wheels for Python 3.12 on macOS.
- Fix compiling greenlet on a debug build of CPython 3.12. There is
  `one known issue
  <https://github.com/python-greenlet/greenlet/issues/368>`_ that
  leads to an interpreter crash on debug builds.
- Python 3.12: Fix walking the frame stack of suspended greenlets.
  Previously accessing ``glet.gr_frame.f_back`` would crash due to
  `changes in CPython's undocumented internal frame handling <https://github.com/python/cpython/commit/1e197e63e21f77b102ff2601a549dda4b6439455>`_.

Platforms
---------
- Now, greenlet *may* compile and work on Windows ARM64 using
  llvm-mingw, but this is untested and unsupported. See `PR
  <https://github.com/python-greenlet/greenlet/pull/224>`_ by Adrian
  Vladu.
- Now, greenlet *may* compile and work on LoongArch64 Linux systems,
  but this is untested and unsupported. See `PR 257
  <https://github.com/python-greenlet/greenlet/pull/257/files>`_ by merore.

Known Issues
------------

- There may be (very) subtle issues with tracing on Python 3.12, which
  has redesigned the entire tracing infrastructure.

3.0.0a1 (2023-06-21)
====================

- Build binary wheels for S390x Linux. See `PR 358
  <https://github.com/python-greenlet/greenlet/pull/358>`_ from Steven
  Silvester.
- Fix a rare crash on shutdown seen in uWSGI deployments. See `issue
  330 <https://github.com/python-greenlet/greenlet/issues/330>`_ and `PR 356
  <https://github.com/python-greenlet/greenlet/pull/356>`_ from Andrew
  Wason.
- Make the platform-specific low-level C/assembly snippets stop using
  the ``register`` storage class. Newer versions of standards remove
  this storage class, and it has been generally ignored by many
  compilers for some time. See `PR 347
  <https://github.com/python-greenlet/greenlet/pull/347>`_ from Khem
  Raj.
- Add initial support for Python 3.12. See `issue
  <https://github.com/python-greenlet/greenlet/issues/323>`_ and `PR
  <https://github.com/python-greenlet/greenlet/pull/327>`_; thanks go
  to (at least) Michael Droettboom, Andreas Motl, Thomas A Caswell,
  raphaelauv, Hugo van Kemenade, Mark Shannon, and Petr Viktorin.
- Remove support for end-of-life Python versions, including Python
  2.7, Python 3.5 and Python 3.6.
- Require a compiler that supports ``noinline`` directives. See
  `issue 271
  <https://github.com/python-greenlet/greenlet/issues/266>`_.
- Require a compiler that supports C++11.
@
text
@d1 1
a1 1
@@comment $NetBSD$
d61 1
@


1.3
log
@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.
@
text
@d1 1
a1 1
@@comment $NetBSD: PLIST,v 1.2 2021/03/03 18:05:01 adam Exp $
d3 16
a18 6
${PYSITELIB}/${EGG_INFODIR}/PKG-INFO
${PYSITELIB}/${EGG_INFODIR}/SOURCES.txt
${PYSITELIB}/${EGG_INFODIR}/dependency_links.txt
${PYSITELIB}/${EGG_INFODIR}/not-zip-safe
${PYSITELIB}/${EGG_INFODIR}/requires.txt
${PYSITELIB}/${EGG_INFODIR}/top_level.txt
d27 1
d50 1
d76 21
@


1.2
log
@py-greenlet: updated to 1.0.0

1.0.0 (2021-01-13)

Fix %s and %r formatting of a greenlet on Python 2. Previously it would result in a Unicode string instead of a native string. See issue 218.
Move continuous integration from Travis CI to Github Actions.


1.0a1 (2020-11-20)

Add the ability to set a greenlet's PEP 567 contextvars context directly, by assigning to the greenlet's gr_context attribute. This restores support for some patterns of using greenlets atop an async environment that became more challenging in 0.4.17. Thanks to Joshua Oreman, Mike bayer, and Fantix King, among others. See PR 198.
The repr of greenlet objects now includes extra information about its state. This is purely informative and the details are subject to change. See issue 215.
The greenlet module is now a package. There are no API changes, so all existing imports, including from C code, should continue to work.
(C API) The undocumented GREENLET_VERSION macro that defined a string giving the greenlet version is now deprecated and will not be updated.
(Documentation) Publish the change log to https://greenlet.readthedocs.io
Supported Platforms

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.
Add partial support for AIX ppc64 and IBM i. Thanks to Jesse Gorzinski and Kevin Adler. See PR 197.
Packaging Changes

Require setuptools to build from source.
Stop asking setuptools to build both .tar.gz and .zip sdists. PyPI has standardized on .tar.gz for all platforms.
Stop using a custom distutils command to build extensions. distutils is deprecated.
Remove the ability to use the deprecated command python setup.py test. Run greenlet tests with your favorite unittest-compatible test runner, e.g., python -m unittest discover greenlet.tests. See issue 185.
The directory layout and resulting sdists have changed. See issue 184.
greenlet is now always built with support for tracing and garbage collection, and, on Python 3.7 and above, support for context variables. The internal and undocumented C preprocessor macros that could be used to alter that at compile time have been removed (no combination other than the defaults was ever tested). This helps define a stable ABI.
@
text
@d1 1
a1 1
@@comment $NetBSD: PLIST,v 1.1 2013/12/31 17:59:08 rodent Exp $
d13 1
a13 1
${PYSITELIB}/greenlet/greenlet.c
d15 14
d35 3
d64 3
d88 3
@


1.1
log
@Import py27-greenlet-0.4.1 as devel/py-greenlet. Packaged in pkgsrc-wip by
kamel.derouiche@@gmail.com

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.
@
text
@d1 1
a1 1
@@comment $NetBSD$
d3 83
a85 2
${PYSITELIB}/${EGG_FILE}
${PYSITELIB}/greenlet.so
@

