-
Notifications
You must be signed in to change notification settings - Fork 61
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
Patches from split #49
Conversation
Sub::Util part carries on all the problems accumulated around it:
|
Updating ppport.h fixes the issues with <5.16. This patchset shouldn't cause any additional issues with \0 in sub names, so that can be addressed separately. @dur-randir Can you elaborate on the issues with the debugger? |
If the intention is not a full binary/utf8 support here, then the commit "Support binary data and unicode in symbol names" has a misleading name.
%DB::sub entries are not correctly set for the same cases. |
What "same cases"? |
Setting binary/utf8 name for a function. |
Re-reviewing the patches, they do handle \0 in sub names. %DB::sub does have some edge cases though. |
On perl 5.8.0, storing PL_sv_undef directly in a hash will result in hv_exists returning false for that key. Use PL_sv_yes instead to work around this.
This is scaffolding to sanity-check our assumptions about perl: that anything we *can* eval is named by the interpreter as expected. This test passes on 5.6.1+ on both 32 and 64 bit perls.
Reveals incorrect handling of - ' (\x27) on all perls - \0 on perl > 5.14 - Unicode on perl > 5.16
When a stash is deleted, the subs attached to it will lose track of various bits of information. What gets lots depends on the perl version. Rather than using a very loose check or enumerating versions, use the value returned by caller, which we should always be matching.
subname is able to give better names than caller in some versions, and there isn't any other source for the accurate names than Devel::Peek. The only reasonable option is to check based on the version numbers.
Rather than just checking for existence, compare with what was actually created. Also skip test when %DB::sub isn't populated (such as perl 5.8.0 when run without -d).
77f13c0
to
d671aa2
Compare
I've updated this to fix the |
@haarg out of curiosity does the above address @chipdude's forgotten issue: https://rt.cpan.org/Ticket/Display.html?id=65540#txn-893983 |
These are various patches I wrote or took from other sources when attempting to split the modules into separate dists.