-
Notifications
You must be signed in to change notification settings - Fork 2
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
General subroutine breakage, test failures under perl 5.41.9 #4
Comments
@mauke Thanks for the bug report. Would a fix be just to check for a CODE reference as well as the glob? |
For the test failures, yes. For the first two errors, the stash just stores |
TBH in all my years of using Perl I think I neither saw nor used subroutine declarations. I’m inclined just to say “not supported”, particularly since my use of Perl is rare these days. |
@mauke Do you know when a Docker image will be made with 5.41.10? |
Oops, the next perl version to be released is 5.41.9, not 5.41.10. Perl 5.41.9 was originally planned to be released on 2025-02-20, which didn't happen, but I expect a release in the very near future. After that, it needs to be added to https://github.com/Perl/docker-perl/commits/master/config.yml. I don't know an exact date. |
This module throws errors for various types of subroutines.
main
:None of these are covered by the test suite of Symbol::Get. But starting with perl 5.41.9, this latter error occurs for subroutines in all packages, not just
main
. This is due to a change in the way perl stores subs: If possible, it stores a coderef directly in the stash, without allocating a typeglob wrapper. That is,$Bar::{foo}
is now a CODE reference, not a GLOB with a CODE slot. (This was already the case for packagemain
since perl 5.22, but now it happens for all packages.)This is why tests have started failing with recent development versions of perl:
The text was updated successfully, but these errors were encountered: