;;; Initialize logical hostnames:

(setf (logical-pathname-translations "PACKAGES") (ignore-errors (logical-pathname-translations "PACKAGES"))
      (logical-pathname-translations "LOADERS")  (ignore-errors (logical-pathname-translations "LOADERS")))


;;; Set up translations:

(setf (logical-pathname-translations "PACKAGES") `((#P"PACKAGES:EDU;MIT;AI;PSEUDO;LOADIT.*"
                                                      (merge-pathnames "pseudo/loadit.*" *load-pathname*)))
      (logical-pathname-translations "LOADERS")  `((#P"LOADERS:PSEUDO.*"
                                                      (merge-pathnames "pseudo.*" *load-pathname*))))

;;; Define an autoload for scheme:


(defmacro defautoload (name arguments loader)
  "Defines a function that will load the LOADER file, before calling itself again."
  `(progn
     (declaim (notinline ,name))
     (defun ,name ,arguments
       "Autoload function."
       (load ,loader)
       (,name ,@arguments))))


;;; It doesn't work with ccl yet.
#-ccl
(defautoload scheme () (translate-logical-pathname #P"LOADERS:PSEUDO"))
ViewGit