[armedbear-cvs] r14082 - trunk/abcl/src/org/armedbear/lisp
ehuelsmann at common-lisp.net
ehuelsmann at common-lisp.net
Tue Aug 14 10:36:15 UTC 2012
Author: ehuelsmann
Date: Tue Aug 14 03:36:11 2012
New Revision: 14082
Log:
Close #236: fix the COMPILE part of the issue.
Modified:
trunk/abcl/src/org/armedbear/lisp/compiler-pass2.lisp
Modified: trunk/abcl/src/org/armedbear/lisp/compiler-pass2.lisp
==============================================================================
--- trunk/abcl/src/org/armedbear/lisp/compiler-pass2.lisp Tue Aug 14 01:01:40 2012 (r14081)
+++ trunk/abcl/src/org/armedbear/lisp/compiler-pass2.lisp Tue Aug 14 03:36:11 2012 (r14082)
@@ -7341,23 +7341,23 @@
generated class."
(aver (eq (car form) 'LAMBDA))
(catch 'compile-defun-abort
- (let* ((class-file (make-abcl-class-file :pathname filespec))
- (*compiler-error-bailout*
- `(lambda ()
- (compile-1
- (make-compiland :name ',name
- :lambda-expression (make-compiler-error-form ',form)
- :class-file
- (make-abcl-class-file :pathname ,filespec))
- ,stream)))
- (*compile-file-environment* environment))
- (compile-1 (make-compiland :name name
- :lambda-expression
- (precompiler:precompile-form form t
- environment)
- :class-file class-file)
- stream)
- class-file)))
+ (flet ((compiler-bailout ()
+ (let ((class-file (make-abcl-class-file :pathname filespec))
+ (error-form (make-compiler-error-form form)))
+ (compile-1 (make-compiland :name name
+ :lambda-expression error-form
+ :class-file class-file)
+ stream)
+ class-file)))
+ (let* ((class-file (make-abcl-class-file :pathname filespec))
+ (*compiler-error-bailout* #'compiler-bailout)
+ (*compile-file-environment* environment)
+ (precompiled-form (pre:precompile-form form t environment)))
+ (compile-1 (make-compiland :name name
+ :lambda-expression precompiled-form
+ :class-file class-file)
+ stream)
+ class-file))))
(defvar *catch-errors* t)
More information about the armedbear-cvs
mailing list