The Wayback Machine - https://web.archive.org/web/20201026094353/https://github.com/python/cpython/commits/master
Skip to content
Permalink
master

Commits on Oct 26, 2020

  1. bpo-42006: Stop using PyDict_GetItem, PyDict_GetItemString and _PyDic…

    …t_GetItemId. (GH-22648)
    
    These functions are considered not safe because they suppress all internal errors
    and can return wrong result.  PyDict_GetItemString and _PyDict_GetItemId can
    also silence current exception in rare cases.
    
    Remove no longer used _PyDict_GetItemId.
    Add _PyDict_ContainsId and rename _PyDict_Contains into
    _PyDict_Contains_KnownHash.
    serhiy-storchaka committed Oct 26, 2020
  2. Added some makefile generated files to .gitignore (GH-22435)

    Marco-Sulla committed Oct 26, 2020
  3. Add a link to buffer protocol in bytearray() doc (GH-22675)

    awecx committed Oct 26, 2020
  4. bpo-42146: Fix memory leak in subprocess.Popen() in case of uid/gid o…

    …verflow (GH-22966)
    
    Fix memory leak in subprocess.Popen() in case of uid/gid overflow
    
    Also add a test that would catch this leak with `--huntrleaks`.
    
    Alas, the test for `extra_groups` also exposes an inconsistency
    in our error reporting: we use a custom ValueError for `extra_groups`,
    but propagate OverflowError for `user` and `group`.
    izbyshev committed Oct 26, 2020

