Skip to content

Conversation

@brandtbucher
Copy link
Member

@brandtbucherbrandtbucher commented May 1, 2024

PEP 744 makes a bunch of promises once "the JIT builds successfully without displaying warnings to the user". We don't currently do that... so we should.

This PR adds a small banner during JIT builds reminding the user that JIT support for their platform is still experimental, and asking them to report any bugs. This banner is on by default, but can be disabled per-target as they become stable.

This PR also includes a few mostly-cosmetic changes to appease mypy, black, and pylint. They're in separate commits, so they're easier to review.

@brandtbucherbrandtbucher added skip news build The build process and cross-build labels May 1, 2024
@brandtbucherbrandtbucher self-assigned this May 1, 2024
@bedevere-appbedevere-appbot mentioned this pull request May 1, 2024
@brandtbucher
Copy link
MemberAuthor

========================================================== JIT support for x86_64-pc-linux-gnu is still experimental! Please report any issues you encounter. ========================================================== 

Copy link
Member

@savannahostrowskisavannahostrowski left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! Though, I do wonder if it's worth adding commit rules or similar to catch formatting issues? Would be nice to just have this tackled automagically?

@brandtbucher
Copy link
MemberAuthor

Though, I do wonder if it's worth adding commit rules or similar to catch formatting issues? Would be nice to just have this tackled automagically?

Agreed.

There's already a mypy job that runs over these files as part of CI. It was easy to add since it already existed for other parts of the codebase. Adding black and pylint would mean actually doing some work and adding new jobs, which I wasn't up for at the time (plus they tend to be more "style" than "correctness", so they feel less important).

@hugovk
Copy link
Member

Adding black and pylint would mean actually doing some work and adding new jobs, which I wasn't up for at the time

They can be added in .pre-commit-config.yaml. Make sure to set files: so it only runs on JIT code.

We can add Black to pre-commit (after the Ruff config) like:

 - repo: https://github.com/psf/black-pre-commit-mirrorrev: 24.4.2hooks: - id: blackfiles: TODO

We can run pylint via the existing Ruff by selecting the PL rules in a local .ruff.toml in the JIT directory, then add that to the pre-commit config. You can compare the Lib/test and Argument Clinic ones which also have their own .ruff.toml.

(cc @AlexWaygood FYI)

(plus they tend to be more "style" than "correctness", so they feel less important)

(Yeah, I usually only run pylint occasionally and don't in CI because it's quite noisy, but if you've resolved them and want to maintain that, I recommend doing it this way.)

@savannahostrowski
Copy link
Member

@brandtbucher If you think that'd be nice, I can take a look at adding a job to do this in .pre-commit-config.yaml for JIT files.

@brandtbucher
Copy link
MemberAuthor

That would be great, yeah. I'm not picky about the set of rules itself, so if the defaults pass then we can just use those.

@gvanrossum
Copy link
Member

This banner is printed even when using --enable-experimental-jit=interpreter. That seems wrong?

@brandtbucher
Copy link
MemberAuthor

Hm. This script should only be part of the Makefile if we're actually building the JIT. It looks like jit_stencils.h is currently generated if the option is anything other than no currently.

So we should update configure.ac to only build the JIT if the option is yes or yes-off.

@gvanrossum
Copy link
Member

Hm. This script should only be part of the Makefile if we're actually building the JIT. It looks like jit_stencils.h is currently generated if the option is anything other than no currently.

So we should update configure.ac to only build the JIT if the option is yes or yes-off.

Yeah, I'm on it.

@brandtbucher
Copy link
MemberAuthor

Thanks!

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

Labels

buildThe build process and cross-buildskip newstopic-JIT

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@brandtbucher@hugovk@savannahostrowski@gvanrossum