Hi Amit,

> # ./pil lib/test.l $(/bin/pwd) -bye +
> (N)
> [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

   movzbl   -4(%rbp),%eax
   cmpl  $127, %eax
   sete  %al
   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.

- Alex
UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe

Reply via email to