ASDF/BACKWARD-INTERFACE:RUN-SHELL-COMMAND no longer returns exit status, at least on ACL
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
ASDF |
Fix Released
|
Low
|
Robert P. Goldman |
Bug Description
On ACL 8.2, when I run this function, which is supposed to provide backward compatibility to "classic" ASDF:RUN-
CL-USER(18): (ASDF/BACKWARD-
; $ cd "/Users/
make: Nothing to be done for `default'.
make: Nothing to be done for `default'.
make: Nothing to be done for `default'.
make: Nothing to be done for `default'.
make: `validate' is up to date.
NIL
This breaks legacy code that calls ZEROP on the return value of this function.
According to the docstring on UIOP:RUN-PROGRAM, the error is that :ignore-
If this passes the test suite, I will push such a patch.
Oh no! IGNORE-ERROR-STATUS is used for *two* purposes. If you set it to T, then not only do we not get the numerical error returned, but you also ignore subprocess errors. But if you set it to NIL, then we may get the exit status, but we also raise an error if the exit status is not 0.
What's needed is an option to return the error status without raising an error on non-zero.
I suppose one could do this with IGNORE-ERRORS. But that seems really evil.