-
-
Notifications
You must be signed in to change notification settings - Fork 32.5k
GH-134291: Support older macOS deployment targets for JIT builds #137211
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Performance is neutral. If you squint, startup is slightly faster and JIT-heavy benchmarks are slightly slower, but it's mostly in the noise for this machine. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Instead of removing the support altogether, wouldn't it be nicer to call it only on supported macOS version?
We chatted about that at PyCon but it sounded like it didn't really seem like the right trade-off because there's not a strong justification for having it in the first place. |
Yeah, if we left it in we'd need to test it, etc. It's intended to be a lightweight workaround for JITs with self-modifying code on newer Macs that don't support WX pages, which doesn't apply to us. I think it's cleaner to just pull it out for now. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Seems reasonable to me - I'm very +1 on wider distribution of JIT builds :)
This supersedes #134292 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
OK, if this causes issue, let's merge it. As Brandt said our JIT doesn't really modify the code while executing.
@hugovk, @zanieb, @ned-deily: thoughts on backporting this change? I know we're in RC, but this would allow macOS distributors like |
I need to test the change first, which I'll do in the next day. But, assuming no problems, it should definitely be backported for 3.14. We've been handwaving about older release support while waiting for this to be fixed. |
Fine by me when Ned gives the nod. |
This rolls back GH-126196 and adds stricter checks for newer APIs in JIT CI. We don't really need the superpowers of the newer API (rapid flip-flopping permissions on JIT pages) since our JIT doesn't use self-modifying code.
This allows downstream distributors (like
uv
, CC @zanieb) to ship the JIT for more users.