HCoop
/
bpt
/
guile.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
e6042c0
)
Use explicit guile-primitive forms in the macro expansion of dotimes and dolist.
author
Daniel Kraft
<d@domob.eu>
Thu, 30 Jul 2009 19:49:00 +0000
(21:49 +0200)
committer
Daniel Kraft
<d@domob.eu>
Thu, 30 Jul 2009 19:49:00 +0000
(21:49 +0200)
module/language/elisp/runtime/macro-slot.scm
patch
|
blob
|
blame
|
history
diff --git
a/module/language/elisp/runtime/macro-slot.scm
b/module/language/elisp/runtime/macro-slot.scm
index
e74d749
..
5a308a1
100644
(file)
--- a/
module/language/elisp/runtime/macro-slot.scm
+++ b/
module/language/elisp/runtime/macro-slot.scm
@@
-121,9
+121,9
@@
(if (not (symbol? var))
(macro-error "expected symbol as dotimes variable"))
`(let ((,var 0))
(if (not (symbol? var))
(macro-error "expected symbol as dotimes variable"))
`(let ((,var 0))
- (while (
<
,var ,count)
+ (while (
(guile-primitive <)
,var ,count)
,@body
,@body
- (setq ,var (
1+
,var)))
+ (setq ,var (
(guile-primitive 1+)
,var)))
,@(if (= (length args) 3)
(list (caddr args))
'()))))))
,@(if (= (length args) 3)
(list (caddr args))
'()))))))
@@
-142,10
+142,11
@@
`(let (,var)
(without-void-checks (,tailvar)
(lexical-let ((,tailvar ,iter-list))
`(let (,var)
(without-void-checks (,tailvar)
(lexical-let ((,tailvar ,iter-list))
- (while (not (null ,tailvar))
- (setq ,var (car ,tailvar))
+ (while ((guile-primitive not)
+ ((guile-primitive null?) ,tailvar))
+ (setq ,var ((guile-primitive car) ,tailvar))
,@body
,@body
- (setq ,tailvar (
cdr
,tailvar)))
+ (setq ,tailvar (
(guile-primitive cdr)
,tailvar)))
,@(if (= (length args) 3)
(list (caddr args))
'())))))))))
,@(if (= (length args) 3)
(list (caddr args))
'())))))))))