Re-categorize some SERIOUS-CONDITIONs as ERRORs (enhancement request)
We stumbled on this in Jenkins testing. Our ASDF test-operation for the SHOP2 planner runs a number of tests. This is wrapped in a file that catches any errors (we have a special error class that indicates whether the TEST-OP succeeds or fails), and this file, which is loaded by our Jenkins script will set the exit status to 1 for error-exit and 0 for no error exit.
On ECL, this script did neither: it dropped us into the REPL instead, a very undesirable thing.
It took us a while to figure out why this was happening: it's because ECL signals memory failures as SERIOUS-CONDITIONs that are not errors. OK, I can see why you might want this in some cases, like where you can use set-limit
to fix something and continue.
But what about this:
Memory limit reached. Please jump to an outer pointer, quit program and enlarge the memory limits before executing the program again.
With all due respect, in my book that's an error. It's a non-recoverable program failure.
In general, I think that use of SERIOUS-CONDITION
s that are not errors deviates enough from other practice that it should simply be avoided. The issue with the testing script (I note that this script was lifted from ASDF, so this breakage could also occur testing on ASDF) illustrates this deviation.
Even if you feel that a recoverable memory error should not be an error (since there are continuable errors, I don't think this argument holds), un-recoverable memory errors should definitely be subclasses of ERROR
.
Please consider changing this. Thanks!