[slime-devel] suggestion for ~/.slime/fasl/*

Martin Simmons martin at xanalys.com
Mon Oct 25 13:48:24 UTC 2004


>>>>> On Mon, 25 Oct 2004 15:06:34 +0200, Reini Urban <rurban at x-ray.at> said:

  Reini> Martin Simmons schrieb:

  >>>>>>> On Sun, 24 Oct 2004 01:07:32 +0200, Reini Urban <rurban at x-ray.at> said:
  >> 
  >> 
  Reini> Pascal J.Bourguignon schrieb:
  >> 
  >> >> Martin Simmons writes:
  >> >> 
  >> >>>>>>>> On Fri, 22 Oct 2004 05:11:27 +0200 (CEST), "Pascal J.Bourguignon" <pjb at 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.
  >> 
  Reini> This problems also bite me on clisp-cygwin against clisp-win32.
  Reini> fasl and filenames are incompatible.
  Reini> `uname -m` gives i386 which doesn't help. uname -s is required in this case.
  >> 
  >> OK, but more interesting is what the proposed implementation-id function
  >> returns.

  Reini> Sure:
  Reini> "CLISP-2.33-PC/386"  (win32)
  Reini> vs
  Reini> "CLISP-2.33-I686"    (cygwin)

  Reini> So Pascal's version does work fine for our the current case.

Apart from the problem with the / character.

__Martin




More information about the slime-devel mailing list