#206: COMPILER-UNSUPPORTED-FEATURE-ERROR is derived from condition, rather than from ERROR ----------------------------------------------------------------------------------------------+ Reporter: https://www.google.com/accounts/o8/id?id=aitoawmcq6mzgezjmpqv2tjhvs6isymf6t0... | Owner: ehuelsmann Type: defect | Status: new Priority: minor | Milestone: Component: compiler | Version: Keywords: | ----------------------------------------------------------------------------------------------+ Hello.
My coade loads some ASDF systems, and wraps the asdf:operate call into handler-case
{{{ (handler-case (asdf:operate ...) (serious-condition (condition) (... }}}
This should help me to handle the build errors.
But when I load the let-plus library, ABCL falls into debugger:
{{{ #<THREAD "interpreter" {53B73EA7}>: Debugger invoked on condition of type COMPILER-UNSUPPORTED-FEATURE-ERROR COMPILE-FORM unhandled case ((ANAPHORA:IT #:THIS-S100224)) Restarts: 0: RETRY Retry compiling #<ASDF:CL-SOURCE-FILE "let-plus" "let-plus">. 1: ACCEPT Continue, treating compiling #<ASDF:CL-SOURCE-FILE "let-plus" "let-plus"> as having been successful. 2: ABORT Give up on "let-plus" [1] LET-PLUS(1): 0 }}}
This happens because COMPILER-UNSUPPORTED-FEATURE-ERROR is derived from CONDITION (see src/org/armedbear/lisp/CompilerUnsupportedFeatureError.java)
CLHS says: "Conditions of type error might be signaled by the compiler in situations where the compilation cannot proceed without intervention."
http://www.lispworks.com/documentation/lw51/CLHS/Body/03_be.htm
It would be better to derive COMPILER-UNSUPPORTED-FEATURE-ERROR from ERROR (or at least from SERIOUS-CONDITION)
- Anton Vodonosov