#+SBCL (DECLAIM (SB-EXT:MUFFLE-CONDITIONS CL:STYLE-WARNING)) (defun maker ( &key files faslp ; if nil, just load, don't fasl forcep ; always force a re-compile? ) (labels ; some one-liners for compiling and loading files ((filename (x y) (string-downcase (format nil "~a.~a" x y))) (src (f) (filename f "lisp")) (bin (f) (filename f "fasl")) (newerp (f1 f2 ) (> (file-write-date f1) (file-write-date f2))) (compile? (src bin) (or forcep (not (probe-file bin)) (newerp src bin))) (update (f) (if (compile? (src f) (bin f)) (compile-file (src f)))) (cake (f) (update f) (load (bin f))) (loader (f) (format t ";;;; FILE: ~a~%" f) (load f)) (make1 (f) (if faslp (cake f) (loader (src f))))) (mapc #'make1 files))) (defun make () "list your files to load" (maker :faslp t :files '( eg demos 3-1 3-3 3-5 3-6 3-8 3-10 3-12 3-14 3-15 3-19 ))) (make)