1

On my Windows 7 CLISP 2.49 and SBCL-1.4.14 are installed and they work perfectly. ASDF 3.3.1 is loaded by the these lines on .sbclrc or .clisprc

(load "C:\\Users\\mayhem\\lisp\\asdf\\asdf.lisp")
(require :asdf)
(push "C:\\Users\\mayhem\\lisp\\systems\\" asdf:*central-registry*)

I'd like to load and use the iterate package/library using ASDF (not QuickLisp) so I've installed the iterate into C:\Users\mayhem\lisp\iterate and on CMD.exe

> cd C:\Users\mayhem\lisp\systems
> junction.exe iterate.asd C:\Users\mayhem\lisp\iterate\iterate.asd

If I (require 'iterate) whether on REPL or in a file, I get

CLISP: *** - LOAD: A file with name ITERATE does not exist

SBCL:  ASDF could not load iterate because Error while trying to load definition for system iterate from pathname C:/Users/mayhem/lisp/systems/iterate.asd/: error opening #P"C:/Users/mayhem/lisp/systems/iterate.asd/": Access denied..
While evaluating the form starting at line 1, column 0
  of #P"C:/Users/mayhem/lisp/defsystem.lisp":

If I try to load the iterate.asd directly then I get EVAL: undefined function DEFSYSTEM

How to fix the problem?

Update 1: I've added (push "C:\\Users\\mayhem\\lisp\\iterate\\" asdf:*central-registry*) into .sbclrc. That is, I did the loading of iterate.asd without relying on soft links. When I entered (require 'iterate) on REPL it gave:

(require 'iterate)
ASDF could not load iterate because
Uneven number of components in source to destination mapping: "C:/".
....
(ASDF/OUTPUT-TRANSLATIONS:PARSE-OUTPUT-TRANSLATIONS-STRING "C:/" :LOCATION NIL)
   source: (ERROR
            (COMPATFMT
             "~@<Uneven number of components in source to destination mapping: ~3i~_~S~@:>")
            STRING)

I've added the same line to .clisprc and CLISP gave: *** - LOAD: A file with name ITERATE does not exist

Update 2: I've tried the setup above on Windows XP (i.e. by adding (push "C:\\Documents and Settings\\mayhem\\lisp\\iterate\\" asdf:*central-registry*) to CLISP init file and without using the junctioned/soft linked ASD files) and it did work! So the problem is limited to Windows 7. I've just learnt that the ASDF don't play well with the Windows soft links. Reference)

Rainer Joswig
  • 136,269
  • 10
  • 221
  • 346
Lars Malmsteen
  • 738
  • 4
  • 23
  • "Access denied" might be a clue for the problem, it's hard to know better here. But you cannot evaluate the `defsystem` form if you are not in the right package (asdf-user I think). In fact you should never need to evaluate it directly, even for debugging. What if you push directly `"C:\\Users\\mayhem\\lisp\\iterate\\"` into `asdf:*central-registry*`? – coredump Feb 05 '21 at 10:09
  • @coredump Thank you for the comment. I've just added an update to the question. The error message on `SBCL` has changed while the one on `CLISP` has remained more or less the same. From the error message on `SBCL` it looks like a Windows path problem, maybe. – Lars Malmsteen Feb 05 '21 at 11:05
  • I've added a second update. After I 've used the updated setup on Windows **XP**, the ASDF did work. – Lars Malmsteen Feb 05 '21 at 13:50
  • Great, I heard "mklink" is the recommend way on Windows instead of junction.exe, but I don't really have experience with this – coredump Feb 05 '21 at 14:12

0 Answers0