In the Python 3.8.3rc1 changelog, I see these two changes:
(1) bpo-39776: Fix race condition where threads created by PyGILState_Ensure() could get a duplicate id. This affects consumers of tstate->id like the contextvar caching machinery, which could return invalid cached objects under heavy thread load (observed in embedded scenarios).
(2) bpo-39794: Add --without-decimal-contextvar build option. This enables a thread-local rather than a coroutine local context.
If I understood correctly, these two changes are related. --without-decimal-contextvar is mostly a workaround to avoid bpo-39776 bug, but bpo-39776 has been fixed. Am I right? Should be remove --without-decimal-contextvar build option? In bpo-39794, Stefan Krah wrote "I want to understand the code again, so I'm adding back a compile time option to enable the thread local context".
This topic was already discussed 2 months ago: https://email@example.com/thread/5X...
Stefan rationale was bpo-39776 bug (which is now fixed):
"While the exact cause is yet unknown (it can be anything like a bug in the interpreter unrelated to ContextVars), I would like to be able to tell people in the future to compile --without-decimal-contextvar if they have such an issue and need a hotfix for their production 3.7."
Is it common to get issues caused by contextvars in decimal? It seems like the only known issue has been fixed, no?
What is the "hotfix" use case? An user requires a decimal fix immediately and cannot wait for the next Python release which will include a fix? I don't think that Python has other build options like that so it's a little bit surprising.
The question is now if we want to support a new build option. Do we want to maintain this new build option?
Le jeu. 30 avr. 2020 à 01:08, Łukasz Langa firstname.lastname@example.org a écrit :
Python 3.8.3rc1 is the release candidate of the third maintenance release of Python 3.8. Go get it here:
Assuming no critical problems are found prior to 2020-05-11, the scheduled release date for 3.8.3, no code changes are planned between this release candidate and the final release.
That being said, please keep in mind that this is a pre-release and as such its main purpose is testing.
Maintenance releases for the 3.8 series will continue at regular bi-monthly intervals, with 3.8.4 planned for mid-July 2020.
The Python 3.8 series is the newest feature release of the Python language, and it contains many new features and optimizations. See the “What’s New in Python 3.8 ” document for more information about features included in the 3.8 series.
Detailed information about all changes made in version 3.8.3 specifically can be found in its change log.
We hope you enjoy Python 3.8!
Thanks to all of the many volunteers who help make Python Development and these releases possible! Please consider supporting our efforts by volunteering yourself or through organization contributions to the Python Software Foundation.
Your friendly release team, Ned Deily @nad Steve Dower @steve.dower Łukasz Langa @ambv
python-committers mailing list -- email@example.com To unsubscribe send an email to firstname.lastname@example.org https://mail.python.org/mailman3/lists/python-committers.python.org/ Message archived at https://email@example.com/message/X... Code of Conduct: https://www.python.org/psf/codeofconduct/