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 — Configure Tier 2 interpreter at build time · Issue #118335 · python/cpython

Configure Tier 2 interpreter at build time #118335

New issue
Copy link
New issue
Copy link
Closed
Closed
Configure Tier 2 interpreter at build time#118335
Copy link
Labels
topic-JIT

Description

@gvanrossum
gvanrossum
opened on Apr 26, 2024
Issue body actions

It would be nice if by default we didn't ship the optimizer infrastructure, since approximately nobody is going to use it, so we should ship (and by default build) binaries that just don't include it.

I propose to enable it only when configured with --enable-experimental-jit-interpreter. We drop support for PYTHON_UOPS and -Xuops, in favor of PYTHON_JIT=0|1.

@mdboom this will have some consequences for the benchmarking infra; checking the Tier 2 box should use this configure option rather than setting the PYTHON_UOPS=1 env var. It should be possible to use both (./configure gives a warning but otherwise seems to ignore incorrect flags, and the env var will just be ignored).

Linked PRs

  • gh-118335: Configure Tier 2 interpreter at build time #118339
  • gh-118335: Make REGEN_JIT_COMMAND empty if tier2 interpreter enabled #118493
  • gh-118335: Rename --experimental-interpreter on Windows to --experimental-jit-interpreter #118497

Activity

  1. mdboom commented on Apr 29, 2024

    @mdboom
    mdboom
    on Apr 29, 2024
    Contributor
    More actions

    @mdboom this will have some consequences for the benchmarking infra; checking the Tier 2 box should use this configure option rather than setting the PYTHON_UOPS=1 env var. It should be possible to use both (./configure gives a warning but otherwise seems to ignore incorrect flags, and the env var will just be ignored).

    That should be easy enough to deal with, but I'll hold off on shipping that change until #118339 is merged.

  2. gvanrossum commented on Apr 29, 2024

    @gvanrossum
    gvanrossum
    on Apr 29, 2024
    MemberAuthor
    More actions

    That should be easy enough to deal with, but I'll hold off on shipping that change until #118339 is merged.

    Understood, but then how can I run a benchmark that tells me how Tier 2 fares with my changes before merging it? (Possibly we won't care. We should discuss this in today's meeting.)

  3. mdboom commented on Apr 29, 2024

    @mdboom
    mdboom
    on Apr 29, 2024
    Contributor
    More actions

    Oh, good point. If I'm reading correctly, we could probably do both the ./configure flag and the environment variable for a while (and then remove the environment variable).

  4. gvanrossum commented on Apr 29, 2024

    @gvanrossum
    gvanrossum
    on Apr 29, 2024
    MemberAuthor
    More actions

    Off-line we decided on a different configure experience. The --configure-experimental-jit flag will be extended so you can write

    ./configure --enable-experimental-jit={off|yes|no|interp}
    

    (enum names subject to bikeshedding) which selects whether the JIT or the Tier 2 interpreter is built, and whether it's on or off by default. An environment variable, PYTHON_JIT={0|1} can override whatever is built.

  5. gvanrossum commented on Apr 29, 2024

    @gvanrossum
    gvanrossum
    on Apr 29, 2024
    MemberAuthor
    More actions

    Meanwhile, Brandt and I solved the Windows failure, which was due to _Py_JIT being undefined when _testinternalcapi.c was being compiled in JIT mode. Fix forthcoming.

  6. gvanrossum
    added 3 commits that reference this issue on May 1, 2024

    gh-118335: Configure Tier 2 interpreter at build time (#118339)

    7d83f7b

    gh-118335: Make REGEN_JIT_COMMAND empty if tier2 interpreter enabled (#…

    a524152

    gh-118335: Rename --experimental-interpreter on Windows to --experime…

    a37b093
  7. brandtbucher
    closed this as completedon May 2, 2024
  8. SonicField
    added 3 commits that reference this issue on May 8, 2024

    pythongh-118335: Configure Tier 2 interpreter at build time (python#1…

    3345321

    pythongh-118335: Make REGEN_JIT_COMMAND empty if tier2 interpreter en…

    122867b

    pythongh-118335: Rename --experimental-interpreter on Windows to --ex…

    8edfb76
  9. brandtbucher
    added
    topic-JIT
    on May 31, 2024
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

    topic-JIT

    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.