Skip to content

bpo-32030: Enhance Py_Main() #4412

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

Merged
merged 2 commits into from
Nov 16, 2017
Merged

bpo-32030: Enhance Py_Main() #4412

merged 2 commits into from
Nov 16, 2017

Conversation

vstinner
Copy link
Member

@vstinner vstinner commented Nov 16, 2017

Parse more env vars in Py_Main():

  • Add more options to _PyCoreConfig:

    • faulthandler
    • tracemalloc
    • importtime
  • Move code to parse environment variables from _Py_InitializeCore()
    to Py_Main(). This change fixes a regression from Python 3.6:
    PYTHONUNBUFFERED is now read before calling pymain_init_stdio().

  • _PyFaulthandler_Init() and _PyTraceMalloc_Init() now take an
    argument to decide if the module has to be enabled at startup.

  • tracemalloc_start() is now responsible to check the maximum number
    of frames.

Other changes:

  • Cleanup Py_Main():

    • Rename some pymain_xxx() subfunctions
    • Add pymain_run_python() subfunction
  • Cleanup Py_NewInterpreter()

  • _PyInterpreterState_Enable() now reports failure

  • init_hash_secret() now considers pyurandom() failure as an "user
    error": don't fail with abort().

  • pymain_optlist_append() and pymain_strdup() now sets err on memory
    allocation failure.

https://bugs.python.org/issue32030

Parse more env vars in Py_Main():

* Add more options to _PyCoreConfig:

  * faulthandler
  * tracemalloc
  * importtime

* Move code to parse environment variables from _Py_InitializeCore()
  to Py_Main(). This change fixes a regression from Python 3.6:
  PYTHONUNBUFFERED is now read before calling pymain_init_stdio().
* _PyFaulthandler_Init() and _PyTraceMalloc_Init() now take an
  argument to decide if the module has to be enabled at startup.
* tracemalloc_start() is now responsible to check the maximum number
  of frames.

Other changes:

* Cleanup Py_Main():

  * Rename some pymain_xxx() subfunctions
  * Add pymain_run_python() subfunction

* Cleanup Py_NewInterpreter()
* _PyInterpreterState_Enable() now reports failure
* init_hash_secret() now considers pyurandom() failure as an "user
  error": don't fail with abort().
* pymain_optlist_append() and pymain_strdup() now sets err on memory
  allocation failure.
@vstinner vstinner merged commit a7368ac into python:master Nov 16, 2017
@vstinner vstinner deleted the cmdline2 branch November 16, 2017 02:11
jimmylai added a commit to jimmylai/cpython that referenced this pull request Nov 17, 2017
* 'master' of https://github.com/python/cpython: (550 commits)
  bpo-31867: Remove duplicates in default mimetypes. (python#4388)
  tokenizer: Remove unused tabs options (python#4422)
  bpo-31691: Specify where to find build instructions for the Windows installer (python#4426)
  Fix typo in atexit documentation. (pythonGH-4419)
  bpo-31702: Allow to specify rounds for SHA-2 hashing in crypt.mksalt(). (python#4110)
  bpo-32043: New "developer mode": "-X dev" option (python#4413)
  bpo-30349: Raise FutureWarning for nested sets and set operations (python#1553)
  bpo-32037: Use the INT opcode for 32-bit integers in protocol 0 pickles. (python#4407)
  bpo-30143: 2to3 now generates a code that uses abstract collection classes (python#1262)
  bpo-32030: Enhance Py_Main() (python#4412)
  bpo-32030: Split Py_Main() into subfunctions (python#4399)
  bpo-32034: Make IncompleteReadError & LimitOverrunError pickleable python#4409
  bpo-32025: Add time.thread_time() (python#4410)
  bpo-32018: Fix inspect.signature repr to follow PEP 8 (python#4408)
  bpo-30399: Get rid of trailing comma in the repr of BaseException. (python#1650)
  bpo-30950: Convert round() to Argument Clinic. (python#2740)
  bpo-32011: Revert "Issue python#15480: Remove the deprecated and unused TYPE_INT64 code from marshal." (python#4381)
  bpo-32023: Disallow genexprs without parenthesis in class definitions. (python#4400)
  bpo-31949: Fixed several issues in printing tracebacks (PyTraceBack_Print()). (python#4289)
  bpo-32032: Test both implementations of module-level pickle API. (python#4401)
  ...
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.

3 participants