On behalf of the perl5 porters, ...
UPDATE: as not all porters follow PerlMonks, and I am no Windows expert, nor do I hope to become one, please post FAIL reports to perl5-porters@perl.org where they get a higher number of qualified eyes. Thanks.
But then Australia is such a difficult country to keep track
of. On my first visit, some years ago, I passed the time on
the long flight reading a history of Australian politics in the
twentieth century, wherein I encountered the startling fact that
in 1967 the prime minister, Harold Holt, was strolling along a
beach in Victoria when he plunged into the surf and vanished. No
trace of the poor man was ever seen again. This seemed doubly
astounding to me—first that Australia could just _lose_ a
prime minister (I mean, come on) and second that news of this
had never reached me.
-- Bill Bryson, /In a Sunburned Country/
I've just uploaded the first release candidate for Perl 5.14.0 to PAUSE.
Shortly, you'll find it at:
http://search.cpan.org/dist/perl-5.14.0-RC1/
SHA1 sums for this release are:
643d688909723aaedbaef67301779331b3d51381 perl-5.14.0-RC1.tar.bz2
ed6be1b0f09af7542df369af254b629dbf5a8b5c perl-5.14.0-RC1.tar.gz
While we go to lengths to ensure that new versions of Perl don't break
existing programs, it does happen. It's really, really important that
we catch unintentional breakage BEFORE we release Perl 5.14.0.
It is imperative that you test this release candidate with any software
written in Perl which you use or maintain.
Similarly, we test Perl on a variety of operating systems on a number of
platforms with several different compilers. If you're not 100% certain
that we're testing yours, NOW is the time to make sure that Perl 5.14.0
builds and passes its tests on your platform.
If no "showstopper" class bugs are found in the next 7 days, we will
release a virtually identical tarball as Perl 5.14.0 on Thursday, April
28, 2011.
Best,
Jesse
Enjoy, Have FUN! H.Merijn
Re: perl 5.14.0-RC1 is available for testing!
by FunkyMonk (Chancellor) on Apr 20, 2011 at 13:39 UTC
|
| [reply] |
Re: perl 5.14.0-RC1 is available for testing!
by BrowserUk (Patriarch) on Apr 21, 2011 at 13:27 UTC
|
If anyone is taking notes, RC1 appears to build reasonably cleanly using MSVC9 64-bit. From what I remember, the noted test failures are all 'normal' for Windows builds. More info if required.
Test Summary Report
-------------------
comp/multiline.t (Wstat
+: 0 Tests: 6 Failed: 2)
Failed tests: 5-6
io/dup.t (Wstat
+: 0 Tests: 23 Failed: 0)
Parse errors: Tests out of sequence. Found (8) but expected (2)
Tests out of sequence. Found (9) but expected (3)
Tests out of sequence. Found (10) but expected (4)
Tests out of sequence. Found (11) but expected (5)
Tests out of sequence. Found (12) but expected (6)
Displayed the first 5 of 23 TAP syntax errors.
Re-run prove with the -p option to see them all.
../cpan/CPANPLUS/t/04_CPANPLUS-Module.t (Wstat
+: 256 Tests: 124 Failed: 1)
Failed test: 109
Non-zero exit status: 1
../cpan/CPANPLUS/t/20_CPANPLUS-Dist-MM.t (Wstat
+: 512 Tests: 43 Failed: 8)
Failed tests: 11-14, 16-18, 42
Non-zero exit status: 2
../dist/IO/t/io_dup.t (Wstat
+: 0 Tests: 2 Failed: 0)
Parse errors: Tests out of sequence. Found (6) but expected (2)
Bad plan. You planned 6 tests but ran 2.
Files=2092, Tests=463208, 1892 wallclock secs (83.93 usr + 11.14 sys =
+ 95.07 CPU)
Result: FAIL
NMAKE : fatal error U1077: '..\perl.exe' : return code '0xb'
Stop.
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.
| [reply] [d/l] |
Re: perl 5.14.0-RC1 is available for testing!
by Anonymous Monk on Apr 21, 2011 at 04:48 UTC
|
Mostly runs ok
I built perl with gcc 4.5.2, but forgot to add CFLAGS=-static-libgcc
, so perl.exe/perl514.dll needs
libgcc_s_dw2-1.dll, but op/taint modifies $ENV{PATH} so when it uses $Invoke_Perl, it can't find libgcc_s_dw2-1.dll
No clue about porting/buildtoc.t
../cpan/Win32/t/Names.t assumes LoginName is longer than one character, win32 doesn't impose such a limit, don't see why a test would :)
No clue about ../cpan/podlators/t/text-encoding.t, it seems to work outside core
As for ../cpan/Module-Build/t/ppm.t, typical win32 nonsense
... t/ppm.t: error opening directory D: No such file or directory
but frankly I don't let Module::Build make docs for me, I don't have any docs at all :)
Here is how I compiled v5.14.0-RC1
| [reply] [d/l] [select] |
|
perl.exe/perl514.dll needs libgcc_s_dw2-1.dll, but op/taint modifies $ENV{PATH} so when it uses $Invoke_Perl, it can't find libgcc_s_dw2-1.dll
This section of makefile.mk is supposed to deal with that issue:
#
# If building with gcc-4.x.x (or x86_64-w64-mingw32-gcc-4.x.x), then
# uncomment the following assignment to GCC_4XX, make sure that CCHOM
+E
# has been set correctly above, and uncomment the appropriate
# GCCHELPERDLL line.
# The name of the dll can change, depending upon which vendor has supp
+lied
# your 4.x.x compiler, and upon the values of "x".
# (The dll will be in your mingw/bin folder, so check there if you're
# unsure about the correct name.)
# Without these corrections, the op/taint.t test script will fail.
#
#GCC_4XX *= define
#GCCHELPERDLL *= $(CCHOME)\bin\libgcc_s_sjlj-1.dll
#GCCHELPERDLL *= $(CCHOME)\bin\libgcc_s_dw2-1.dll
#GCCHELPERDLL *= $(CCHOME)\bin\libgcc_s_1.dll
Not sure how that fits in with your method of building. I've only ever built perl with gcc by running dmake -f makefile.mk
With my mingw port of gcc-3.4.5 I'm finding that porting/buildtoc.t fails test 2. All other tests pass. With my mingw64 port of gcc-4.6.0, I'm finding that the tests hang when 19_CPANPLUS-Dist.t is run, so I don't get to find out what failures there are.
Cheers, Rob | [reply] [d/l] [select] |
|
AHA, typical dumb makefile and I forgot to grep :)
That makefile is really really unreadable (someone should indent it, rewrite it)
I shouldn't need to know anything about this :)
The GCC_4XX way should be automatic one way or another, something like
.IF "$(CCTYPE)" == "GCC"
GCC_VERSION *= $(shell gcc -dumpversion)
GCC_MAJOR_VERSION *= $(GCC_VERSION:b:b)
.IF "$(GCC_MAJOR_VERSION)" == "4"
GCC_4XX *= define
.ENDIF
.ENDIF
Or my way (untested)
.IF "$(CCTYPE)" == "GCC"
GCC_VERSION *= $(shell gcc -dumpversion)
GCC_MAJOR_VERSION *= $(GCC_VERSION:b:b)
.IF "$(GCC_MAJOR_VERSION)" == "4"
CFLAGS +=-static-libgcc
LIBC += -static-libgcc
.ENDIF
.ENDIF
Checking my make commands, a test makefile.mk
CCTYPE *= GCC
.IF "$(CCTYPE)" == "GCC"
GCC_VERSION *= $(shell gcc -dumpversion)
GCC_MAJOR_VERSION *= $(GCC_VERSION:b:b)
.IF "$(GCC_MAJOR_VERSION)" == "4"
CFLAGS += -static-libgcc
LIBC += -static-libgcc
GCC_4XX *= define
.ENDIF
.ENDIF
__echo_GCC:
@echo GCC_VERSION $(GCC_VERSION)
@echo GCC_MAJOR_VERSION $(GCC_MAJOR_VERSION)
@echo GCC_4XX $(GCC_4XX)
@echo CFLAGS $(CFLAGS)
@echo LIBC $(LIBC)
$(NOOP)
how it runs (output)
$ dmake -f makefile.mk
dmake: Executing shell macro: gcc -dumpversion
dmake: Executing shell macro: gcc -dumpversion
GCC_VERSION 4.5.2
dmake: Executing shell macro: gcc -dumpversion
GCC_MAJOR_VERSION 4
GCC_4XX define
CFLAGS -static-libgcc
LIBC -static-libgcc
Not sure how that fits in with your method of building. I've only ever built perl with gcc by running dmake -f makefile.mk
Yup, thats what I do, the -f makefile.mk isn't mandatory since that is the default | [reply] [d/l] [select] |
|
|
|
|
|
Now I use -static-libgcc AND -static-libstdc++, don't even have to think about op/taint.t and that GCC_4XX stuff :)
perl -pi.orig -e " s!^(LINK_FLAGS\s*=)!$1 -static-libgcc -static-libst
+dc++ !" win32/Makefile win32/makefile.mk
| [reply] [d/l] |
|
Now I use -static-libgcc AND -static-libstdc++, don't even have to think about op/taint.t and that GCC_4XX stuff
Nor do you have to think about them with perl-5.15 or higher .... even if you *don't* do the "-static" thing :-)
Cheers, Rob
| [reply] |
|
Re: perl 5.14.0-RC1 is available for testing!
by Anonymous Monk on May 01, 2011 at 23:21 UTC
|
Ok, I found another one, though I'm not quite sure what the problem is
$ perl -e "print pack 'Q',1"
Invalid type 'Q' in pack at -e line 1.
In perl\win32\config.h I have
/* HAS_QUAD:
* This symbol, if defined, tells that there's a 64-bit integer typ
+e,
* Quad_t, and its unsigned counterpart, Uquad_t. QUADKIND will be
+one
* of QUAD_IS_INT, QUAD_IS_LONG, QUAD_IS_LONG_LONG, or QUAD_IS_INT6
+4_T.
*/
#define HAS_QUAD /**/
#ifdef HAS_QUAD
# define Quad_t long long /**/
# define Uquad_t unsigned long long /**/
# define QUADKIND 3 /**/
# define QUAD_IS_INT 1
# define QUAD_IS_LONG 2
# define QUAD_IS_LONG_LONG 3
# define QUAD_IS_INT64_T 4
#endif
And it seems to have made it into Config
$ perl "-V:.*?quad.*?"
d_quad='define';
quadkind='3';
quadtype='long long';
uquadtype='unsigned long long';
So q/Q for pack/unpack should work, right? | [reply] [d/l] [select] |
|
C:\test\perl-5.14.0-RC1>.\perl -V
Summary of my perl5 (revision 5 version 14 subversion 0) configuration
+:
Platform:
osname=MSWin32, osvers=6.0, archname=MSWin32-x64-multi-thread
uname=''
config_args='undef'
hint=recommended, useposix=true, d_sigaction=undef
useithreads=define, usemultiplicity=define
useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=und
+ef
use64bitint=define, use64bitall=undef, uselongdouble=undef
usemymalloc=n, bincompat5005=undef
Compiler:
cc='cl', ccflags ='-nologo -GF -W3 -MD -Zi -DNDEBUG -Ox -GL -fp:pr
+ecise -
optimize='-MD -Zi -DNDEBUG -Ox -GL -fp:precise',
cppflags='-DWIN32'
ccversion='15.00.21022.08', gccversion='', gccosandvers=''
intsize=4, longsize=4, ptrsize=8, doublesize=8, byteorder=12345678
d_longlong=undef, longlongsize=8, d_longdbl=define, longdblsize=8
ivtype='__int64', ivsize=8, nvtype='double', nvsize=8, Off_t='__in
+t64', l
alignbytes=8, prototype=define
Linker and Libraries:
ld='link', ldflags ='-nologo -nodefaultlib -debug -opt:ref,icf -lt
+cg -li
libpth=\lib
libs=oldnames.lib kernel32.lib user32.lib gdi32.lib winspool.lib
+comdlg3
perllibs=oldnames.lib kernel32.lib user32.lib gdi32.lib winspool.l
+ib com
libc=msvcrt.lib, so=dll, useshrplib=true, libperl=perl514.lib
gnulibc_version=''
Dynamic Linking:
dlsrc=dl_win32.xs, dlext=dll, d_dlsymun=undef, ccdlflags=' '
cccdlflags=' ', lddlflags='-dll -nologo -nodefaultlib -debug -opt:
+ref,icf
Characteristics of this binary (from libperl):
Compile-time options: MULTIPLICITY PERL_DONT_CREATE_GVSV
PERL_IMPLICIT_CONTEXT PERL_IMPLICIT_SYS
PERL_MALLOC_WRAP PERL_PRESERVE_IVUV PL_OP_SLAB
+_ALLOC
USE_64_BIT_INT USE_ITHREADS USE_LARGE_FILES
USE_PERLIO USE_PERL_ATOF
Locally applied patches:
RC1
Built under MSWin32
Compiled at Apr 21 2011 08:07:59
@INC:
C:/test/perl-5.14.0-RC1/lib
.
C:\test\perl-5.14.0-RC1>.\perl.exe -E"print pack 'Q', 1 "
☺
C:\test\perl-5.14.0-RC1>.\perl.exe -E"print length pack 'Q', 1 "
8
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.
| [reply] [d/l] |
|
So q/Q for pack/unpack should work, right?
On the basis of what you've shown us, that is right. What's your full perl -V output ?
Cheers, Rob
| [reply] [d/l] |
|
Difference from BrowserUks -V is presence of use64bitint=define, but HAVE_QUAD doesn't appear to depend on it.
The other difference is I'm using gcc on 32bit OS, but I have 64-bit processor, but I think it should still work :)
I'm recompiling now, will update with full -V.
update:
update: well, use64bitint=define seems to make Q/q available, and the simple test matches BrowserUks results.
update: hmm, it compiles, Q/q is available, but some failing tests, awww :)
Read more... $ perl harness op/64bitint.t op/pack.t op/sprintf2.t (15 kB)
And the other new test failures
Read more... $ perl harness ../dist/Math-BigInt/t/bare_mbi.t ../dist/Math-BigInt/t/bigintpm.t ../dist/Math-BigInt/t/sub_mbi.t (3 kB)
Oh well :) Thanks
| [reply] [d/l] [select] |
|
|
|