[proxy] web.archive.org← back | site home | direct (HTTPS) ↗ | proxy home | ◑ dark◐ light

python/cpython

erlend-aasland

Commits on Nov 7, 2020

  1. bpo-42282: Fold constants inside named expressions (GH-23190)

    * The AST optimiser wasn't descending into named expressions, so
      any constant subexpressions weren't being folded at compile time
    * Remove "default:" clauses inside the AST optimiser code to reduce the
      risk of similar bugs passing unnoticed in future compiler changes

Commits on Nov 5, 2020

  1. bpo-42260: PyConfig_Read() only parses argv once (GH-23168)

    The PyConfig_Read() function now only parses PyConfig.argv arguments
    once: PyConfig.parse_argv is set to 2 after arguments are parsed.
    Since Python arguments are strippped from PyConfig.argv, parsing
    arguments twice would parse the application options as Python
    options.
    
    * Rework the PyConfig documentation.
    * Fix _testinternalcapi.set_config() error handling.
    * SetConfigTests no longer needs parse_argv=0 when restoring the old
      configuration.
  2. bpo-42260: Add _PyConfig_FromDict() (GH-23167)

    * Rename config_as_dict() to _PyConfig_AsDict().
    * Add 'module_search_paths_set' to _PyConfig_AsDict().
    * Add _PyConfig_FromDict().
    * Add get_config() and set_config() to _testinternalcapi.
    * Add config_check_consistency().
  3. bpo-41877 Check for asert, aseert, assrt in mocks (GH-23165)

    Currently, a Mock object which is not unsafe will raise an
    AttributeError if an attribute with the prefix assert or assret is
    accessed on it. This protects against misspellings of real assert
    method calls, which lead to tests passing silently even if the tested
    code does not satisfy the intended assertion.
    
    Recently a check was done in a large code base (Google) and three
    more frequent ways of misspelling assert were found causing harm:
    asert, aseert, assrt. These are now added to the existing check.

Commits on Nov 4, 2020

  1. bpo-42260: Add _PyInterpreterState_SetConfig() (GH-23158)

    * Inline _PyInterpreterState_SetConfig(): replace it with
      _PyConfig_Copy().
    * Add _PyErr_SetFromPyStatus()
    * Add _PyInterpreterState_GetConfigCopy()
    * Add a new _PyInterpreterState_SetConfig() function.
    * Add an unit which gets, modifies, and sets the config.
  2. bpo-42260: Main init modify sys.flags in-place (GH-23150)

    When Py_Initialize() is called twice, the second call now updates
    more sys attributes for the configuration, rather than only sys.argv.
    
    * Rename _PySys_InitMain() to _PySys_UpdateConfig().
    * _PySys_UpdateConfig() now modifies sys.flags in-place, instead of
      creating a new flags object.
    * Remove old commented sys.flags flags (unbuffered and skip_first).
    * Add private _PySys_GetObject() function.
    * When Py_Initialize(), Py_InitializeFromConfig() and
  3. bpo-42260: Reorganize PyConfig (GH-23149)

    * Move orig_argv before argv
    * Move program_name and platlibdir with other path configuration
      inputs
    
    Give a name to the PyPreConfig and PyConfig structures and separate
    the type definitions.

Commits on Nov 3, 2020

  1. bpo-41796: Call _PyAST_Fini() earlier to fix a leak (GH-23131)

    Call _PyAST_Fini() on all interpreters, not only on the main
    interpreter. Also, call it ealier to fix a reference leak.
    
    Python types contain a reference to themselves in in their
    PyTypeObject.tp_mro member. _PyAST_Fini() must called before the last
    GC collection to destroy AST types.
    
    _PyInterpreterState_Clear() now calls _PyAST_Fini(). It now also
    calls _PyWarnings_Fini() on subinterpeters, not only on the main
    interpreter.
    
    Add an assertion in AST init_types() to ensure that the _ast module
    is no longer used after _PyAST_Fini() has been called.