Problem with ACL on windows & proposed fix

edgar edgar-rft at
Sun Jun 28 17:44:09 UTC 2015

Am Sun, 28 Jun 2015 12:22:10 -0500
schrieb Robert Goldman <rpgoldman at>:

> On 6/27/15 Jun 27 -11:40 PM, Faré wrote:
> > On Fri, Jun 26, 2015 at 4:49 PM, Robert Goldman
> > <rpgoldman at> 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

More information about the asdf-devel mailing list