Then execute this *two* *times* at the REPL -
(let ((a (make-array 10))) (unwind-protect (crashme 'bork) (fill a 0)))
The first works, the second gets:
CORRUPTION WARNING in SBCL pid 21699(tid 140737353955136):
Memory fault at (nil) (pc=0x1001a7b220, sp=0x7ffff221dfe8)
The integrity of this image is possibly compromised.
Continuing with fingers crossed.
Help! 11 nested errors. SB-KERNEL:*MAXIMUM-ERROR-DEPTH* exceeded.
The stack is getting whacked. I'm pretty sure this is a problem in %%NIP-VALUES and/or stack analysis.
Reduction:
(defun crashme (a)
(declare (optimize (safety 0)))
(restart-case
(progn (ignore-errors (error "Foo")) (print 'crash))
(retry () (f1 a))
(use-value (new) (f2 new))))
Then execute this *two* *times* at the REPL -
(let ((a (make-array 10))) (unwind-protect (crashme 'bork) (fill a 0)))
The first works, the second gets: *MAXIMUM- ERROR-DEPTH* exceeded.
CORRUPTION WARNING in SBCL pid 21699(tid 140737353955136):
Memory fault at (nil) (pc=0x1001a7b220, sp=0x7ffff221dfe8)
The integrity of this image is possibly compromised.
Continuing with fingers crossed.
Help! 11 nested errors. SB-KERNEL:
The stack is getting whacked. I'm pretty sure this is a problem in %%NIP-VALUES and/or stack analysis.