I only want to put a system into "manual" mode, and make sure that find-system never overrides that no matter what. How about adding an optional third parameter to load-sysdef that sets a "definitivep" flag in the system, which makes find-system to never search it on the file-system any more ?
As I explained in my previous mail, it would more be something like what follows (wholly untested), where in your code you'd (1) call the register function initially (2) use load-slime-override-sysdef instead of load-sysdef in your code.
(in-package :asdf)
(defvar *slime-override-systems* (make-hash-table :test 'equal))
(defun sysdef-slime-override (name) (values (gethash (coerce-name system) *slime-override-systems*)))
(defun register-slime-override () (setf asdf:*system-definition-search-functions* (cons 'sysdef-slime-override (remove 'sysdef-slime-override *system-definition-search-functions*))))
(defun load-slime-override-sysdef (name pathname) (let ((name (coerce-name name))) (setf (gethash name *slime-override-systems*) pathname) (load-sysdef name pathname)))
—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org "I believe that sex is one of the most beautiful, natural, wholesome things that money can buy." — Steve Martin