summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--share/txr/stdlib/compiler.tl44
1 files changed, 22 insertions, 22 deletions
diff --git a/share/txr/stdlib/compiler.tl b/share/txr/stdlib/compiler.tl
index dfab93a9..f3acbc52 100644
--- a/share/txr/stdlib/compiler.tl
+++ b/share/txr/stdlib/compiler.tl
@@ -1668,28 +1668,28 @@
(put-line (butlast line) out-stream))
(seek-stream in-stream 0 :from-start))
(labels ((compile-form (unex-form)
- (let ((form (macroexpand unex-form)))
- (unless (atom form)
- (caseq (car form)
- (progn [mapdo compile-form (cdr form)])
- (compile-only (let ((*eval* nil))
- [mapdo compile-form (cdr form)]))
- (eval-only (let ((*emit* nil))
- [mapdo compile-form (cdr form)]))
- (t (when (and (or *eval* *emit*)
- (not (constantp form)))
- (let* ((vm-desc (compile-toplevel form))
- (flat-vd (list-from-vm-desc vm-desc))
- (fence (member (car form) %package-manip%)))
- (when *eval*
- (let ((pa *package-alist*))
- (sys:vm-execute-toplevel vm-desc)
- (when (or (neq pa *package-alist*))
- (set fence t))))
- (when *emit*
- out.(add flat-vd)
- (when fence
- out.(add :fence)))))))))))
+ (let* ((form (macroexpand unex-form))
+ (sym (if (consp form) (car form))))
+ (caseq sym
+ (progn [mapdo compile-form (cdr form)])
+ (compile-only (let ((*eval* nil))
+ [mapdo compile-form (cdr form)]))
+ (eval-only (let ((*emit* nil))
+ [mapdo compile-form (cdr form)]))
+ (t (when (and (or *eval* *emit*)
+ (not (constantp form)))
+ (let* ((vm-desc (compile-toplevel form))
+ (flat-vd (list-from-vm-desc vm-desc))
+ (fence (member sym %package-manip%)))
+ (when *eval*
+ (let ((pa *package-alist*))
+ (sys:vm-execute-toplevel vm-desc)
+ (when (or (neq pa *package-alist*))
+ (set fence t))))
+ (when *emit*
+ out.(add flat-vd)
+ (when fence
+ out.(add :fence))))))))))
(unwind-protect
(whilet ((obj (read in-stream *stderr* err-ret))
((neq obj err-ret)))