From 3aa1a8da9c727c94cc8e4a491d8e357c296b721a Mon Sep 17 00:00:00 2001 From: Alex Klinkhamer Date: Fri, 13 Jun 2008 22:47:34 -0400 Subject: [PATCH] No more reloading unchanged files. --- run.lisp | 7 ++++--- src/webui/devvars.lisp | 46 ++++++++++++++++++++++++++-------------------- src/webui/reload.lisp | 9 +++++---- 3 files changed, 35 insertions(+), 27 deletions(-) diff --git a/run.lisp b/run.lisp index 085f03b..e1e90c9 100644 --- a/run.lisp +++ b/run.lisp @@ -59,14 +59,15 @@ ; (local-capture) ; before quitting to save the file -; Set the port number where Hunchentoot listens. -(set 'port 41938) +; Set Hunchentoot listens to listen on port 8080 +; instead of the default 41938 +#+(or) (set 'port 8080) ;^^^ CONFIG OPTIONS ^^^ ;V Load the program.V (load (make-pathname :directory '(:relative "src" "webui") - :name "serv")) + :name "serv" :type "lisp")) diff --git a/src/webui/devvars.lisp b/src/webui/devvars.lisp index 6a814fc..7a99407 100644 --- a/src/webui/devvars.lisp +++ b/src/webui/devvars.lisp @@ -1,7 +1,7 @@ (defpackage :lineal.devvars (:use :cl) - (:export *file-tree* compile-tree compile-lineal)) + (:export *file-tree* compile-if-new compile-lineal)) (in-package :lineal.devvars) @@ -17,9 +17,8 @@ "calcupage" "save-restore" "reload"))) (defun compile-if-new - (name src-dir - &optional (fasl-dir src-dir) - compile-all ensure-dirs + (name src-dir &key (fasl-dir src-dir) + compile-all (load-all t) ensure-dirs &aux (src-file (make-pathname :directory src-dir @@ -27,21 +26,23 @@ (fasl-file (make-pathname :directory fasl-dir :name name :type "fasl"))) - (unless (and (not compile-all) - (probe-file fasl-file) - (< (file-write-date src-file) - (file-write-date fasl-file))) - (when ensure-dirs - (ensure-directories-exist fasl-file)) - (with-open-file - (fasl-strm fasl-file :direction :output - :if-exists :supersede) - (compile-file src-file :output-file fasl-strm))) - (load fasl-file)) + (if (and (not compile-all) + (probe-file fasl-file) + (< (file-write-date src-file) + (file-write-date fasl-file))) + (when load-all (load fasl-file)) + (progn + (when ensure-dirs + (ensure-directories-exist fasl-file)) + (with-open-file + (fasl-strm fasl-file :direction :output + :if-exists :supersede) + (compile-file src-file :output-file fasl-strm)) + (load fasl-file)))) (defun compile-tree (file-tree src-base fasl-base - &optional compile-all + &key compile-all (load-all t) &aux src-dir fasl-dir) (labels ((ensure-first @@ -66,16 +67,21 @@ ;V /file-tree/ is a file's name, V ;V compile it if necessary. V (compile-if-new - file-tree src-dir fasl-dir - compile-all ensure-dirs)))) + file-tree src-dir + :fasl-dir fasl-dir + :compile-all compile-all + :load-all load-all + :ensure-dirs ensure-dirs)))) (ensure-first file-tree (lambda (rootless) (setq src-dir (append src-base rootless) fasl-dir (append fasl-base rootless)))))) -(defun compile-lineal () +(defun compile-lineal (&key compile-all (load-all t)) (compile-tree *file-tree* '(:relative "src") - '(:relative "fasl"))) + '(:relative "fasl") + :compile-all compile-all + :load-all load-all)) diff --git a/src/webui/reload.lisp b/src/webui/reload.lisp index 9db30d9..56e076f 100644 --- a/src/webui/reload.lisp +++ b/src/webui/reload.lisp @@ -20,15 +20,16 @@ (bind-reset (*saved-numbers* *saved-tuples* *saved-matrices*) ;V Do file loading.V - (compile-lineal) + (compile-lineal :load-all nil) ;V Compile the javascript files.V (recompile-ps))) ;V Reload this file via the web.V (defun reload (&aux (worked nil)) - (load (make-pathname - :directory '(:relative "src" "webui") - :name "reload.lisp")) + (compile-if-new + "reload" '(:relative "src" "webui") + :fasl-dir '(:relative "fasl" "webui") + :load-all nil) (unwind-protect (progn (fresheval) ;V say it worked V -- 2.11.4.GIT