[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
*PACKAGE* rebound by debugger
Date: Fri, 27 May 88 15:17 EDT
From: Scott McKay <SWM@sapsucker.scrc.symbolics.com>
Date: Fri, 27 May 88 13:19 EDT
From: barmar@Think.COM (Barry Margolin)
The complaint is that when you get an error during loading a file,
*PACKAGE* is generally bound by the debugger to something like CL-USER,
rather than being left bound to the package the file was being loaded
into. The files have packages in their attribute lists and also contain
IN-PACKAGE as their first form.
It's intentional that the Debugger do this. The idea is that the
Debugger and break loops shuold run in a known and predictable
environment. If you want to change *PACKAGE* in a way that causes the
Debugger to not re-bind it, use (SETF (SYS:STANDARD-VALUE XXX) YYY).
It turns out the :Set Package and ZL:PKG-GOTO do this as part of their
contract.
We know that. But we can't put any of those forms in our programs,
because they are not Common Lisp.
We want the debugger and break loops to run in a known and predictable
environment, too. That environment should be the environment that the
code that got the error was in, so we can most easily debug it.
You could just type :Set Package in the Debugger.
Yes, we know that, too. But if we HAVE to type this every time we get
an error while loading a file, that indicates that the default behavior
is wrong. Computers are supposed to do the repetitious tasks for us.
barmar