> # ./pil lib/test.l $(/bin/pwd) -bye +
> [test/src/main.l:11] 7 -- 'test' failed
Yes. Actually, we know this since quite a while. On Sep 7th, I wrote
> In IRC today we noticed, that the versions of OpenBSD seems to differ a
> lot in that low-level regard :(
> Mathias used OpenBSD 5.0, and the interpreter works (at least partially).
With that I meant these unit tests. The above line in "test/src/main.l"
calls 'alarm' and 'wait', which both strongly depend on system calls.
Obviously, the constant and code definitions in
are not correct. That's why we started the discussion about the OpenBSD
versions differing between yours and Matthias'.
I put all information into these files from what you had sent me. On
Matthias' system it seemed to differ. So I don't know what is correct.
For example, for the line in "code.c"
int c = WIFSTOPPED(n);
you sent me a "code.s" which assembled it to
movl -4(%rbp), %edi
movl $0, %eax
movl %eax, -16(%rbp)
while on Matthias' it was
cmpl $127, %eax
movzbl %al, %eax
movl %eax, -172(%rbp)
movl $0, -176(%rbp)
This second one seemes to work, so I believe it is correct. It is what
basically is now in "src64/sys/x86-64.openBsd.code.l".
Thus, assuming that "code.l" is all right now, I suspect that some
constants in "defs.l" are still wrong.
Somebody with a running OpenBSD system should check these constants, and
set them to the correct values.