Starting a new thread, but in due course we should keep Fare's most recent words from previous thread in mind for expanding the test suite for uiop:run-program:
Fare wrote:
Ideally there would a test that includes all printable ASCII
characters and ensures that quoting works alright, with either a list or string argument (beware quoting when generating the string).
Anyway, here is what I'm seeing currently (with an unpatched 3.0.2.7):
Allegro 9.0: =========
Running the test script from cygwin brings up an Allegro CL Console which immediately displays the following error:
==== An unhandled error occurred during initialization: An error occurred (Attempt to take the value of the unbound variable `|"TEST/SCRIPT-SUPPORT.LISP"|'.) during the reading or evaluation of -e "(or #.(load \"test/script-support.lisp\") #.(asdf-test::compile-asdf-script))"
<The Lisp process exited with status -1 (0xffffffff)> ====
So the -e argument is not making it properly into the Allegro, and it looks like something has to be updated in the test script just to get Allegro/Windows to start running the tests. Would anyone from Franz Support care to have a look at this?
I did confirm that normal programs can be run with Allegro's excl:run-shell-command without the need for "cmd /c" prepended.
CCL 1.9 =======
asdf test results for (unpatched) 3.0.2.7 are here:
https://www.dropbox.com/sh/jc2cqwpkp06dupm/tx0U1Fun65/cl/tests/asdf/output/2...
Note that the first failure, for the bundle-test, is a known bug in ccl:fasl-concatenate in CCL 1.9 for Windows, and has been fixed in the trunk for CCL 1.10.
The second failure just looks like the extra space after the "ok 1" as we were seeing before. Perhaps this is also a CCL issue? Can anyone from Clozure comment on this?
Also, I think I confirmed that CCL's ccl:run-program on Windows really does need the "cmd /c " prepended to be able to run a normal program. Currently the uiop:run-program is doing
(cons "cmd" (strcat "/c " command))
for commands given as a single string, but it does not prepend anything for commands given as a list. There was previous opinion that the list form of the command should not automatically get the ("cmd" "c/") prepended. But from what I can tell, the user will always have to do
(uiop:run-program (append '("cmd" "/c") command)
if user wants to give command as a list. If that's the case, then for consistent interface of uiop:run-program across different Lisps, shouldn't uiop:run-program go ahead and do that appending by default?
SBCL =====
Sorry, I'm not running SBCL on Windows at the moment. Anyone? Get with me if you can use some guidance getting the ASDF test scripts running.
LispWorks ========
I don't have LWW at this juncture. Anyone?
ABCL, ECL, CLISP, GCL (who am I forgetting?) ======================================
Anyone running these on Windows and willing to run some ASDF testing scripts (probably through cygwin)? Get with me if you want some guidance and/or moral support.
Regards,
Dave
On Mon, Sep 9, 2013 at 1:25 AM, Dave Cooper david.cooper@genworks.comwrote
Starting a new thread
I think too many people were included in this and previosu thread, and I've let this topic become too noisy. Sorry for that. Please keep any replies limited just to asdf-devel. And maybe some of these items would be more effectively dealt with on Launchpad (I'm still getting a feel for what should go where out here).
On Mon, Sep 9, 2013 at 1:25 AM, Dave Cooper david.cooper@genworks.com wrote:
CCL 1.9
The second failure just looks like the extra space after the "ok 1" as we were seeing before. Perhaps this is also a CCL issue? Can anyone from Clozure comment on this?
As I mentioned before, it's a CCL bug. I filed http://trac.clozure.com/ccl/ticket/1110
Also, I think I confirmed that CCL's ccl:run-program on Windows really does need the "cmd /c " prepended to be able to run a normal program. Currently the uiop:run-program is doing
(cons "cmd" (strcat "/c " command))
for commands given as a single string, but it does not prepend anything for commands given as a list. There was previous opinion that the list form of the command should not automatically get the ("cmd" "c/") prepended. But from what I can tell, the user will always have to do
(uiop:run-program (append '("cmd" "/c") command)
if user wants to give command as a list. If that's the case, then for consistent interface of uiop:run-program across different Lisps, shouldn't uiop:run-program go ahead and do that appending by default?
I believe it might be a matter of searching %PATH% or not. It's really better to have an interface that doesn't call CMD when you don't want it called. The price to pay may then be to have to specify a full path for the target command. Note that uiop:run-program already accepts a :force-shell t argument for people who want CMD /C to be forced. (PS: definitely not tested under Windows.)
SBCL
Sorry, I'm not running SBCL on Windows at the moment. Anyone? Get with me if you can use some guidance getting the ASDF test scripts running.
Last I tried, it was just a matter of expanding the zip file and adding sbcl to your PATH and/or exporting SBCL_HOME. I think I was using a trivial .BAT file that did that for me.
ABCL, ECL, CLISP, GCL (who am I forgetting?)
Anyone running these on Windows and willing to run some ASDF testing scripts (probably through cygwin)? Get with me if you want some guidance and/or moral support.
CLISP and ABCL should be relatively easy to install. ECL, I don't remember succeeding, but I might not have tried very hard. I recommend you forget GCL for now (if not forever).
—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org You worry too much about your job. Stop it. You're not paid enough to worry.
On Mon, Sep 9, 2013 at 2:51 AM, Faré fahree@gmail.com wrote:
On Mon, Sep 9, 2013 at 1:25 AM, Dave Cooper david.cooper@genworks.com wrote:
CCL 1.9
The second failure just looks like the extra space after the "ok 1" as we were seeing before. Perhaps this is also a CCL issue? Can anyone from Clozure comment on this?
As I mentioned before, it's a CCL bug. I filed http://trac.clozure.com/ccl/ticket/1110
Ok - so this issue is closed as far as this email thread is concerned.
Also, I think I confirmed that CCL's ccl:run-program on Windows really
does
need the "cmd /c " prepended to be able to run a normal program.
...
I believe it might be a matter of searching %PATH% or not. It's really better to have an interface that doesn't call CMD when you don't want it called. The price to pay may then be to have to specify a full path for the target command. Note that uiop:run-program already accepts a :force-shell t argument for people who want CMD /C to be forced. (PS: definitely not tested under Windows.)
Yes absolutely right. Sorry for taking so long to understand this. I confirmed it with various calls to the CCL executable itself (using the full pathname etc).
So the reason we do the (cons "cmd" (strcat "/c " command)) on CCL is because ccl:run-program requires the executable as a separate argument, and it would be too convoluted/error-prone to try to parse the executable out of a string given by the user and call the ccl:run-program with it as a separate argument. So when the user gives a string argument we just use "cmd" as the executable. Sounds reasonable enough.
When and if CCL provides a run-program which allows direct command-line access, as Fare suggests in http://trac.clozure.com/ccl/ticket/1110, then uiop:run-program will be able to call this version of run-program when given a string, and just pass the string directly.
You worry too much about your job. Stop it. You're not paid enough to
worry.