Skip to content

Commits on Dec 5, 2022

  1. gh-100008: Document Python build requirements (#100009)

    Document also configure --without-freelists option added to Python
    3.11.
    vstinner committed Dec 5, 2022

Commits on Nov 14, 2022

  1. gh-99289: Add COMPILEALL_OPTS to Makefile (#99291)

    Add COMPILEALL_OPTS variable in Makefile to override compileall
    options (default: -j0) in "make install". Also merge the compileall
    commands into a single command building PYC files for the all
    optimization levels (0, 1, 2) at once.
    
    Co-authored-by: Gregory P. Smith <greg@krypto.org>
    vstinner and gpshead committed Nov 14, 2022

Commits on Nov 4, 2022

  1. Support comparing two sets of pystats (GH-98816)

    This adds support for comparing pystats collected from two different builds.
    
    - The `--json-output` can be used to load in a set of raw stats and output a
      JSON file.
    - Two of these JSON files can be provided on the next run, and then comparative
      results between the two are output.
    mdboom committed Nov 4, 2022

Commits on Oct 26, 2022

  1. docs: Change links to label refs (#98454)

    Co-authored-by: C.A.M. Gerlach <CAM.Gerlach@Gerlach.CAM>
    slateny and CAM-Gerlach committed Oct 26, 2022

Commits on Oct 19, 2022

  1. [doc] Refresh the venv introduction documentation, and correct the st…

    …atement about VIRTUAL_ENV (GH-98350)
    
    Co-authored-by: C.A.M. Gerlach <CAM.Gerlach@Gerlach.CAM>
    pelson and CAM-Gerlach committed Oct 19, 2022

Commits on Oct 7, 2022

  1. Docs: Fix backtick errors found by sphinx-lint (#97998)

    Co-authored-by: Ezio Melotti <ezio.melotti@gmail.com>
    hugovk and ezio-melotti committed Oct 7, 2022

Commits on Sep 27, 2022

  1. gh-96959: Update more HTTP links (GH-97536)

    Use HTTPS for documents which are available by both HTTP and HTTPS
    links, but there is no redirection from HTTP to HTTPS or vice versa.
    serhiy-storchaka committed Sep 27, 2022

Commits on Sep 19, 2022

  1. gh-96512: Update int_max_str docs to say 3.11 (#96942)

    It was unknown if it'd be before 3.11.0 when creating the original
    changes.  It's in 3.11rc2, so 3.11 it is.
    gpshead committed Sep 19, 2022

Commits on Sep 2, 2022

  1. gh-95778: CVE-2020-10735: Prevent DoS by very large int() (#96499)

    Integer to and from text conversions via CPython's bignum `int` type is not safe against denial of service attacks due to malicious input. Very large input strings with hundred thousands of digits can consume several CPU seconds.
    
    This PR comes fresh from a pile of work done in our private PSRT security response team repo.
    
    Signed-off-by: Christian Heimes [Red Hat] <christian@python.org>
    Tons-of-polishing-up-by: Gregory P. Smith [Google] <greg@krypto.org>
    Reviews via the private PSRT repo via many others (see the NEWS entry in the PR).
    
    <!-- gh-issue-number: gh-95778 -->
    * Issue: gh-95778
    <!-- /gh-issue-number -->
    
    I wrote up [a one pager for the release managers](https://docs.google.com/document/d/1KjuF_aXlzPUxTK4BMgezGJ2Pn7uevfX7g0_mvgHlL7Y/edit#). Much of that text wound up in the Issue. Backports PRs already exist. See the issue for links.
    gpshead committed Sep 2, 2022

Commits on Aug 30, 2022

  1. gh-96143: Add some comments and minor fixes missed in the original PR (

    …#96433)
    
    * gh-96132: Add some comments and minor fixes missed in the original PR
    
    * Update Doc/using/cmdline.rst
    
    Co-authored-by: Kumar Aditya <59607654+kumaraditya303@users.noreply.github.com>
    
    Co-authored-by: Kumar Aditya <59607654+kumaraditya303@users.noreply.github.com>
    pablogsal and kumaraditya303 committed Aug 30, 2022
  2. gh-96143: Allow Linux perf profiler to see Python calls (GH-96123)

    ⚠️  ⚠️ Note for reviewers, hackers and fellow systems/low-level/compiler engineers ⚠️ ⚠️ 
    
    If you have a lot of experience with this kind of shenanigans and want to improve the **first** version, **please make a PR against my branch** or **reach out by email** or **suggest code changes directly on GitHub**. 
    
    If you have any **refinements or optimizations** please, wait until the first version is merged before starting hacking or proposing those so we can keep this PR productive.
    pablogsal committed Aug 30, 2022

Commits on Aug 18, 2022

  1. gh-90536: Add support for the BOLT post-link binary optimizer (gh-95908)

    * Add support for the BOLT post-link binary optimizer
    
    Using [bolt](https://github.com/llvm/llvm-project/tree/main/bolt)
    provides a fairly large speedup without any code or functionality
    changes. It provides roughly a 1% speedup on pyperformance, and a
    4% improvement on the Pyston web macrobenchmarks.
    
    It is gated behind an `--enable-bolt` configure arg because not all
    toolchains and environments are supported. It has been tested on a
    Linux x86_64 toolchain, using llvm-bolt built from the LLVM 14.0.6
    sources (their binary distribution of this version did not include bolt).
    
    Compared to [a previous attempt](faster-cpython/ideas#224),
    this commit uses bolt's preferred "instrumentation" approach, as well as adds some non-PIE
    flags which enable much better optimizations from bolt.
    
    The effects of this change are a bit more dependent on CPU microarchitecture
    than other changes, since it optimizes i-cache behavior which seems
    to be a bit more variable between architectures. The 1%/4% numbers
    were collected on an Intel Skylake CPU, and on an AMD Zen 3 CPU I
    got a slightly larger speedup (2%/4%), and on a c6i.xlarge EC2 instance
    I got a slightly lower speedup (1%/3%).
    
    The low speedup on pyperformance is not entirely unexpected, because
    BOLT improves i-cache behavior, and the benchmarks in the pyperformance
    suite are small and tend to fit in i-cache.
    
    This change uses the existing pgo profiling task (`python -m test --pgo`),
    though I was able to measure about a 1% macrobenchmark improvement by
    using the macrobenchmarks as the training task. I personally think that
    both the PGO and BOLT tasks should be updated to use macrobenchmarks,
    but for the sake of splitting up the work this PR uses the existing pgo task.
    
    * Simplify the build flags
    
    * Add a NEWS entry
    
    * Update Makefile.pre.in
    
    Co-authored-by: Dong-hee Na <donghee.na92@gmail.com>
    
    * Update configure.ac
    
    Co-authored-by: Dong-hee Na <donghee.na92@gmail.com>
    
    * Add myself to ACKS
    
    * Add docs
    
    * Other review comments
    
    * fix tab/space issue
    
    * Make it more clear that --enable-bolt is experimental
    
    * Add link to bolt's github page
    
    Co-authored-by: Dong-hee Na <donghee.na92@gmail.com>
    kmod and corona10 committed Aug 18, 2022

Commits on Aug 6, 2022

  1. gh-95155: Update "Using Python on a Mac" documentation (GH-95284)

    Co-authored-by: Łukasz Langa <lukasz@langa.pl>
    howiezhao and ambv committed Aug 6, 2022

Commits on Aug 5, 2022

  1. gh-93744: Remove configure --with-cxx-main option (#95651)

    Remove the "configure --with-cxx-main" build option: it didn't work
    for many years. Remove the MAINCC variable from configure and
    Makefile.
    
    The MAINCC variable was added by the issue gh-42471: commit
    0f48d98. Previously, --with-cxx-main
    was named --with-cxx.
    
    Keep CXX and LDCXXSHARED variables, even if they are no longer used
    by Python build system.
    vstinner committed Aug 5, 2022

Commits on Aug 4, 2022

  1. gh-91838: Use HTTPS links in docs for resources which redirect to HTT…

    …PS (GH-95527)
    
    If an HTTP link is redirected to a same looking HTTPS link, the latter can
    be used directly without changes in readability and behavior.
    It protects from a men-in-the-middle attack.
    
    This change does not affect Python examples.
    serhiy-storchaka committed Aug 4, 2022

Commits on Aug 3, 2022

Commits on Jul 25, 2022

  1. gh-85454: Remove distutils documentation (#95239)

    Most places now refer to setuptools or link to setuptools documentation.
    Some examples like zipapp need to be updated later.
    tiran committed Jul 25, 2022

Commits on Jul 21, 2022

Commits on Jun 1, 2022

  1. gh-90300: split --help output into separate options (#30331)

    Make --help output shorter and add new help options.
    
    --help-env, --help-xoptions and --help-all command-line options are
    added to complement --help.
    merwok committed Jun 1, 2022

Commits on May 24, 2022

  1. gh-93103: Enhance PyConfig.parser_debug documentation (#93186)

    Document that -d option and PYTHONDEBUG env var require a debug
    build of Python. Also mention them in the debug build documentation.
    vstinner committed May 24, 2022

Commits on May 9, 2022

  1. gh-88750: Remove the PYTHONTHREADDEBUG env var support. (#92509)

    Remove the `PYTHONTHREADDEBUG` env var support.
    Remove no-op dprintf() macro calls.
    gpshead committed May 9, 2022
Older