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

python/cpython

hauntsaninja

Commits on Dec 26, 2020

  1. bpo-40521: Per-interpreter interned strings (GH-20085)

    Make the Unicode dictionary of interned strings compatible with
    subinterpreters.
    
    Remove the INTERN_NAME_STRINGS macro in typeobject.c: names are
    always now interned (even if EXPERIMENTAL_ISOLATED_SUBINTERPRETERS
    macro is defined).
    
    _PyUnicode_ClearInterned() now uses PyDict_Next() to no longer
    allocate memory, to ensure that the interned dictionary is cleared.
  2. bpo-42745: Make the type cache per-interpreter (GH-23947)

    Make the type attribute lookup cache per-interpreter.
    
    Add private _PyType_InitCache() function, called by PyInterpreterState_New().
    
    Continue to share next_version_tag between interpreters, since static
    types are still shared by interpreters.
    
    Remove MCACHE macro: the cache is no longer disabled if the
    EXPERIMENTAL_ISOLATED_SUBINTERPRETERS macro is defined.

Commits on Dec 25, 2020

  1. bpo-39465: Fix _PyUnicode_FromId() for subinterpreters (GH-20058)

    Make _PyUnicode_FromId() function compatible with subinterpreters.
    Each interpreter now has an array of identifier objects (interned
    strings decoded from UTF-8).
    
    * Add PyInterpreterState.unicode.identifiers: array of identifiers
      objects.
    * Add _PyRuntimeState.unicode_ids used to allocate unique indexes
      to _Py_Identifier.
    * Rewrite the _Py_Identifier structure.
    
    Microbenchmark on _PyUnicode_FromId(&PyId_a) with _Py_IDENTIFIER(a):
    
    [ref] 2.42 ns +- 0.00 ns -> [atomic] 3.39 ns +- 0.00 ns: 1.40x slower
    
    This change adds 1 ns per _PyUnicode_FromId() call in average.
  2. bpo-42721: Improve using simple dialogs without root window (GH-23897)

    When simple query dialogs (tkinter.simpledialog), message boxes
    (tkinter.messagebox) or color choose dialog (tkinter.colorchooser)
    are created without arguments master and parent, and the default
    root window is not yet created, a new temporary hidden root window
    will be created automatically. It will not be set as the default root
    window and will be destroyed right after closing the dialog window.
    It will help to use these simple dialog windows in programs which do
    not need other GUI.
    
    Previously, message boxes and color chooser created the blank root
    window and left it after closing the dialog window, and query dialogs
    just raised an exception.
    
    Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu>
  3. bpo-42388: Fix subprocess.check_output input=None when text=True (GH-…

    …23467)
    
    When the modern text= spelling of the universal_newlines= parameter was added
    for Python 3.7, check_output's special case around input=None was overlooked.
    So it behaved differently with universal_newlines=True vs text=True.  This
    reconciles the behavior to be consistent and adds a test to guarantee it.
    
    Also clarifies the existing check_output documentation.
    
    Co-authored-by: Alexey Izbyshev <izbyshev@ispras.ru>
  4. bpo-42727: Fix the NEWS entry .rst (GH-23932)

    It was causing CI failures.  the offending file came from #23917
    
    ```
    python3 tools/rstlint.py ../Misc/NEWS.d/next/
    [2] ../Misc/NEWS.d/next/Library/2020-12-23-19-43-06.bpo-42727.WH3ODh.rst:1: default role used
    [2] ../Misc/NEWS.d/next/Library/2020-12-23-19-43-06.bpo-42727.WH3ODh.rst:2: default role used
    2 problems with severity 2 found.
    Makefile:204: recipe for target 'check' failed
    ```

Commits on Dec 24, 2020

  1. closes bpo-42726: gdb libpython: InstanceProxy support for py3 (GH-23912

    )
    
    On Fedora 31 gdb is using python 3.7.9, calling `proxyval` on an instance with a dictionary fails because of the `dict.iteritems` usage. This PR changes the code to be compatible with py2 and py3.
    
    This changed seemed small enough to not need an issue and news blurb, if one is required please let me know.
    
    Automerge-Triggered-By: GH:benjaminp
  2. bpo-42195: Override _CallableGenericAlias's __getitem__ (GH-23915)

    Added `__getitem__` for `_CallableGenericAlias` so that it returns a subclass (itself) of `types.GenericAlias` rather than the default behavior of returning a plain `types.GenericAlias`. This fixes `repr` issues occuring after `TypeVar` substitution arising from the previous behavior.

Commits on Dec 23, 2020

  1. bpo-32381: pymain_run_command() uses PyCF_IGNORE_COOKIE (GH-23724)

    The coding cookie (ex: "# coding: latin1") is now ignored in the
    command passed to the -c command line option.
    
    Since pymain_run_command() uses UTF-8, pass PyCF_IGNORE_COOKIE
    compiler flag to the parser.
    
    pymain_run_python() no longer propages compiler flags between
    function calls.