I've downloaded ASDF and ASDF-INSTALL somehow, following edi weitz's guide (I think it was edi weitz's, but my brain stopped working thirty minutes ago, and I think I'd rather be with my girlfriend now - who, by the way, is my girlfriend for about 18 hours so far). Anyway, I've finished installing ASDF and ASDF-INSTALL and placed them in a lispinit.mem memory image file for CLISP, then replaced my old lispinit.mem image.
Then I try: (asdf-install:install :trivial-sockets)
asdf asks me where I want it, so I tell it to go install it personally on my account (which is the only account on my computer, so it's okay). Then it tells me that it can't find GPG. I tell it to go ahead anyway, and then: ;;; ASDF-INSTALL: Installing C:\Documents and Settings\Alan\TRIVIAL-SOCKETS.asdf-install-tmp in C:\Documents and settings\Alan\.asdf-install-dir\site\, C:\Documents and Settings\Alan\.asdf-install-dir\systems\ The system cannot find the path specified.
The CLISP process apparently stops completely at this point. I've let one run for about 1 hour before I just pressed ctrl-C. Nothing seems to happen beyond the apparent error "The system cannot find the path specified".
Does anyone have any idea what else ASDF depends upon that is making this crash?
I've cast googlenet "asdf on windows" on this group but my brain doesn't seem to be working, and one promising thread was discussing hard links (which I didn't use, based on the recommendations of that guide I was following - dunno, I think it was cCLan or something, brain is fuzzy).
So yeah, I think I'd rather be texting my girlfriend, this darned computer and that darned LISP system can wait. Annoy, annoy, that's all I get from it.
Also, for some reason I cannot download GPG at all. I've found the gpg site but I can't seem to be able to access the GPG ftp server or any of its mirrors (at least, the mirrors I tried - Japan, Canada, Taiwan). I'm located in the Philippines, I have no idea what my ISP's IP address is, would this have any effect?
"Alan Manuel K. Gloria" <almkg...@gmail.com> writes:
> Lisp is really starting to annoy me.
> My system is CLISP running on a WinXP computer.
> I've downloaded ASDF and ASDF-INSTALL somehow, following edi weitz's > guide (I think it was edi weitz's, but my brain stopped working thirty > minutes ago, and I think I'd rather be with my girlfriend now - who, by > the way, is my girlfriend for about 18 hours so far).
Okay, that's your problem right there. *Anything* is going to be annoying when compared with new love. I suggest you try again later. ;-)
I had problems with spaces in filenames. Try adding an install path that refers to your system directory using windows 8.3 filenames and see if that works for ya.
(pushnew "path to your stuff with no spaces" asdf:*central-registry* :test #'equal)
@Peter: Thanks for helping me find my REAL problem!! LOL!
@justinhj: I've done as you suggested, but it still doesn't seem to work.
Apparently, when ASDF goes looking for a temporary place to put the files in, it somehow locks onto my "personal" directory C:\Documents and Settings\Alan\ If what you think is correct, then the problem is that ASDF stores anything it downloads into that directory, and then can't figure where C:\Documents is.
Can anyone help me figure out how to change where ASDF stores the files it would install?
[2]> (asdf-install:install :trivial-sockets) Install where? 0) Personal installation: System in E:\lisp\.asdf-install-dir\systems Files in E:\lisp\.asdf-install-dir\site 1) Abort installation. --> 0 ;;; ASDF-INSTALL: Downloading 9714 bytes from http://ftp.linux.org.uk/pub/lisp/c clan/trivial-sockets.tar.gz to C:\Documents and Settings\Alan\TRIVIAL-SOCKETS.as df-install-tmp ...
The system cannot find the file gpg.
*** - Call to GPG failed. Perhaps GPG is not installed or notin the path. The following restarts are available: SKIP-GPG-CHECK :R1 Don't check GPG signature for this package ABORT :R2 ABORT Break 1 [3]> :r1 ;;; ASDF-INSTALL: Installing C:\Documents and Settings\Alan\TRIVIAL-SOCKETS.asdf -install-tmp in E:\lisp\.asdf-install-dir\site, E:\lisp\.asdf-install-dir\system s The system cannot find the path specified.
I've been fooling around with ASDF on CLISP 2.38 WinXP. With a bit of hacking, I figured out that the procedure 'temp-file-name was the one generating the temporary filename into which ASDF copies what it's downloaded in preparation for GPG.
I entered the ASDF-INSTALL package and did: ASDF-INSTALL[16]> (temp-file-name "TRIVIAL-SOCKETS") #P"C:\\Documents and Settings\\Alan\\TRIVIAL-SOCKETS.asdf-install-tmp"
Which was absolutely weird, because when I did: ASDF-INSTALL[32]> (let* ((pos-slash (position #\/ p :from-end t)) (pos-dot (position #\. p :start (or pos-slash 0)))) (merge-pathnames (make-pathname :name (subseq p (if pos-slash (1+ pos-slash) 0) pos-dot) :type "asdf-install-tmp")))) #P"E:TRIVIAL-SOCKETS.asdf-install-tmp"
The above were the contents of the function 'temp-file-name. Apparently, the function did not equal the result of its contents from the top-level.
I then re-entered the function 'temp-file-name at top-level: ASDF-INSTALL[33]> (defun temp-file-name (p) (let* ((pos-slash (position #\/ p :from-end t)) (pos-dot (position #\. p :start (or pos-slash 0)))) (merge-pathnames (make-pathname :name (subseq p (if pos-slash (1+ pos-slash) 0) pos-dot) :type "asdf-install-tmp")))) WARNING: DEFUN/DEFMACRO: redefining function TEMP-FILE-NAME in top-level, was defined in E:\lisp\asdf\installer.fas TEMP-FILE-NAME ASDF-INSTALL[34]> (temp-file-name "TRIVIAL-SOCKETS") #P"E:TRIVIAL-SOCKETS.asdf-install-tmp"
>From this I conclude that when running from a CLISP compiled file,
'merge-pathname merges my "default directory" or "home directory", but when running from a CLISP interpreted function, it merges the current directory.
I'll try to see if changing my default directory in WinXP will work. Now, to googlenet how to change the home directory on WinXP.... grr, is that even possible??
I've tried changing my home directory to C:\Alan, however, the same problem occurs.
Anyway, it turns out that the file I should be looking at is installer.lisp
For now, I'm giving up. Is there any way to manually install a system with asdf definitions? Oh wow. Maybe I should go on a date with my new girlfriend instead.
Okay. I think I've found it. It appears that ASDF looks for Cygwin on Windows systems. Oh wow. Me want brain reboot. Wish was with girlfriend. Then no more problem. Wow.
Oh wow. 1 hour already and Cygwin Setup says its downloading is 14% complete. Somebody remind me that I didn't install Cygwin for a reason. Okay, maybe it's the choice of download server, but I couldn't find a .ph domain and so I clicked on the first listed server on the assumption that it was the fastest. Oh wow.
Lisp: Annoy, annoy GF: Dear, what're you doing? Shouldn't you be eating? Me: <eat Lisp> Lisp: Annoy, annoy, ann--chomp!
> Okay. I think I've found it. It appears that ASDF looks for Cygwin on > Windows systems.
Define "looks for". I ask, because I use ASDF (tho not ASDF-Install) on win32. Here is what I do:
Get the source tree by grabbing a tarball or using CVS or Subversion or whatever. I cannot be bothered to learn the latter monstrosities because I have an easy alternative: TortoiseCVS or TortoiseSVN. Tarballs, of course, are the easiest. WinZip or PicoZip can read tarballs, tho they will have to recursively unpack the .tar they find inside the .gz.
Then (push "/where/you/put/the/source/" asdf:*central-registry*). Well, look, this is from one of my projects:
"Have you ever been in a relationship?" Attorney for Mary Winkler, confessed killer of her minister husband, when asked if the couple had marital problems.
@Ken Actually, I've started to see that this is what I could do (I've been hacking ASDF bit by bit) - manually add the source repository for the module to the central registry list, then use asdf:operate to load the source. This means not using asdf-install at all.
It turns out it is ASDF-INSTALL that looks for the Cygwin tar, not ASDF itself. Anyway, I still dearly suspect that the ASDF-INSTALL process is crashed by looking for the tar executable. I've picked a faster server for Cygwin this time, so maybe I can get it installed.
As for my girfriend, she's been getting a little jealous of my computer - hehehe. So I really think it's the computer I should be giving a little air to. Hehe.
On 15 Apr 2006 19:14:01 -0700, "Alan Manuel K. Gloria" <almkg...@gmail.com> wrote:
> @Ken > Actually, I've started to see that this is what I could do (I've been > hacking ASDF bit by bit) - manually add the source repository for the > module to the central registry list, then use asdf:operate to load the > source. This means not using asdf-install at all.
Alan,
FWIW, I don't use asdf-install on Windows, either. It's not so much that I dislike it (because I'd rather use it then download dependencies manually) as I think the current assumption of a Unix-like toolchain is a less than ideal burden for Windows users, and someday I'd like to work on fixing that.
It might be interesting to write up a design on how to make asdf-install a little more Windows friendly without sacrificing how it works on Unix-based systems. Not that I would change how systems are packaged, rather my goal would be to pull together sufficient Lisp libraries and write other needed code to be able to validate and unpack the same .tar.gz files without the external toolchain. I might work on that unless or until someone else beats me to it.
This (sh|w)ould eliminate the need for having to add paths to *central-registry*, IF you set the asdf-install:*locations* variable properly. For example, I decided to put all my asdf definitions in one place: E:\lisp\.asdf-install-dir\site\ I defined: (setq asd-install:*locations* (list (list #p"e:/lisp/.asdf-install-dir/site/" #p"e:/lisp/.asdf-install-dir/system/" ;;the last / is important!! "Personal Installation" ))) (pushnew 'asdf-install:sysdef-source-dir-search asdf:*system-definition-search-functions*)
Now, I just download the tar.gz, expand it into E:\lisp\.asdf-install-dir\site\, and just use (asdf:operate 'asdf:load-op :whatever-module).
ASDF has the following problem in Windows: 1. It can't find and use a central registry, because Windows doesn't have links. This can be solved by adding each ASDF-module's path to the asdf:*central-registry*, but this strikes me as a dirty thing. The code of asdf-install:sysdef-source-dir-search also solves this, but you *need*to*set* your asdf-install:*locations* variable correctly (AND put sysdef-source-dir-search in the *system-definition-search-functions*). I think the sysdef-source-dir-search should be put in ASDF instead of ASDF-INSTALL.
ASDF-INSTALL has the following problem in Windows 1. the assumption of a Unix toolset. Actually all we seem to need is tar and gpg. So we just need a tar for windows....
Oh wow. This is why I love hacking. You start with all those complex theories about how the thing works, and it turns out to be so simple. Gosh. I love Rose. Err. I mean hacking.
Anyway I've downloaded Cygwin (using a .jp server - if there are any Filipino Lisp users out there, download from the .jp server), and now I can use ASDF-INSTALL - BUT, on my CLISP distro, after printing the tar results, I have to press ctrl-d - which also boots me out of CLISP after installation. That's okay because I expect to install rarely anyway.
@Jack: I'll help you! If you ever need to test it on WinXP+CLISP... I'm game!
Yes unfortunately bypassing asdf-install and pushing directories as Ken describes is the way I work these days. I just have too much trouble getting asdf-install to work on the various computers and Os's I want to use.
If someone is maintaining and advancing asdf-install one of the best things to do would be to make the error messages not only more meaningful, but also guide you to the best fix.
Stumbled across this thread searching to solve this problem od asdf-install on Windows. I may have missed it in the long thread but is the problem spaces in the pathname for the temporary download? If so, does anyone know how to change this? Could th maintainer be persuaded to add a special variable for this?
I actually submitted some patches to the current maintainer, but I don't think he has had a chance to do anything with them. http://wiki.alu.org/ASDF_Universality has a running rambling rantish record of what I did, and a link to the files. It really wasn't much work to fix, the hard part is finding a version of GNU tar for windows that isn't broken.
Anyway, my changes worked great in clisp, but failed horribly in lispworks. I haven't done anything with it since then.
Anyway, I make no claim as to the suitability or goodness of those patches, but they were enough for me.