[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