On Sat, Mar 05, 2011 at 02:35:42PM +0100, Pascal Stumpf wrote:
> > I'll try, but building rakudo seems to need a lot of memory. This
> > may take some time on my poor little armish ;-)
> > 
> Thanks a lot in advance. Also, be warned that the rakudo spectest will
> take a very long time, maybe even days on such a machine. 

armish is still building, but mips64el is finished.

Full regress log at

http://openbsd.dead-parrot.de/rakudo-mips64el-regress.log

Test Summary Report
-------------------
t/spec/S02-builtin_data_types/instants-and-durations.t       (Wstat: 0 Tests: 
13 Failed: 1)
  Failed test:  9
t/spec/S03-operators/arith.rakudo                            (Wstat: 0 Tests: 
135 Failed: 1)
  Failed test:  107
t/spec/S19-command-line/dash-e.t                             (Wstat: 0 Tests: 3 
Failed: 2)
  Failed tests:  2-3
t/spec/S29-context/sleep.t                                   (Wstat: 0 Tests: 4 
Failed: 2)
  Failed tests:  2, 4
t/spec/S32-num/power.rakudo                                  (Wstat: 0 Tests: 
40 Failed: 1)
  Failed test:  11
Files=542, Tests=27334, 46272 wallclock secs (76.97 usr 22.74 sys + 44031.06 
cusr 1076.63 csys = 45207.40 CPU)
Result: FAIL

This is similar to the results on amd64, except for
t/spec/S29-context/sleep.t, which passes on amd64.

Running that test from the commandline:

$ time ./perl6 t/spec/S29-context/sleep.t
1..4
# Sleeping for 3s
ok 1 - Sleep says it slept at least 2 seconds
not ok 2 - ... and no more than 10
ok 3 - Sleep says it slept at least 2 seconds
not ok 4 - ... and no more than 10
# Looks like you failed 2 tests of 4
    0m57.28s real     0m24.85s user     0m1.59s system

Running this little program with ./perl6:

        print "Sleeping for 3s\n";
        my $s = sleep 3;
        print "Result: $s\n";

gives output like

        Sleeping for 3s
        Result: 25

The result varies between 25 and 28.

Running it through ktrace(1) and then reading the trace with kdump
-R shows that `sleep' is implemented using poll(2), but using a
wrong timeout parameter, which is different during several test
runs:

        25090 perl6    0.000023 CALL  poll(0x5a9a0000,0x1,0x6abc)
        25090 perl6    27.334955 RET   poll 0

         7918 perl6    0.000024 CALL  poll(0x5cf04000,0x1,0x6b75)
         7918 perl6    27.511825 RET   poll 0

        22718 perl6    0.000024 CALL  poll(0x5e472000,0x1,0x6776)
        22718 perl6    26.491583 RET   poll 0

So something seems to be wrong with the way rakudo calculates the
timeout parameter to poll(2), at least on mips64el.

Ciao,
        Kili

Reply via email to