aboutsummaryrefslogtreecommitdiff
path: root/src/interp
diff options
context:
space:
mode:
Diffstat (limited to 'src/interp')
-rw-r--r--src/interp/Makefile.in46
-rw-r--r--src/interp/Makefile.pamphlet672
2 files changed, 46 insertions, 672 deletions
diff --git a/src/interp/Makefile.in b/src/interp/Makefile.in
index 6fbfdf3c..995ba24b 100644
--- a/src/interp/Makefile.in
+++ b/src/interp/Makefile.in
@@ -1,9 +1,45 @@
+## Copyright (c) 1991-2002, The Numerical Algorithms Group Ltd.
+## All rights reserved.
+## Copyright (C) 2007-2010, Gabriel Dos Reis.
+## All rights reserved.
+##
+## Redistribution and use in source and binary forms, with or without
+## modification, are permitted provided that the following conditions are
+## met:
+##
+## - Redistributions of source code must retain the above copyright
+## notice, this list of conditions and the following disclaimer.
+##
+## - Redistributions in binary form must reproduce the above copyright
+## notice, this list of conditions and the following disclaimer in
+## the documentation and/or other materials provided with the
+## distribution.
+##
+## - Neither the name of The Numerical ALgorithms Group Ltd. nor the
+## names of its contributors may be used to endorse or promote products
+## derived from this software without specific prior written permission.
+##
+## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+## IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+## TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+## PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
+## OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+## EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+## PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+## PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+## LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+## NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+## SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+##
+
subdir = src/interp/
IN=$(srcdir)
DOC=$(axiom_target_docdir)/src/interp
BOOK=$(axiom_target_docdir)
+
+# Do we still need this?
AUTO=$(axiom_targetdir)/autoload
autoload_objects =
@@ -12,9 +48,13 @@ autoload_objects =
# derived Lisp images (interpsys, AXIOMsys)
LISPSYS= $(axiom_build_bindir)/lisp$(EXEEXT)
+# Translator from Boot to Lisp (or machine code)
BOOTSYS= $(axiom_target_bindir)/bootsys$(EXEEXT) -- --syslib=$(axiom_target_libdir)
+# Minimal OpenAxiom image necessary to build the algebra
SAVESYS= interpsys$(EXEEXT)
+
+# Complete OpenAxiom image after completion of algebra, ready to install.
AXIOMSYS= $(axiom_target_bindir)/AXIOMsys$(EXEEXT)
OBJS= boot-pkg.$(FASLEXT) types.$(FASLEXT) \
@@ -88,8 +128,11 @@ OBJS= boot-pkg.$(FASLEXT) types.$(FASLEXT) \
fortcall.$(FASLEXT) i-parser.$(FASLEXT) \
$(OCOBJS) $(BROBJS) $(ASCOMP) $(INOBJS)
+# Last minite patches.
+# FIXMEL: should be folded into the main object list.
INOBJS= setvart.$(FASLEXT) interop.$(FASLEXT) patches.$(FASLEXT)
+# Main compiler files.
OCOBJS= \
info.$(FASLEXT) modemap.$(FASLEXT) \
category.$(FASLEXT) define.$(FASLEXT) \
@@ -100,6 +143,7 @@ OCOBJS= \
autoload_objects += $(OCOBJS)
+# Browser component files.
BROBJS= bc-matrix.$(FASLEXT) \
bc-misc.$(FASLEXT) bc-solve.$(FASLEXT) \
htsetvar.$(FASLEXT) \
@@ -113,6 +157,8 @@ BROBJS= bc-matrix.$(FASLEXT) \
autoload_objects += $(BFOBJS)
+# Translator from `old Spad' to `new spad (Aldor)' code.
+# FIXME: is this still relevant?
TRANOBJS= ${AUTO}/wi1.$(FASLEXT) ${AUTO}/wi2.$(FASLEXT) ${AUTO}/pspad1.$(FASLEXT) \
${AUTO}/pspad2.$(FASLEXT) ${AUTO}/mark.$(FASLEXT) ${AUTO}/nspadaux.$(FASLEXT)
diff --git a/src/interp/Makefile.pamphlet b/src/interp/Makefile.pamphlet
deleted file mode 100644
index a1579c1c..00000000
--- a/src/interp/Makefile.pamphlet
+++ /dev/null
@@ -1,672 +0,0 @@
-%% Oh Emacs, this is a -*- Makefile -*-, so give me tabs.
-\documentclass{article}
-\usepackage{axiom}
-
-\title{\File{src/interp/Makefile} Pamphlet}
-\author{Timothy Daly \and Gabriel Dos~Reis}
-
-\begin{document}
-\maketitle
-
-\begin{abstract}
-\end{abstract}
-
-\tableofcontents
-\eject
-
-\section{The Environment}
-
-We define 3 directories for this build. The first two are
-the traditional {\bf IN}, which is where the source pamphlets are,
-and {\bf OUT} which is where we will put the binaries.
-
-In this case the {\bf IN} files are usually written in Boot \cite{2}.
-These will be compiled in a \Tool{bootsys} image to translate from
-Boot to Common Lisp.
-
-\subsection{Documentation}
-
-The dvi files will be generated from the pamphlet files in the
-final ship \File{doc/src/} directory. Since they are system independent
-but machine generated and part of the final ship they will exist
-in the [[\$(axiom_target_docdir)/src/interp/]] directory.
-
-<<environment>>=
-IN=$(srcdir)
-DOC=$(axiom_target_docdir)/src/interp
-BOOK=$(axiom_target_docdir)
-@
-
-
-\subsection{Autloload}
-
-In order to minimize the size of the OpenAxiom image at load time
-we put some of the compiled files into a separate directory
-that will be autoloaded on demand. This directory of code
-will be shipped with the final system and so it belongs in
-the [[$(axiom_targetdir)]] subtree.
-<<environment>>=
-AUTO=$(axiom_targetdir)/autoload
-
-autoload_objects =
-
-@
-
-
-\subsection{Initial Lisp image}
-
-We need a raw Lisp image --- running on the build platform ---
-that we can use as a base to construct
-the other images. This is called {\bf LISPSYS} and is located in the
-build platform sub-directory.
-<<environment>>=
-# Build platform-dependent Lisp image, at the base of other
-# derived Lisp images (interpsys, AXIOMsys)
-LISPSYS= $(axiom_build_bindir)/lisp$(EXEEXT)
-
-@
-
-\subsection{Boot translator}
-
-Most of the interpreter is written in the Boot programming language.
-Thus we need a program to translate Boot to Common
-Lisp. That program is called the {\bf BOOTSYS} image (because the
-translator is written in {\bf boot} and needs to translate
-itself to bootstrap the system). This image is assumed to
-have been built (on the build platform) by a previous step in the
-make process.
-<<environment>>=
-BOOTSYS= $(axiom_target_bindir)/bootsys$(EXEEXT) -- --syslib=$(axiom_target_libdir)
-
-@
-
-
-The {\bf SAVESYS} image is copied to the [[$(axiom_target_bindir)]]
-subdirectory and becomes the axiom executable image. Technically, that is
-not right because the host plaform may not be the same as the build
-platform. However, we don't yet support cross compilation, so that
-is alright for the time being.
-<<environment>>=
-SAVESYS= interpsys$(EXEEXT)
-AXIOMSYS= $(axiom_target_bindir)/AXIOMsys$(EXEEXT)
-
-@
-
-
-\subsection{The Spad interpreter and compiler}
-
-<<environment>>=
-OBJS= boot-pkg.$(FASLEXT) types.$(FASLEXT) \
- sys-driver.$(FASLEXT) sys-constants.$(FASLEXT) \
- hash.$(FASLEXT) \
- sys-globals.$(FASLEXT) vmlisp.$(FASLEXT) \
- sys-os.$(FASLEXT) \
- sys-utility.$(FASLEXT) diagnostics.$(FASLEXT) \
- union.$(FASLEXT) sys-macros.$(FASLEXT) \
- macros.$(FASLEXT) metalex.$(FASLEXT) \
- parsing.$(FASLEXT) util.$(FASLEXT) \
- unlisp.$(FASLEXT) \
- astr.$(FASLEXT) bits.$(FASLEXT) \
- ht-util.$(FASLEXT) bc-util.$(FASLEXT) \
- br-search.$(FASLEXT) \
- alql.$(FASLEXT) buildom.$(FASLEXT) \
- g-util.$(FASLEXT) hashcode.$(FASLEXT) \
- simpbool.$(FASLEXT) g-timer.$(FASLEXT) \
- cattable.$(FASLEXT) posit.$(FASLEXT) \
- cformat.$(FASLEXT) \
- clam.$(FASLEXT) \
- clammed.$(FASLEXT) nlib.$(FASLEXT) \
- comp.$(FASLEXT) foam_l.$(FASLEXT) \
- pathname.$(FASLEXT) \
- compat.$(FASLEXT) \
- serror.$(FASLEXT) ptrees.$(FASLEXT) \
- cparse.$(FASLEXT) cstream.$(FASLEXT) \
- g-cndata.$(FASLEXT) database.$(FASLEXT) \
- debug.$(FASLEXT) dq.$(FASLEXT) \
- fname.$(FASLEXT) format.$(FASLEXT) \
- g-error.$(FASLEXT) g-opt.$(FASLEXT) \
- ggreater.$(FASLEXT) \
- hypertex.$(FASLEXT) \
- i-object.$(FASLEXT) i-analy.$(FASLEXT) \
- i-code.$(FASLEXT) i-resolv.$(FASLEXT) \
- i-coerce.$(FASLEXT) \
- i-coerfn.$(FASLEXT) i-eval.$(FASLEXT) \
- i-funsel.$(FASLEXT) \
- i-intern.$(FASLEXT) i-map.$(FASLEXT) \
- i-output.$(FASLEXT) \
- i-spec1.$(FASLEXT) \
- i-spec2.$(FASLEXT) i-syscmd.$(FASLEXT) \
- i-toplev.$(FASLEXT) i-util.$(FASLEXT) \
- incl.$(FASLEXT) int-top.$(FASLEXT) \
- intfile.$(FASLEXT) c-util.$(FASLEXT) \
- lisplib.$(FASLEXT) macex.$(FASLEXT) \
- match.$(FASLEXT) \
- monitor.$(FASLEXT) msg.$(FASLEXT) \
- msgdb.$(FASLEXT) \
- newaux.$(FASLEXT) newfort.$(FASLEXT) \
- nrunfast.$(FASLEXT) \
- nrungo.$(FASLEXT) nrunopt.$(FASLEXT) \
- osyscmd.$(FASLEXT) \
- packtran.$(FASLEXT) \
- pf2sex.$(FASLEXT) \
- scan.$(FASLEXT) pile.$(FASLEXT) \
- property.$(FASLEXT) \
- postpar.$(FASLEXT) parse.$(FASLEXT) \
- spad-parser.$(FASLEXT) \
- record.$(FASLEXT) \
- rulesets.$(FASLEXT) \
- server.$(FASLEXT) \
- setvars.$(FASLEXT) \
- sfsfun-l.$(FASLEXT) sfsfun.$(FASLEXT) \
- slam.$(FASLEXT) fnewmeta.$(FASLEXT) \
- preparse.$(FASLEXT) bootlex.$(FASLEXT) \
- spad.$(FASLEXT) \
- spaderror.$(FASLEXT) \
- termrw.$(FASLEXT) \
- trace.$(FASLEXT) daase.$(FASLEXT) \
- fortcall.$(FASLEXT) i-parser.$(FASLEXT) \
- $(OCOBJS) $(BROBJS) $(ASCOMP) $(INOBJS)
-
-@
-
-Before we save the {\bf SAVESYS} image we need to run some
-initialization code. These files perform initialization
-for various parts of the system. The {\bf patches.lisp} \cite{5}
-file contains last-minute changes to various functions and
-constants.
-<<environment>>=
-INOBJS= setvart.$(FASLEXT) interop.$(FASLEXT) patches.$(FASLEXT)
-
-@
-
-Certain functions do not need to be in the running system.
-If the running image never calls the compiler or does not
-use the hypertex browser we will never call the functions
-in these files. The code that calls these functions in the
-running system will autoload the appropriate files the
-first time they are called. Loading the files overwrites
-the autoload function call and re-calls the function.
-Any subsequent calls will run the compiled code.
-
-The {\bf OCOBJS} list contains files from the old compiler. Again,
-``old'' is meaningless. These files should probably be autoloaded.
-<<environment>>=
-OCOBJS= \
- info.$(FASLEXT) modemap.$(FASLEXT) \
- category.$(FASLEXT) define.$(FASLEXT) \
- compiler.$(FASLEXT) \
- c-doc.$(FASLEXT) \
- profile.$(FASLEXT) functor.$(FASLEXT) \
- nruncomp.$(FASLEXT) htcheck.$(FASLEXT)
-
-autoload_objects += $(OCOBJS)
-
-@
-
-The {\bf BROBJS} list contains files only used by the hypertex
-browser. These files should probably be autoloaded.
-<<environment>>=
-BROBJS= bc-matrix.$(FASLEXT) \
- bc-misc.$(FASLEXT) bc-solve.$(FASLEXT) \
- htsetvar.$(FASLEXT) \
- ht-root.$(FASLEXT) \
- br-con.$(FASLEXT) \
- br-data.$(FASLEXT) showimp.$(FASLEXT) \
- br-op1.$(FASLEXT) br-op2.$(FASLEXT) \
- br-util.$(FASLEXT) \
- topics.$(FASLEXT) br-prof.$(FASLEXT) \
- br-saturn.$(FASLEXT)
-
-autoload_objects += $(BFOBJS)
-
-@
-
-The {\bf TRANOBJS} list contains files used by Spad to Aldor convertor.
-The files probably are also used by the {\bf boot}
-to Common Lisp translator and are probably never used by anyone
-but the developers.
-
-When a user requests converting a file from Spad to Aldor the
-function
-[[spad2AsTranslatorAutoloadOnceTrigger]] is called triggering
-load of this group of files. Loading [[$TRANOBJS]] in turn replaces
-many compiler functions by versions contain in this files.
- These files should probably be autoloaded
-(at least [[${AUTO}/wi1.$(FASLEXT)]] and [[${AUTO}/wi2.$(FASLEXT)]]
-(which replace compiler functions) {\em must} be autoloaded).
-<<environment>>=
-TRANOBJS= ${AUTO}/wi1.$(FASLEXT) ${AUTO}/wi2.$(FASLEXT) ${AUTO}/pspad1.$(FASLEXT) \
- ${AUTO}/pspad2.$(FASLEXT) ${AUTO}/mark.$(FASLEXT) ${AUTO}/nspadaux.$(FASLEXT)
-
-autoload_objects += $(TRANOBJS)
-
-@
-
-The {\bf ASCOMP} list contains files used by the {\bf Aldor}
-\cite{5} compiler. These files should probably be autoloaded.
-<<environment>>=
-ASCOMP= as.$(FASLEXT) axext_l.$(FASLEXT)
-
-@
-
-The {\bf ASAUTO} list contains files used by the {\bf Aldor}
-\cite{5} compiler. These files are autoloaded as needed.
-<<environment>>=
-ASAUTO= ${AUTO}/ax.$(FASLEXT)
-
-autoload_objects += $(ASAUTO)
-@
-
-OpenAxiom versions are given as a string of the form:
-"Sunday September 21, 2003 at 20:38:05 "
-which describe the day, date, and time of the build.
-This is used for reporting bugs. It is only partially useful
-in identifying which source code was used. Ideally we could create
-a tar file of all of the date/time stamps of all of the source files
-and use the MD5 hash of that file as the version stamp. Ultimately
-though, this would be chasing the elusive "perfect information" idea.
-
-A new variable [[boot::*build-version*]] is set here and used by the
-[[yearweek]] function to display the version number of the OpenAxiom build.
-This information is set by hand in the top level Makefile.
-<<environment>>=
-TIMESTAMP=$(axiom_targetdir)/timestamp
-YEARWEEK=(progn (defconstant timestamp "${TIMESTAMP}") \
- (setq *build-version* "$(PACKAGE_STRING)") \
- (yearweek))
-
-@
-
-The {\bf .PRECIOUS} setting will keep make from deleting these
-images if the build is stopped. Since once they are built they
-are likely to be useable we don't need to redo the work if they
-exist.
-<<environment>>=
-
-.PRECIOUS: ${SAVESYS}
-.PRECIOUS: ${AXIOMSYS}
-
-@
-
-\section{UNUSED}
-
-These files were in the interp distribution from NAG but have
-no purpose at the moment. This belief is no doubt due to my
-lack of understanding. Rather than erase them they are documented
-here for future reference.
-<<environment>>=
-UNUSED= ${DOC}/construc.lisp.dvi \
- ${DOC}/guess.boot.dvi \
- ${DOC}/interp-fix.boot.dvi \
- ${DOC}/nhyper.boot.dvi ${DOC}/pf2atree.boot.dvi \
- ${DOC}/redefs.boot.dvi ${DOC}/word.boot.dvi
-
-@
-
-
-\section{Building SAVESYS and AXIOMSYS}
-
-GCL likes to tell you when it has replaced a function call by a
-tail-recursive call. This happens when the last form in a function
-is a call to the same function. In general, we don't care so we set
-compiler::*suppress-compiler-notes* to true in order to reduce the noise.
-
-Notice that when OpenAxiom uses GCL as the Lisp platform, it is usually not
-a good idea to mess with GCL's internal variables. In particular, GCL
-has its own idea about what to do with [[si::*system-directory*]], which
-should not be set here just because we happen to save an GCL-based image.
-Doing otherwise causes havoc.
-
-<<savesys>>=
-
-$(axiom_target_datadir)/msgs/s2-us.msgs: \
- $(axiom_src_docdir)/msgs/s2-us.msgs
- $(mkdir_p) $(axiom_target_datadir)/msgs
- cp -p $< $@
-
-makeint.lisp: Makefile
- @rm -f makeint.lisp
- @ echo '(import-module "util")' >> makeint.lisp
- @ echo '(in-package "BOOT")' >> makeint.lisp
- @ touch ${TIMESTAMP}
- @ echo '${YEARWEEK}' >> makeint.lisp
- @ echo '(unless (or |$$StandardLinking| (|%basicSystemIsComplete|)) (build-interpsys (quote ($(patsubst %, "%", ${TRANOBJS}))) (quote ($(patsubst %, "%", ${ASAUTO}))))(|clearClams|))' >> makeint.lisp
- @ echo '#+:akcl (setq compiler::*suppress-compiler-notes* t)' >> makeint.lisp
- @ echo '#+:akcl (si::gbc-time 0)' >> makeint.lisp
- @ echo '#+:GCL (si::gbc t)' >> makeint.lisp
-
-${SAVESYS}: database.date \
- $(axiom_targetdir)/algebra/exposed.$(FASLEXT) \
- $(axiom_target_datadir)/msgs/s2-us.msgs \
- $(ASAUTO) $(TRANOBJS) $(OBJS) makeint.$(LNKEXT)
- $(BOOTSYS) -- --system="$(AXIOM)/" --system-algebra \
- --sysalg="$(axiom_src_datadir)/algebra/" \
- --prologue="(pushnew :open-axiom-basic-system *features*)" \
- --make --output=$@ --main="BOOT::|systemMain|" \
- --load-directory=. $(OBJS) makeint.$(LNKEXT)
- @ echo 6 $@ created
- $(mkdir_p) $(axiom_target_bindir)
-@
-
-\section{Building SAVESYS and AXIOMSYS}
-
-We want to cache database data in the final image, so we dump it only
-after databases are build.
-Note that having dependency on databases is not enough, since databases
-are re-generated after leaving \File{interp/} directory.
-
-<<axiomsys>>=
-.PHONY: all-axiomsys
-
-all-axiomsys: ${AXIOMSYS}
-
-${AXIOMSYS}: database.date \
- $(axiom_targetdir)/algebra/exposed.$(FASLEXT) \
- $(axiom_target_datadir)/msgs/s2-us.msgs \
- $(ASAUTO) $(TRANOBJS) $(OBJS) makeint.$(LNKEXT)
- $(BOOTSYS) -- \
- --system="$(AXIOM)/" \
- --sysalg="$(axiom_targetdir)/algebra/" \
- --prologue="(pushnew :open-axiom-algebra-system *features*)" \
- --make --output=$@ --main="BOOT::|systemMain|" \
- --load-directory=. $(OBJS) makeint.$(LNKEXT)
- @ echo 6a $@ created
-@
-
-\section{The Interpreter files}
-
-\subsection{DVI files from pmaphlet files}
-
-<<DVI from pamphlet>>=
-$(axiom_build_texdir)/diagrams.tex: $(axiom_src_docdir)/diagrams.tex
- @cp -p $< $@
-@
-
-\section{The databases}
-
-\begin{verbatim}
- autoload dependencies
-
- if you are adding a file which is to be autoloaded the following step
- information is useful:
- there are 2 cases:
- 1) adding files to currently autoloaded parts
- (as of 2/92: browser old parser and old compiler)
- 2) adding new files
- case 1:
- a) you have to add the file to the list of files currently there
- (e.g. see BROBJS above)
- b) add an autolaod rule
- (e.g. ${AUTO}/parsing.$(FASLEXT): parsing.$(FASLEXT))
- c) edit util.lisp to add the 'external' function (those that
- should trigger the autoload
- case 2:
- build-interpsys (in util.lisp) needs an extra argument for the
- new autoload things and several functions in util.lisp need hacking.
-
- database.date is a marker file used to force a rebuild of interpsys if the
- database is rebuilt (src/algebra/Makefile).
-
-\end{verbatim}
-<<databases>>=
-exposed.lsp: $(axiom_src_algdir)/exposed.lsp.pamphlet
- $(oa_hammer) --tangle --output=$@ $<
-
-$(axiom_targetdir)/algebra/exposed.$(FASLEXT) : exposed.lsp boot-pkg.$(LNKEXT)
- $(mkdir_p) $(axiom_targetdir)/algebra
- $(BOOTSYS) --compile --output=$@ --load-directory=. $<
-
-database.date:
- @ echo 617 the database was updated...remaking interpsys
- @ touch database.date
-
-@
-
-\section{The Makefile}
-<<*>>=
-
-subdir = src/interp/
-
-<<environment>>
-
-.SUFFIXES:
-.SUFFIXES: .boot .clisp .lisp .pamphlet
-
-.PHONY: all all-ax all-interpsys all-axiomsys
-
-all: all-ax
-
-all-ax: stamp
- @echo finished $(srcdir)
-
-stamp: $(AUTO) remove-stamp build-images
- $(STAMP) stamp
-
-.PHONY: remove-stamp
-remove-stamp:
- -rm -f stamp
-
-.PHONY: build-images
-build-images: remove-stamp all-interpsys
-
-all-interpsys:
- $(mkdir_p) $(AUTO)
- $(MAKE) $(SAVESYS)
-
-all-axiomsys: all-interpsys
- $(MAKE) $(AXIOMSYS)
-
-mostlyclean-local:
- @rm -f *.fn *.data *.$(FASLEXT) *.lib *.$(OBJEXT)
- @rm -f $(SAVESYS) makeint.lisp
-
-clean-local: mostlyclean-local
- @rm -f *.clisp *.lsp
-
-distclean-local: clean-local
-
-<<savesys>>
-<<axiomsys>>
-<<databases>>
-
-## Copy FASLs that are autoloaded to the autoload directory.
-.PREVIOUS: $(AUTO)/%.$(FASLEXT)
-
-$(AUTO)/%.$(FASLEXT): %.$(FASLEXT)
- @cp -p $< $@
-
-%.$(LNKEXT) %.$(FASLEXT): %.boot
- $(BOOTSYS) --compile --output=$@ --load-directory=. $<
-
-%.$(LNKEXT) %.$(FASLEXT): %.lisp
- $(BOOTSYS) --compile --output=$@ --load-directory=. $<
-
-## Translation to Fortran
-fortcall.$(FASLEXT): sys-macros.$(FASLEXT)
-
-## HyperDoc
-topics.$(FASLEXT): macros.$(FASLEXT)
-alql.$(FASLEXT): br-search.$(FASLEXT)
-br-search.$(FASLEXT): bc-util.$(FASLEXT)
-br-saturn.$(FASLEXT): bc-util.$(FASLEXT)
-br-op2.$(FASLEXT): br-op1.$(FASLEXT)
-br-op1.$(FASLEXT): bc-util.$(FASLEXT)
-br-con.$(FASLEXT): bc-util.$(FASLEXT)
-br-prof.$(FASLEXT): bc-util.$(FASLEXT)
-br-data.$(FASLEXT): bc-util.$(FASLEXT)
-br-util.$(FASLEXT): bc-util.$(FASLEXT)
-bc-solve.$(FASLEXT): bc-matrix.$(FASLEXT)
-bc-matrix.$(FASLEXT): bc-util.$(FASLEXT)
-bc-misc.$(FASLEXT): bc-util.$(FASLEXT)
-bc-util.$(FASLEXT): ht-util.$(FASLEXT)
-ht-root.$(FASLEXT): ht-util.$(FASLEXT)
-htcheck.$(FASLEXT): sys-driver.$(FASLEXT) macros.$(FASLEXT)
-ht-util.$(FASLEXT): macros.$(FASLEXT)
-htsetvar.$(FASLEXT): macros.$(FASLEXT)
-hypertex.$(FASLEXT): types.$(FASLEXT)
-
-## OpenAxiom's interpreter.
-makeint.$(FASLEXT): util.$(FASLEXT)
-patches.$(FASLEXT): macros.$(FASLEXT) g-timer.$(FASLEXT) sys-driver.$(FASLEXT)
-setvars.$(FASLEXT): macros.$(FASLEXT) debug.$(FASLEXT)
-profile.$(FASLEXT): macros.$(FASLEXT)
-rulesets.$(FASLEXT): vmlisp.$(FASLEXT)
-osyscmd.$(FASLEXT): int-top.$(FASLEXT)
-int-top.$(FASLEXT): incl.$(FASLEXT) i-toplev.$(FASLEXT) unlisp.$(FASLEXT)
-i-toplev.$(FASLEXT): i-analy.$(FASLEXT)
-i-syscmd.$(FASLEXT): i-object.$(FASLEXT)
-i-output.$(FASLEXT): sys-macros.$(FASLEXT)
-i-spec2.$(FASLEXT): i-spec1.$(FASLEXT)
-i-spec1.$(FASLEXT): i-analy.$(FASLEXT)
-i-funsel.$(FASLEXT): i-coerfn.$(FASLEXT)
-i-map.$(FASLEXT): i-object.$(FASLEXT)
-i-eval.$(FASLEXT): i-analy.$(FASLEXT)
-i-coerfn.$(FASLEXT): i-coerce.$(FASLEXT)
-i-coerce.$(FASLEXT): i-analy.$(FASLEXT) i-resolv.$(FASLEXT)
-i-resolv.$(FASLEXT): i-object.$(FASLEXT)
-i-analy.$(FASLEXT): i-object.$(FASLEXT)
-i-intern.$(FASLEXT): i-object.$(FASLEXT) ptrees.$(FASLEXT)
-i-code.$(FASLEXT): i-object.$(FASLEXT)
-i-object.$(FASLEXT): g-util.$(FASLEXT)
-i-util.$(FASLEXT): g-util.$(FASLEXT)
-format.$(FASLEXT): macros.$(FASLEXT)
-match.$(FASLEXT): sys-macros.$(FASLEXT)
-record.$(FASLEXT): nlib.$(FASLEXT) pathname.$(FASLEXT)
-setvart.$(FASLEXT): macros.$(FASLEXT)
-
-## OpenAxiom's compiler
-wi2.$(FASLEXT): macros.$(FASLEXT) define.$(FASLEXT)
-wi1.$(FASLEXT): macros.$(FASLEXT)
-compiler.$(FASLEXT): msgdb.$(FASLEXT) pathname.$(FASLEXT) define.$(FASLEXT)
-nrunopt.$(FASLEXT): c-util.$(FASLEXT)
-nrunfast.$(FASLEXT): c-util.$(FASLEXT)
-nruncomp.$(FASLEXT): nrunopt.$(FASLEXT) profile.$(FASLEXT) \
- simpbool.$(FASLEXT) functor.$(FASLEXT)
-nrungo.$(FASLEXT): c-util.$(FASLEXT) clam.$(FASLEXT) interop.$(FASLEXT)
-define.$(FASLEXT): g-error.$(FASLEXT) modemap.$(FASLEXT) \
- nruncomp.$(FASLEXT) database.$(FASLEXT)
-database.$(FASLEXT): clam.$(FASLEXT) nlib.$(FASLEXT) \
- cattable.$(FASLEXT) compat.$(FASLEXT) g-cndata.$(FASLEXT)
-functor.$(FASLEXT): category.$(FASLEXT) nrungo.$(FASLEXT) lisplib.$(FASLEXT)
-category.$(FASLEXT): g-util.$(FASLEXT) g-cndata.$(FASLEXT)
-cattable.$(FASLEXT): simpbool.$(FASLEXT) g-util.$(FASLEXT)
-compat.$(FASLEXT): pathname.$(FASLEXT)
-simpbool.$(FASLEXT): macros.$(FASLEXT)
-newfort.$(FASLEXT): macros.$(FASLEXT)
-lisplib.$(FASLEXT): nlib.$(FASLEXT) c-util.$(FASLEXT) debug.$(FASLEXT)
-interop.$(FASLEXT): interop.boot c-util.$(FASLEXT) hashcode.$(FASLEXT)
-c-doc.$(FASLEXT): c-util.$(FASLEXT)
-
-## Interface with the Aldor compiler.
-ax.$(FASLEXT): as.$(FASLEXT)
-as.$(FASLEXT): macros.$(FASLEXT)
-server.$(FASLEXT): macros.$(FASLEXT)
-
-##
-## OpenAxiom's front-end consists of two parts:
-## (a) the interprerter's parser -- also referred to as new parser
-## (b) the compiler parser -- also referred to as parser
-##
-## The new parser component is always included in a running OpenAxiom
-## image. However the old parser component is so called `autoloaded'.
-## While in theory that should work, in practice it turns out that
-## people tend to override functions in the autoload part, correcting
-## bugs only there. The consequence is that the same function will
-## bahave very differently based on the history of the seesion. Ideal
-## recipe for creating heisenbugs.
-##
-
-## The old parser component roughtly is:
-##
-spad-parser.$(FASLEXT): parse.$(FASLEXT)
-mark.$(FASLEXT): macros.$(FASLEXT)
-parse.$(FASLEXT): metalex.$(FASLEXT) postpar.$(FASLEXT)
-packtran.$(FASLEXT): sys-macros.$(FASLEXT)
-postpar.$(FASLEXT): macros.$(FASLEXT)
-bootlex.$(FASLEXT): preparse.$(FASLEXT) macros.$(FASLEXT) \
- nlib.$(FASLEXT) sys-globals.$(FASLEXT)
-newaux.$(FASLEXT): macros.$(FASLEXT)
-comp.$(FASLEXT): macros.$(FASLEXT)
-preparse.$(FASLEXT): fnewmeta.$(FASLEXT)
-fnewmeta.$(FASLEXT): parsing.$(FASLEXT)
-parsing.$(FASLEXT): metalex.$(FASLEXT)
-metalex.$(FASLEXT): macros.$(FASLEXT)
-nlib.$(FASLEXT): macros.$(FASLEXT)
-macros.$(FASLEXT): sys-macros.$(FASLEXT) sys-utility.$(FASLEXT)
-
-## The new parser component roughtly is:
-## astr.boot dq.boot incl.boot pile.boot ptrees.boot
-## posit.boot cparse.boot format.boot cstream.boot
-##
-i-parser.$(FASLEXT): cparse.$(FASLEXT) pf2sex.$(FASLEXT)
-pf2sex.$(FASLEXT): ptrees.$(FASLEXT)
-cparse.$(FASLEXT): ptrees.$(FASLEXT)
-macex.$(FASLEXT): ptrees.$(FASLEXT)
-ptrees.$(FASLEXT): posit.$(FASLEXT) serror.$(FASLEXT)
-pile.$(FASLEXT): scan.$(FASLEXT)
-scan.$(FASLEXT): incl.$(FASLEXT) bits.$(FASLEXT) dq.$(FASLEXT) sys-utility.$(FASLEXT)
-incl.$(FASLEXT): cstream.$(FASLEXT) cformat.$(FASLEXT)
-cformat.$(FASLEXT): unlisp.$(FASLEXT) posit.$(FASLEXT)
-serror.$(FASLEXT): posit.$(FASLEXT)
-unlisp.$(FASLEXT): sys-macros.$(FASLEXT)
-posit.$(FASLEXT): sys-macros.$(FASLEXT) astr.$(FASLEXT)
-intfile.$(FASLEXT): cstream.$(FASLEXT)
-cstream.$(FASLEXT): sys-macros.$(FASLEXT)
-astr.$(FASLEXT): vmlisp.$(FASLEXT)
-bits.$(FASLEXT): boot-pkg.$(FASLEXT)
-dq.$(FASLEXT): types.$(FASLEXT)
-
-## General support and utilities.
-daase.$(FASLEXT): macros.$(FASLEXT) foam_l.$(FASLEXT)
-spaderror.$(FASLEXT): macros.$(FASLEXT)
-debug.$(FASLEXT): macros.$(FASLEXT) parsing.$(FASLEXT)
-spad.$(FASLEXT): bootlex.$(FASLEXT) postpar.$(FASLEXT) debug.$(FASLEXT)
-monitor.$(FASLEXT): macros.$(FASLEXT)
-property.$(FASLEXT): sys-macros.$(FASLEXT)
-nspadaux.$(FASLEXT): sys-macros.$(FASLEXT)
-sfsfun-l.$(FASLEXT): sys-macros.$(FASLEXT)
-trace.$(FASLEXT): debug.$(FASLEXT)
-termrw.$(FASLEXT): macros.$(FASLEXT)
-showimp.$(FASLEXT): macros.$(FASLEXT)
-sfsfun.$(FASLEXT): macros.$(FASLEXT)
-modemap.$(FASLEXT): c-util.$(FASLEXT) info.$(FASLEXT)
-info.$(FASLEXT): g-util.$(FASLEXT)
-slam.$(FASLEXT): g-timer.$(FASLEXT)
-clammed.$(FASLEXT): g-timer.$(FASLEXT)
-clam.$(FASLEXT): g-timer.$(FASLEXT)
-g-opt.$(FASLEXT): g-util.$(FASLEXT)
-g-timer.$(FASLEXT): macros.$(FASLEXT) g-util.$(FASLEXT)
-msgdb.$(FASLEXT): g-util.$(FASLEXT)
-g-error.$(FASLEXT): diagnostics.$(FASLEXT) g-util.$(FASLEXT)
-c-util.$(FASLEXT): g-opt.$(FASLEXT)
-pathname.$(FASLEXT): nlib.$(FASLEXT)
-hashcode.$(FASLEXT): g-util.$(FASLEXT)
-pspad2.$(FASLEXT): pspad1.$(FASLEXT)
-pspad1.$(FASLEXT): macros.$(FASLEXT)
-g-util.$(FASLEXT): ggreater.$(FASLEXT) macros.$(FASLEXT) sys-utility.$(FASLEXT)
-g-cndata.$(FASLEXT): sys-macros.$(FASLEXT)
-msg.$(FASLEXT): sys-macros.$(FASLEXT) astr.$(FASLEXT)
-util.$(FASLEXT): parsing.$(FASLEXT)
-fname.$(FASLEXT): macros.$(FASLEXT)
-sys-macros.$(FASLEXT): diagnostics.$(FASLEXT) union.$(FASLEXT)
-buildom.$(FASLEXT): buildom.boot sys-macros.$(FASLEXT)
-diagnostics.$(FASLEXT): sys-globals.$(FASLEXT) vmlisp.$(FASLEXT)
-sys-driver.$(FASLEXT): sys-driver.boot types.$(FASLEXT)
-sys-globals.$(FASLEXT): sys-constants.$(FASLEXT) hash.$(FASLEXT)
-sys-os.$(FASLEXT): sys-constants.$(FASLEXT)
-sys-constants.$(FASLEXT): types.$(FASLEXT)
-hash.$(FASLEXT): types.$(FASLEXT)
-union.$(FASLEXT): vmlisp.$(FASLEXT)
-ggreater.$(FASLEXT): vmlisp.$(FASLEXT)
-axext_l.$(FASLEXT): foam_l.$(FASLEXT)
-foam_l.$(FASLEXT): vmlisp.$(FASLEXT) sys-constants.$(FASLEXT)
-sys-utility.$(FASLEXT): vmlisp.$(FASLEXT) sys-os.$(FASLEXT) hash.$(FASLEXT)
-vmlisp.$(FASLEXT): types.$(FASLEXT) sys-globals.$(FASLEXT)
-types.$(FASLEXT): boot-pkg.$(FASLEXT)
-boot-pkg.$(FASLEXT): boot-pkg.lisp
-
-<<DVI from pamphlet>>
-
-@
-
-\end{document}