diff --git a/test/test-system-pathnames.script b/test/test-system-pathnames.script index f66cf57b4968fa144431beaef60cf32b925d2aaf..740005ec30bee7bf69532ae7e3069738bce38c54 100644 --- a/test/test-system-pathnames.script +++ b/test/test-system-pathnames.script @@ -2,6 +2,7 @@ (defsystem :test-system-pathnames :pathname "sources/level1" + :source-file nil :components ((:file "file1") (:file "file2" :pathname "level2/file2") diff --git a/uiop/os.lisp b/uiop/os.lisp index 2029428397e4737ab1ed650169a9b02b69149966..3cd598104d0a65284d9cc53a67c1fbe94ddae994 100644 --- a/uiop/os.lisp +++ b/uiop/os.lisp @@ -255,8 +255,7 @@ suitable for use as a directory name to segregate Lisp FASLs, C dynamic librarie (strcat (nth-value 1 (unix:unix-current-directory)) "/")) #+cormanlisp (pathname (pl::get-current-directory)) ;; Q: what type does it return? #+ecl (ext:getcwd) - #+gcl (parse-namestring ;; this is a joke. Isn't there a better way? - (first (symbol-call :uiop :run-program '("/bin/pwd") :output :lines))) + #+gcl (let ((*default-pathname-defaults* #p"")) (truename #p"")) #+genera *default-pathname-defaults* ;; on a Lisp OS, it *is* canonical! #+lispworks (system:current-directory) #+mkcl (mk-ext:getcwd) diff --git a/uiop/stream.lisp b/uiop/stream.lisp index 96ede3a9ded8435c4c64c233bd7cf9072a1d2493..a2cf23230b159ef72bf65cd772dd30892579cbda 100644 --- a/uiop/stream.lisp +++ b/uiop/stream.lisp @@ -557,7 +557,7 @@ Finally, the file will be deleted, unless the KEEP argument when CALL-FUNCTION'e :with prefix = (namestring (ensure-absolute-pathname (or prefix "tmp") (or directory #'temporary-directory))) :with results = () - :for counter :from (random (expt 36 #-gcl 8 #+gcl 6)) + :for counter :from (random (expt 36 #-gcl 8 #+gcl 5)) :for pathname = (pathname (format nil "~A~36R~@[~A~]~@[.~A~]" prefix counter suffix type)) :for okp = nil :do ;; TODO: on Unix, do something about umask