Am Sun, 28 Jun 2015 12:22:10 -0500 schrieb Robert Goldman <rpgold...@sift.net>:
> On 6/27/15 Jun 27 -11:40 PM, Faré wrote: > > On Fri, Jun 26, 2015 at 4:49 PM, Robert Goldman > > <rpgold...@sift.net> wrote: > >> Sorry -- I've been traveling, so sat on this bug report for a > >> while. Here's a test failure from Windows ACL. Looks like ACL is > >> somehow not running the windows CWD program helper (which should > >> invoke CMD.EXE), but instead is just taking the command and > >> treating it as its own output. > >> > > Indeed, %run-program has these lines: > > ;; NB: We do NOT add cmd /c here. You might want to. > > #+(or allegro clisp) command > > > > Retrospectively, that's probably a mistake. > > > >> which suggests we should modify %NORMALIZE-COMMAND for Allegro to > >> prepend "CMD /C " to all commands when on windows. > >> > > Yup. > > > > Actually, I have a question about this: RUN-PROGRAM is supposed to > run a program directly by default (as distinguished from > RUN-SHELL-COMMAND), which has the (much more ambiguous) behavior of > running through a shell. > > So it occurs to me that there are two possibilities: > > 1. We should be invoking CMD.EXE explicitly on Windows in ACL, as we > discuss here. But there's a second possibility: > > 2. The definition of GETCWD-FROM-RUN-PROGRAM is wrong (see below). If > G-F-R-P requires CMD.EXE, then doesn't that mean that > GETCWD-FROM-RUN-PROGRAM is wrong because "echo %cd%" is a "shell" > directive, and not a program to run? Doesn't %cd% require CMD.EXE? > Indeed, doesn't G-F-R-P actually require a shell of some sort to do > its job? Even on Unix, pwd is a shell command, right? So G-F-R-P > should have :FORCE-SHELL T, shouldn't it? > > Oh, no, I see. if you provide a single string like "echo %cd%", you > are implicitly specifying that you want the shell. But in this case > why does (RUN-PROGRAM '("pwd" "-P")) work on Unix variants? Doesn't > pwd require a shell? At least here on Debian Linux there exist the external binary versions /bin/echo and /bin/pwd additionally to the built-in shell commands. > If my claim is correct, then an alternative patch is to: > > 1. Supply :FORCE-SHELL T in G-F-R-P > 2. Change %normalize-system-command to explicitly supply "CMD /C" on > Windows + ACL. > > I think that might be more correct than making ACL always explicitly > use "CMD /C", since always supply CMD.EXE would make it impossible > for ACL + Windows to ever provide the simpler behavior, right? > > <sigh>I should have put this in a launchpad ticket</sigh> > > Best, > r