On 4/15/10, Faré fahree@gmail.com wrote:
Ahem. Does it work better with 1.679?
It's hard to test these things without access to a Windows machine...
Also, I realize that in Unix, I rely on absolute-pathname-p meaning "a completely qualified pathname", which breaks down on Windows, with potentially "interesting" implications. Sigh.
Hi again,
Ok, forget about the hot-upgrade issue. I had wrongly assumed without checking that asdf runs well on clisp win32. Apologies, I should've checked that before.
Here's what I discovered on deeper inspection. I had been sidetracked into the wrong line before, as the problem with truenamize lies elsewhere, and I've worked around it for now. A proper patch would require fixes to clisp (this is tentative for now) but may require version checking conditionalisation in any case. One should probably keep track of:
http://sourceforge.net/tracker/?func=detail&aid=2987521&group_id=135...
As an aside I made another edit which may also need version conditionalisation. Check out
http://sourceforge.net/tracker/?func=detail&aid=2959335&group_id=135...
maybe a dummy stub get-uid is required for clisp win32 in the future? And is the #-windows meant to be Lispworks only? Which implementation was it meant for?
[and I don't know why that posix:uid thing didn't throw an error before for me... very strange]
So the following are not patches to be applied, but merely highlights some issues that I don't know how to fix elegantly, as yet. Perhaps this issue should remain open for now, while we adopt a wait and see attitude?
Yong. PS And yep, I have now tried the 1.679 release.
$ diff -u 1.679.lisp asdf.lisp --- 1.679.lisp 2010-04-15 16:11:09.395991000 +1200 +++ asdf.lisp 2010-04-15 18:23:20.009511500 +1200 @@ -651,7 +651,8 @@
#-windows (progn -#+clisp (defun get-uid () (posix:uid)) +;; vvvvvvvvv---- This may need to be clisp version tested in the future? +#+(and clisp (not win32)) (defun get-uid () (posix:uid)) #+sbcl (defun get-uid () (sb-unix:unix-getuid)) #+cmu (defun get-uid () (unix:unix-getuid)) #+ecl (ffi:clines "#include <sys/types.h>" "#include <unistd.h>") @@ -705,9 +706,11 @@ :finally (return (merge-pathnames* - (make-pathname :host nil :device nil - :directory nil - :defaults p) + ;; Unwieldy, but fixes clisp pre-???2.47 bug + (merge-pathnames + (make-pathname :host nil :device nil + :directory nil) + p) sofar)))))))
(defun lispize-pathname (input-file)