GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — JIT Compilation · Issue #113464 · python/cpython

JIT Compilation #113464

New issue
Copy link
New issue
Copy link
Closed
Closed
JIT Compilation#113464
Copy link
Labels
3.13only security fixesonly security fixesinterpreter-core(Objects, Python, Grammar, and Parser dirs)(Objects, Python, Grammar, and Parser dirs)performancePerformance or resource usagePerformance or resource usagetopic-JITtype-featureA feature request or enhancementA feature request or enhancement

Description

@brandtbucher
brandtbucher
opened on Dec 25, 2023
Issue body actions

It's probably about time to start thinking seriously about just-in-time compilation. To kick things off, here's my talk from this year's sprint about "copy-and-patch", which I think is a really promising path forward: https://youtu.be/HxSHIpEQRjs

I'll also be opening a draft PR for discussion soon.

Linked PRs

  • GH-113464: A copy-and-patch JIT compiler #113465
  • GH-113464: Make myself a codeowner for JIT stuff #114739
  • GH-113464: Add aarch64-apple-darwin/clang to JIT CI #114759
  • GH-113464: Clean up JIT stencil generation #115800
  • GH-113464: Add a warning when building the JIT #118481
  • GH-113464: Generate a more efficient JIT #118512
  • GH-113464: Remove the extra jump via _SIDE_EXIT in _EXIT_TRACE #118545
  • GH-113464: Run the JIT interpreter before any other JIT CI #119466
  • [3.13] GH-113464: Run the JIT interpreter before any other JIT CI (GH-119466) #119490
  • GH-113464: Speed up JIT builds #122839
  • GH-113464: Get LLVM from cpython-bin-deps on Windows #133278
  • GH-113464: Add the JIT to What's New #133486
Reacted by Santiago Basulto, Ilya Siamionau, Juhan Oskar Hennoste, Alan Cristhian, Lizandro Aldair Mendoza Flores , hidaris, Abeautifulsnow, Erlend E. Aasland, 8thgencore, Rafael Joseph Dichoso and 5 more
Reacted by stonebig
Reacted by Kirill Podoprigora, neochine, Alex Waygood, Hugo van Kemenade, Jacob Nilsson, Lizandro Aldair Mendoza Flores , KrunoSaho, Ilya Siamionau, Juhan Oskar Hennoste, sandroac and 17 more
Reacted by Tian Gao, Kirill Podoprigora, Alexander Rakhmaev, Pavel Kutsubin, Alex Waygood, Charlie Zhao, Jacob Nilsson, Lizandro Aldair Mendoza Flores , Juhan Oskar Hennoste, Abeautifulsnow and 5 more

Activity

