I downloaded the latest SLIME with the new macro indentation code from CVS. It seems to work under LW & CLISP on Windows; however, I get the following error under ACL on Windows:
Received signal number 11 (Segmentation violation) [Condition of type SYNCHRONOUS-OPERATING-SYSTEM-SIGNAL]
Restarts: 0: [ABORT] Return to sldb level 1. 1: [ABORT] Abort handling SLIME request. 2: [ABORT] Abort entirely from this process.
Backtrace: 0: (SWANK::DEBUG-IN-EMACS #<SYNCHRONOUS-OPERATING-SYSTEM-SIGNAL @ #x2064080a>) 1: ((FLET SWANK::SWANK-DEBUGGER-HOOK SWANK::DEBUG-IT)) 2: (SWANK::SWANK-DEBUGGER-HOOK #<SYNCHRONOUS-OPERATING-SYSTEM-SIGNAL @ #x2064080a> #<Function SWANK-DEBUGGER-HOOK>) 3: (EXCL::INTERNAL-INVOKE-DEBUGGER "Error" #<SYNCHRONOUS-OPERATING-SYSTEM-SIGNAL @ #x2064080a> T) 4: (ERROR SYNCHRONOUS-OPERATING-SYSTEM-SIGNAL :NAME #1="Segmentation violation" :NUMBER 11 :FORMAT-CONTROL "Received signal number ~s ~@[(~a)~]" :FORMAT-ARGUMENTS (11 #1#)) 5: (EXCL::HANDLE-PENDING-SIGNAL 11) 6: (SYSTEM::..CONTEXT-SAVING-RUNTIME-OPERATION) 7: (EXCL::LIST-REMOVE-EQL &WHOLE ((COMPILER::VAR COMPILER::NEXT LIST) . COMPILER::BODY)) 8: (SWANK::MACRO-INDENTATION ((COMPILER::VAR COMPILER::NEXT LIST) . COMPILER::BODY)) 9: (SWANK::SYMBOL-INDENTATION COMPILER::DO-QUAD-LIST-TO-END) 10: ((FLET SWANK::UPDATE-INDENTATION/DELTA-FOR-EMACS SWANK::CONSIDER) COMPILER::DO-QUAD-LIST-TO-END) 11: ((FLET SWANK::UPDATE-INDENTATION/DELTA-FOR-EMACS #:G1957) COMPILER::DO-QUAD-LIST-TO-END COMPILER::DO-QUAD-LIST-TO-END) 12: (MAPHASH #<Closure (FLET SWANK::UPDATE-INDENTATION/DELTA-FOR-EMACS #:G1957) @ #x9b2e71a> #<SYMBOL hash-table (sans values) with 2951 entries @ #x200e94ca>) 13: (SWANK::UPDATE-INDENTATION/DELTA-FOR-EMACS #<EQ hash-table with 30 entries @ #x205a3c1a> (#<The ACL-SOCKET package> #<The ACLMOP package> #<The COMMON-LISP package> #<The COMMON-LISP-USER package> #<The COMPILER package> #<The CROSS-REFERENCE package> #<The DEBUGGER package> #<The DEFSYSTEM package> #<The EXCL package> #<The EXCL.SCM package> #<The FOREIGN-FUNCTIONS package> #<The G10 package> #<The GARBAGE package> #<The INSPECT package> #<The KEYWORD package> #<The LEP package> #<The LEP-IO package> #<The MULTIPROCESSING package> #<The NET.URI package> #<The PROFILER package> #<The SWANK package> #<The SWANK-BACKEND package> #<The SWANK-COMPLETION-TEST package> #<The SWANK-IO-PACKAGE package> #<The SWANK-LOADER package> #<The SYSTEM package> #<The TOP-LEVEL package>)) 14: (SWANK::PERFORM-INDENTATION-UPDATE #S(SWANK::CONNECTION :SOCKET-IO #<MULTIVALENT #2=stream socket #3=connected from #1=localhost/4005 to #1#/1722 @ #x205b9392> :DEDICATED-OUTPUT #4=#<MULTIVALENT #2# #3#connected from #1#/1723 to #1#/1724 @ #x205a41aa> :USER-INPUT #<SWANK-BACKEND::SLIME-INPUT-STREAM @ #x205a4a3a> :USER-OUTPUT #4# :USER-IO #<TWO-WAY-STREAM @ #x205a4a22> :CONTROL-THREAD #<MULTIPROCESSING:PROCESS control-thread(5f8)[4] receive @ #x205b824a> :READER-THREAD #<MULTIPROCESSING:PROCESS reader-thread(72c)[5] waiting for input @ #x205b81c2> :READ #<Function READ-FROM-CONTROL-THREAD> :SEND #<Function SEND-TO-CONTROL-THREAD> :SERVE-REQUESTS #<Function SPAWN-THREADS-FOR-CONNECTION> :CLEANUP NIL :INDENTATION-CACHE #<EQ hash-table with 30 entries @ #x205a3c1a> :INDENTATION-CACHE-PACKAGES NIL) (#<The ACL-SOCKET package> #<The ACLMOP package> #<The COMMON-LISP package> #<The COMMON-LISP-USER package> #<The COMPILER package> #<The CROSS-REFERENCE package> #<The DEBUGGER package> #<The DEFSYSTEM package> #<The EXCL package> #<The EXCL.SCM package> #<The FOREIGN-FUNCTIONS package> #<The G10 package> #<The GARBAGE package> #<The INSPECT package> #<The KEYWORD package> #<The LEP package> #<The LEP-IO package> #<The MULTIPROCESSING package> #<The NET.URI package> #<The PROFILER package> #<The SWANK package> #<The SWANK-BACKEND package> #<The SWANK-COMPLETION-TEST package> #<The SWANK-IO-PACKAGE package> #<The SWANK-LOADER package> #<The SYSTEM package> #<The TOP-LEVEL package>)) 15: (SWANK::UPDATE-CONNECTION-INDENTATION #S(SWANK::CONNECTION :SOCKET-IO #<MULTIVALENT #2=stream socket #3=connected from #1=localhost/4005 to #1#/1722 @ #x205b9392> :DEDICATED-OUTPUT #4=#<MULTIVALENT #2# #3#connected from #1#/1723 to #1#/1724 @ #x205a41aa> :USER-INPUT #<SWANK-BACKEND::SLIME-INPUT-STREAM @ #x205a4a3a> :USER-OUTPUT #4# :USER-IO #<TWO-WAY-STREAM @ #x205a4a22> :CONTROL-THREAD #<MULTIPROCESSING:PROCESS control-thread(5f8)[4] receive @ #x205b824a> :READER-THREAD #<MULTIPROCESSING:PROCESS reader-thread(72c)[5] waiting for input @ #x205b81c2> :READ #<Function READ-FROM-CONTROL-THREAD> :SEND #<Function SEND-TO-CONTROL-THREAD> :SERVE-REQUESTS #<Function SPAWN-THREADS-FOR-CONNECTION> :CLEANUP NIL :INDENTATION-CACHE #<EQ hash-table with 30 entries @ #x205a3c1a> :INDENTATION-CACHE-PACKAGES NIL)) 16: (SWANK::SYNC-STATE-TO-EMACS) 17: (SWANK::EVAL-FOR-EMACS (SWANK:BACKTRACE 2 41) NIL 4) 18: (SYSTEM::..RUNTIME-OPERATION . :UNKNOWN-ARGS) 19: (FUNCALL SWANK::EVAL-FOR-EMACS (SWANK:BACKTRACE 2 41) NIL 4) --more--
Don't know whether this is an ACL/Windows-specific error or an ACL-specific error. Does anyone else get this error with the new macro-indentation code under ACL (Windows or Linux)?
-- Bill Clementson
Bill_Clementson@peoplesoft.com writes:
I downloaded the latest SLIME with the new macro indentation code from CVS. It seems to work under LW & CLISP on Windows; however, I get the following error under ACL on Windows:
Received signal number 11 (Segmentation violation) [Condition of type SYNCHRONOUS-OPERATING-SYSTEM-SIGNAL]
Jeepers. As a workaround you can set swank:*configure-emacs-indentation* to NIL in ACL.
Backtrace: 0: (SWANK::DEBUG-IN-EMACS #<SYNCHRONOUS-OPERATING-SYSTEM-SIGNAL @ #x2064080a>) 1: ((FLET SWANK::SWANK-DEBUGGER-HOOK SWANK::DEBUG-IT)) 2: (SWANK::SWANK-DEBUGGER-HOOK #<SYNCHRONOUS-OPERATING-SYSTEM-SIGNAL @ #x2064080a> #<Function SWANK-DEBUGGER-HOOK>) 3: (EXCL::INTERNAL-INVOKE-DEBUGGER "Error" #<SYNCHRONOUS-OPERATING-SYSTEM-SIGNAL @ #x2064080a> T) 4: (ERROR SYNCHRONOUS-OPERATING-SYSTEM-SIGNAL :NAME #1="Segmentation violation" :NUMBER 11 :FORMAT-CONTROL "Received signal number ~s ~@[(~a)~]" :FORMAT-ARGUMENTS (11 #1#)) 5: (EXCL::HANDLE-PENDING-SIGNAL 11) 6: (SYSTEM::..CONTEXT-SAVING-RUNTIME-OPERATION) 7: (EXCL::LIST-REMOVE-EQL &WHOLE ((COMPILER::VAR COMPILER::NEXT LIST) . COMPILER::BODY)) 8: (SWANK::MACRO-INDENTATION ((COMPILER::VAR COMPILER::NEXT LIST) . COMPILER::BODY))
This is interesting. Do you get the same problem if you just directly run this?
(macro-indentation '((COMPILER::VAR COMPILER::NEXT LIST) . COMPILER::BODY))
From the backtrace it looks like the error is triggered by:
(remove '&whole '((COMPILER::VAR COMPILER::NEXT LIST) . COMPILER::BODY))
Which I imagine should generate an error because the list isn't properly terminated, but a segfault seems a bit on the harsh side. Do you have some kind of high-speed low-safety optimization setup?
Most importantly, is the return value of excl:arglist documented? Hopefully we can patch it up in swank-allegro.lisp to return something that looks like a proper lambda-list.
-Luke