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). 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?
> 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.
;-)
-Peter
--
Peter Seibel * pe...@gigamonkeys.com
Gigamonkeys Consulting * http://www.gigamonkeys.com/
Practical Common Lisp * http://www.gigamonkeys.com/book/
(pushnew "path to your stuff with no spaces" asdf:*central-registry*
:test #'equal)
@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
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??
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.
Lisp: Annoy, annoy
GF: Dear, what're you doing? Shouldn't you be eating?
Me: <eat Lisp>
Lisp: Annoy, annoy, ann--chomp!
Alan Manuel K. Gloria wrote:
> 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:
#+eval-this-if-you-do-not-autoload-asdf
(load (make-pathname :device "c"
:directory '(:absolute "0dev" "cells")
:name "asdf"
:type "lisp"))
(push (make-pathname :device "c" :directory '(:absolute "0dev" "cells"))
asdf:*central-registry*)
(ASDF:OOS 'ASDF:LOAD-OP :CELLS)
> Oh wow. Me want brain reboot. Wish was with
> girlfriend. Then no more problem. Wow.
No, give her some air. You are totally obsessing over her. Better let
her catch up with you. Or you will have had a girlfriend for eighteen hours.
ken
--
Cells: http://common-lisp.net/project/cells/
"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.
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.
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.
--
Jack Unrue
In the guide
http://cvs.sourceforge.net/viewcvs.py/*checkout*/cclan/asdf-install/doc/index.html
, there is one part that says:
Windows note: For Windows add the following line to end of the
initialization file:
(pushnew 'asdf-install:sysdef-source-dir-search
asdf:*system-definition-search-functions*)
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!
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.
Justin
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?
Tanks,
Keith
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.