Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

gh-108634: PyInterpreterState_New() no longer calls Py_FatalError() #108748

Merged
merged 1 commit into from Sep 1, 2023

Conversation

vstinner
Copy link
Member

@vstinner vstinner commented Sep 1, 2023

PyInterpreterState_New() now raises a RuntimeError, instead of calling Py_FatalError() on error. And pycore_create_interpreter() now returns a status exception on error, rather than calling Py_FatalError().

  • Add _PyInterpreterState_New() function.
  • Replace Py_FatalError() with PyStatus in init_interpreter() and _PyObject_InitState().
  • _PyErr_SetFromPyStatus() now raises RuntimeError, instead of ValueError. It can now call PyErr_NoMemory() if it detects _PyStatus_NO_MEMORY().
  • init_runtime() cannot be called with _initialized=1: add an assertion in the caller instead.

pycore_create_interpreter() now returns a status exception on error,
rather than calling Py_FatalError().

* PyInterpreterState_New() now calls Py_ExitStatusException() instead
  of calling Py_FatalError() directly.
* Replace Py_FatalError() with PyStatus in init_interpreter() and
  _PyObject_InitState().
* _PyErr_SetFromPyStatus() now raises RuntimeError, instead of
  ValueError. It can now call PyErr_NoMemory() if it detects
  _PyStatus_NO_MEMORY().
* init_runtime() cannot be called with _initialized=1: add an
  assertion in the caller instead.
@vstinner vstinner merged commit b936cf4 into python:main Sep 1, 2023
21 checks passed
@vstinner vstinner deleted the init_pystatus branch September 1, 2023 10:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants