Skip to content
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

5.37.11 build #97

Closed
shawnlaffan opened this issue Apr 25, 2023 · 11 comments
Closed

5.37.11 build #97

shawnlaffan opened this issue Apr 25, 2023 · 11 comments

Comments

@shawnlaffan
Copy link
Contributor

Just as an experiment I am having a go at building perl 5.37.11 using the same toolchain and extlibs as the 5.36 builds.

The system is generating large numbers of the locale warnings below, across many different files.

Possibly this is just a quirk of the docker setup that needs to be corrected.

"C:\strawberry_build\build\perl_core\perl-5.37.11\miniperl.exe" "-I..\..\..\lib" -MExtUtils::Command -e chmod -- 644 "By
te.bs"
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LC_ALL = (unset),
        (possibly more locale environment variables)
        LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the system default locale ("English_United States.1252").
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LC_ALL = (unset),
        (possibly more locale environment variables)
        LANG = "en_US.UTF-8"
    are supported and installed on your system.
@shawnlaffan
Copy link
Contributor Author

The warnings lead to many test failures where error test is parsed. For example:

# Failed test 1 - at comp/parser_run.t line 21
#      got "perl: warning: Setting locale failed.\nperl: warning: Please check that your locale settings:\n\tLC_ALL = (u
nset),\n\t(possibly more locale environment variables)\n\tLANG = \"en_US.UTF-8\"\n    are supported and installed on you
r system.\nperl: warning: Falling back to the system default locale (\"English_United States.1252\").\nIdentifier too lo
ng at - line 2.\n"
# expected "Identifier too long at - line 2.\n"
#  diff at 0
#    after "perl: warning: Setting locale failed.\npe"
#     have "perl: warning: Setting locale failed.\npe"
#     want "Identifier too long at - line 2.\n"
# Failed test 2 - check $00 is illegal at comp/parser_run.t line 28
#      got "perl: warning: Setting locale failed.\nperl: warning: Please check that your locale settings:\n\tLC_ALL = (u
nset),\n\t(possibly more locale environment variables)\n\tLANG = \"en_US.UTF-8\"\n    are supported and installed on you
r system.\nperl: warning: Falling back to the system default locale (\"English_United States.1252\").\nNumeric variables
 with more than one digit may not start with \'0\' at - line 1."
# expected "Numeric variables with more than one digit may not start with \'0\' at - line 1."
#  diff at 0
#    after "perl: warning: Setting locale failed.\npe"
#     have "perl: warning: Setting locale failed.\npe"
#     want "Numeric variables with more than one dig"
# PROG:
# print $00;
# STATUS: 65280

@shawnlaffan
Copy link
Contributor Author

Setting the locale to "C" removes the warnings, but it's unclear why it happens with 5.37 and not 5.36. It's the same docker instance used for both.

@shawnlaffan
Copy link
Contributor Author

shawnlaffan commented Apr 25, 2023

But the good news is that 5.37.11 has the same test results as the 5.36 builds. The two fails are already listed under #60

Edit - and the ExtUtils::MakeMaker fail is not an issue as we build another in the next step of the build. (Edit 2 - that's not quite true as EUMM is at latest version, but it does not seem to affect the CPAN build step).

Test Summary Report
-------------------
op/magic.t                                                         (Wstat: 0 Tests: 208 Failed: 2)
  Failed tests:  186-187
win32/stat.t                                                       (Wstat: 0 Tests: 71 Failed: 0)
  TODO passed:   45
../cpan/ExtUtils-MakeMaker/t/basic.t                               (Wstat: 65280 (exited 255) Tests: 188 Failed: 0)
  Non-zero exit status: 255
../dist/Net-Ping/t/450_service.t                                   (Wstat: 0 Tests: 26 Failed: 0)
  TODO passed:   9
../ext/IPC-Open3/t/IPC-Open3.t                                     (Wstat: 0 Tests: 45 Failed: 0)
  TODO passed:   25
Files=2766, Tests=1128681, 1443 wallclock secs (95.95 usr + 13.05 sys = 109.00 CPU)
Result: FAIL

@sisyphus
Copy link

There has been some "locale" related work done to perl during the 5.37 development cycle.
Most of that work was done by @khw.
None of it has affected my own builds of recent devel releases (up to and including 5.37.11) on Windows 11, gcc-12.2.0.

I've just built perl-5.37.11 (MSWin32-x64-multi-thread) using gcc-10.3.0.
I couldn't see any locale-related warnings - except for one warning related to lc_codepage. (I didn't actually log the "gmake" step.)
All tests passed.

Cheers,
Rob

@shawnlaffan
Copy link
Contributor Author

Thanks @sisyphus. I suspect it's related to the docker instance and in any case is easily fixed by setting LC_ALL.

@shawnlaffan shawnlaffan changed the title 5.37.11 build | locale warnings 5.37.11 build Apr 25, 2023
@shawnlaffan
Copy link
Contributor Author

shawnlaffan commented Apr 25, 2023

All the CPAN builds pass (or have their tests skipped as for 5.36) with the exception of DBM::Deep which is needed for PAR::Repository::Client.

Test log is below but there is already a patch at robkinyon/dbm-deep#22 which we can apply when building 5.38.

Building and testing DBM-Deep-2.0016 ... Building DBM-Deep
# Testing DBM::Deep against Perl 5.037011 located at C:\strawberry\perl\bin\perl.exe

#   Failed test 'use DBM::Deep;'
#   at t\01_basic.t line 11.
#     Tried to use 'DBM::Deep'.
#     Error:  Old package separator "'" deprecated at C:\spbuild\msys64\.cpanm\work\1682423881.1600\DBM-Deep-2.0016\blib
\lib/DBM/Deep.pm line 650.
# Compilation failed in require at t\01_basic.t line 11.
# BEGIN failed--compilation aborted at t\01_basic.t line 11.
# ERROR: Attempt to reload DBM/Deep.pm aborted.
# Compilation failed in require at C:/strawberry/perl/lib/base.pm line 137.
#       ...propagated at C:/strawberry/perl/lib/base.pm line 159.
# BEGIN failed--compilation aborted at C:\spbuild\msys64\.cpanm\work\1682423881.1600\DBM-Deep-2.0016\blib\lib/DBM/Deep/H
ash.pm line 9.
# Compilation failed in require at C:\spbuild\msys64\.cpanm\work\1682423881.1600\DBM-Deep-2.0016\blib\lib/DBM/Deep.pm li
ne 71.
Bailout called.  Further testing stopped:  Opening a new file fails.
t\01_basic.t ....................
Dubious, test returned 255 (wstat 65280, 0xff00)
Failed 1/1 subtests

@shawnlaffan
Copy link
Contributor Author

The locale issues were likely due to a broken docker build. Rebuilding after clearing the docker cache has made them disappear (although I have not tried rebuilding 5.37.11).

@shawnlaffan
Copy link
Contributor Author

Superseded by the 5.38.0 RC builds. Closing.

@DrHyde
Copy link

DrHyde commented Sep 2, 2023

FYI DBM::Deep 2.0017 is now on the CPAN and has the fix, so if you've been applying a patch to 2.0016 yourself you can stop doing that.

@shawnlaffan
Copy link
Contributor Author

FYI DBM::Deep 2.0017 is now on the CPAN and has the fix, so if you've been applying a patch to 2.0016 yourself you can stop doing that.

Thanks. Will update config when it once again comes to build time.

@kedyleung
Copy link

I have the same question as the author, but I found it has no influence on the the results we are going to solve. Just ignore it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants