summaryrefslogtreecommitdiff
path: root/src/lisp/ao_lisp_const.lisp
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2016-11-16 13:19:20 -0800
committerKeith Packard <keithp@keithp.com>2017-02-20 11:16:51 -0800
commitdaa06c8dedc6dc1cf21936ee2769d9d25f0567bd (patch)
treec8742f0c59d886d4540a6de17b0ab471c77f136b /src/lisp/ao_lisp_const.lisp
parentc8f9db184cc929ebde845730a6d4b7864e423a84 (diff)
altos/lisp: Optimize chunk searching in collect
Note range of existing chunks to exclude objects outside. Only look at chunks which have been set to reduce loop cost. Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'src/lisp/ao_lisp_const.lisp')
-rw-r--r--src/lisp/ao_lisp_const.lisp62
1 files changed, 32 insertions, 30 deletions
diff --git a/src/lisp/ao_lisp_const.lisp b/src/lisp/ao_lisp_const.lisp
index 4dc63bbf..6fbc35b6 100644
--- a/src/lisp/ao_lisp_const.lisp
+++ b/src/lisp/ao_lisp_const.lisp
@@ -75,32 +75,6 @@
(defun 1+ (x) (+ x 1))
(defun 1- (x) (- x 1))
- ; boolean operators
-
-(def or (lexpr (l)
- (let ((ret nil))
- (while l
- (cond ((setq ret (car l))
- (setq l nil))
- ((setq l (cdr l)))))
- ret
- )
- )
- )
-
-(def and (lexpr (l)
- (let ((ret t))
- (while l
- (cond ((setq ret (car l))
- (setq l (cdr l)))
- ((setq ret (setq l nil)))
- )
- )
- ret
- )
- )
- )
-
; define a set of local
; variables and then evaluate
; a list of sexprs
@@ -192,9 +166,37 @@
)
)
- ; run the let macro once to
- ; evaluate all of the internal
- ; macro calls
+ ; boolean operators
+
+(def or (lexpr (l)
+ (let ((ret nil))
+ (while l
+ (cond ((setq ret (car l))
+ (setq l nil))
+ ((setq l (cdr l)))))
+ ret
+ )
+ )
+ )
+
+ ; execute to resolve macros
+
+(or nil t)
+
+(def and (lexpr (l)
+ (let ((ret t))
+ (while l
+ (cond ((setq ret (car l))
+ (setq l (cdr l)))
+ ((setq ret (setq l nil)))
+ )
+ )
+ ret
+ )
+ )
+ )
+
+ ; execute to resolve macros
-(let ((let-param 1)))
+(and t nil)