-
Notifications
You must be signed in to change notification settings - Fork 48
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
panic: (6578): Can't change locale for LC_CTYPE(2) #135
Comments
A manual (temporary) intervention doesn't help.
|
Easiest workaround is to switch to a well-known language config (i.e. English UK). Nevertheless, this should be fixed.
C:\Users\devtest> |
I'm not well-informed when it comes to "locale" matters, but the following might help point people in the right direction regarding the 'English_Europe.65001' locale.
Apparently, Strawberry Perl has no awareness of the 'English_Europe.65001' locale setting.
It's to be expected that those 2 builds of perl would produce the same result. They were built from the same perl source, with essentially the same configuration options, using the same mingw-w64 (gcc-13.1.0) toolchain. But things change for the better when I switch to my build of perl-5.39.2 (built by mingw-w64 port of gcc-13.2.0):
(I assume that 'English_Europe.utf8' and 'English_Europe.65001' are the same thing ??) I do know that, with perl-5.38.0 built by Visual Studio 2022, I get:
Also, if I build perl-5.39.2 with gcc-13.1.0, I get the same result as produced by 5.38.0 built with gcc-13.1.0
To me, this is a strong indication that the "success" with the 5.39.2 mingw-build is due to changes made to the mingw-w64 port of gcc-13.2.0, not to any changes made to the perl source. IOW, I think we can say that it's "fixed in gcc-13.2.0" - though, FAIK, that fix might actually be in the runtime library, rather than gcc itself. UPDATE: To elaborate a little on my referring to "runtime version", I should point out that my gcc-13.1.0 is "msvcrt", but the gcc-13.2.0 is "ucrt". Cheers, |
Thanks @orgcontrib for reporting and @sisyphus for the diagnosis. I'll try with gcc-13.2 when next I run a build (hopefully before end September). If it is not fixed with msvcrt gcc-13.2 then it might need changes at the perl level. |
Curiosity got the better of me, yet again.
With
With
Looks like you'll need to use a "ucrt" build to get the good behaviour. Perl-5.38.0 source won't build straight out of the box with a "ucrt" compiler, and I'm not sure what patches would be needed. Cheers, |
After installing perl from the website (Latest Release: 5.38.2.2 (2023-12-11)) PS C:\Users\FrancescElies> perl --version
..\locale.c: 690: panic: (6578): Can't change locale for LC_CTYPE(2) from 'C' to 'English_Europe.65001'; errno=0 Changed Language to english uk but still having the same issue so far. Suggestions? |
This will be fixed when 5.40 is built and released as it will use UCRT instead of MSCVRT. It's a matter of finding the time to run the build. If you want to test with a perl RC build then one can be accessed from https://github.com/StrawberryPerl/Perl-Dist-Strawberry/releases/tag/dev_5.40.0_RC1_UCRT |
I have it using the msvc, so will these changes support msvc, as I get strawberry using vcpkg? |
SP 5.40.0.1 has now been released. This uses UCRT so this problem should be resolved now. The release can be downloaded from https://github.com/StrawberryPerl/Perl-Dist-Strawberry/releases/tag/SP_54001_64bit_UCRT A 5.38.x UCRT build might be released but it can be done under a separate issue. I'll close this in a few days, or when next I do a sweep of issues. |
Closing as noted. |
After a fresh install (via winget) on Windows 10 Pro with EU language configuration,..
The text was updated successfully, but these errors were encountered: