[Openmcl-devel] Slime problem on windows

Marko Kocić marko.kocic at gmail.com
Thu Oct 23 03:13:59 PDT 2008


>> Fault during read of memory address #xC4
>>  [Condition of type CCL::INVALID-MEMORY-ACCESS]
>>
>> Restarts:
>>
>> Backtrace:
>>  0: (CCL::XCMAIN 6225198)
>>     Locals:
>>       #:G122183 = 6225198
>>       #:G122193 = #<A Foreign Pointer [stack-allocated] #x17BF4B8>
>>       CCL::XP = #<A Foreign Pointer #x17BFA74>
>>       CCL::XCF = #<A Foreign Pointer #x18D0FD0>
>>       SIGNAL = 10
>>       CCL::CODE = 0
>>       CCL::ADDR = 196
>>       CCL::FRAME-PTR = 6505460
>>  1: (CCL::%PASCAL-FUNCTIONS% 1 6225198)
>>     Locals:
>>       CCL::INDEX = 1
>>       CCL::ARGS-PTR-FIXNUM = 9633070
>>       CCL::LISP-FUNCTION = #<Compiled-function CCL::XCMAIN
>> (Non-Global)  #x8375B76>
>>       WITHOUT-INTERRUPTS = NIL
>>       CCL::*CALLBACK-TRACE-P* = #<error printing CCL::IMMEDIATE #x33>
>>
>
> What SLIME's backtrace is showing here is part of the process of calling
> out to lisp after the lisp kernel has detected an exception (an invalid
> memory access of some sort.)  That isn't very interesting; the next
> few older frames would (hopefully) show us something about what was
> happening when the fault happened.

How do I get these frames? This is all info provided by slime sldb.

>> I'll try to rebuild ccl to see if the error will persist, but it'll
>> probably take some time for me to figure out how to do it.
>
> ? (rebuild-ccl :clean t)
>
> will delete all FASL (.wx32fsl) files in the CCL hierarchy, compile
> all sources into fasls, and rebuild the heap image.
>
> On other platforms, other arguments to REBUILD-CCL will also cause
> the lisp kernel (C and assembler code) to be rebuilt.  Unfortunately,
> Windows doesn't allow an executable file (wx86cl.exe) to be overwritten
> while it's running, since that would be too useful.

It is possible to do (ccl:rebuild-ccl :clean t :full t) on windows if
you fists rename wx86cl.exe and wx86cl.image to ccl.exe and ccl.image.
After that start ccl.exe and perform full rebuild which will create
new wx86cl.exe and wx86cl.emage.

I had to apply small patch in order to build kernel (I'm using mingw +
msys, no cygwin), see attachment. I don't know enough make to make it
work with both cygwin and mingw.

Seems like pathnames were broken after original image is created,
since I got the following error after trying (asdf:oos 'asdf:load-op
:swank) with the new image.

; loading system definition from
c:/lisp/lib/asdf-binary-locations/asdf-binary-locations.asd into
#<Package "ASDF0">
; registering #<SYSTEM ASDF-BINARY-LOCATIONS #x89EA2C6> as ASDF-BINARY-LOCATIONS
  (WindowsX8632)!e Common Lisp Version 1.3-dev-r11200MS
? (asdf :swank)
; loading system definition from c:/dev/cvstree/lisp/slime/swank.asd
into #<Package "ASDF0">
; registering #<SYSTEM :SWANK #x8A7C1A6> as SWANK
;;
__(windowsx8632)-windows-x86/swank-backend.wx32fslmarkko/.slime/fasl/2008-10-21/openmcl-version_1.3-dev-r11200ms
;; Condition: Can't create directory "/Documents and
Settings/markko/.slime/fasl/2008-10-21/openmcl-version_1.3-dev-r112
__(windowsx8632)-windows-x86/".
;; Aborting.
;;
?

Note missing "c:" before "Documents and Settings" paths. It worked
with image from svn, so I suppose it is not slime fault.
Also, with newly rebuilt system, I sometimes get errors like this:
? (quit)
> Error: Fault during read of memory address #xB4
> While executing: CCL::THREAD-INTERRUPT, in process listener(1).
> Type :POP to abort, :R for a list of available restarts.
> Type :? for other options.
1 > :b
*(A30D0C) : 0 (THREAD-INTERRUPT NIL NIL NIL) NIL
 (A30D88) : 1 (QUIT 0) 447
 (A30DA0) : 2 (CALL-CHECK-REGS QUIT) 247
 (A30DBC) : 3 (TOPLEVEL-EVAL (QUIT) NIL) 759
 (A30DFC) : 4 (READ-LOOP :INPUT-STREAM #<SYNONYM-STREAM to
*TERMINAL-IO* #x8915146> :OUTPUT-STREAM #<SYNONYM-STREAM to *
TERMINAL-IO* #x891506E> :BREAK-LEVEL 0 :PROMPT-FUNCTION
#<Compiled-function (:INTERNAL CCL::READ-LOOP) (Non-Global)  #x8
346976>) 1567
 (A30F00) : 5 (TOPLEVEL-LOOP) 79
 (A30F08) : 6 (FUNCALL #'#<(:INTERNAL (TOPLEVEL-FUNCTION
(CCL::LISP-DEVELOPMENT-SYSTEM T)))>) 87
 (A30F14) : 7 (FUNCALL #'#<(:INTERNAL CCL::MAKE-MCL-LISTENER-PROCESS)>) 583
 (A30F60) : 8 (RUN-PROCESS-INITIAL-FORM #<TTY-LISTENER listener(1)
[Active] #x8914576> (#<COMPILED-LEXICAL-CLOSURE # #x8
914296>)) 671
 (A30FA4) : 9 (FUNCALL #'#<(:INTERNAL CCL::%PROCESS-PRESET-INTERNAL)>
#<TTY-LISTENER listener(1) [Active] #x8914576> (#<
COMPILED-LEXICAL-CLOSURE # #x8914296>)) 335
 (A30FCC) : 10 (FUNCALL #'#<(:INTERNAL CCL::THREAD-MAKE-STARTUP-FUNCTION)>) 279
1 >

Regards,
Marko
-------------- next part --------------
A non-text attachment was scrubbed...
Name: mingw32.patch
Type: application/octet-stream
Size: 605 bytes
Desc: not available
URL: <https://lists.clozure.com/pipermail/openmcl-devel/attachments/20081023/004c5a9a/attachment.obj>


More information about the Openmcl-devel mailing list