If the current ponie in CVS is built with full defaults for parrot, then it fails to build Unicode::Normalize, and fails about 40 regression tests. If parrot's garbage collector is changed from the default (compacting, IIRC) to the either libc or malloc, then ponie only fails 6 tests. ie make this change:
Index: Configure.pl =================================================================== RCS file: /cvs/public/ponie/Configure.pl,v retrieving revision 1.12 diff -r1.12 Configure.pl 47c47,48 < system($^X,'Configure.pl',"--ccflags= :add{ -I$dir/perl}") && die "error"; --- > system($^X,'Configure.pl', "--gc=libc", > "--ccflags= :add{ -I$dir/perl}") && die "error"; As I understand it parrot's default garbage collector will move data blocks owned by PMCs. However, all of the PMCs ponie generates do not have gc-owned data attached to them, so there should be no difference. Chatting with Dan on IRC we think that it has to be a bug in parrot's GC. Unfortunately Arthur and I can't get it down to a simple test case. For example on x86 Linux t/op/pat fails at test 345 with parrot's default gc, but that whole test passes with gc=libc. Trying to cut down the regression tests to the fail point makes them pass, which suggests that it's the cumulative resource usage that is really the problem, not any particular perl construction. [tests fail in different places on OS X. Not tried other systems yet. Still fighting AIX] We're not sure how to track this one down further - at the moment the best plan seems to be to apply the above patch to ponie, and make a snapshot release with it in. I've attached the diff between TEST run for the two configurations. Nicholas Clark
--- logTESTdefault Thu Mar 11 16:13:51 2004 +++ logTESTgc=libc Thu Mar 11 15:22:48 2004 @@ -138,7 +138,7 @@ t/op/ord.............................ok t/op/override........................ok t/op/pack............................ok -t/op/pat.............................FAILED at test 345 +t/op/pat.............................ok t/op/pos.............................ok t/op/pow.............................ok t/op/push............................ok @@ -150,13 +150,10 @@ t/op/read............................ok t/op/readdir.........................ok t/op/readline........................ok -t/op/recurse.........................# Failed at op/recurse.t line 132 -# got '35584' -# expected '0' -FAILED at test 28 +t/op/recurse.........................ok t/op/ref.............................ok -t/op/regexp..........................FAILED at test 673 -t/op/regexp_noamp....................FAILED at test 678 +t/op/regexp..........................ok +t/op/regexp_noamp....................ok t/op/regmesg.........................ok t/op/repeat..........................ok t/op/reverse.........................ok @@ -191,7 +188,7 @@ t/op/ver.............................ok t/op/wantarray.......................ok t/op/write...........................ok -t/uni/fold...........................FAILED at test 397 +t/uni/fold...........................ok t/uni/lower..........................ok t/uni/sprintf........................ok t/uni/title..........................ok @@ -325,7 +322,7 @@ ext/Safe/t/safe1.....................ok ext/Safe/t/safe2.....................ok ext/Safe/t/safe3.....................ok -ext/Safe/t/safeops...................FAILED at test 108 +ext/Safe/t/safeops...................ok ext/SDBM_File/t/sdbm.................ok ext/Socket/t/socketpair..............Something unexpectedly hung during testing at ../ext/Socket/t/socketpair.t line 39. ok @@ -339,10 +336,10 @@ ext/Storable/t/downgrade.............ok ext/Storable/t/forgive...............ok ext/Storable/t/freeze................ok -ext/Storable/t/integer...............FAILED at test 454 +ext/Storable/t/integer...............ok ext/Storable/t/interwork56...........skipping test on this platform ext/Storable/t/lock..................ok -ext/Storable/t/malice................FAILED at test 234 +ext/Storable/t/malice................ok ext/Storable/t/overload..............ok ext/Storable/t/recurse...............ok ext/Storable/t/restrict..............ok @@ -377,15 +374,9 @@ ext/threads/t/stress_string..........skipping test on this platform ext/threads/t/thread.................skipping test on this platform ext/Time/HiRes/t/HiRes...............ok -ext/Unicode/Normalize/t/func.........Can't locate Unicode/Normalize.pm in @INC (@INC contains: ../lib) at ../ext/Unicode/Normalize/t/func.t line 23. -BEGIN failed--compilation aborted at ../ext/Unicode/Normalize/t/func.t line 23. -FAILED at test 1 -ext/Unicode/Normalize/t/norm.........Can't locate Unicode/Normalize.pm in @INC (@INC contains: ../lib) at ../ext/Unicode/Normalize/t/norm.t line 23. -BEGIN failed--compilation aborted at ../ext/Unicode/Normalize/t/norm.t line 23. -FAILED at test 1 -ext/Unicode/Normalize/t/test.........Can't locate Unicode/Normalize.pm in @INC (@INC contains: ../lib) at ../ext/Unicode/Normalize/t/test.t line 23. -BEGIN failed--compilation aborted at ../ext/Unicode/Normalize/t/test.t line 23. -FAILED at test 1 +ext/Unicode/Normalize/t/func.........ok +ext/Unicode/Normalize/t/norm.........ok +ext/Unicode/Normalize/t/test.........ok ext/XS/APItest/t/printf..............ok ext/XS/Typemap/t/Typemap.............ok lib/AnyDBM_File......................ok @@ -393,7 +384,7 @@ lib/AutoLoader.......................ok lib/AutoSplit........................ok lib/autouse..........................ok -lib/Benchmark........................FAILED at test 6 +lib/Benchmark........................ok lib/bigfloatpl.......................ok lib/bigintpl.........................ok lib/bignum/t/bigint..................ok @@ -430,7 +421,7 @@ lib/constant.........................ok lib/CPAN/t/loadme....................ok lib/CPAN/t/mirroredby................ok -lib/CPAN/t/Nox.......................FAILED at test 7 +lib/CPAN/t/Nox.......................ok lib/CPAN/t/signature.................ok lib/CPAN/t/vcmp......................ok lib/DB...............................ok @@ -444,7 +435,7 @@ lib/Env/t/array......................ok lib/Env/t/env........................ok lib/Exporter.........................ok -lib/ExtUtils/t/00compile.............FAILED at test 49 +lib/ExtUtils/t/00compile.............ok lib/ExtUtils/t/00setup_dummy.........ok lib/ExtUtils/t/backwards.............ok lib/ExtUtils/t/basic.................ok @@ -495,7 +486,8 @@ lib/File/Copy........................ok lib/File/DosGlob.....................ok lib/File/Find/t/find.................FAILED at test 3 -lib/File/Find/t/taint................FAILED at test 2 +lib/File/Find/t/taint................# Failed test (../lib/File/Find/t/taint.t at line 100) +FAILED at test 3 lib/FileHandle.......................ok lib/File/Path........................ok lib/File/Spec/t/Functions............ok @@ -545,23 +537,23 @@ lib/Locale/Maketext/t/02get..........ok lib/Locale/Maketext/t/03http.........ok lib/Locale/Maketext/t/90utf8.........ok -lib/locale...........................FAILED at test 99 -lib/Math/BigInt/t/bare_mbf...........FAILED at test 644 -lib/Math/BigInt/t/bare_mbi...........FAILED at test 251 +lib/locale...........................ok +lib/Math/BigInt/t/bare_mbf...........ok +lib/Math/BigInt/t/bare_mbi...........ok lib/Math/BigInt/t/bare_mif...........ok -lib/Math/BigInt/t/bigfltpm...........FAILED at test 141 +lib/Math/BigInt/t/bigfltpm...........ok lib/Math/BigInt/t/bigintc............ok -lib/Math/BigInt/t/bigintpm...........FAILED at test 351 +lib/Math/BigInt/t/bigintpm...........ok lib/Math/BigInt/t/bigints............ok -lib/Math/BigInt/t/biglog.............FAILED at test 28 +lib/Math/BigInt/t/biglog.............ok lib/Math/BigInt/t/calling............ok lib/Math/BigInt/t/config.............ok lib/Math/BigInt/t/constant...........ok lib/Math/BigInt/t/downgrade..........ok -lib/Math/BigInt/t/inf_nan............FAILED at test 337 +lib/Math/BigInt/t/inf_nan............ok lib/Math/BigInt/t/isa................ok -lib/Math/BigInt/t/mbimbf.............FAILED at test 214 -lib/Math/BigInt/t/mbi_rand...........FAILED at test 215 +lib/Math/BigInt/t/mbimbf.............ok +lib/Math/BigInt/t/mbi_rand...........ok lib/Math/BigInt/t/req_mbf0...........ok lib/Math/BigInt/t/req_mbf1...........ok lib/Math/BigInt/t/req_mbfa...........ok @@ -569,19 +561,19 @@ lib/Math/BigInt/t/req_mbfn...........ok lib/Math/BigInt/t/req_mbfw...........ok lib/Math/BigInt/t/require............ok -lib/Math/BigInt/t/sub_mbf............FAILED at test 132 -lib/Math/BigInt/t/sub_mbi............FAILED at test 333 +lib/Math/BigInt/t/sub_mbf............ok +lib/Math/BigInt/t/sub_mbi............ok lib/Math/BigInt/t/sub_mif............ok lib/Math/BigInt/t/trap...............ok lib/Math/BigInt/t/upgradef...........ok -lib/Math/BigInt/t/upgrade............FAILED at test 261 +lib/Math/BigInt/t/upgrade............ok lib/Math/BigInt/t/use_lib1...........ok lib/Math/BigInt/t/use_lib2...........ok lib/Math/BigInt/t/use_lib3...........ok lib/Math/BigInt/t/use_lib4...........ok lib/Math/BigInt/t/use_mbfw...........ok lib/Math/BigInt/t/use................ok -lib/Math/BigInt/t/with_sub...........FAILED at test 715 +lib/Math/BigInt/t/with_sub......witch/t/switch..................FAILED at test 0 +lib/Switch/t/switch..................ok lib/Symbol...........................ok lib/Term/ANSIColor/test..............ok lib/Te/Tie/File/t/27_iwrite.............ok -lib/Tie/File/t/28_mtwrite............FAILED at test 319 +lib/Tie/File/t/28_mtwrite............ok lib/Tie/File/t/29a_upcopy............ok -lib/Tie/File/t/29_downcopy...........FAILED at test 600 +lib/Tie/File/t/29_downcopy...........ok lib/Tie/File/t/30_defer..............ok lib/Tie/File/t/31_autodefer..........ok lib/Tie/File/t/32_defer_misc.........ok @@ -794,7 +786,7 @@ lib/Tie/File/t/42_offset.............ok lib/Tie/Handle/stdhandle.............ok lib/Tie/Memoize......................ok -lib/Tie/RefHash......................FAILED at test 0 +lib/Tie/RefHash......................ok lib/Tie/Scalar.......................ok lib/Tie/SubstrHash...................ok lib/Time/gmtime......................ok @@ -841,7 +833,7 @@ t/pod/podselect......................ok t/pod/special_seqs...................ok t/x2p/s2p............................ok -Failed 40 test scripts out of 737, 94.57% okay. +Failed 6 test scripts out of 740, 99.19% okay. ### Since not all tests were successful, you may want to run some of ### them individually and examine any diagnostic messages they produce. ### See the INSTALL document's section on "make test". @@ -855,4 +847,4 @@ ### export LD_LIBRARY_PATH=`pwd`; cd t; ./perl harness ### for csh-style shells, like tcsh; or for traditional/modern ### Bourne-style shells, like bash, ksh, and zsh, respectively. -u=1.31 s=0.76 cu=127.89 cs=18.54 scripts=737 tests=71146 +u=1.8 s=0.95 cu=199.06 cs=21.45 scripts=740 tests=71769