summaryrefslogtreecommitdiff
path: root/com/allegro
diff options
context:
space:
mode:
authorYale AI Dept <ai@nebula.cs.yale.edu>1993-07-14 13:08:00 -0500
committerDuncan McGreggor <duncan.mcgreggor@rackspace.com>1993-07-14 13:08:00 -0500
commit4e987026148fe65c323afbc93cd560c07bf06b3f (patch)
tree26ae54177389edcbe453d25a00c38c2774e8b7d4 /com/allegro
Import to github.
Diffstat (limited to 'com/allegro')
-rw-r--r--com/allegro/README40
-rwxr-xr-xcom/allegro/build-prelude32
-rwxr-xr-xcom/allegro/build-xlib14
-rwxr-xr-xcom/allegro/clean5
-rwxr-xr-xcom/allegro/compile15
-rw-r--r--com/allegro/next-patches/patch0149.faslbin0 -> 2361 bytes
-rw-r--r--com/allegro/next-patches/patch0151.faslbin0 -> 3027 bytes
-rwxr-xr-xcom/allegro/savesys54
-rwxr-xr-xcom/allegro/savesys-xlib65
-rw-r--r--com/allegro/sparc-patches/patch0151.faslbin0 -> 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
new file mode 100644
index 0000000..da10254
--- /dev/null
+++ b/com/allegro/next-patches/patch0149.fasl
Binary files differ
diff --git a/com/allegro/next-patches/patch0151.fasl b/com/allegro/next-patches/patch0151.fasl
new file mode 100644
index 0000000..c954667
--- /dev/null
+++ b/com/allegro/next-patches/patch0151.fasl
Binary files differ
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
new file mode 100644
index 0000000..cfbc48f
--- /dev/null
+++ b/com/allegro/sparc-patches/patch0151.fasl
Binary files differ