On Tue Oct 06 09:17:25 2015, jn...@jnthn.net wrote:
> On Wed Aug 05 07:37:00 2015, duff wrote:
> > <PerlJam> m: '%E3%81%82' ~~ m:ignorecase/['%' (<[abcdef0123456789]> **
> > 2)]+/ && say $/[0];
> > <+camelia> rakudo-moar 0dcbba: OUTPUT«「E3」 「81」 「82」␤»
> > <PerlJam> hoelzro: I guess something is broken with character class
> > ranges?
> >  <jnthn> PerlJam: Other fun question is if you can rely on
> > chr(start)..chr(end) being contiguous implying
> >               chr(uc(start))..chr(uc(end)) being
> > <jnthn> PerlJam: And the answer is surely no because that'd make life
> > way too easy :)
> > <jnthn> PerlJam: So it'll need a bit of care to fix, but shouldn't be
> > too bad :)
> > <jnthn> Trouble is though that then you lose the nice charrange
> > optimization
> >  <jnthn> Or at least, if you want to keep it you've got some analysis
> > to do
> > <jnthn> Anyway, long story short I can see why it didn't get done yet.
> > I agree it probably should be. :)
> > * PerlJam adds to the ticket for now.
> > 
> 
> The bug is actually in the LTM engine, and can also be triggered as:
> 
> perl6-m -e "'%E3%81%82' ~~ m:ignorecase/['%' (<[a..f]>|x)]+/ && say $/[0]"
> 
> Which wrongly produces no output.

Fixed now, and tests added in S05-metasyntax/charset.t. Also found that 
charranges did the wrong thing under LTM with ignoremark, and fixed that too 
(plus tests). And, of course, a test for the ignormark and ignorecase 
combination for good measure (also passing).

/jnthn

Reply via email to