Nick Coghlan <ncogh...@gmail.com> added the comment:

This shouldn't affect the public ABI, so I don't think it's a blocker for the 
ABI freeze, but it's a regression that effectively makes PySys_AddWarnOption 
(and related APIs) unusable, so we should definitely fix it before shipping 3.7.

For now, I've marked the bug as critical, and I'll be aiming to have it fixed 
before 3.7.0b3 at the end of the month.

For PySys_AddWarnOption and PySys_ResetWarnOptions, my current plan is to 
adjust them to maintain a singly-linked list of "wchar *" pointers when called 
prior to _Py_InitializeCore (i.e. when "PyThreadState_GET() == NULL"), while 
using the existing 3.7.0b2 path when the thread state is available. 
_Py_InitializeCore will then take care of cleaning up the memory allocations 
while converting them to Python unicode entries in a Python list object.

_PySys_AddXOption would work similarly (just with a separate list).

For PySys_AddWarnOptionUnicode, I think we need to make it call Py_FatalError 
for 3.7 when called prior to Py_Initialize, with a recommendation to use 
PySys_AddWarnOption instead. In 3.8, that API will become useful again, once 
the public Py_InitializeCore API provides a supported multi-stage startup 
process that allows unicode objects to be created safely before 
Py_InitializeMainInterpreter (or whatever we end up calling that API) reads 
sys.warnoptions and configures the warning subsystem accordingly.

----------
priority: normal -> critical

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue33042>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to