;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; load
;; a load file for the pushgp genetic programming system
;; c) 2000-2003, Lee Spector (lspector@hampshire.edu)
;;
;; distribution location: http://hampshire.edu/lspector/push.html

#|

Run PushGP by loading this file into a Lisp interpreter.
Under many Unix/Linux/etc. Lisps you should be able to complile,
load, and run the system by typing the following to the
shell prompt:

  lisp -load load

More detailed comments are in push.lisp and pushgp.lisp.

For more information about Push and PushGP see 
http://hampshire.edu/lspector/push.html

|#
(defparameter *cluster* nil)

;(print (directory-namestring *loading-file-source-file*))

(defparameter *here* "")
#+MCL(setq *here* (directory-namestring *loading-file-source-file*))

(defparameter *shared-dir*
  (if *cluster*
      "/home/lspector/pq/"
      *here*))

(defparameter *local-dir* 
  (if *cluster*
      "/tmp/"
      *here*))

(defun localized (string)
  (concatenate 'string *local-dir* string))

(defun shared (string)
  (concatenate 'string *shared-dir* string))


;; if MCL then just assume loading compiles
#+MCL(defun compile-and-load (file extension)
       (load (localized (concatenate 'string file extension))))

#-MCL(defun compile-and-load (file extension) 
       ;; extensions are standard for CMU Lisp on Athlons running Linux
       (compile-file (shared (concatenate 'string file extension)) 
                     :output-file (localized (concatenate 'string file ".x86f")))
       (load (localized (concatenate 'string file ".x86f"))))

#+OPENMCL(defun compile-and-load (file extension)
      (compile-file (shared (concatenate 'string file extension))
                    :output-file (localized (concatenate 'string file ".dfsl")))
      (load (localized (concatenate 'string file ".dfsl"))))


;; the following improves garbage collection efficiency and
;; eliminates garbage collection messages under CMU Lisp
#+cmu(setq extensions:*bytes-consed-between-gcs* 10000000)
#+cmu(setq extensions:*gc-verbose* nil)
#+cmu(setq *load-verbose* nil)
#+cmu(setq *compile-verbose* nil)
#+cmu(setq *compile-print* nil)
#+cmu(setq *compile-progress* nil)
#+cmu(setq *require-verbose* nil)

;; compile and load the files
(compile-and-load "random" ".cl")
(compile-and-load "push2" ".lisp")
(compile-and-load "pushgp" ".lisp")
(compile-and-load "qgame" ".lisp")
(compile-and-load "gate-compression" ".lisp")
(compile-and-load "pushgp-qgame" ".lisp")
(complete-push-pre-configuration)
(configure-push-from-file (shared "qgame.pconf"))


;(generate-full-config-file (choose-new-file-dialog))

;; run pushgp
(pushgp)

