;;; -*- Mode:LISP; Package:LAMBDA; Base:10; Readtable:ZL -*-


(format t "~&;Loading this file will help explorer-LAM to win.~
~%;Select the SENSITIVE LISP LISTENER for mouse-sensitive FIXNUMS~%")

(multiple-value-bind (maj min)
  (si:get-system-version 'system)
  (or (= maj 109) (error "expect to run in system 109"))
  (or (>= min 32)
      ;; for serial port patch
      (load-patches 'system :noselective)))


(DEFUN COMPILE-P (FILENAME)
  (LET ((SOURCE (OPEN (SEND (FS:PARSE-PATHNAME FILENAME) :NEW-TYPE :LISP)
		      :DIRECTION NIL))
	(OBJECT (OPEN (SEND (FS:PARSE-PATHNAME FILENAME) :NEW-TYPE :QFASL)
		      :DIRECTION NIL
		      :ERROR NIL)))
    (OR (ERRORP OBJECT)
	(> (GET SOURCE :CREATION-DATE)
	   (GET OBJECT :CREATION-DATE)))))

(DEFUN LOAD-P (FILENAME)
  (LET ((OBJECT (OPEN (SEND (FS:PARSE-PATHNAME FILENAME) :NEW-TYPE :QFASL) :DIRECTION NIL))
	(LOADED (SI:GET-FILE-LOADED-ID (FS:PARSE-PATHNAME FILENAME) NIL)))
    (OR (NULL LOADED)
	(> (GET OBJECT :CREATION-DATE) (CDR LOADED)))))

(DEFUN COMPILE-AND-LOAD (&REST FILES)
  (DOLIST (FILE FILES)
    (WHEN (COMPILE-P FILE)
      (FORMAT T "~&Compiling ~S" FILE)
      (COMPILE-FILE FILE :SET-DEFAULT-PATHNAME NIL))
    (IF (LOAD-P FILE)
	(LOAD FILE :SET-DEFAULT-PATHNAME NIL))))

(COMPILE-AND-LOAD "DJ:GJC;EXPLORER-LAM-PATCH")






