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 here: > 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 src64/sys/x86-64.openBsd.defs.l and/or src64/sys/x86-64.openBsd.code.l 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 call WIFSTOPPED 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. Cheers, - Alex -- UNSUBSCRIBE: mailto:[email protected]?subject=Unsubscribe
