aboutsummaryrefslogtreecommitdiff
path: root/src/algebra/strap/LIST.lsp
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2010-06-22 17:20:38 +0000
committerdos-reis <gdr@axiomatics.org>2010-06-22 17:20:38 +0000
commitb06599402ca23cce8ba7eea03886dc11a5d29af4 (patch)
tree763ae52bb73dfb7f76feb7433b7853056acb9605 /src/algebra/strap/LIST.lsp
parent48d55f8e89cdc22afbf661b823bf059d231b0db4 (diff)
downloadopen-axiom-b06599402ca23cce8ba7eea03886dc11a5d29af4.tar.gz
Group sequence of LETT definitions into LET/LET* expressions where
appropriate. * interp/g-opt.boot (jumpToToplevel?): New. (singleAssignment?): Likewise. (groupVariableDefinitions): Likewise. Use them. (optimizeFunctionDef): Group toplevel variable definitions into a bind expression. * interp/g-util.boot (expandBind): Tidy. * interp/c-util.boot (transformToBackendCode): Refrain from enclosing let-expressions in SEQ if not needed.
Diffstat (limited to 'src/algebra/strap/LIST.lsp')
-rw-r--r--src/algebra/strap/LIST.lsp80
1 files changed, 33 insertions, 47 deletions
diff --git a/src/algebra/strap/LIST.lsp b/src/algebra/strap/LIST.lsp
index 3eec6e6d..3f7d4cd1 100644
--- a/src/algebra/strap/LIST.lsp
+++ b/src/algebra/strap/LIST.lsp
@@ -74,34 +74,24 @@
(EXIT (SPADCALL |dev| (|getShellEntry| $ 24)))))
(DEFUN |LIST;OMwrite;$S;6| (|x| $)
- (PROG (|s| |sp| |dev|)
- (RETURN
- (SEQ (LETT |s| "" |LIST;OMwrite;$S;6|)
- (LETT |sp| (OM-STRINGTOSTRINGPTR |s|) |LIST;OMwrite;$S;6|)
- (LETT |dev|
- (SPADCALL |sp| (SPADCALL (|getShellEntry| $ 26))
- (|getShellEntry| $ 27))
- |LIST;OMwrite;$S;6|)
- (SPADCALL |dev| (|getShellEntry| $ 28))
- (|LIST;writeOMList| |dev| |x| $)
- (SPADCALL |dev| (|getShellEntry| $ 29))
- (SPADCALL |dev| (|getShellEntry| $ 30))
- (SETQ |s| (OM-STRINGPTRTOSTRING |sp|)) (EXIT |s|)))))
+ (LET* ((|s| "") (|sp| (OM-STRINGTOSTRINGPTR |s|))
+ (|dev| (SPADCALL |sp| (SPADCALL (|getShellEntry| $ 26))
+ (|getShellEntry| $ 27))))
+ (SEQ (SPADCALL |dev| (|getShellEntry| $ 28))
+ (|LIST;writeOMList| |dev| |x| $)
+ (SPADCALL |dev| (|getShellEntry| $ 29))
+ (SPADCALL |dev| (|getShellEntry| $ 30))
+ (SETQ |s| (OM-STRINGPTRTOSTRING |sp|)) (EXIT |s|))))
(DEFUN |LIST;OMwrite;$BS;7| (|x| |wholeObj| $)
- (PROG (|s| |sp| |dev|)
- (RETURN
- (SEQ (LETT |s| "" |LIST;OMwrite;$BS;7|)
- (LETT |sp| (OM-STRINGTOSTRINGPTR |s|) |LIST;OMwrite;$BS;7|)
- (LETT |dev|
- (SPADCALL |sp| (SPADCALL (|getShellEntry| $ 26))
- (|getShellEntry| $ 27))
- |LIST;OMwrite;$BS;7|)
- (COND (|wholeObj| (SPADCALL |dev| (|getShellEntry| $ 28))))
- (|LIST;writeOMList| |dev| |x| $)
- (COND (|wholeObj| (SPADCALL |dev| (|getShellEntry| $ 29))))
- (SPADCALL |dev| (|getShellEntry| $ 30))
- (SETQ |s| (OM-STRINGPTRTOSTRING |sp|)) (EXIT |s|)))))
+ (LET* ((|s| "") (|sp| (OM-STRINGTOSTRINGPTR |s|))
+ (|dev| (SPADCALL |sp| (SPADCALL (|getShellEntry| $ 26))
+ (|getShellEntry| $ 27))))
+ (SEQ (COND (|wholeObj| (SPADCALL |dev| (|getShellEntry| $ 28))))
+ (|LIST;writeOMList| |dev| |x| $)
+ (COND (|wholeObj| (SPADCALL |dev| (|getShellEntry| $ 29))))
+ (SPADCALL |dev| (|getShellEntry| $ 30))
+ (SETQ |s| (OM-STRINGPTRTOSTRING |sp|)) (EXIT |s|))))
(DEFUN |LIST;OMwrite;Omd$V;8| (|dev| |x| $)
(SEQ (SPADCALL |dev| (|getShellEntry| $ 28))
@@ -119,27 +109,23 @@
(|getShellEntry| $ 36)))
(DEFUN |LIST;setIntersection;3$;11| (|l1| |l2| $)
- (PROG (|u|)
- (RETURN
- (SEQ (LETT |u| (SPADCALL (|getShellEntry| $ 38))
- |LIST;setIntersection;3$;11|)
- (SETQ |l1| (SPADCALL |l1| (|getShellEntry| $ 36)))
- (LOOP
- (COND
- ((NOT (NOT (SPADCALL |l1| (|getShellEntry| $ 39))))
- (RETURN NIL))
- (T (SEQ (COND
- ((SPADCALL
- (SPADCALL |l1| (|getShellEntry| $ 20))
- |l2| (|getShellEntry| $ 40))
- (SETQ |u|
- (CONS (SPADCALL |l1|
- (|getShellEntry| $ 20))
- |u|))))
- (EXIT (SETQ |l1|
- (SPADCALL |l1|
- (|getShellEntry| $ 23))))))))
- (EXIT |u|)))))
+ (LET ((|u| (SPADCALL (|getShellEntry| $ 38))))
+ (SEQ (SETQ |l1| (SPADCALL |l1| (|getShellEntry| $ 36)))
+ (LOOP
+ (COND
+ ((NOT (NOT (SPADCALL |l1| (|getShellEntry| $ 39))))
+ (RETURN NIL))
+ (T (SEQ (COND
+ ((SPADCALL
+ (SPADCALL |l1| (|getShellEntry| $ 20)) |l2|
+ (|getShellEntry| $ 40))
+ (SETQ |u|
+ (CONS (SPADCALL |l1|
+ (|getShellEntry| $ 20))
+ |u|))))
+ (EXIT (SETQ |l1|
+ (SPADCALL |l1| (|getShellEntry| $ 23))))))))
+ (EXIT |u|))))
(DEFUN |LIST;setDifference;3$;12| (|l1| |l2| $)
(PROG (|lu| |l11|)