[Openmcl-devel] Clozure CL 1.3-RC1 available

John Stoneham captnjameskirk at yahoo.com
Mon Feb 16 15:04:36 UTC 2009


> Great, thanks.  There are a couple of things that I'm curious about.
> 
> 1) In the function 'illegal() in the mach32.c function that I sent out
> the other day, there's a commented-out
> 
> /*  __asm__ volatile("int $0xd5");  */
> 
> If you remove the /* */ comments and recompile, do you get:
> 
> Mach exception: 1 (EXC_BAD_ACCESS) with 2 codes: 0xd 0x6aa
> 
> (I'd think so.)
> 

Yes, that's exactly what I get.

> 2) Does changing the following case clause in
> lisp-kernel/x86-exceptions.c (and rebuilding the kernel) fix things
> for you, without obviously breaking anything else ?  The clause in
> quesion is around line 3190, and the proposed change is to
> unconditionally set 'signum' to SIGILL, e.g., to change:
> 
>        case EXC_BAD_INSTRUCTION:
>          if (code == EXC_I386_GPFLT) {
>            signum = SIGSEGV;
>          } else {
>            signum = SIGILL;
>          }
>          break;
> 
> 
> to:
> 
>        case EXC_BAD_INSTRUCTION:
>          signum = SIGILL;
>          break;

Nope, didn't work, but Tiger and Leopard were different this time. I changed the code above and ran "make" in the lisp-kernel/darwinx8632 directory. It compiled fine without errors on both. On Leopard, when I then ran ccl with the new kernel it behaved the same as it did before: QUIT still threw an error, and rebuilding ccl borked at loading the newly compiled image. The backtraces were the same as they were before, as near as I can tell. The only difference was that ^D didn't cause it to freeze, it just went to a new user prompt. But here's the thing. When I tried it on Tiger, ccl wouldn't even get to the repl. This is what I get (with B, T, and L info):

$ ccl
Unhandled exception 4 at 0x88adc77, context->regs at #xbffff5cc
? for help
[528] Clozure CL kernel debugger: B
current thread: tcr = 0x300480, native thread ID = 0x113, interrupts disabled
[528] Clozure CL kernel debugger: T
Current Thread Context Record (tcr) = 0x300480
Control (C) stack area:  low = 0xbfe9c000, high = 0xbffff930
Value (lisp) stack area: low = 0x405000, high = 0x0
Exception stack pointer = 0x547fec
[528] Clozure CL kernel debugger: L
%ebx (arg_z) = #<Anonymous Function #x089B1C3E>
%esi (arg_y) = #<Anonymous Function #x089B0EBE>
------
%edi (fn) = #<Function (:INTERNAL SAVE-IMAGE) #x088ADC3E>
------
Unhandled exception 10 at 0x2cdc7, context->regs at #xbfffeebc
Exception occurred while executing foreign code
at sprint_vector + 12
? for help
[528] Clozure CL kernel debugger: 



      



More information about the Openmcl-devel mailing list