-
Notifications
You must be signed in to change notification settings - Fork 560
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
Bleadperl breaks SREZIC/Tk-804.032.tar.gz #14202
Comments
From @eserteThis is a bug report for perl from slaven@rezic.de, Almost all Tk tests fail. A simple test case is $ perl5.21.5 -Mblib -MTk -MTk::ColorEditor -e 'tkinit->ColorEditor()' Bisect says: a623f89 is the first bad commit Implement the bipolar read-only system Another possible victim: TOBYINK/Acme-Futuristic-Perl-0.001.tar.gz Regards, Flags: Site configuration information for perl 5.21.5: Configured by eserte at Sun Oct 26 13:16:39 CET 2014. Summary of my perl5 (revision 5 version 21 subversion 5) configuration: @INC for perl 5.21.5: Environment for perl 5.21.5: |
From @cpansproutOn Sun Nov 02 10:51:47 2014, slaven@rezic.de wrote:
I see that Tk’s objGlue.c does SvREADONLY_off in three places. Would you please do some testing to find out which one is problematic. One at a time, please change those to: SvREADONLY_off(sv), SvFLAGS(sv) &=~ SVf_PROTECT; and see which ones need to be adjusted to make tests pass. I am assuming it is the FixBuggyUTF8String function, which, if I understand https://rt.cpan.org/Ticket/Display.html?id=41436 correctly, can just be skipped on newer perls. (Whatever you do, please don’t turn off SVf_PROTECT, as that would defeat its purpose. Let’s get to the bottom of this and see whether it is Tk or bleadperl that needs adjustment.)
=head1 DESCRIPTION Sets the C<< That’s exactly the kind of thing the new flag was intended to protect against. :-) Maybe the new flag is too prevalent. It was mainly intended to protect values like &PL_sv_no (which !1 returns) and &PL_sv_undef (which undef returns), the first argument to DESTROY, and also constants in the op tree. Modifying those (which could happen by accident) can lead to hangs, crashes, or erratic behaviour. For built-in variables, we probably don’t need to be so strict. That said, this is an Acme module, and what it is doing *will* lead to erratic behaviour. -- Father Chrysostomos |
The RT System itself - Status changed from 'new' to 'open' |
From @eserteDana Ned 02. Stu 2014, 13:51:23, sprout reče:
It's caused by the SvREADONLY_off call in Tcl_ObjMagic(). If I patch the SvFLAGS as proposed, then the Tk test suite works again. The call in FixBuggyUTF8String() is not problematic (and actually I think it's best if I skip this function for perl >= 5.10). The flow in MaybeForceList() is actually reversed (first SvREADONLY_on, then SvREADONLY_off). Regards, |
From @cpansproutOn Mon Nov 03 12:12:46 2014, slaven@rezic.de wrote:
Is there any easy way to determine the SV’s provenance? -- Father Chrysostomos |
From @cpansproutOn Mon Nov 03 12:12:46 2014, slaven@rezic.de wrote:
I see the problem. sv_magic is croaking if you try to apply ‘ext’ magic to a read-only SV. It shouldn’t be doing that. Perl can’t know whether the magic will try to modify the SV or not, so it should give the benefit of the doubt. I’ll fix that, but you will need some #ifdefs. -- Father Chrysostomos |
From @cpansproutOn Mon Nov 03 16:45:22 2014, sprout wrote:
Er, no, you won’t need any #ifdefs. -- Father Chrysostomos |
From @cpansproutI believe I have fixed this in 1d5686e and 8c995ab. If I’m wrong, just say something and I’ll reopen it. -- Father Chrysostomos |
@cpansprout - Status changed from 'open' to 'resolved' |
From @eserteDana Pon 03. Stu 2014, 20:18:14, sprout reče:
Looks good, I produced a Tk PASS report with a recent bleadperl: Thanks! |
Migrated from rt.perl.org#123103 (status was 'resolved')
Searchable as RT123103$
The text was updated successfully, but these errors were encountered: