"Boot" stores code to get NOVA up and running.
"make" lists the files to be loaded, in their best load order. Change the following form to load different files in different orders.
(files '( tricks/macros tricks/eg tricks/lib guess/guess-db config guess/guess xomo/coc-lib xomo/model-defaults xomo/effort-model xomo/defects-model xomo/months-model xomo/threats-model misc/demos ))
"make" also defines functions for showing copyright and contact information. Change the following form to stamp yourself on the system.
(let ((what "NOVA v0.1") (who "Tim Menzies") (email "tim@menzies.us") (when 2008)) (defun about () (about-string what when who email)) (defun copyright () (gpl3-string what when who email)) (defun version () (format nil "~a. Copyright ~a." what when)) )
"make" also stores the boot actions to be taken when the system starts up. Change the forms at the bottom of the file to change those start up actions.
; start up actions (make) (hello)
The "maker" function is a little utility for simplifying loading code. The code loads either a "lisp" file (the raw source code) or the faster loading "fasl" file (a binary compiled version of the "lisp" file). The optional keys arguments control some compilation options.
(defun maker ( &key files forcep ; always force a re-compile? (faslp nil) ; if nil, just load, don't fasl ) (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) ))
In the above, the labels are sub-routines used only by main function "(mapc #'make1 files)". Those functions are: