From 3f2cc7c9786237b32e4e6b2e3a2fbd226b0bc8ac Mon Sep 17 00:00:00 2001 From: Eric Timmons Date: Sun, 21 Mar 2021 20:39:55 -0400 Subject: [PATCH] Document LAUNCH-PROGRAM oddities. --- uiop/launch-program.lisp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/uiop/launch-program.lisp b/uiop/launch-program.lisp index fc016214..099c97cd 100644 --- a/uiop/launch-program.lisp +++ b/uiop/launch-program.lisp @@ -513,7 +513,16 @@ IF-DOES-NOT-EXIST parameter to OPEN with :DIRECTION :INPUT. ELEMENT-TYPE and EXTERNAL-FORMAT are passed on to your Lisp implementation, when applicable, for creation of the output stream. -LAUNCH-PROGRAM returns a PROCESS-INFO object." +LAUNCH-PROGRAM returns a PROCESS-INFO object. + +LAUNCH-PROGRAM currently does not smooth over all the differences between +implementations. Of particular note is when streams are provided for OUTPUT or +ERROR-OUTPUT. Some implementations don't support this at all, some support only +certain subclasses of streams, and some support any arbitrary +stream. Additionally, the implementations that support streams may have +differing behavior on how those streams are filled with data. If data is not +periodically read from the child process and sent to the stream, the child +could block because its output buffers are full." #-(or abcl allegro clozure cmucl ecl (and lispworks os-unix) mkcl sbcl scl) (progn command keys input output error-output directory element-type external-format if-input-does-not-exist if-output-exists if-error-output-exists ;; ignore -- GitLab