python-greenlet / greenlet

Lightweight in-process concurrent programming
Other
1.63k stars 247 forks source link

Declare support for Python 3.12 in trove classifiers #389

Closed edgarrmondragon closed 9 months ago

jamadden commented 9 months ago

Thanks, I don't know how I missed that.

mgorny commented 9 months ago

Is it supported though? Bug #368 suggests that it's broken.

edgarrmondragon commented 9 months ago

Is it supported though? Bug #368 suggests that it's broken.

Right. I can confirm that's still present on the debug build of latest 3.12.

jamadden commented 9 months ago

Yes, that's a known issue --- one of several on 3.12. I don't expect them to affect most people, and the greenlet tests, as well as gevent's very extensive test suite, all pass on 3.12.

mgorny commented 9 months ago

The tests don't pass — they crash on assertions:

test_trace_events_multiple_greenlets_switching (greenlet.tests.test_tracing.TestPythonTracing.test_trace_events_multiple_greenlets_switching) ... python: Python/instrumentation.c:956: call_instrumentation_vector: Assertion `code->_co_instrumentation_version == tstate->interp->monitoring_version' failed.
py312: exit -6 (26.15 seconds) /tmp/greenlet> python -m unittest discover -v greenlet.tests pid=22112
.pkg: _exit> python /usr/lib/python3.12/site-packages/pyproject_api/_backend.py True setuptools.build_meta
  py312: FAIL code -6 (45.48=setup[19.31]+cmd[0.02,26.15] seconds)
  evaluation failed :( (45.71 seconds)
jamadden commented 9 months ago

In a debug build of Python, yes, they crash. But most people aren't using a debug build of Python.

mgorny commented 9 months ago

I don't understand why people don't use debug builds on CI. Don't they want to know about breakage that's not visible in release builds? (such as API violations)