# New Ticket Created by Aleks-Daniel Jakimenko-Aleksejev
# Please include the string: [perl #131924]
# in the subject line of all future correspondence about this issue.
# <URL: https://rt.perl.org/Ticket/Display.html?id=131924 >
The issue happens in Email::Simple (one of its tests is now failing, but it was
ok in 2017.07).
Here's the code:
use v6;
use Test;
use Email::Simple;
my $nr = "\x0a\x0d";
my $nasty = "Subject: test{$nr}To: foo{$nr}{$nr}foo{$nr}";
my $mail = Email::Simple.new($nasty);
is $mail.crlf, "{$nr}", "got correct line terminator";
is $mail.body, "foo{$nr}", "got correct body";
is ~$mail, $nasty, "Round trip nasty";
Result:
ok 1 - got correct line terminator
ok 2 - got correct body
not ok 3 - Round trip nasty
# Failed test 'Round trip nasty'
# at t/basic.t line 9
# expected: "Subject: test\n\rTo: foo\n\r\n\rfoo\n\r"
# got: "Subject: test\n\rTo: foo\n\r\n\rfoo\n\r"
Yes, it displays two strings that look identical, but (~$mail eq $nasty) is
actually False.
Bisected:
<AlexDaniel> bisect: old=2017.07
https://gist.githubusercontent.com/AlexDaniel/64032cb24876d9a1cfac44a752921d20/raw/2d242fa49eef2b74da1b6626e337631463471182/basic.t
<bisectable6> AlexDaniel, Successfully fetched the code from the provided URL.
<bisectable6> AlexDaniel, Bisecting by exit code (old=2017.07 new=1599873). Old
exit code: 0
<bisectable6> AlexDaniel, bisect log:
https://gist.github.com/d16b49e55a1102e25b95be5df7bbf902
<bisectable6> AlexDaniel, (2017-07-20)
https://github.com/rakudo/rakudo/commit/b81597bd867a0072cea6453529da89a13ede808c
So it is due to “String concatenation improvements”, or so it seems.