axiom-developer
[Top][All Lists]
Advanced

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

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


From: daly
Subject: [Axiom-developer] 20090419.01.tpd.patch (bookvol9 move portions of the compiler)
Date: Sun, 19 Apr 2009 15:22:48 -0500

Move more of the compiler to bookvol9
=======================================================================
diff --git a/books/bookvol9.pamphlet b/books/bookvol9.pamphlet
index 8d14dd7..c886fd6 100644
--- a/books/bookvol9.pamphlet
+++ b/books/bookvol9.pamphlet
@@ -569,6 +569,102 @@ 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.
 
+\defunsec{compiler}{The top level compiler command}
+<<defun compiler>>=
+(defun |compiler| (args)
+ "The top level compiler command"
+ (let (|$newConlist| optlist optname optargs havenew haveold aft ef af af1)
+  (declare (special |$newConlist| |$options| /editfile))
+  (setq |$newConlist| nil)
+  (cond
+   ((and (null args) (null |$options|) (null /editfile))
+     (|helpSpad2Cmd| '(|compiler|)))
+   (t
+    (cond ((null args) (setq args (cons /editfile nil))))
+    (setq optlist '(|new| |old| |translate| |constructor|))
+    (setq havenew nil)
+    (setq haveold nil)
+    (do ((t0 |$options| (cdr t0)) (opt nil))
+        ((or (atom t0) 
+             (progn (setq opt (car t0)) nil)
+             (null (null (and havenew haveold))))
+          nil)
+     (setq optname (car opt))
+     (setq optargs (cdr opt))
+     (case (|selectOptionLC| optname optlist nil)
+      (|new|         (setq havenew t))
+      (|translate|   (setq haveold t))
+      (|constructor| (setq haveold t))
+      (|old|         (setq haveold t))))
+    (cond
+     ((and havenew haveold) (|throwKeyedMsg| 's2iz0081 nil))
+     (t
+      (setq af (|pathname| args))
+      (setq aft (|pathnameType| af))
+      (cond
+       ((or havenew (string= aft "as"))
+        (if (null (setq af1 ($findfile af '(|as|))))
+          (|throwKeyedMsg| 's2il0003 (cons (namestring af) nil))
+          (|compileAsharpCmd| (cons af1 nil))))
+       ((or haveold (string= aft "spad"))
+        (if (null (setq af1 ($findfile af '(|spad|))))
+           (|throwKeyedMsg| 's2il0003 (cons (namestring af) nil))
+           (|compileSpad2Cmd| (cons af1 nil))))
+       ((string= aft "lsp")
+        (if (null (setq af1 ($findfile af '(|lsp|))))
+          (|throwKeyedMsg| 's2il0003 (cons (namestring af) nil))
+          (|compileAsharpLispCmd| (cons af1 nil))))
+       ((string= aft "nrlib")
+        (if (null (setq af1 ($findfile af '(|nrlib|))))
+          (|throwKeyedMsg| 'S2IL0003 (cons (namestring af) nil))
+          (|compileSpadLispCmd| (cons af1 nil))))
+       ((string= aft "ao")
+        (if (null (setq af1 ($findfile af '(|ao|))))
+          (|throwKeyedMsg| 's2il0003 (cons (namestring af) nil))
+         (|compileAsharpCmd| (cons af1 nil))))
+       ((string= aft "al")
+        (if (null (setq af1 ($findfile af '(|al|))))
+          (|throwKeyedMsg| 's2il0003 (cons (namestring af) nil))
+          (|compileAsharpArchiveCmd| (cons af1 nil))))
+       (t
+        (setq af1 ($findfile af '(|as| |spad| |ao| |asy|)))
+        (cond
+         ((and af1 (string= (|pathnameType| af1) "as"))
+          (|compileAsharpCmd| (cons af1 nil)))
+         ((and af1 (string= (|pathnameType| af1) "ao"))
+          (|compileAsharpCmd| (cons af1 nil)))
+         ((and af1 (string= (|pathnameType| af1) "spad"))
+          (|compileSpad2Cmd| (cons af1 nil)))
+         ((and af1 (string= (|pathnameType| af1) "asy"))
+          (|compileAsharpArchiveCmd| (cons af1 nil)))
+         (t
+          (setq ef (|pathname| /editfile))
+          (setq ef (|mergePathnames| af ef))
+          (cond
+           ((boot-equal ef af) (|throwKeyedMsg| 's2iz0039 nil))
+           (t
+            (setq af ef)
+            (cond
+             ((string= (|pathnameType| af) "as")
+              (|compileAsharpCmd| args))
+             ((string= (|pathnameType| af) "ao")
+              (|compileAsharpCmd| args))
+             ((string= (|pathnameType| af) "spad")
+              (|compileSpad2Cmd| args))
+             (t
+              (setq af1 ($findfile af '(|as| |spad| |ao| |asy|)))
+              (cond
+               ((and af1 (string= (|pathnameType| af1) "as"))
+                 (|compileAsharpCmd| (cons af1 nil)))
+               ((and af1 (string= (|pathnameType| af1) "ao"))
+                 (|compileAsharpCmd| (cons af1 nil)))
+               ((and af1 (string= (|pathnameType| af1) "spad"))
+                 (|compileSpad2Cmd| (cons af1 nil)))
+               ((and af1 (string= (|pathnameType| af1) "asy"))
+                (|compileAsharpArchiveCmd| (cons af1 nil)))
+               (t (|throwKeyedMsg| 's2iz0039 nil)))))))))))))))))
+
+@
 \defunsec{compileSpad2Cmd}{The Spad compiler top level function}
 This is the old compiler.
 Assume we entered from the "compiler" function, so args is 
diff --git a/changelog b/changelog
index 99c01ad..3dbaa1e 100644
--- a/changelog
+++ b/changelog
@@ -1,3 +1,5 @@
+20090419 tpd src/axiom-website/patches.html 20090419.01.tpd.patch
+20090419 tpd books/bookvol9 move portions of the compiler
 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
diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html
index a66659b..f730fea 100644
--- a/src/axiom-website/patches.html
+++ b/src/axiom-website/patches.html
@@ -1102,5 +1102,7 @@ compiler use waldek +-> syntax <br/>
 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/>
+<a href="patches/20090419.01.tpd.patch">20090419.01.tpd.patch</a>
+bookvol9 move portions of the compiler <br/>
  </body>
 </html>
diff --git a/src/interp/setq.lisp.pamphlet b/src/interp/setq.lisp.pamphlet
index 86bf635..11cb965 100644
--- a/src/interp/setq.lisp.pamphlet
+++ b/src/interp/setq.lisp.pamphlet
@@ -67,6 +67,10 @@
 (SETQ |$newConlist| nil)
 (SETQ |$createLocalLibDb| 't)
 
+;; These are duplicates of definitions in bookvol9
+
+(defvar |$byConstructors| () "list of constructors to be compiled")
+(defvar |$constructorsSeen| () "list of constructors found")
 
 ;; These were originally in SPAD LISP
 
@@ -193,11 +197,6 @@
 (SETQ $cacheAlist NIL)
 (SETQ $streamAlist NIL)
 
-;; following 2 variables are referenced by PREPARSE1
-
-(defvar |$byConstructors| () "list of constructors to be compiled")
-(defvar |$constructorsSeen| () "list of constructors found")
-
 ;; These are for the output routines in OUT BOOT
 
 (SETQ $LINELENGTH 77)




reply via email to

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