whiteknight/io_cleanup1 branch ready for testing

Moritz Lenz moritz at faui2k3.org
Mon Jul 9 08:59:19 UTC 2012


Hi,

I've finally got around to a proper breakdown of the rakudo test 
failures caused by the whiteknight/io_cleanup1 branch. Sorry that it 
took that long.

There are two blocks of failing tests in t/spec/S32-io/IO-Socket-INET.t.

The first block is the discrepancy about .read(4) reading 4 bytes but 
returning a string in parrot/master. I'm happy to address this on the 
Rakudo side (and tests) once the branch is merged. I like the new 
behavior better.

The second block is related to $socket.readline($sep) behaving 
differently from parrot/master with a non-\n separator (the first test 
that fails uses "\r\n" as a separator). I haven't tracked down what the 
exact bug is, but since those tests pass with parrot/master, I guess 
it's  parrot regression.

Finally there are two failing tests in t/spec/S16-filehandles/io.t.
The cause here seems to be that $IO.read_bytes($n) reads $n bytes no 
matter what, even beyond the end of the file:

$ hexdump -C io.test.data
00000000  66 f6 f6                                          |f..|
00000003
$ ./perl6 -e 'my $f = open("io.test.data", :bin); say $f.read(10)'
Buf:0x<66 f6 f6 d2 57 2b 00 00 a0 17>

(Rakudo's IO.read calls the read_bytes method from parrots file handle)
So it gives me the 10 bytes I asked for, even though it should have 
stopped after 3 bytes.

Once the latter two regressions (readline separator and reading past the 
end of the file) are fixed, I'm happy to have the branch merged.

Cheers,
Moritz


More information about the parrot-dev mailing list