Pascal J.Bourguignon schrieb:
Martin Simmons writes:
>On Fri, 22 Oct 2004 05:11:27 +0200 (CEST), "Pascal J.Bourguignon" pjb@informatimago.com said:
Pascal> Some lisp implementation can be run on different architectures.
Pascal> If users keep the same home on different computers this will lead to Pascal> collision in ~/.slime/fasl/* directories.
Pascal> To generate the directory name for fasl files, I use the following Pascal> function, adding the machine type:
Pascal> (defun first-word (text) Pascal> (let ((pos (position (character " ") text))) Pascal> (if pos (subseq text 0 pos) text)))
Pascal> (defun implementation-id () Pascal> (format nil "~A-~A-~A" Pascal> (first-word (lisp-implementation-type)) Pascal> (first-word (lisp-implementation-version)) Pascal> (first-word (machine-type))));;implementation-id
This could be problematic if any of the functions returns a string containing illegal filename characters (e.g. /).
We could do further filtering, or once such an implementation is identified, we could map the values it returns to sane words.
Anyway, the point here is to add the machine type (uname -m) to be able to have in the same NFS-mounted home directory both SBCL-0.8.14.9-X86 and SBCL-0.8.14.9-PowerPC.
This problems also bite me on clisp-cygwin against clisp-win32. fasl and filenames are incompatible. `uname -m` gives i386 which doesn't help. uname -s is required in this case.