diff options
author | Yale AI Dept <ai@nebula.cs.yale.edu> | 1993-07-14 13:08:00 -0500 |
---|---|---|
committer | Duncan McGreggor <duncan.mcgreggor@rackspace.com> | 1993-07-14 13:08:00 -0500 |
commit | 4e987026148fe65c323afbc93cd560c07bf06b3f (patch) | |
tree | 26ae54177389edcbe453d25a00c38c2774e8b7d4 /com/allegro |
Import to github.
Diffstat (limited to 'com/allegro')
-rw-r--r-- | com/allegro/README | 40 | ||||
-rwxr-xr-x | com/allegro/build-prelude | 32 | ||||
-rwxr-xr-x | com/allegro/build-xlib | 14 | ||||
-rwxr-xr-x | com/allegro/clean | 5 | ||||
-rwxr-xr-x | com/allegro/compile | 15 | ||||
-rw-r--r-- | com/allegro/next-patches/patch0149.fasl | bin | 0 -> 2361 bytes | |||
-rw-r--r-- | com/allegro/next-patches/patch0151.fasl | bin | 0 -> 3027 bytes | |||
-rwxr-xr-x | com/allegro/savesys | 54 | ||||
-rwxr-xr-x | com/allegro/savesys-xlib | 65 | ||||
-rw-r--r-- | com/allegro/sparc-patches/patch0151.fasl | bin | 0 -> 3519 bytes |
10 files changed, 225 insertions, 0 deletions
diff --git a/com/allegro/README b/com/allegro/README new file mode 100644 index 0000000..b9dc676 --- /dev/null +++ b/com/allegro/README @@ -0,0 +1,40 @@ +This directory contains command scripts used for building Yale Haskell +from the source distribution under Franz Allegro Common Lisp. We've +been using version 4.1 on both NeXT and Sparc platforms -- don't +expect our code to work without modifications under earlier versions. + +Be sure you load the Allegro patches -- the scripts do this +automatically. If you're trying to build on some other kind of +platform, you'll have to get the equivalent patches from Franz Inc. +Our code won't work without these bug fixes. + +Developers need to source haskell-development instead of haskell-setup +in the .cshrc file. + +To rebuild the system: + +* You need to define environment variables Y2 and ALLEGRO to point to the + appropriate pathnames. See the haskell-development script for details. + +* Make sure that the environment variable PRELUDEBIN (in the + haskell-setup script) points to $PRELUDE/allegro (or $PRELUDE/allegro-next, + as appropriate). + +* Execute the "compile" script. This will recompile all of the Lisp + source files that make up the Yale Haskell system. Compiled files are + put in the "allegro" or "allegro-next" subdirectory of each source directory. + +* Execute the "build-prelude" script to compile the standard prelude. + Note that this process tends to use up a huge amount of memory! + +* Execute the "savesys" script to build a new executable. + +* The new executable is initially called "bin/new-allegro-haskell". Try + it out. If it works, you should rename it to "bin/allegro-haskell". + Make sure that HASKELLPROG (in the haskell-setup script) is correct. + +* If you want to build an executable with the X support, you'll also + need to run the "build-xlib" and "savesys-xlib" scripts. You may + need to edit these scripts to change the pathname of the file + containing the CLX library (or suppress the load entirely if you + are using a Lisp executable with CLX pre-loaded.). diff --git a/com/allegro/build-prelude b/com/allegro/build-prelude new file mode 100755 index 0000000..44fb422 --- /dev/null +++ b/com/allegro/build-prelude @@ -0,0 +1,32 @@ +#!/bin/csh +# +# build-prelude -- recompile the prelude, saving the old one as old-prelude.* +# +# +cd $Y2 +setenv PRELUDEBIN $Y2/progs/prelude/$ALLEGRODIR +if (-e $PRELUDEBIN/Prelude.fasl) then + rm $PRELUDEBIN/old* + foreach i ($PRELUDEBIN/Prelude*.{fasl,scm}) + mv $i $PRELUDEBIN/old-$i:t + end + endif +$ALLEGRO <<EOF +;; Need a big heap to compile the prelude. +;;(lcl:change-memory-management :expand 512 :growth-limit 2048) +#+next (progn (load "com/allegro/next-patches/patch0149.fasl") + (load "com/allegro/next-patches/patch0151.fasl")) +#+sparc (load "com/allegro/sparc-patches/patch0151.fasl") +(make-package "MUMBLE-IMPLEMENTATION" :use '("LISP")) +(proclaim '(optimize (speed 3) (safety 0) (compilation-speed 0))) +(load "cl-support/cl-init") +(in-package :mumble-user) +(setf *printers* '(phase-time dump-stat)) +(setf *optimizers* *all-optimizers*) +;; Set appropriate compiler settings for processing the prelude. +;; Don't try to compile the interface. +(setf *code-chunk-size* 300) +(setf *compile-interface* '#f) +(compile/compile *prelude-unit-filename*) +(excl:exit) +EOF diff --git a/com/allegro/build-xlib b/com/allegro/build-xlib new file mode 100755 index 0000000..a805308 --- /dev/null +++ b/com/allegro/build-xlib @@ -0,0 +1,14 @@ +#!/bin/csh +# +# build-xlib -- recompile the xlib stuff +# +# note that allegro's loader will look in its lib directory automagically +# for the clx library +cd $Y2 +setenv LIBRARYBIN $Y2/progs/lib/X11/$ALLEGRODIR +rm $LIBRARYBIN/xlib*.sbin +bin/allegro-haskell <<EOF +:(lisp:load "clx") +:(setf *code-quality* 3) +:compile \$HASKELL_LIBRARY/X11/xlib +EOF diff --git a/com/allegro/clean b/com/allegro/clean new file mode 100755 index 0000000..dadab0f --- /dev/null +++ b/com/allegro/clean @@ -0,0 +1,5 @@ +#!/bin/csh +# +# delete Allegro CL binaries +'rm' $Y2/*/$ALLEGRODIR/*.fasl + diff --git a/com/allegro/compile b/com/allegro/compile new file mode 100755 index 0000000..6aadee8 --- /dev/null +++ b/com/allegro/compile @@ -0,0 +1,15 @@ +#!/bin/csh +# +# compile -- compile the Yale Haskell system from scratch. +# +# +cd $Y2 +$ALLEGRO <<EOF +#+next (progn (load "com/allegro/next-patches/patch0149.fasl") + (load "com/allegro/next-patches/patch0151.fasl")) +#+sparc (load "com/allegro/sparc-patches/patch0151.fasl") +(make-package "MUMBLE-IMPLEMENTATION" :use '("LISP")) +(proclaim '(optimize (speed 3) (safety 0) (compilation-speed 0))) +(load "cl-support/cl-init") +(excl:exit) +EOF diff --git a/com/allegro/next-patches/patch0149.fasl b/com/allegro/next-patches/patch0149.fasl Binary files differnew file mode 100644 index 0000000..da10254 --- /dev/null +++ b/com/allegro/next-patches/patch0149.fasl diff --git a/com/allegro/next-patches/patch0151.fasl b/com/allegro/next-patches/patch0151.fasl Binary files differnew file mode 100644 index 0000000..c954667 --- /dev/null +++ b/com/allegro/next-patches/patch0151.fasl diff --git a/com/allegro/savesys b/com/allegro/savesys new file mode 100755 index 0000000..3d3abd8 --- /dev/null +++ b/com/allegro/savesys @@ -0,0 +1,54 @@ +#!/bin/csh +# +# savesys -- build a saved executable in bin/new-allegro-haskell +# +# +cd $Y2 +setenv PRELUDEBIN $Y2/progs/prelude/$ALLEGRODIR +if !(-e $PRELUDEBIN/Prelude.fasl) then + echo "Build the prelude first, stupid..." + exit + endif +$ALLEGRO <<EOF +;;; Load the Haskell system. +#+next (progn (load "com/allegro/next-patches/patch0149.fasl") + (load "com/allegro/next-patches/patch0151.fasl")) +#+sparc (load "com/allegro/sparc-patches/patch0151.fasl") +(make-package "MUMBLE-IMPLEMENTATION" :use '("LISP")) +(load "cl-support/cl-init") +;;; Set various internal switches to appropriate values for running +;;; Haskell code. +(proclaim '(optimize (speed 3) (safety 0) (compilation-speed 0))) +(setf *compile-verbose* nil) +(setf *load-verbose* nil) +(setf excl:*load-source-file-info* nil) +(setf excl:*record-source-file-info* nil) +(setf excl:*load-xref-info* nil) +(setf excl:*record-source-file-info* nil) +(in-package :mumble-user) +(setf *printers* '(compiling loading)) +(setf *optimizers* '()) +(setf *compile-interface* '#f) +;;; Load the prelude. +(compile/load *prelude-unit-filename*) +;;; Set up the saved system. +(define *saved-readtable* (lisp:copy-readtable lisp:*readtable*)) +(define (haskell-toplevel) + ;; Saved system always starts up in USER package. + (setf lisp:*package* (lisp:find-package :mumble-user)) + ;; Saved system seems to forget about our readtable hacks. + (setf lisp:*readtable* *saved-readtable*) + ;; Set printer variables w/implementation-defined initial values + ;; to known values + (setf *print-pretty* '#f) + (load-init-files) + (do () ('#f) + (cl:with-simple-restart (restart-haskell "Restart Haskell.") + (heval)))) +(define (restart-haskell) + (cl:invoke-restart 'restart-haskell)) +(excl:dumplisp + :name #+next "bin/new-allegro-next-haskell" #-next "bin/new-allegro-haskell" + :restart-function 'haskell-toplevel) +(excl:exit) +EOF diff --git a/com/allegro/savesys-xlib b/com/allegro/savesys-xlib new file mode 100755 index 0000000..c8443a3 --- /dev/null +++ b/com/allegro/savesys-xlib @@ -0,0 +1,65 @@ +#!/bin/csh +# +# savesys -- build a saved executable in bin/new-allegro-haskell +# +# +cd $Y2 +setenv PRELUDEBIN $Y2/progs/prelude/$ALLEGRODIR +if !(-e $PRELUDEBIN/Prelude.fasl) then + echo "Build the prelude first, stupid..." + exit + endif +setenv LIBRARYBIN $Y2/progs/lib/X11/$ALLEGRODIR +if !(-e $LIBRARYBIN/xlib.fasl) then + echo "Build the xlib stuff first, silly..." + exit + endif +$ALLEGRO <<EOF +;;; Load the Haskell system. +#+next (progn (load "com/allegro/next-patches/patch0149.fasl") + (load "com/allegro/next-patches/patch0151.fasl")) +#+sparc (load "com/allegro/sparc-patches/patch0151.fasl") +(make-package "MUMBLE-IMPLEMENTATION" :use '("LISP")) +(load "cl-support/cl-init") +;;; Set various internal switches to appropriate values for running +;;; Haskell code. +(proclaim '(optimize (speed 3) (safety 0) (compilation-speed 0))) +(setf *compile-verbose* nil) +(setf *load-verbose* nil) +(setf excl:*load-source-file-info* nil) +(setf excl:*record-source-file-info* nil) +(setf excl:*load-xref-info* nil) +(setf excl:*record-source-file-info* nil) +(in-package :mumble-user) +(setf *printers* '(compiling loading)) +(setf *optimizers* '()) +(setf *compile-interface* '#f) +;;; Load the prelude. +(compile/load *prelude-unit-filename*) +;;; Load the X support. +(lisp:load "clx") +(compile/load "\$HASKELL_LIBRARY/X11/xlib") +(setf *haskell-compiler-update* + (string-append *haskell-compiler-update* "-X11")) +;;; Set up the saved system. +(define *saved-readtable* (lisp:copy-readtable lisp:*readtable*)) +(define (haskell-toplevel) + ;; Saved system always starts up in USER package. + (setf lisp:*package* (lisp:find-package :mumble-user)) + ;; Saved system seems to forget about our readtable hacks. + (setf lisp:*readtable* *saved-readtable*) + ;; Set printer variables w/implementation-defined initial values + ;; to known values + (setf *print-pretty* '#f) + (load-init-files) + (do () ('#f) + (cl:with-simple-restart (restart-haskell "Restart Haskell.") + (heval)))) +(define (restart-haskell) + (cl:invoke-restart 'restart-haskell)) +(excl:dumplisp + :name #+next "bin/new-allegro-next-clx-haskell" + #-next "bin/new-allegro-clx-haskell" + :restart-function 'haskell-toplevel) +(excl:exit) +EOF diff --git a/com/allegro/sparc-patches/patch0151.fasl b/com/allegro/sparc-patches/patch0151.fasl Binary files differnew file mode 100644 index 0000000..cfbc48f --- /dev/null +++ b/com/allegro/sparc-patches/patch0151.fasl |