LAUNCH-PROGRAM claims to support :OUTPUT T but does not
The doc string for launch-program
states the following:
If OUTPUT is a pathname, a string designating a pathname, or
NIL
(the default) designating the null device, the file at that path is used as output. If it's:INTERACTIVE
, output is inherited from the current process; beware that this may be different from your*STANDARD-OUTPUT*
, and under SLIME will be on your*inferior-lisp*
buffer. If it'sT
, output goes to your current*STANDARD-OUTPUT*
stream. (italics mine)
However, as a colleague discovered, T
is not a supported value for :output
.
A simple example is:
CL-USER> (uiop:launch-program (list "echo" "foo") :output t)
; Evaluation aborted on #<UIOP/UTILITY:PARAMETER-ERROR {1005483463}>
and inspection of the definition of %normalize-io-specifier
shows why -- it does not have a branch for t
.