axiom-developer
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Axiom-developer] 20090418.02.tpd.patch (bookvol9 move portions of the c


From: daly
Subject: [Axiom-developer] 20090418.02.tpd.patch (bookvol9 move portions of the compiler)
Date: Sat, 18 Apr 2009 20:18:03 -0500

Move portions of the compiler to bookvol9

======================================================================
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}
+<<initvars>>=
+(defvar |$byConstructors| () "list of constructors to be compiled")
+
+@
+\defdollar{constructorsSeen}
+<<initvars>>=
+(defvar |$constructorsSeen| () "list of constructors found")
+
+@
+\defun{compilerDoit}{compilerDoit}
+<<defun 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
 <<Compiler>>=
 (in-package "BOOT")
 
+<<initvars>>
+
 <<defun compileAsharpArchiveCmd>>
 <<defun compileAsharpCmd>>
 <<defun compileAsharpCmd1>>
 <<defun compileAsharpLispCmd>>
 <<defun compileFileQuietly>>
+<<defun compilerDoit>>
 <<defun compileSpad2Cmd>>
 <<defun compileSpadLispCmd>>
 
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<br/>
 compiler use waldek +-> syntax <br/>
 <a href="patches/20090418.01.tpd.patch">20090418.01.tpd.patch</a>
 bookvol10.4 convert EF to +-> syntax <br/>
+<a href="patches/20090418.02.tpd.patch">20090418.02.tpd.patch</a>
+bookvol9 move portions of the compiler <br/>
  </body>
 </html>




reply via email to

[Prev in Thread] Current Thread [Next in Thread]