[asdf-devel] 1.675 bug

szergling senatorzergling at gmail.com
Thu Apr 15 06:51:27 UTC 2010


On 4/15/10, Faré <fahree at 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=1355&atid=101355

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=1355&atid=101355

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)




More information about the asdf-devel mailing list