diff --git a/books/bookvol9.pamphlet b/books/bookvol9.pamphlet index 662a1a7..8d14dd7 100644 --- a/books/bookvol9.pamphlet +++ b/books/bookvol9.pamphlet @@ -15,6 +15,17 @@ \index{#1!defun}} %% +%% defunsec marks a function definition and adds it to the index +%% It assumes that the second argument is a section title. +%% +\newcommand{\defunsec}[2]{% e.g. \defunsec{functionname}{section title} +\subsection{#2}% +\label{#1}% +\index{#1}% +\index{defun!#1}% +\index{#1!defun}} + +%% %% defmacro marks a macro definition and adds it to the index %% \newcommand{\defmacro}[1]{% e.g. \defmacro{functionname} @@ -558,7 +569,7 @@ with a {\tt .lsp} file, the Lisp file is compiled and {\tt )library} is called. For Aldor, You must also have present a {\tt .asy} generated from the same source file. -\defun{compileSpad2Cmd}{The Spad compiler top level function} +\defunsec{compileSpad2Cmd}{The Spad compiler top level function} This is the old compiler. Assume we entered from the "compiler" function, so args is a file with file extension .spad. @@ -900,6 +911,36 @@ if \verb|$InteractiveMode| then use a null outputstream (compile-file fn))) @ +\defdollar{byConstructors} +<>= +(defvar |$byConstructors| () "list of constructors to be compiled") + +@ +\defdollar{constructorsSeen} +<>= +(defvar |$constructorsSeen| () "list of constructors found") + +@ +\defun{compilerDoit}{compilerDoit} +<>= +(defun |compilerDoit| (constructor fun) + (let (|$byConstructors| |$constructorsSeen|) + (declare (special |$byConstructors| |$constructorsSeen|)) + (setq |$byConstructors| nil) + (setq |$constructorsSeen| nil) + (cond + ((equal fun '(|rf| |lib|)) (|/RQ,LIB|)) + ((equal fun '(|rf| |nolib|)) (/rf)) + ((equal fun '(|rq| |lib|)) (|/RQ,LIB|)) + ((equal fun '(|rq| |nolib|)) (/rq)) + ((equal fun '(|c| |lib|)) + (setq |$byConstructors| (mapcar #'|opOf| constructor)) + (|/RQ,LIB|) + (dolist (con |$byConstructors|) + (unless (|member| con |$constructorsSeen|) + (|sayBrightly| `(">>> Warning " |%b| ,con |%d| " was not found")))))))) + +@ \chapter{Dangling references} \section{shell variables} @@ -917,13 +958,11 @@ ALDORROOT \section{defined special variables} \begin{verbatim} -$syscommands -|$systemCommands| \end{verbatim} \section{undefined special variables} \begin{verbatim} -|$asharpCmdlineFlags| +|$asharpCmdlineFlags| |$compileOnlyCertainItems| $current-directory /editfile @@ -931,17 +970,20 @@ $current-directory |$InteractiveMode| |$m| |$ncConverse| -|$newcompMode| |$newComp| +|$newcompMode| |$newConlist| |$options| |$QuickCode| |$QuickLet| |$scanIfTrue| |$sourceFileTypes| +*standard-output* +$syscommands +|$systemCommands| \end{verbatim} -\section{functions} +\section{undefined functions} \begin{verbatim} |browserAutoloadOnceTrigger| |compilerDoit| @@ -954,6 +996,7 @@ directory |fnameMake| |fnameReadable?| getenv +|member| |namestring| nequal obey @@ -965,6 +1008,7 @@ obey |pathnameName| |pathnameType| recompile-lib-file-if-necessary +|sayBrightly| |sayKeyedMsg| |spadPrompt| |spad2AsTranslatorAutoloadOnceTrigger| @@ -979,11 +1023,14 @@ strpos <>= (in-package "BOOT") +<> + <> <> <> <> <> +<> <> <> diff --git a/changelog b/changelog index 45e78ce..99c01ad 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,5 @@ +20090418 tpd src/axiom-website/patches.html 20090418.02.tpd.patch +20090418 tpd books/bookvol9 move portions of the compiler 20090418 tpd src/axiom-website/patches.html 20090418.01.tpd.patch 20090418 tpd src/algebra/Makefile add help, regress for EF 20090418 tpd books/bookvol10.4 convert EF to +-> notation diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html index a2d878e..a66659b 100644 --- a/src/axiom-website/patches.html +++ b/src/axiom-website/patches.html @@ -1100,5 +1100,7 @@ bookvol10.4, 10.2 document binomial
compiler use waldek +-> syntax
20090418.01.tpd.patch bookvol10.4 convert EF to +-> syntax
+20090418.02.tpd.patch +bookvol9 move portions of the compiler