Bug: Running ACL under SLIME, asdf:run-shell-command raises an error. The problem is that the *verbose-out* that is passed to run-shell-command has been bound by SLIME to a gray stream. This is not an acceptable argument to pass to :output for excl:run-shell-command.
Here is a proposed patch.
Best, r
diff --git a/asdf.lisp b/asdf.lisp index aa1066b..82c9de3 100644 --- a/asdf.lisp +++ b/asdf.lisp @@ -1323,7 +1323,12 @@ output to *VERBOSE-OUT*. Returns the shell's exit code." :input nil :output *verbose-out*))
#+allegro - (excl:run-shell-command command :input nil :output *verbose-out*) + (multiple-value-bind (stdout stderr exit-code) + (excl.osi:command-output command :input nil :whole t) + (format *verbose-out* "; ~A~%" stderr) + (format *verbose-out* "; ~A~%" stdout) + exit-code) + ;;(excl:run-shell-command command :input nil :output *verbose-out*)
#+lispworks (system:call-system-showing-output
Quick follow up to the last patch. Commparing the definitions for ACL and SBCL, I'm wondering if the ACL version is guaranteed to do what is desired. In particular, I see that the SBCL version is careful to get a Bourne-compatible shell, per the docstring. But the ACL string doesn't say anything about how the shell is chosen. For example, as an unreconstructed old guy, I use the tcsh. If I was to run this under ACL, would I get tcsh behavior instead of what the docstring dictates?
I've never run into trouble, because I've never done anything that really uses the shell in excl:run-shell-command.
Best, r
Hi Robert,
This looks good to me. What do you think of
#+allegro (multiple-value-bind (stdout stderr exit-code) (excl.osi:command-output (format nil "~a -c ~a" #+mswindows "sh" #-mswindows "/bin/sh" command) :input nil :whole t #+mswindows :show-window #+mswindows :hide) (format *verbose-out* "~{~&; ~a~%~}~%" stderr) (format *verbose-out* "~{~&; ~a~%~}~%" stdout) exit-code)
instead. This tries to address your (valid I think) concern about using a Bourne compatible shell, add the :show-window :hide argument under windows and rejiggers the printout to stick a comment #; in front of each line.
On May 17, 2009, at 4:16 PM, Robert Goldman wrote:
Bug: Running ACL under SLIME, asdf:run-shell-command raises an error. The problem is that the *verbose-out* that is passed to run-shell-command has been bound by SLIME to a gray stream. This is not an acceptable argument to pass to :output for excl:run-shell-command.
Here is a proposed patch.
Best, r
diff --git a/asdf.lisp b/asdf.lisp index aa1066b..82c9de3 100644 --- a/asdf.lisp +++ b/asdf.lisp @@ -1323,7 +1323,12 @@ output to *VERBOSE-OUT*. Returns the shell's exit code." :input nil :output *verbose-out*))
#+allegro
- (excl:run-shell-command command :input nil :output *verbose-out*)
- (multiple-value-bind (stdout stderr exit-code)
(excl.osi:command-output command :input nil :whole t)
(format *verbose-out* "; ~A~%" stderr)
(format *verbose-out* "; ~A~%" stdout)
exit-code)
- ;;(excl:run-shell-command command :input nil :output *verbose-
out*)
#+lispworks (system:call-system-showing-output
asdf-devel mailing list asdf-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel
-- Gary Warren King, metabang.com Cell: (413) 559 8738 Fax: (206) 338-4052 gwkkwg on Skype * garethsan on AIM * gwking on twitter
Gary King wrote:
Hi Robert,
This looks good to me. What do you think of
#+allegro (multiple-value-bind (stdout stderr exit-code) (excl.osi:command-output (format nil "~a -c ~a" #+mswindows "sh" #-mswindows "/bin/sh" command) :input nil :whole t #+mswindows :show-window #+mswindows :hide) (format *verbose-out* "~{~&; ~a~%~}~%" stderr) (format *verbose-out* "~{~&; ~a~%~}~%" stdout) exit-code)
instead. This tries to address your (valid I think) concern about using a Bourne compatible shell, add the :show-window :hide argument under windows and rejiggers the printout to stick a comment #; in front of each line.
Looks good to me. One thing I wondered as I wrote my draft was whether it was better to mark the stderr and stdout lines with some inserted comment for the reader's benefit, since those lines now can come out in a reshuffled order.
An alternative solution would be to push the two streams (stdout and stderr) together, and print them out in the original order. I'm not real sure how to do this; I haven't dug deeply enough into excl.osi.
best, r
On May 17, 2009, at 4:16 PM, Robert Goldman wrote:
Bug: Running ACL under SLIME, asdf:run-shell-command raises an error. The problem is that the *verbose-out* that is passed to run-shell-command has been bound by SLIME to a gray stream. This is not an acceptable argument to pass to :output for excl:run-shell-command.
Here is a proposed patch.
Best, r
diff --git a/asdf.lisp b/asdf.lisp index aa1066b..82c9de3 100644 --- a/asdf.lisp +++ b/asdf.lisp @@ -1323,7 +1323,12 @@ output to *VERBOSE-OUT*. Returns the shell's exit code." :input nil :output *verbose-out*))
#+allegro
- (excl:run-shell-command command :input nil :output *verbose-out*)
(multiple-value-bind (stdout stderr exit-code)
(excl.osi:command-output command :input nil :whole t)
(format *verbose-out* "; ~A~%" stderr)
(format *verbose-out* "; ~A~%" stdout)
exit-code)
;;(excl:run-shell-command command :input nil :output *verbose-out*)
#+lispworks (system:call-system-showing-output
asdf-devel mailing list asdf-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel
-- Gary Warren King, metabang.com Cell: (413) 559 8738 Fax: (206) 338-4052 gwkkwg on Skype * garethsan on AIM * gwking on twitter
I've pushed a variant of this patch below to the repo.
I don't know if trying to merge stdout and stderr is possible but it probably does make sense to print out which information is from which stream (since we can!).
regards,
On May 18, 2009, at 8:03 PM, Robert Goldman wrote:
Gary King wrote:
Hi Robert,
This looks good to me. What do you think of
#+allegro (multiple-value-bind (stdout stderr exit-code) (excl.osi:command-output (format nil "~a -c ~a" #+mswindows "sh" #-mswindows "/bin/sh" command) :input nil :whole t #+mswindows :show-window #+mswindows :hide) (format *verbose-out* "~{~&; ~a~%~}~%" stderr) (format *verbose-out* "~{~&; ~a~%~}~%" stdout) exit-code)
instead. This tries to address your (valid I think) concern about using a Bourne compatible shell, add the :show-window :hide argument under windows and rejiggers the printout to stick a comment #; in front of each line.
Looks good to me. One thing I wondered as I wrote my draft was whether it was better to mark the stderr and stdout lines with some inserted comment for the reader's benefit, since those lines now can come out in a reshuffled order.
An alternative solution would be to push the two streams (stdout and stderr) together, and print them out in the original order. I'm not real sure how to do this; I haven't dug deeply enough into excl.osi.
best, r
On May 17, 2009, at 4:16 PM, Robert Goldman wrote:
Bug: Running ACL under SLIME, asdf:run-shell-command raises an error. The problem is that the *verbose-out* that is passed to run-shell-command has been bound by SLIME to a gray stream. This is not an acceptable argument to pass to :output for excl:run-shell- command.
Here is a proposed patch.
Best, r
diff --git a/asdf.lisp b/asdf.lisp index aa1066b..82c9de3 100644 --- a/asdf.lisp +++ b/asdf.lisp @@ -1323,7 +1323,12 @@ output to *VERBOSE-OUT*. Returns the shell's exit code." :input nil :output *verbose-out*))
#+allegro
- (excl:run-shell-command command :input nil :output *verbose-
out*)
- (multiple-value-bind (stdout stderr exit-code)
(excl.osi:command-output command :input nil :whole t)
(format *verbose-out* "; ~A~%" stderr)
(format *verbose-out* "; ~A~%" stdout)
exit-code)
- ;;(excl:run-shell-command command :input nil :output *verbose-
out*)
#+lispworks (system:call-system-showing-output
asdf-devel mailing list asdf-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel
-- Gary Warren King, metabang.com Cell: (413) 559 8738 Fax: (206) 338-4052 gwkkwg on Skype * garethsan on AIM * gwking on twitter
-- Gary Warren King, metabang.com Cell: (413) 559 8738 Fax: (206) 338-4052 gwkkwg on Skype * garethsan on AIM * gwking on twitter