It looks like there are a lot of changes to how argc/argv are generated by different gcc versions.
I also have perls 5.36.0, 5.38.0 and 5.40.0 built using MS Visual Studio 2022.
All of those perls suffer the very same issue:
D:\comp-2022-vs>perl -le "printf(""" wtf""");"
Can't find string terminator '"' anywhere before EOF at -e line 1.
D:\comp-2022-vs>perl -le "printf("""wtf""");"
wtf
So I think it's probably a case of the mingw C runtime having only recently "caught up to" (and synced with) something that has been present in Microsoft's C runtime for quite a while.
The fact that it's something that MS toolchains do, pretty much legitimizes the change in behaviour.
Maybe someone will alert MS to the change, and they might do something to revert it.
But it's something that's only going to be noticed when using """ ... and who does that, anyway ?
Cheers, Rob | [reply] [d/l] [select] |
| [reply] |
I think they changed compiler and in the process changed from one MS runtime (MSVCRT) to a new one MS runtime (UCRT)
Yes - Winlibs are still providing both flavours.
I initially thought I had a UCRT build of perl-5.38.0, and a second MSVCRT build of perl-5.38.0 - both of which were exhibiting the same behaviour.
But it turns out they were both MSVCRT. (Silly me - UCRT mingw-w64 builds of perl weren't enabled until about 5.39.2.)
I agree that it will be the switch from MSVCRT to UCRT that has introduced the change. And this is further supported by the fact that my VS 2022 (UCRT) builds of perl show the same behaviour as my mingw-w64 (UCRT) builds.
Cheers, Rob
| [reply] |