#!/bin/csh # # savesys -- build a saved executable in bin/new-cmu-haskell.core # # cd $Y2 setenv PRELUDEBIN $Y2/progs/prelude/cmu if !(-e $PRELUDEBIN/Prelude.x86f) then echo "Build the prelude first, stupid..." exit endif $CMUCL <<EOF ;;; Load the Haskell system. (make-package "MUMBLE-IMPLEMENTATION" :use '("LISP")) (load "cl-support/cl-init") ;;; Set various internal switches to appropriate values for running ;;; Haskell code. (setf ext:*bytes-consed-between-gcs* 4000000) (proclaim '(optimize (speed 3) (safety 0) (debug 0) (ext:inhibit-warnings 3))) (setf *load-verbose* nil) (setf *compile-verbose* nil) (in-package :mumble-user) (gc-messages '#f) (setf *printers* '(compiling loading)) (setf *optimizers* '()) (setf *compile-interface* '#f) ;;; Load the prelude. (compile/load *prelude-unit-filename*) ;;; Set up the saved system. (define (haskell-toplevel) (load-init-files) (do () ('#f) (lisp:with-simple-restart (restart-haskell "Restart Haskell.") (heval)))) (define (restart-haskell) (lisp:invoke-restart 'restart-haskell)) (ext:save-lisp "bin/new-cmu-haskell.core" :purify '#t :root-structures '() :init-function 'haskell-toplevel :load-init-file '#f :site-init '#f :print-herald '#f ) (ext:quit) EOF