From: Peter D. <pet...@ni...> - 2004-11-16 02:28:52
|
Hi, I get the following compiling cl-xml with sbcl 0.8.16 on linux x86. I know a short example would be nice, but I don't have one, and this might only happen with this very large file (~ 1MB) compilation. If you have some ideas on how I might help track this down better, let me know. If you want to try to reproduce it, it actually isn't too hard, despite having to download cl-xml: - download cl-xml at http://pws.prserv.net/James.Anderson/XML/Releases/XML-0-949/XML-0-949-20030409.tgz - (provide 'gray-streams) - (load "load.lisp") - continue through 4 debugger breaks on package lock of SIMPLE-CONDITION-FORMAT-ARGUMENTS and SIMPLE-CONDITION-FORMAT-CONTROL - ...and you are at the bug. It is doing (compile-file "xml:code;atn-lib;xml-grammar.lisp") The value NIL is not of type SB-C:COMPONENT. [Condition of type TYPE-ERROR] Restarts: 0: [ABORT] Abort handling SLIME request. 1: [ABORT] Reduce debugger level (leaving debugger, returning to toplevel). 2: [TOPLEVEL] Restart at toplevel READ/EVAL/PRINT loop. Backtrace: 0: (SB-C::FIND-INITIAL-DFO-AUX 2 #<SB-C::CBLOCK NIL :START c1 {9918BB1}> #<SB-C:COMPONENT :NAME "LABELS BNF-PARSER::SUCCEED" {99396C1}>)[:EXTERNAL] Locals: SB-DEBUG::ARG-0 = 2 SB-DEBUG::ARG-1 = #<SB-C::CBLOCK NIL :START c1 {9918BB1}> SB-DEBUG::ARG-2 = #<SB-C:COMPONENT :NAME "LABELS BNF-PARSER::SUCCEED" {99396C1}> [No catch-tags] 1: (SB-C::FIND-INITIAL-DFO-AUX 2 #<SB-C::CBLOCK NIL :START c2 {9939009}> #<SB-C:COMPONENT :NAME "LABELS BNF-PARSER::SUCCEED" {99396C1}>)[:EXTERNAL] 2: (SB-C::FIND-INITIAL-DFO-AUX 2 #<SB-C::CBLOCK NIL :START c3 {9938FA9}> #<SB-C:COMPONENT :NAME "LABELS BNF-PARSER::SUCCEED" {99396C1}>)[:EXTERNAL] 3: (SB-C::FIND-INITIAL-DFO-AUX 2 #<SB-C::CBLOCK NIL :START c4 {9934FF1}> #<SB-C:COMPONENT :NAME "LABELS BNF-PARSER::SUCCEED" {99396C1}>)[:EXTERNAL] 4: (SB-C::FIND-INITIAL-DFO-AUX 2 #<SB-C::CBLOCK NIL :START c5 {9934DF1}> #<SB-C:COMPONENT :NAME "LABELS BNF-PARSER::SUCCEED" {99396C1}>)[:EXTERNAL] 5: (SB-C::FIND-INITIAL-DFO-AUX 2 #<SB-C::CBLOCK NIL :START c6 {991BB89}> #<SB-C:COMPONENT :NAME "LABELS BNF-PARSER::SUCCEED" {99396C1}>)[:EXTERNAL] 6: (SB-C::FIND-INITIAL-DFO-AUX 2 #<SB-C::CBLOCK NIL :START c7 {991B959}> #<SB-C:COMPONENT :NAME "LABELS BNF-PARSER::SUCCEED" {99396C1}>)[:EXTERNAL] 7: (SB-C::FIND-INITIAL-DFO-AUX 2 #<SB-C::CBLOCK NIL :START c8 {9919BC9}> #<SB-C:COMPONENT :NAME "LABELS BNF-PARSER::SUCCEED" {99396C1}>)[:EXTERNAL] 8: (SB-C::FIND-INITIAL-DFO-AUX 2 #<SB-C::CBLOCK NIL :START c9 {9918E81}> #<SB-C:COMPONENT :NAME "LABELS BNF-PARSER::SUCCEED" {99396C1}>)[:EXTERNAL] 9: (SB-C::FIND-INITIAL-DFO-AUX 2 #<SB-C::CBLOCK NIL :START c10 {9918CF9}> #<SB-C:COMPONENT :NAME "LABELS BNF-PARSER::SUCCEED" {99396C1}>)[:EXTERNAL] 10: (SB-C::FIND-INITIAL-DFO-AUX 2 #<SB-C::CBLOCK NIL :START c11 {9918C99}> #<SB-C:COMPONENT :NAME "LABELS BNF-PARSER::SUCCEED" {99396C1}>)[:EXTERNAL] 11: (SB-C::FIND-INITIAL-DFO-AUX 2 #<SB-C::CBLOCK NIL :START c12 {9918581}> #<SB-C:COMPONENT :NAME "LABELS BNF-PARSER::SUCCEED" {99396C1}>)[:EXTERNAL] 12: (SB-C::DFO-SCAVENGE-DEPENDENCY-GRAPH 2 #<SB-C::CLAMBDA :%SOURCE-NAME XML-PARSER::|Root| :%DEBUG-NAME NIL :KIND NIL :TYPE #<SB-KERNEL:FUN-TYPE (FUNCTION (T) *)> :WHERE-FROM :DEFINED :VARS (BNF-PARSER::INDEX) {9918381}> #<SB-C:COMPONENT :NAME "LABELS BNF-PARSER::SUCCEED" {99396C1}>)[:EXTERNAL] 13: (SB-C::FIND-INITIAL-DFO-AUX 2 #<SB-C::CBLOCK NIL :START c13 {9918499}> #<SB-C:COMPONENT :NAME "LABELS BNF-PARSER::SUCCEED" {99396C1}>)[:EXTERNAL] 14: (SB-C::FIND-INITIAL-DFO-AUX 2 #<SB-C::CBLOCK NIL :START c14 {991DA41}> #<SB-C:COMPONENT :NAME "LABELS BNF-PARSER::SUCCEED" {99396C1}>)[:EXTERNAL] 15: (SB-C::FIND-INITIAL-DFO-AUX 2 #<SB-C::CBLOCK NIL :START c15 {991D9E1}> #<SB-C:COMPONENT :NAME "LABELS BNF-PARSER::SUCCEED" {99396C1}>)[:EXTERNAL] 16: (SB-C::DFO-SCAVENGE-DEPENDENCY-GRAPH 2 #<SB-C::CLAMBDA :%SOURCE-NAME BNF-PARSER::SUCCEED :%DEBUG-NAME "LABELS BNF-PARSER::SUCCEED" :KIND NIL :TYPE #<SB-KERNEL:BUILT-IN-CLASSOID FUNCTION (read-only)> :WHERE-FROM :DEFINED :VARS (BNF-PARSER::INDEX BNF-PARSER::RESULT) {991D7D1}> #<SB-C:COMPONENT :NAME "LABELS BNF-PARSER::SUCCEED" {99396C1}>)[:EXTERNAL] 17: (SB-C::FIND-INITIAL-DFO 1 (#<SB-C::CLAMBDA :%SOURCE-NAME SB-C::.ANONYMOUS. :%DEBUG-NAME "top level form (SB-IMPL::%DEFUN (QUOTE XML-PARSER::|Root|) (SB-INT:NAMED-LAMBDA XML-PARSER::|Root| # ...) ...)" :KIND :TOPLEVEL :TYPE #<SB-KERNEL:BUILT-IN-CLASSOID FUNCTION (read-only)> :WHERE-FROM :DEFINED :VARS NIL {9913AA1}>))[:EXTERNAL] 18: (SB-C::COMPILE-TOPLEVEL 2 (#<SB-C::CLAMBDA :%SOURCE-NAME SB-C::.ANONYMOUS. :%DEBUG-NAME "top level form (SB-IMPL::%DEFUN (QUOTE XML-PARSER::|Root|) (SB-INT:NAMED-LAMBDA XML-PARSER::|Root| # ...) ...)" :KIND :TOPLEVEL :TYPE #<SB-KERNEL:BUILT-IN-CLASSOID FUNCTION (read-only)> :WHERE-FROM :DEFINED :VARS NIL {9913AA1}>) NIL)[:EXTERNAL] 19: (SB-C::CONVERT-AND-MAYBE-COMPILE 2 (SB-IMPL::%DEFUN (QUOTE XML-PARSER::| Root|) (SB-INT:NAMED-LAMBDA XML-PARSER::|Root| (BNF-PARSER::INDEX &AUX #) (DECLARE #) (DECLARE #) (DECLARE #) (BLOCK XML-PARSER::|Root| #)) "Root ::= Element (|Element|)" (QUOTE NIL)) (#1=(SB-IMPL::%DEFUN (QUOTE XML-PARSER::|Root|) (SB-INT:NAMED-LAMBDA XML-PARSER::|Root| # # # # #) "Root ::= Element (|Element|)" (QUOTE NIL)) #2=(EVAL-WHEN (:LOAD-TOPLEVEL :EXECUTE) #1#) (PROGN (EVAL-WHEN # #) #2#) SB-C::ORIGINAL-SOURCE-START 0 97))[:EXTERNAL] 20: (SB-C::PROCESS-TOPLEVEL-FORM 3 (SB-IMPL::%DEFUN (QUOTE XML-PARSER::| Root|) (SB-INT:NAMED-LAMBDA XML-PARSER::|Root| (BNF-PARSER::INDEX &AUX #) (DECLARE #) (DECLARE #) (DECLARE #) (BLOCK XML-PARSER::|Root| #)) "Root ::= Element (|Element|)" (QUOTE NIL)) (#1=(EVAL-WHEN (:LOAD-TOPLEVEL :EXECUTE) (SB-IMPL:: %DEFUN # # "Root ::= Element (|Element|)" #)) (PROGN (EVAL-WHEN # #) #1#) SB-C::ORIGINAL-SOURCE-START 0 97) NIL)[:EXTERNAL] 21: (SB-C::PROCESS-TOPLEVEL-PROGN 3 ((SB-IMPL::%DEFUN (QUOTE XML-PARSER::| Root|) (SB-INT:NAMED-LAMBDA XML-PARSER::|Root| # # # # #) "Root ::= Element (|Element|)" (QUOTE NIL))) (#1=(EVAL-WHEN (:LOAD-TOPLEVEL :EXECUTE) (SB-IMPL:: %DEFUN # # "Root ::= Element (|Element|)" #)) (PROGN (EVAL-WHEN # #) #1#) SB-C::ORIGINAL-SOURCE-START 0 97) NIL)[:EXTERNAL] 22: (SB-C::PROCESS-TOPLEVEL-FORM 3 (EVAL-WHEN (:LOAD-TOPLEVEL :EXECUTE) (SB-IMPL::%DEFUN (QUOTE XML-PARSER::|Root|) (SB-INT:NAMED-LAMBDA XML-PARSER::|Root| # # # # #) "Root ::= Element (|Element|)" (QUOTE NIL))) ((PROGN (EVAL-WHEN # #) (EVAL-WHEN # #)) SB-C::ORIGINAL-SOURCE-START 0 97) NIL)[:EXTERNAL] 23: (SB-C::PROCESS-TOPLEVEL-PROGN 3 ((EVAL-WHEN (:COMPILE-TOPLEVEL) (SB-C: %COMPILER-DEFUN # # T)) (EVAL-WHEN (:LOAD-TOPLEVEL :EXECUTE) (SB-IMPL::%DEFUN # # "Root ::= Element (|Element|)" #))) ((PROGN (EVAL-WHEN # #) (EVAL-WHEN # #)) SB-C::ORIGINAL-SOURCE-START 0 97) NIL)[:EXTERNAL] 24: (SB-C::PROCESS-TOPLEVEL-FORM 3 (PROGN (EVAL-WHEN (:COMPILE-TOPLEVEL) (SB-C:%COMPILER-DEFUN # # T)) (EVAL-WHEN (:LOAD-TOPLEVEL :EXECUTE) (SB-IMPL:: %DEFUN # # "Root ::= Element (|Element|)" #))) (SB-C::ORIGINAL-SOURCE-START 0 97) NIL)[:EXTERNAL] 25: (SB-C::PROCESS-TOPLEVEL-FORM 3 (DEFUN XML-PARSER::|Root| (BNF-PARSER::INDEX &AUX (XML-PARSER::|Element| NIL)) "Root ::= Element (|Element|)" (DECLARE (SPECIAL XML-PARSER::|Root-INDEX|)) (DECLARE (TYPE FIXNUM BNF-PARSER::INDEX XML-PARSER::|Root-INDEX| BNF-PARSER:*ATN-LEVEL)) (DECLARE (OPTIMIZE # #)) (IF (< XML-PARSER::|Root-INDEX| BNF-PARSER::INDEX) (LET # # # # #) (WARN "recursive grammar: ~s @ position ~s: ~s" # BNF-PARSER::INDEX BNF-PARSER:*ATN-STACK))) (SB-C::ORIGINAL-SOURCE-START 0 97) NIL)[:EXTERNAL] 26: (SB-C::SUB-SUB-COMPILE-FILE 1 #<SB-C::SOURCE-INFO >)[:EXTERNAL] 27: ("#'(LAMBDA NIL (SB!C::CLEAR-STUFF) ...)") 28: (SB-C::%WITH-COMPILATION-UNIT 1 #<FUNCTION "CLOSURE" {921CF25}>) [:EXTERNAL] 29: (SB-C::SUB-COMPILE-FILE 1 #<SB-C::SOURCE-INFO >)[:EXTERNAL] 30: (COMPILE-FILE 3 "xml:code;atn-lib;xml-grammar.lisp")[:EXTERNAL] 31: ((BNF-PARSER:COMPILE-ATN-SYSTEM (BNF-PARSER::ATN-SYSTEM)) #<unavailable argument> #<unavailable argument> #<BNF-PARSER::ATN-SYSTEM Document {76, 9}> (:COMPILE T :PACKAGE #<PACKAGE "xml"> :FASL-PATHNAME "xml:code;atn-lib;xml-grammar.bin" :SOURCE-PATHNAME "xml:code;atn-lib;xml-grammar.lisp" :INPUT-FUNCTION XML-PARSER::INPUT-REFERENCE ...)) 32: ((BNF-PARSER:COMPILE-ATN-SYSTEM (STRING)) #<unavailable argument> #<unavailable argument> "/* <DOCUMENTATION> <DESCRIPTION> ... the rest of a very long string " (:COMPILE T :PACKAGE #<PACKAGE "xml"> :FASL-PATHNAME "xml:code;atn-lib;xml-grammar.bin" :SOURCE-PATHNAME "xml:code;atn-lib;xml-grammar.lisp" :INPUT-FUNCTION XML-PARSER::INPUT-REFERENCE ...)) 33: ((BNF-PARSER:COMPILE-ATN-SYSTEM (PATHNAME)) #<unavailable argument> #<unavailable argument> #P"XML:XML-GRAMMAR.BNF" (:COMPILE T :PACKAGE #<PACKAGE "xml"> :FASL-PATHNAME "xml:code;atn-lib;xml-grammar.bin" :SOURCE-PATHNAME "xml:code;atn-lib;xml-grammar.lisp" :INPUT-FUNCTION XML-PARSER::INPUT-REFERENCE ...)) 34: (#:EVAL-TMPFUN-1731 0)[:EXTERNAL] 35: (SB-INT:EVAL-IN-LEXENV 2 (LET* ((BNF-PARSER:*CLASS.ATN* #) (BNF-PARSER:*CLASS.ATN-NODE* #) (BNF-PARSER:*CLASS.CAT-ATN-EDGE* #) (BNF-PARSER:*CLASS.POP-ATN-EDGE* #) (BNF-PARSER:*CLASS.PUSH-ATN-EDGE* #) (BNF-PARSER:*CLASS.TEST-ATN-EDGE* #)) (BNF-PARSER:COMPILE-ATN-SYSTEM #P"XML:XML-GRAMMAR.BNF" :COMPILE T :PACKAGE XML-UTILS:*TOKEN-PACKAGE* :FASL-PATHNAME "xml:code;atn-lib;xml-grammar.bin" :SOURCE-PATHNAME "xml:code;atn-lib;xml-grammar.lisp" ...)) #S(SB-KERNEL:LEXENV :FUNS NIL :VARS NIL :BLOCKS NIL :TAGS NIL :TYPE-RESTRICTIONS NIL :LAMBDA NIL :CLEANUP NIL :HANDLED-CONDITIONS NIL :DISABLED-PACKAGE-LOCKS NIL :POLICY ((SPEED . 1) (SPACE . 1) (SAFETY . 1) (INHIBIT-WARNINGS . 1) (DEBUG . 1) (COMPILATION-SPEED . 1))))[:EXTERNAL] 36: (SB-INT:EVAL-IN-LEXENV 2 (PROGN (LET* (# # # # # #) (BNF-PARSER:COMPILE-ATN-SYSTEM #P"XML:XML-GRAMMAR.BNF" :COMPILE T :PACKAGE XML-UTILS:*TOKEN-PACKAGE* :FASL-PATHNAME "xml:code;atn-lib;xml-grammar.bin" :SOURCE-PATHNAME "xml:code;atn-lib;xml-grammar.lisp" ...))) #S(SB-KERNEL:LEXENV :FUNS NIL :VARS NIL :BLOCKS NIL :TAGS NIL :TYPE-RESTRICTIONS NIL :LAMBDA NIL :CLEANUP NIL :HANDLED-CONDITIONS NIL :DISABLED-PACKAGE-LOCKS NIL :POLICY ((SPEED . 1) (SPACE . 1) (SAFETY . 1) (INHIBIT-WARNINGS . 1) (DEBUG . 1) (COMPILATION-SPEED . 1))))[:EXTERNAL] 37: (SB-C::PROCESS-TOPLEVEL-FORM 3 (EVAL-WHEN (:COMPILE-TOPLEVEL) (LET* (# # # # # #) (BNF-PARSER:COMPILE-ATN-SYSTEM #P"XML:XML-GRAMMAR.BNF" :COMPILE T :PACKAGE XML-UTILS:*TOKEN-PACKAGE* :FASL-PATHNAME "xml:code;atn-lib;xml-grammar.bin" :SOURCE-PATHNAME "xml:code;atn-lib;xml-grammar.lisp" ...))) (SB-C::ORIGINAL-SOURCE-START 0 22) NIL)[:EXTERNAL] 38: (SB-C::SUB-SUB-COMPILE-FILE 1 #<SB-C::SOURCE-INFO >)[:EXTERNAL] 39: ("#'(LAMBDA NIL (SB!C::CLEAR-STUFF) ...)") 40: (SB-C::%WITH-COMPILATION-UNIT 1 #<FUNCTION "CLOSURE" {9883E35}>) [:EXTERNAL] 41: (SB-C::SUB-COMPILE-FILE 1 #<SB-C::SOURCE-INFO >)[:EXTERNAL] 42: (COMPILE-FILE 3 #P"/local/lisp/cl-xml/current/code/xparser/xml-parser.lisp")[:EXTERNAL] 43: ("#'(LAMBDA NIL (DOLIST # #) ...)") 44: (SB-C::%WITH-COMPILATION-UNIT 1 #<FUNCTION "CLOSURE" {92B12ED}>) [:EXTERNAL] 45: ((EXECUTE-SYSTEM-OPERATIONS (CONS CONS)) #<unavailable argument> #<unavailable argument> (:XPARSER) (:COMPILE :LOAD)) 46: (SB-INT:EVAL-IN-LEXENV 2 (EXECUTE-SYSTEM-OPERATIONS :XPARSER (QUOTE (:COMPILE :LOAD))) #S(SB-KERNEL:LEXENV :FUNS NIL :VARS NIL :BLOCKS NIL :TAGS NIL :TYPE-RESTRICTIONS NIL :LAMBDA NIL :CLEANUP NIL :HANDLED-CONDITIONS NIL :DISABLED-PACKAGE-LOCKS NIL :POLICY ((SPEED . 1) (SPACE . 1) (SAFETY . 1) (INHIBIT-WARNINGS . 1) (DEBUG . 1) (COMPILATION-SPEED . 1))))[:EXTERNAL] 47: (SB-FASL::LOAD-AS-SOURCE 3 #<FILE-STREAM for "file \"/local/lisp/cl-xml/current/load.lisp\"" {9EA7859}> NIL NIL)[:EXTERNAL] 48: ("hairy arg processor for top level local call SB!FASL::INTERNAL-LOAD" #P"/local/lisp/cl-xml/current/load.lisp" #P"/local/lisp/cl-xml/current/load.lisp" :ERROR NIL NIL :SOURCE) 49: ("hairy arg processor for top level local call SB!FASL::INTERNAL-LOAD" #P"/local/lisp/cl-xml/current/load.lisp" #P"/local/lisp/cl-xml/current/load.lisp" :ERROR NIL NIL NIL) 50: (LOAD 1 "/local/lisp/cl-xml/current/load.lisp")[:EXTERNAL] 51: (SB-INT:EVAL-IN-LEXENV 2 (LOAD "/local/lisp/cl-xml/current/load.lisp") #S(SB-KERNEL:LEXENV :FUNS NIL :VARS NIL :BLOCKS NIL :TAGS NIL :TYPE-RESTRICTIONS NIL :LAMBDA NIL :CLEANUP NIL :HANDLED-CONDITIONS NIL :DISABLED-PACKAGE-LOCKS NIL :POLICY ((SPEED . 1) (SPACE . 1) (SAFETY . 1) (INHIBIT-WARNINGS . 1) (DEBUG . 1) (COMPILATION-SPEED . 1))))[:EXTERNAL] 52: ("hairy arg processor for SWANK::EVAL-REGION" "(load \"/local/lisp/cl-xml/current/load.lisp\") " T) 53: ("#'(LAMBDA NIL (MULTIPLE-VALUE-BIND # # ...))") 54: ((SWANK-BACKEND:CALL-WITH-SYNTAX-HOOKS (T)) #<unused argument> #<unused argument> #<FUNCTION "CLOSURE" {9EA6255}>) 55: (SWANK:LISTENER-EVAL "(load \"/local/lisp/cl-xml/current/load.lisp\") ") 56: (SB-INT:EVAL-IN-LEXENV 2 (SWANK:LISTENER-EVAL "(load \"/local/lisp/cl-xml/current/load.lisp\") ") #S(SB-KERNEL:LEXENV :FUNS NIL :VARS NIL :BLOCKS NIL :TAGS NIL :TYPE-RESTRICTIONS NIL :LAMBDA NIL :CLEANUP NIL :HANDLED-CONDITIONS NIL :DISABLED-PACKAGE-LOCKS NIL :POLICY ((SPEED . 1) (SPACE . 1) (SAFETY . 1) (INHIBIT-WARNINGS . 1) (DEBUG . 1) (COMPILATION-SPEED . 1))))[:EXTERNAL] 57: (SWANK::EVAL-FOR-EMACS (SWANK:LISTENER-EVAL "(load \"/local/lisp/cl-xml/current/load.lisp\") ") "COMMON-LISP-USER" 12) 58: ("#'(LAMBDA NIL (LET # #))") 59: (SWANK::CALL-WITH-REDIRECTED-IO #<SWANK::CONNECTION {941A811}> #<FUNCTION "#'(LAMBDA NIL (LET # #))" {908B1FD}>) 60: (SWANK::HANDLE-REQUEST #<SWANK::CONNECTION {941A811}>) 61: (SWANK::PROCESS-AVAILABLE-INPUT #<FILE-STREAM for "a constant string" {9414BA1}> #<FUNCTION "CLOSURE" {9EA5E3D}>) 62: ("FLET SWANK::HANDLER") 63: ("#'(LAMBDA (SWANK-BACKEND::_) SWANK-BACKEND::_ ...)" #<unused argument>) 64: (SB-IMPL::SUB-SERVE-EVENT 2 NIL 0)[:EXTERNAL] 65: ("hairy arg processor for top level local call SB!SYS:WAIT-UNTIL-FD-USABLE" 0 :INPUT NIL) 66: (SB-IMPL::FROB-INPUT 1 #<FILE-STREAM for "standard input" {9001309}>) [:EXTERNAL] 67: (SB-IMPL::INPUT-CHARACTER 3 #<FILE-STREAM for "standard input" {9001309}> NIL #:EOF-OBJECT)[:EXTERNAL] 68: ("hairy arg processor for top level local call READ-CHAR" #<FILE-STREAM for "standard input" {9001309}> NIL #:EOF-OBJECT #<unused argument>) 69: ("hairy arg processor for top level local call READ-CHAR" #<SYNONYM-STREAM :SYMBOL SB-SYS:*STDIN* {501B7C1}> NIL #:EOF-OBJECT #<unused argument>) 70: ("hairy arg processor for top level local call READ-CHAR" #<SYNONYM-STREAM :SYMBOL SWANK::*CURRENT-STANDARD-INPUT* {900BB29}> NIL #:EOF-OBJECT #<unused argument>) 71: ("hairy arg processor for top level local call READ-PRESERVING-WHITESPACE" #<SYNONYM-STREAM :SYMBOL SWANK::*CURRENT-STANDARD-INPUT* {900BB29}> NIL (NIL) T) 72: ("hairy arg processor for top level local call READ-PRESERVING-WHITESPACE" #<SYNONYM-STREAM :SYMBOL SWANK::*CURRENT-STANDARD-INPUT* {900BB29}> NIL (NIL) NIL) 73: ("hairy arg processor for top level local call READ" #<SYNONYM-STREAM :SYMBOL SWANK::*CURRENT-STANDARD-INPUT* {900BB29}> NIL (NIL) NIL) 74: (SB-IMPL::REPL-READ-FORM-FUN 2 #<SYNONYM-STREAM :SYMBOL SWANK::*CURRENT-STANDARD-INPUT* {900BB29}> #<SYNONYM-STREAM :SYMBOL SWANK::*CURRENT-STANDARD-OUTPUT* {9AB6D31}>)[:EXTERNAL] 75: (SB-IMPL::REPL-FUN 1 NIL)[:EXTERNAL] 76: ("#'(LAMBDA NIL (HANDLER-BIND # #))") 77: ("XEP for #'(LAMBDA NIL (HANDLER-BIND # #))" 0)[:EXTERNAL] 78: (SB-IMPL::%WITH-REBOUND-IO-SYNTAX 1 #<FUNCTION "CLOSURE" {9329A65}>) [:EXTERNAL] 79: (SB-IMPL::TOPLEVEL-REPL 1 NIL)[:EXTERNAL] 80: (SB-IMPL::TOPLEVEL-INIT 0)[:EXTERNAL] 81: ("FLET SB!IMPL::RESTART-LISP" -- Best Regards, - Peter Peter Denno National Institute of Standards and Technology, Manufacturing System Integration Division, 100 Bureau Drive, Mail Stop 8260 Tel: +1 301-975-3595 Gaithersburg, MD, USA 20899-8260 FAX: +1 301-975-4694 |
From: David W. <da...@wr...> - 2004-11-16 12:31:33
|
Peter Denno <pet...@ni...> writes: > I get the following compiling cl-xml with sbcl 0.8.16 on linux x86. I know a > short example would be nice, but I don't have one, and this might only happen > with this very large file (~ 1MB) compilation. > > If you have some ideas on how I might help track this down better, let me > know. If you want to try to reproduce it, it actually isn't too hard, despite > having to download cl-xml: Hi Peter, I have encountered the same problem. I was able to distill the problem down to a small test case which triggers the same bug. Here it is: (defun foo (x &aux (y nil)) (labels ((foo-a (z) (return-from foo z)) (foo-b (z) (foo-a z))) (declare (inline foo-a)) (foo-a x))) Some interesting features of this test case: - Removing the redundant &aux clause makes the problem go away. - Converting the &aux into a corresponding let* also makes the problem go away. - Removing the redundant foo-b definition makes the problem go away. I now know a lot more about the SBCL compiler internals than I did two weeks ago, but I am still not in a position to fix this bug. So, inspired by the second point, I modified cl-xml to avoid the use of &aux in generated code, using let* instead. The change is relatively simple: I can send you a diff if you like (I would attach it, but the diff I have to hand is against the cl-xml sources with all the CR characters stripped out). With that change, I am indeed able to avoid the SBCL compiler bug. Instead, building cl-xml uses all of the 1GB of memory+swap on my laptop, causing sbcl to die. That is the point at which I decided that I should take a closer look at some other CL XML parsers before spending more time on cl-xml. Regards, David Wragg |
From: Peter D. <pet...@ni...> - 2004-11-16 15:31:54
|
Hi David. Wow! Thanks for the help. FWIW, I used cl-xml in other project with good results. But it looks like I'll have to try something else now too. On Tuesday 16 November 2004 07:30, David Wragg wrote: > Peter Denno <pet...@ni...> writes: > > I get the following compiling cl-xml with sbcl 0.8.16 on linux x86. I > > know a short example would be nice, but I don't have one, and this might > > only happen with this very large file (~ 1MB) compilation. > > > > If you have some ideas on how I might help track this down better, let me > > know. If you want to try to reproduce it, it actually isn't too hard, > > despite having to download cl-xml: > > Hi Peter, > > I have encountered the same problem. > > I was able to distill the problem down to a small test case which > triggers the same bug. Here it is: > > (defun foo (x &aux (y nil)) > (labels ((foo-a (z) (return-from foo z)) > (foo-b (z) (foo-a z))) > (declare (inline foo-a)) > (foo-a x))) > > Some interesting features of this test case: > > - Removing the redundant &aux clause makes the problem go away. > > - Converting the &aux into a corresponding let* also makes the problem > go away. > > - Removing the redundant foo-b definition makes the problem go away. > > I now know a lot more about the SBCL compiler internals than I did two > weeks ago, but I am still not in a position to fix this bug. > > So, inspired by the second point, I modified cl-xml to avoid the use > of &aux in generated code, using let* instead. The change is > relatively simple: I can send you a diff if you like (I would attach > it, but the diff I have to hand is against the cl-xml sources with all > the CR characters stripped out). > > With that change, I am indeed able to avoid the SBCL compiler bug. > Instead, building cl-xml uses all of the 1GB of memory+swap on my > laptop, causing sbcl to die. That is the point at which I decided > that I should take a closer look at some other CL XML parsers before > spending more time on cl-xml. > > > Regards, > David Wragg > > > ------------------------------------------------------- > This SF.Net email is sponsored by: InterSystems CACHE > FREE OODBMS DOWNLOAD - A multidimensional database that combines > robust object and relational technologies, making it a perfect match > for Java, C++,COM, XML, ODBC and JDBC. www.intersystems.com/match8 > _______________________________________________ > Sbcl-help mailing list > Sbc...@li... > https://lists.sourceforge.net/lists/listinfo/sbcl-help -- Best Regards, - Peter Peter Denno National Institute of Standards and Technology, Manufacturing System Integration Division, 100 Bureau Drive, Mail Stop 8260 Tel: +1 301-975-3595 Gaithersburg, MD, USA 20899-8260 FAX: +1 301-975-4694 |
From: Alexey D. <ade...@co...> - 2004-11-16 19:14:12
|
Hello, Peter Denno <pet...@ni...> writes: > I get the following compiling cl-xml with sbcl 0.8.16 on linux x86. I know a > short example would be nice, but I don't have one, and this might only happen > with this very large file (~ 1MB) compilation. > > If you have some ideas on how I might help track this down better, let me > know. If you want to try to reproduce it, it actually isn't too hard, despite > having to download cl-xml: David Wragg <da...@wr...> writes: > I have encountered the same problem. > > I was able to distill the problem down to a small test case which > triggers the same bug. Here it is: > > (defun foo (x &aux (y nil)) > (labels ((foo-a (z) (return-from foo z)) > (foo-b (z) (foo-a z))) > (declare (inline foo-a)) > (foo-a x))) Thank you for the report and the test case. I've committed the fix to SBCL 0.8.16.41. It's not too nice, but works for me. Good luck! -- Regards, Alexey Dejneka "Alas, the spheres of truth are less transparent than those of illusion." -- L.E.J. Brouwer |