-(let ((#1=#:sbcl-src #p"/usr/share/sbcl-source/"))
- (flet ((#2=#:sbcl-dir (#3=#:p)
- (merge-pathnames #3# #1#)))
- (setf (logical-pathname-translations "SYS")
- `(("SYS:SRC;**;*.*.*" ,(#2# "src/**/*.*"))
- ("SYS:CONTRIB;**;*.*.*" ,(#2# "contrib/**/*.*"))))))
+(let ((srcdir #p"/usr/share/sbcl-source/"))
+ (when (probe-file srcdir)
+ (sb-ext:set-sbcl-source-location srcdir)))
+
+;; Get SBCL to shut up about package variance. This is a standard result of
+;; my approach to symbol exports, and I don't care.
+#+sbcl
+(progn
+ (unless (fboundp 'real-note-package-variance)
+ (setf (symbol-function 'real-note-package-variance)
+ (symbol-function 'sb-impl::note-package-variance)))
+ (handler-bind ((sb-ext:package-lock-violation #'continue)
+ (sb-kernel:redefinition-warning #'muffle-warning))
+ (defun sb-impl::note-package-variance
+ (&rest args &key package &allow-other-keys)
+ (let ((ignore (getf sb-ext:*on-package-variance* :ignore)))
+ (unless (or (eq ignore t)
+ (and (listp ignore)
+ (member (package-name package) ignore)))
+ (apply #'real-note-package-variance args)))))
+ (setf sb-ext:*on-package-variance* '(:ignore t)))
+
+;; Tell some Lisps about my home directory. CMU CL already has a search list
+;; which does the same job, and CCL sets up a logical-pathname host.
+#+(and unix (or sbcl clisp ecl abcl))
+(let* ((homestring (or #+sbcl (sb-ext:posix-getenv "HOME")
+ #+(or clisp ecl abcl) (ext:getenv "HOME")
+ #+abcl (java:jstatic "getProperty"
+ "java.lang.System"
+ "user.home")
+ "/home/mdw"))
+ (home (pathname (concatenate 'string homestring "/"))))
+ (setf (logical-pathname-translations "HOME")
+ `(("HOME:**;*.*.*" ,(merge-pathnames "**/*.*" home nil)))))
+(when (#.(car '(#+clisp ext:probe-directory
+ probe-file))
+ #p"/usr/share/common-lisp/")
+ (setf (logical-pathname-translations "CL")
+ '(("CL:SOURCE;**;*.*.*" #p"/usr/share/common-lisp/source/**/*.*")
+ ("CL:SYSTEMS;**;*.*.*" #p"/usr/share/common-lisp/systems/**/*.*"))))