Commits on Oct 25, 2020

  1. bpo-42150: Avoid buffer overflow in the new parser (GH-22978)

    pablogsal committed Oct 25, 2020
  2. bpo-42043: Add support for zipfile.Path subclasses (#22716)

    * bpo-42043: Add support for zipfile.Path inheritance as introduced in zipp 3.2.0.
    
    * Add blurb.
    jaraco committed Oct 25, 2020
  3. bpo-41919: Avoid resource leak in test_io (GH-22973)

    Co-authored-by: Pablo Galindo <[email protected]>
    shihai1991 and pablogsal committed Oct 25, 2020
  4. bpo-41490: ``path`` and ``contents`` to aggressively close handles (#…

    …22915)
    
    * bpo-41490: ``path`` method to aggressively close handles
    
    * Add blurb
    
    * In ZipReader.contents, eagerly evaluate the contents to release references to the zipfile.
    
    * Instead use _ensure_sequence to ensure any iterable from a reader is eagerly converted to a list if it's not already a sequence.
    jaraco committed Oct 25, 2020
  5. Second round of updates to the descriptor howto guide (GH-22946)

    rhettinger committed Oct 25, 2020
  6. bpo-33987: Add master ttk Frame to IDLE search dialogs (GH-22942)

    roseman committed Oct 25, 2020
  7. bpo-42127: Document effect of cached_property on key-sharing dictiona…

    …ries (GH-22930)
    rhettinger committed Oct 25, 2020

Commits on Oct 24, 2020

  1. bpo-33987: Use master ttk Frame for IDLE config dialog (GH-22943)

    roseman committed Oct 24, 2020
  2. bpo-33987: Use ttk Label on IDLE statusbar (GH-22941)

    roseman committed Oct 24, 2020
  3. bpo-35823: Allow setsid() after vfork() on Linux. (GH-22945)

    It should just be a syscall updating a couple of fields in the kernel side
    process info.  Confirming, in glibc is appears to be a shim for the setsid
    syscall (based on not finding any code implementing anything special for it)
    and in uclibc (*much* easier to read) it is clearly just a setsid syscall shim.
    
    A breadcrumb _suggesting_ that it is not allowed on Darwin/macOS comes from
    a commit in emacs: https://lists.gnu.org/archive/html/bug-gnu-emacs/2017-04/msg00297.html
    but I don't have a way to verify if that is true or not.
    As we are not supporting vfork on macOS today I just left a note in a comment.
    gpshead committed Oct 24, 2020
  4. bpo-41052: Fix pickling heap types implemented in C with protocols 0 …

    …and 1 (GH-22870)
    serhiy-storchaka committed Oct 24, 2020
  5. bpo-35823: subprocess: Fix handling of pthread_sigmask() errors (GH-2…

    …2944)
    
    Using POSIX_CALL() is incorrect since pthread_sigmask() returns
    the error number instead of setting errno.
    
    Also handle failure of the first call to pthread_sigmask()
    in the parent process, and explain why we don't handle failure
    of the second call in a comment.
    izbyshev committed Oct 24, 2020
  6. [doc] Fix link to abc.ABCMeta.register in Glossary (GH-22932)

    andresdelfino committed Oct 24, 2020
  7. bpo-42139: Update What's New 3.9 for master (#22936)

    terryjreedy committed Oct 24, 2020
  8. Mention in "What's New" that the import system is starting to be clea…

    …ned up (GH-22931)
    
    Automerge-Triggered-By: GH:brettcannon
    brettcannon committed Oct 24, 2020
  9. bpo-35823: subprocess: Use vfork() instead of fork() on Linux when sa…

    …fe (GH-11671)
    
    * bpo-35823: subprocess: Use vfork() instead of fork() on Linux when safe
    
    When used to run a new executable image, fork() is not a good choice
    for process creation, especially if the parent has a large working set:
    fork() needs to copy page tables, which is slow, and may fail on systems
    where overcommit is disabled, despite that the child is not going to
    touch most of its address space.
    
    Currently, subprocess is capable of using posix_spawn() instead, which
    normally provides much better performance. However, posix_spawn() does not
    support many of child setup operations exposed by subprocess.Popen().
    Most notably, it's not possible to express `close_fds=True`, which
    happens to be the default, via posix_spawn(). As a result, most users
    can't benefit from faster process creation, at least not without
    changing their code.
    
    However, Linux provides vfork() system call, which creates a new process
    without copying the address space of the parent, and which is actually
    used by C libraries to efficiently implement posix_spawn(). Due to sharing
    of the address space and even the stack with the parent, extreme care
    is required to use vfork(). At least the following restrictions must hold:
    
    * No signal handlers must execute in the child process. Otherwise, they
      might clobber memory shared with the parent, potentially confusing it.
    
    * Any library function called after vfork() in the child must be
      async-signal-safe (as for fork()), but it must also not interact with any
      library state in a way that might break due to address space sharing
      and/or lack of any preparations performed by libraries on normal fork().
      POSIX.1 permits to call only execve() and _exit(), and later revisions
      remove vfork() specification entirely. In practice, however, almost all
      operations needed by subprocess.Popen() can be safely implemented on
      Linux.
    
    * Due to sharing of the stack with the parent, the child must be careful
      not to clobber local variables that are alive across vfork() call.
      Compilers are normally aware of this and take extra care with vfork()
      (and setjmp(), which has a similar problem).
    
    * In case the parent is privileged, special attention must be paid to vfork()
      use, because sharing an address space across different privilege domains
      is insecure[1].
    
    This patch adds support for using vfork() instead of fork() on Linux
    when it's possible to do safely given the above. In particular:
    
    * vfork() is not used if credential switch is requested. The reverse case
      (simple subprocess.Popen() but another application thread switches
      credentials concurrently) is not possible for pure-Python apps because
      subprocess.Popen() and functions like os.setuid() are mutually excluded
      via GIL. We might also consider to add a way to opt-out of vfork() (and
      posix_spawn() on platforms where it might be implemented via vfork()) in
      a future PR.
    
    * vfork() is not used if `preexec_fn != None`.
    
    With this change, subprocess will still use posix_spawn() if possible, but
    will fallback to vfork() on Linux in most cases, and, failing that,
    to fork().
    
    [1] https://ewontfix.com/7
    
    Co-authored-by: Gregory P. Smith [Google LLC] <[email protected]>
    izbyshev and gpshead committed Oct 24, 2020

Commits on Oct 23, 2020

  1. bpo-38976: Add support for HTTP Only flag in MozillaCookieJar (#17471)

    Add support for HTTP Only flag in MozillaCookieJar
    
    Co-authored-by: blurb-it[bot] <43283697+blurb-it[bot]@users.noreply.github.com>
    jacobneiltaylor and blurb-it committed Oct 23, 2020
  2. build(deps): bump actions/upload-artifact from v1 to v2.2.0 (GH-22920)

    Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from v1 to v2.2.0.
    <details>
    <summary>Release notes</summary>
    <p><em>Sourced from <a href="https://github.com/actions/upload-artifact/releases">actions/upload-artifact's releases</a>.</em></p>
    <blockquote>
    <h2>v2.2.0</h2>
    <ul>
    <li>Support for artifact retention</li>
    </ul>
    </blockquote>
    </details>
    <details>
    <summary>Commits</summary>
    <ul>
    <li><a href="https://github.com/actions/upload-artifact/commit/27bce4eee761b5bc643f46a8dfb41b430c8d05f6"><code>27bce4e</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/actions/upload-artifact/issues/112">#112</a> from thboop/main</li>
    <li><a href="https://github.com/actions/upload-artifact/commit/f8b42f7ab442a66b3d51a5ca02855b194a36ae2d"><code>f8b42f7</code></a> update licensed files</li>
    <li><a href="https://github.com/actions/upload-artifact/commit/2106e8cf10e032ca9d5724c4c676543febe74f0b"><code>2106e8c</code></a> update contributing.md</li>
    <li><a href="https://github.com/actions/upload-artifact/commit/db66798ebcfbaa7f3f8ff66bce013213265c30d1"><code>db66798</code></a> Ignore Generated Files in Git PR's</li>
    <li><a href="https://github.com/actions/upload-artifact/commit/d359fd0772ed6802a84728dd6b09ec99f41a67b7"><code>d359fd0</code></a> Manual Verification of licenses</li>
    <li><a href="https://github.com/actions/upload-artifact/commit/350822c32f871c559dbe1667c24424e06c4f03e3"><code>350822c</code></a> Add Licensed Workflow and config</li>
    <li><a href="https://github.com/actions/upload-artifact/commit/abecf4abf4b70bc636949d61150be883b87416c2"><code>abecf4a</code></a> Updated README.md (<a href="https://github-redirect.dependabot.com/actions/upload-artifact/issues/118">#118</a>)</li>
    <li><a href="https://github.com/actions/upload-artifact/commit/604e071d21906545dedcfaf210deae74f8c5276a"><code>604e071</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/actions/upload-artifact/issues/126">#126</a> from yacaovsnc/main</li>
    <li><a href="https://github.com/actions/upload-artifact/commit/4560c23b396d494f0cb7066e1d6e258e8feb8051"><code>4560c23</code></a> Check for invalid retention-days input</li>
    <li><a href="https://github.com/actions/upload-artifact/commit/59018c2f85dd0e101b75544aa87f13bb0c94e0b7"><code>59018c2</code></a> Add an option to specify retention period</li>
    <li>Additional commits viewable in <a href="https://github.com/actions/upload-artifact/compare/v1...27bce4eee761b5bc643f46a8dfb41b430c8d05f6">compare view</a></li>
    </ul>
    </details>
    <br />
    
    
    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
    
    [//]: # (dependabot-automerge-start)
    [//]: # (dependabot-automerge-end)
    
    ---
    
    <details>
    <summary>Dependabot commands and options</summary>
    <br />
    
    You can trigger Dependabot actions by commenting on this PR:
    - `@dependabot rebase` will rebase this PR
    - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
    - `@dependabot merge` will merge this PR after your CI passes on it
    - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
    - `@dependabot cancel merge` will cancel a previously requested merge and block automerging
    - `@dependabot reopen` will reopen this PR if it is closed
    - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    
    
    </details>
    
    Automerge-Triggered-By: GH:Mariatta
    dependabot committed Oct 23, 2020
  3. build(deps): bump actions/cache from v1 to v2.1.2 (GH-22919)

    Bumps [actions/cache](https://github.com/actions/cache) from v1 to v2.1.2.
    <details>
    <summary>Release notes</summary>
    <p><em>Sourced from <a href="https://github.com/actions/cache/releases">actions/cache's releases</a>.</em></p>
    <blockquote>
    <h2>v2.1.2</h2>
    <ul>
    <li>Adds input to limit the chunk upload size, useful for self-hosted runners with slower upload speeds</li>
    <li>No-op when executing on GHES</li>
    </ul>
    </blockquote>
    </details>
    <details>
    <summary>Commits</summary>
    <ul>
    <li><a href="https://github.com/actions/cache/commit/d1255ad9362389eac595a9ae406b8e8cb3331f16"><code>d1255ad</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/actions/cache/issues/424">#424</a> from actions/dhadka/upload-chunk-size</li>
    <li><a href="https://github.com/actions/cache/commit/68cfb2ccb73b1982be3fa55e3d7c842697d7f1ed"><code>68cfb2c</code></a> Add units to description</li>
    <li><a href="https://github.com/actions/cache/commit/cce3c03a74623545a53c433d301f3f7725c72454"><code>cce3c03</code></a> Add new input to action.yml</li>
    <li><a href="https://github.com/actions/cache/commit/4bceb75b5b7743784c63c94b81c50a485cbdcda0"><code>4bceb75</code></a> Use parseInt instead of Number to handle empty strings</li>
    <li><a href="https://github.com/actions/cache/commit/a6f1f4b32eec85780fedc5b354a583e9b2999100"><code>a6f1f4b</code></a> Adds input for upload chunk size</li>
    <li><a href="https://github.com/actions/cache/commit/d606e039ae32f64a8593bf4a37b0bf205c695237"><code>d606e03</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/actions/cache/issues/421">#421</a> from actions/dhadka/ghes</li>
    <li><a href="https://github.com/actions/cache/commit/d3e4f218f30bd71a2c29e2b2a1e4f811f4327162"><code>d3e4f21</code></a> Use warning instead of info</li>
    <li><a href="https://github.com/actions/cache/commit/55a58944386e69f7c5bad52ef43a61c578b6c1c6"><code>55a5894</code></a> Update dist</li>
    <li><a href="https://github.com/actions/cache/commit/3f6dfcbcc44a8e2fd9e539c1dd15af6559e74ced"><code>3f6dfcb</code></a> Merge branch 'main' of <a href="http://github.com/actions/cache">http://github.com/actions/cache</a> into dhadka/ghes</li>
    <li><a href="https://github.com/actions/cache/commit/0f71d4ac9a7f4c36aba5ac3cfc4567d2d4eae813"><code>0f71d4a</code></a> Add tests for isGhes</li>
    <li>Additional commits viewable in <a href="https://github.com/actions/cache/compare/v1...d1255ad9362389eac595a9ae406b8e8cb3331f16">compare view</a></li>
    </ul>
    </details>
    <br />
    
    
    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
    
    [//]: # (dependabot-automerge-start)
    [//]: # (dependabot-automerge-end)
    
    ---
    
    <details>
    <summary>Dependabot commands and options</summary>
    <br />
    
    You can trigger Dependabot actions by commenting on this PR:
    - `@dependabot rebase` will rebase this PR
    - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
    - `@dependabot merge` will merge this PR after your CI passes on it
    - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
    - `@dependabot cancel merge` will cancel a previously requested merge and block automerging
    - `@dependabot reopen` will reopen this PR if it is closed
    - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    
    
    </details>
    
    Automerge-Triggered-By: GH:Mariatta
    dependabot committed Oct 23, 2020
  4. Allow dependabot to check GitHub actions monthly (GH-22787)

    Let Dependabot update GitHub Actions dependency once a month.
    
    Here's reference to the dependabot configs.
    
    https://docs.github.com/en/free-pro-team@latest/github/administering-a-repository/keeping-your-actions-up-to-date-with-github-dependabot
    jlosito committed Oct 23, 2020
  5. Add GitHub sponsor info for Python (GH-22887)

    Sponsor Python on GitHub
    Mariatta committed Oct 23, 2020
  6. Add Mark Shannon to CODEOWNERS. (#22914)

    markshannon committed Oct 23, 2020
  7. bpo-40592: shutil.which will not return None anymore if ; is the last…

    … char in PATHEXT (GH-20088)
    
    shutil.which will not return None anymore for empty str in PATHEXT
    Empty PATHEXT will now be defaulted to _WIN_DEFAULT_PATHEXT
    peanutlord committed Oct 23, 2020
  8. bpo-36876: Fix the C analyzer tool. (GH-22841)

    The original tool wasn't working right and it was simpler to create a new one, partially re-using some of the old code. At this point the tool runs properly on the master. (Try: ./python Tools/c-analyzer/c-analyzer.py analyze.)  It take ~40 seconds on my machine to analyze the full CPython code base.
    
    Note that we'll need to iron out some OS-specific stuff (e.g. preprocessor). We're okay though since this tool isn't used yet in our workflow. We will also need to verify the analysis results in detail before activating the check in CI, though I'm pretty sure it's close.
    
    https://bugs.python.org/issue36876
    ericsnowcurrently committed Oct 23, 2020
Older
You can’t perform that action at this time.