From: Juho S. <js...@ik...> - 2008-04-07 12:37:50
|
"Matthias Andreas Benkard" <mu...@gm...> writes: > Restricting the compiler policy to (DEBUG . 2) or anything less than > that does not exhibit the same behaviour. Also, LET works the way it > ought to regardless of policy settings. > > I've stumbled across this in light of the currently active thread on > variable bindings in c.l.l. I understand that > SB-EXT:RESTRICT-COMPILER-POLICY is experimental, so I'm sorry if this > is not actually a bug, or if it's a known bug. (Well, grepping BUGS > for "PROGV" and "progv" didn't yield anything.) I guess the underlying lesson is that restrict-compiler-policy should not apply to SBCL internals, where if we're declaring a low debug level, we're doing it for a reason. Fix: --- src/compiler/ir2tran.lisp 1 Jan 2008 18:16:29 -0000 1.71 +++ src/compiler/ir2tran.lisp 7 Apr 2008 12:31:31 -0000 @@ -1443,7 +1443,8 @@ (%primitive bind nil var) (makunbound var))) (,bind (vars vals) - (declare (optimize (speed 2) (debug 0))) + (declare (optimize (speed 2) (debug 0) + (insert-debug-catch 0))) (cond ((null vars)) ((null vals) (,unbind vars)) (t (%primitive bind -- Juho Snellman |