Comment 4 for bug 1605650

Revision history for this message
Robert P. Goldman (rpgoldman) wrote :

It's clear from the spec that #1 is the Right Thing, as long as I understand your code. Your docs say:

"conditions that cause the Lisp image to enter the debugger if interactive,
or to die if not interactive"

The hyperspec for SERIOUS-CONDITION is almost word-for-word:

"All conditions serious enough to require interactive intervention if not handled should inherit from the type serious-condition."

So I am going to make that change.

For number 2, I think it's more about the structure of our code -- can we allow the user to intervene and handle some of these conditions? Are we inadvertently preventing the user from successfully invoking a restart? I'm not sure I understand well enough how that condition handling is being done in ASDF. E.g., in FIND-SYSTEM, we wrap an original error in a LOAD-SYSTEM-DEFINITION-ERROR. I'm not sure, but I suspect that makes inaccessible any original restarts.

For #3, MODULE-PROVIDE-ASDF, we are just providing the user with additional information -- we don't handle the error, we just tell the user that this error has caused loading the module to fail. So I can change that ERROR to SERIOUS-CONDITION without denying the user access to restarts.

I'll make change #3 also.