The DOCSTRING for RUN-PROGRAM says
Run program specified by COMMAND, either a list of strings specifying a program and list of arguments, or a string specifying a shell command (/bin/sh on Unix, CMD.EXE on Windows); _synchronously_ process its output as specified and return the processing results when the program and its output processing are complete.
So shouldn't RUN-PROGRAM always pass :WAIT T to %RUN-PROGRAM?
A colleague of mine anecdotally reported that he wasn't getting output from a call to RUN-PROGRAM until he caught and printed the return value.
This is on ALLEGRO, where RUN-PROGRAM invokes EXCL:RUN-SHELL-COMMAND and, I believe, should always be using WAIT, no?
Thanks, r
On Tue, Apr 19, 2016 at 12:12 PM, Robert Goldman rpgoldman@sift.net wrote:
The DOCSTRING for RUN-PROGRAM says
Run program specified by COMMAND, either a list of strings specifying a program and list of arguments, or a string specifying a shell command (/bin/sh on Unix, CMD.EXE on Windows); _synchronously_ process its output as specified and return the processing results when the program and its output processing are complete.
So shouldn't RUN-PROGRAM always pass :WAIT T to %RUN-PROGRAM?
No. The kernel will block the other process if it outputs too much stuff in a pipe and no one is reading from it. Or we'd have to always create a temporary file for the output. UIOP:RUN-PROGRAM does the right thing.
A colleague of mine anecdotally reported that he wasn't getting output from a call to RUN-PROGRAM until he caught and printed the return value.
I'm not sure what you mean. If there's a bug, please provide a reduced test case.
This is on ALLEGRO, where RUN-PROGRAM invokes EXCL:RUN-SHELL-COMMAND and, I believe, should always be using WAIT, no?
No.
—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org I'd give my right arm to be ambidextrous.