[Openmcl-devel] Clozure CL 1.3-RC1 available

John Stoneham captnjameskirk at yahoo.com
Mon Feb 16 09:09:16 PST 2009


> Just out of curiousity, if you change that "int $0xd5" to "int $0xc5",
> do you still get  EXC_BAD_ACCESS with the first code 0xd and the
> second (I think) 0x62a ?

Yes, that's what I get:
Mach exception: 1 (EXC_BAD_ACCESS) with 2 codes: 0xd 0x62a

> The last thing that I can think of to ask you to try involves changing
> both the EXC_BAD_ACCESS and EXC_BAD_INSTRUCTION clauses, to try to
> generate SIGSEGV if the exception is either EXC_BAD_ACCESS or
> EXC_BAD_INSTRUCTION, the first code is EXC_I386_GPFLT (= 0xd), and
> the program counter is pointing at an 'int $n' instruction.
> 
>        switch (exception) {
>        case EXC_BAD_ACCESS:
>          if (code == EXC_I386_GPFLT) {
>            signum = SIGILL;
>            if (*((pc)ts_pc(ts)) == INTN_OPCODE) {
>              signum = SIGSEGV;
>            }
>          } else {
>            signum = SIGBUS;
>          }
>          break;
> 
>        case EXC_BAD_INSTRUCTION:
>          signum = SIGILL;
>          if ((code == EXC_I386_GPFLT) &&
>              *((pc)ts_pc(ts)) == INTN_OPCODE) {
>            signum = SIGSEGV;
>          }
>          break;
> 
> If that works, it was a lucky guess.  If not, I probably won't be able
> to come up with a better guess until I get that Core Duo iMac back (a
> week or two ?) and can see what's going on here.

Well, this is interesting. Now ccl behaves exactly the same on both Tiger and Leopard. They both give an "error reporting error" and the same backtrace on QUIT, and they both break at loading the image after rebuilding ccl, with the same backtrace. So at least they're both consistent, but they are still both broken. Just in case there is some difference I'm not noticing between the backtrace I gave before and the one I'm seeing now, here's the new QUIT backtrace:

$ ccl
Welcome to Clozure Common Lisp Version 1.3-RC1-r11719M  (DarwinX8632)!
? (quit)
> Error: Error reporting error
> While executing: CCL::FUNCALL-WITH-ERROR-REENTRY-DETECTION, in process listener(1).
> Type :POP to abort, :R for a list of available restarts.
> Type :? for other options.
1 > :B
 (659BA8) : 0 (FUNCALL-WITH-ERROR-REENTRY-DETECTION #<COMPILED-LEXICAL-CLOSURE (:INTERNAL CCL::%XERR-DISP) #x2E5A26>) 239
 (659BC4) : 1 (FUNCALL #'#<CCL::%XERR-DISP> -335125710) 431
 (659BE0) : 2 (%PASCAL-FUNCTIONS% 2 -335125710) 343
*(659C28) : 4 (%GET-XCF-BYTE NIL NIL) 366
 (659C5C) : 5 (FUNCALL #'#<(:INTERNAL CCL::%XERR-DISP)>) 103
 (659C74) : 6 (FUNCALL-WITH-ERROR-REENTRY-DETECTION #<COMPILED-LEXICAL-CLOSURE (:INTERNAL CCL::%XERR-DISP) #x2E5A5E>) 183
 (659C94) : 7 (FUNCALL #'#<CCL::%XERR-DISP> -335125122) 431
 (659CB0) : 8 (%PASCAL-FUNCTIONS% 2 -335125122) 343
*(659CF8) : 10 (%%TCR-INTERRUPT ???) NIL
 (659D78) : 11 (QUIT 0) 447
 (659D90) : 12 (CALL-CHECK-REGS QUIT) 247
 (659DAC) : 13 (TOPLEVEL-EVAL (QUIT) NIL) 751
 (659DEC) : 14 (READ-LOOP :INPUT-STREAM #<SYNONYM-STREAM to *TERMINAL-IO* #x89CBFA6> :OUTPUT-STREAM #<SYNONYM-STREAM to *TERMINAL-IO* #x89CBDA6> :BREAK-LEVEL 0 :PROMPT-FUNCTION #<Compiled-function (:INTERNAL CCL::READ-LOOP) (Non-Global)  #x83845E6>) 1831
 (659F00) : 15 (TOPLEVEL-LOOP) 71
 (659F08) : 16 (FUNCALL #'#<(:INTERNAL (TOPLEVEL-FUNCTION (CCL::LISP-DEVELOPMENT-SYSTEM T)))>) 87
 (659F14) : 17 (FUNCALL #'#<(:INTERNAL CCL::MAKE-MCL-LISTENER-PROCESS)>) 583
 (659F60) : 18 (RUN-PROCESS-INITIAL-FORM #<TTY-LISTENER listener(1) [Active] #x89CA066> (#<COMPILED-LEXICAL-CLOSURE # #x89C9C96>)) 671
 (659FA4) : 19 (FUNCALL #'#<(:INTERNAL CCL::%PROCESS-PRESET-INTERNAL)> #<TTY-LISTENER listener(1) [Active] #x89CA066> (#<COMPILED-LEXICAL-CLOSURE # #x89C9C96>)) 335
 (659FCC) : 20 (FUNCALL #'#<(:INTERNAL CCL::THREAD-MAKE-STARTUP-FUNCTION)>) 279
1 > 


Oh, I forgot to mention that on Leopard I have Xcode 3.1.2, and on Tiger it's 2.5. I noticed that when the kernel is built on Leopard, it's linking the 10.4 SDK, but that's standard practice when building on Leopard to keep compatibility with Tiger, so I don't think that should change. But I always recompile it on Tiger too just to be on the safe side.

If you think of anything else you'd like me to try before you get your Mac Mini back, just shoot it my way. 



      



More information about the Openmcl-devel mailing list