in reply to [Win32] Weird behavioural change between 5.38.0 and 5.40.0

I would suggest to create a C program that calls buildargv and see what its output is. It looks like there are a lot of changes to how argc/argv are generated by different gcc versions.
  • Comment on Re: [Win32] Weird behavioural change between 5.38.0 and 5.40.0

Replies are listed 'Best First'.
Re^2: [Win32] Weird behavioural change between 5.38.0 and 5.40.0
by syphilis (Archbishop) on Aug 05, 2024 at 09:39 UTC
    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

      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.

      I think they changed compiler and in the process changed from one MS runtime (MSVCRT) to a new one MS runtime (UCRT). See my other comment.

        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