Hi, Attached shell script (for systems with a shell) runs all parrot tests natively compiled either static or shared.
It uses the perl6 driver for this, which has (since I ran out of disc space first ;-) an explicit option to delete the ~2MB static executables after successful tests. (perl6 is able to run .p6 .imc .pasm and .pbc files - patches for non *nix OSs welcome) A lot of errors are due to these warnings: - decimal constant is so large that it is unsigned - comparison between signed and unsigned one error is: - `REL_PC' undeclared (first use in this function) Test result after applying [perl #16298]: ../testnative [ ... ] Failed Test Status Wstat Total Fail Failed List of failed ------------------------------------------------------------------------------- t/op/hacks.t 1 1 100,00% 1 t/op/ifunless.t 6 2 33,33% 1, 4 t/op/integer.t 39 9 23,08% 16-23, 34 t/op/interp.t 1 1 100,00% 1 t/op/rx.t 27 6 22,22% 6, 8, 10, 12, 14, 17 t/op/stacks.t 35 3 8,57% 4, 7, 34 t/op/string.t 87 4 4,60% 81-82, 84-85 t/pmc/perlhash. 15 1 6,67% 9 t/pmc/sub.t 3 2 66,67% 2-3 5 subtests skipped. Failed 9/26 test scripts, 65.38% okay. 29/432 subtests failed, 93.29% okay. BTW stacks_33 takes quite a long time to finish ... and succeeds finally. ../testnative --shared [ same result ] (All tests on i386-linux, perl 5.005_03) leo
#!/bin/sh # # run parrot tests in native C mode # cleanup() { if [ "$S" = "--shared" ] ; then rm parrot parrot.orig make else mv parrot.orig parrot fi exit } trap cleanup 1 2 3 mv parrot parrot.orig if [ "$1" = "--shared" ] ; then rm parrot make shared export LD_LIBRARY_PATH=blib/lib S=--shared fi echo 'cd languages/perl6; perl6 -C $S --ignore-exitcode --rm-exe ../../$1' > parrot # use -kC to keep all intermediate files # on error, files are kept # if you don't --rm-exe, you'll need plenty of disk space chmod 755 parrot make test cleanup