INPUT-ERROR-IN-COMPILED-FILE not subclass of SERIOUS-CONDITION
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Desire |
New
|
Undecided
|
Unassigned | ||
SBCL |
Fix Released
|
Medium
|
Unassigned |
Bug Description
A look at READ-FOR-
of type INPUT-ERROR-
Looking at the definition of INPUT-ERROR-
it's a FATAL-COMPILER-
A consequence of this is that handling SERIOUS-CONDITIONs won't
prevent one from falling out into the debugger, which sounds rather
undesirable.
Looking around uncovers the following snippet from a comment by Christophe:
> ... [ Note: we don't make
> ;;; COMPILER-ERROR inherit from SERIOUS-CONDITION, because
> ;;; conventionally SERIOUS-CONDITIONs, if unhandled, end up in the
> ;;; debugger; although the COMPILER-ERROR might well trigger an entry
> ;;; into the debugger, it won't be the COMPILER-ERROR itself that is
> ;;; the direct cause. ]
Now, the issue suddenly looks more complicated and seems to require more
context from my side.
Essentially, I want to programmatically handle cases like this:
debugger invoked on a SB-C::INPUT-
READ failure in COMPILE-FILE:
SB-
package "GFSYS" not found
[snip]
0: (SB-C::
#<SB-
0)
1: (SB-FASL:
#<SB-
NIL
NIL)
2: ((FLET SB-FASL:
#<SB-
NIL)
3: (LOAD #P"/home/
4: (FIND-SYSTEM "graphic-
In the end, I'm not sure what to make of it, but in this light it
at least looks like SBCL could've been more cooperative.
Changed in sbcl: | |
assignee: | nobody → Nikodemus Siivola (nikodemus) |
status: | Confirmed → In Progress |
Changed in sbcl: | |
status: | Fix Committed → Fix Released |
on a related note: if the output of a fasl fails (e.g. out of memory), and the half-written fasl is later read by SBCL, then an end-of-file error comes out from the fasl parsing code.