Next
  1. brandtbucher
    added
    performancePerformance or resource usagePerformance or resource usage
    interpreter-core(Objects, Python, Grammar, and Parser dirs)(Objects, Python, Grammar, and Parser dirs)
    3.13only security fixesonly security fixes
    on Dec 25, 2023
  2. Eclips4
    added
    type-featureA feature request or enhancementA feature request or enhancement
    on Dec 25, 2023
  3. cosmicexplorer commented on Dec 26, 2023

    @cosmicexplorer
    cosmicexplorer
    on Dec 26, 2023
    More actions

    Do you have a writeup or other non-video explainer available, or is the PR itself the best reference for this technique?

  4. MarshalX commented on Dec 26, 2023

    @MarshalX
    MarshalX
    on Dec 26, 2023
    More actions

    Do you have a writeup or other non-video explainer available, or is the PR itself the best reference for this technique?

    Maybe this one will be helpful to you https://aha.stanford.edu/sites/g/files/sbiybj20066/files/media/file/aha_050621_xu_copy-and-patch.pdf

  5. brandtbucher commented on Jan 4, 2024

    @brandtbucher
    brandtbucher
    on Jan 4, 2024
    MemberAuthor
    More actions

    Do you have a writeup or other non-video explainer available, or is the PR itself the best reference for this technique?

    There four main resources that I've been directing people towards... they each explain different things in different levels of detail:

    • The white paper: high-level overview of copy-and-patch.
    • The blog post: low-level implementation details for copy-and-patch.
    • The YouTube video: high-level overview of CPython's approach to copy-and-patch.
    • The pull request: low-level implementation details for CPython's approach to copy-and-patch.
    Reacted by Jongwook Choi, Erlend E. Aasland, 叶芝秋, Tachimanga, pjmlp, Xor Byte, Caio Carvalho, Wojtek Rzepliński and tamaron
    Reacted by Ilya Siamionau, Alexandre Ferreira, Loren McIntyre, Jongwook Choi, Xor Byte, Carlson Büth and Wojtek Rzepliński
  6. z764969689
    added a commit that references this issue on Jan 29, 2024

    pythonGH-113464: Add a JIT backend for tier 2 (pythonGH-113465)

    f6d9e59
  7. brandtbucher commented on Jan 29, 2024

    @brandtbucher
    brandtbucher
    on Jan 29, 2024
    MemberAuthor
    More actions

    Done! I'll be opening follow-up issues for further improvements to both the build process and the generated code.

    Reacted by Hugo van Kemenade, Ilya Siamionau, jakirkham, Erlend E. Aasland, Helmy LuqmanulHakim, Caio Carvalho, Sem and soltanoff
  8. brandtbucher
    closed this as completedon Jan 29, 2024
  9. brandtbucher
    added 2 commits that reference this issue on Jan 30, 2024

    GH-113464: Make Brandt a codeowner for JIT stuff (GH-114739)

    742ba60

    GH-113464: Add aarch64-apple-darwin/clang to JIT CI (GH-114759)

    348a72c
  10. aisk
    added 3 commits that reference this issue on Feb 11, 2024

    pythonGH-113464: Add a JIT backend for tier 2 (pythonGH-113465)

    a4c3b8f

    pythonGH-113464: A JIT backend for tier 2 (pythonGH-113465)

    534119a

    pythonGH-113464: Make Brandt a codeowner for JIT stuff (pythonGH-114739)

    ea3a744
  11. 9 remaining items

  12. SonicField
    added 2 commits that reference this issue on May 8, 2024

    pythonGH-113464: Generate a more efficient JIT (pythonGH-118512)

    1493daa

    pythonGH-113464: Remove the extra jump via `_SIDE_EXIT` in `_EXIT_TRA…

    1e4281a
  13. brandtbucher
    added a commit that references this issue on May 24, 2024

    GH-113464: Run the JIT interpreter before any other JIT CI (GH-119466)

    b48a3db
  14. miss-islington
    added a commit that references this issue on May 24, 2024

    pythonGH-113464: Run the JIT interpreter before any other JIT CI (pyt…

    175d857
  15. brandtbucher
    added a commit that references this issue on May 24, 2024

    [3.13] GH-113464: Run the JIT interpreter before any other JIT CI (GH…

    e27e369
  16. brandtbucher
    added
    topic-JIT
    on May 31, 2024
  17. estyxx
    added a commit that references this issue on Jul 17, 2024

    pythonGH-113464: Run the JIT interpreter before any other JIT CI (pyt…

    d196f49
  18. brandtbucher
    added a commit that references this issue on Aug 14, 2024

    GH-113464: Speed up JIT builds (GH-122839)

    5118592
  19. blhsing
    added a commit that references this issue on Aug 22, 2024

    pythonGH-113464: Speed up JIT builds (pythonGH-122839)

    a0edf4c
  20. LukasWoodtli
    added a commit that references this issue on Jan 22, 2025

    pythonGH-113464: Clean up JIT stencil generation (pythonGH-115800)

    1b27224
  21. brandtbucher
    added 2 commits that reference this issue on May 2, 2025

    GH-113464: Get LLVM from cpython-bin-deps on Windows (GH-133278)

    bfcbb28

    GH-113464: Add the JIT to What's New (GH-133486)

    57c9810
  22. Pranjal095
    added 2 commits that reference this issue on Jul 12, 2025

    pythonGH-113464: Get LLVM from cpython-bin-deps on Windows (pythonGH-…

    b1ce102

    pythonGH-113464: Add the JIT to What's New (pythonGH-133486)

    3dc99e9
  23. brandtbucher
    added a commit that references this issue on Aug 20, 2025

    Revert "pythonGH-113464: Add a JIT backend for tier 2 (pythonGH-113465)"

    f7e2616
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    3.13only security fixesonly security fixesinterpreter-core(Objects, Python, Grammar, and Parser dirs)(Objects, Python, Grammar, and Parser dirs)performancePerformance or resource usagePerformance or resource usagetopic-JITtype-featureA feature request or enhancementA feature request or enhancement

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

      You are visitor 01402503 — GeezerVison does not store the pages you look up.
      Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.