• Victor Stinner's avatar
    bpo-35713: Rework Python initialization (GH-11647) · bf4ac2d2
    Victor Stinner authored
    * The PyByteArray_Init() and PyByteArray_Fini() functions have been
      removed. They did nothing since Python 2.7.4 and Python 3.2.0, were
      excluded from the limited API (stable ABI), and were not
      documented.
    * Move "_PyXXX_Init()" and "_PyXXX_Fini()" declarations from
      Include/cpython/pylifecycle.h to
      Include/internal/pycore_pylifecycle.h. Replace
      "PyAPI_FUNC(TYPE)" with "extern TYPE".
    * _PyExc_Init() now returns an error on failure rather than calling
      Py_FatalError(). Move macros inside _PyExc_Init() and undefine them
      when done. Rewrite macros to make them look more like statement:
      add ";" when using them, add "do { ... } while (0)".
    * _PyUnicode_Init() now returns a _PyInitError error rather than call
      Py_FatalError().
    * Move stdin check from _PySys_BeginInit() to init_sys_streams().
    * _Py_ReadyTypes() now returns a _PyInitError error rather than
      calling Py_FatalError().
    bf4ac2d2
sysmodule.c 82.4 KB