-
Notifications
You must be signed in to change notification settings - Fork 574
dist/IO.xs remove a dTHX call #23208
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
base: blead
Are you sure you want to change the base?
Conversation
bulk88
commented
Apr 19, 2025
- threaded perls without CPerlHost/iperlsys.h (ie all threaded unix perls) dont need a my_perl ptr, and don't assume all CCes have perfect LTO/LTCG and all OSes have a perfect designed bin image loader, to optimize away an unused my_perl var. This symbol crosses 2 separate TUs. ELF interposition, on paper, doesn't allow shifting over and dropping out args, but in real life, things are probably different. Write it correctly than assume optimizations will happen.
- This set of changes requires a perldelta entry, and it is included.
- This set of changes requires a perldelta entry, and I need help writing it.
- This set of changes does not require a perldelta entry.
@@ -29,7 +29,14 @@ | |||
#ifdef poll | |||
# undef poll | |||
#endif | |||
#define poll Perl_my_poll | |||
|
|||
#if defined(PERL_IMPLICIT_SYS) |
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.
These declarations should probably come after the definition of struct pollfd
This code should not even run on Mac. |
It's not compiling on MacOS:
|
I'm gonna revise this commit and repush it and see if I can fix it for OSX in the CI cloud w/o personal access to an OSX SDK. I will note, in current blead version of the code, there is no static tag (needed for good citizen reasons). And that is intentional since there are 2 TUs and its out of scope for me to do that plastic surgery to get rid of TU # 2. |
6f1b059
to
31bb022
Compare
pushed rev # 2 |
This is incomplete,
which I doubt is the result you wanted. |
31bb022
to
654b66e
Compare
- threaded perls without CPerlHost/iperlsys.h (ie all threaded unix perls) dont need a my_perl ptr, and don't assume all CCes have perfect LTO/LTCG and all OSes have a perfect designed bin image loader, to optimize away an unused my_perl var. This symbol crosses 2 separate TUs. ELF interposition, on paper, doesn't allow shifting over and dropping out args, but in real life, things are probably different. Write it correctly than assume optimizations will happen.
654b66e
to
cf383b2
Compare
Good catch. That was a cherry pick or rebase git accident on my side at some point. The very 1st attempt (draft) had the PERL_NO_GET_CONTEXT line. The hunk from On purpose, I am not going to overthink I am aware this PR opened a can of worms, of why on earth, Perl on OSX 15, needs to be emulating a basic POSIX syscall, but that topic is beyond scope for this PR. It will be someone elses PR and code, if they want to solve that topic. Just mentioning that OSX thing here in this PR for archive reasons if someone is researching or git blaming in the future. pushed as rev # 3 |
There's also WSAPoll(), but apparently that's also badly broken. |