[asdf-devel] One failure on ASDF 3.1.0.70 on Allegro/Windows
Faré
fahree at gmail.com
Wed Feb 26 08:42:07 UTC 2014
On Tue, Feb 25, 2014 at 9:20 PM, Dave Cooper <david.cooper at genworks.com> wrote:
> Thank you for your patience with my zombielike testing.
No, thank you for being my zombie in this proxy testing.
>> I (hopefully) fixed the SBCL failure now (see my reply to rpgoldman).
> sbcl:
> 51 tests passing and 0 failing.
>
One down, one to go.
> [3]> (POSIX:file-stat "c:/foo/" nil)
> *** - Win32 error 2 (ERROR_FILE_NOT_FOUND): The system cannot find the file
> specified.
I've sent a bug report for that to clisp, but we'll avoid file-stat on Windows.
> https://dl.dropboxusercontent.com/u/19667598/asdf-failures/3.1.0.73/clisp-test-run-program.text
Can you try again with the latest ASDF (should be the same you have)
plus the attached patch?
Please reset any local changes before applying (git reset --hard).
—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org
Two possibilities exist: Either we are alone in the Universe or we are not.
Both are equally terrifying. — Arthur C. Clarke
-------------- next part --------------
diff --git a/test/test-run-program.script b/test/test-run-program.script
index 76b1dc6..7cdddcf 100644
--- a/test/test-run-program.script
+++ b/test/test-run-program.script
@@ -1,6 +1,10 @@
;; -*- Lisp -*-
(declaim (optimize (debug 3) (safety #-gcl 3 #+gcl 0)))
+#+clisp (ext:without-package-lock ()
+ (trace uiop:run-program uiop/run-program::%run-program uiop/run-program::%system
+ ext:shell ext:run-shell-command ext:run-program))
+
;; On Windows, normalize away CRLF into jut the unixy LF.
(defun dewindowize (x)
(block ()
diff --git a/uiop/filesystem.lisp b/uiop/filesystem.lisp
index abad362..2415299 100644
--- a/uiop/filesystem.lisp
+++ b/uiop/filesystem.lisp
@@ -116,7 +116,7 @@ or the original (parsed) pathname if it is false (the default)."
(cond
(truename foundtrue)
(foundtrue p)))))
- (let* ((fs (find-symbol* '#:file-stat :posix nil))
+ (let* ((fs (or #-os-windows (find-symbol* '#:file-stat :posix nil)))
(pp (find-symbol* '#:probe-pathname :ext nil))
(resolve (if pp
`(ignore-errors (,pp p))
diff --git a/uiop/run-program.lisp b/uiop/run-program.lisp
index 5102f7d..a11d609 100644
--- a/uiop/run-program.lisp
+++ b/uiop/run-program.lisp
@@ -410,7 +410,7 @@ It returns a process-info plist with possible keys:
;; NB: these implementations have unix vs windows set at compile-time.
(declare (ignorable if-input-does-not-exist if-output-exists if-error-output-exists))
(assert (not (and wait (member :stream (list input output error-output)))))
- #-(or allegro clozure cmu (and lispworks os-unix) sbcl scl)
+ #-(or allegro clisp clozure cmu (and lispworks os-unix) sbcl scl)
(progn command keys directory
(error "run-program not available"))
#+(or allegro clisp clozure cmu (and lispworks os-unix) sbcl scl)
@@ -435,10 +435,10 @@ It returns a process-info plist with possible keys:
#-allegro
(with-current-directory (#-sbcl directory)
#+clisp
- (flet ((run (f &rest args)
+ (flet ((run (f x &rest args)
(multiple-value-list
- (apply f :input %input :output %output
- :allow-other-keys t `(, at args , at keys)))))
+ (apply f x :input %input :output %output
+ :allow-other-keys t `(, at args , at keys)))))
(assert (eq %error-output :terminal))
;;; since we now always return a code, we can't use this code path, anyway!
(etypecase %command
@@ -769,14 +769,17 @@ It returns a process-info plist with possible keys:
#+(or allegro clozure cmu (and lispworks os-unix) sbcl scl)
(%wait-process-result
(apply '%run-program (%normalize-system-command command) :wait t keys))
- #+(or abcl clisp cormanlisp ecl gcl (and lispworks os-windows) mkcl xcl)
+ #+(or abcl cormanlisp clisp ecl gcl (and lispworks os-windows) mkcl xcl)
(let ((%command (%redirected-system-command command input output error-output directory)))
#+(and lispworks os-windows)
(system:call-system %command :current-directory directory :wait t)
- #-(and lispworks os-windows)
+ #+clisp
+ (%wait-process-result
+ (apply '%run-program %command :wait t
+ :input :interactive :output :interactive :error-output :interactive keys))
+ #-(or clisp (and lispworks os-windows))
(with-current-directory ((unless (os-unix-p) directory))
#+abcl (ext:run-shell-command %command)
- #+clisp (clisp-exit-code (ext:shell %command))
#+cormanlisp (win32:system %command)
#+ecl (let ((*standard-input* *stdin*)
(*standard-output* *stdout*)
More information about the asdf-devel
mailing list