Changeset 14082


Ignore:
Timestamp:
08/14/12 10:36:11 (9 years ago)
Author:
ehuelsmann
Message:

Close #236: fix the COMPILE part of the issue.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/abcl/src/org/armedbear/lisp/compiler-pass2.lisp

    r14074 r14082  
    73427342  (aver (eq (car form) 'LAMBDA))
    73437343  (catch 'compile-defun-abort
    7344     (let* ((class-file (make-abcl-class-file :pathname filespec))
    7345            (*compiler-error-bailout*
    7346             `(lambda ()
    7347                (compile-1
    7348                 (make-compiland :name ',name
    7349                                 :lambda-expression (make-compiler-error-form ',form)
    7350                                 :class-file
    7351                                 (make-abcl-class-file :pathname ,filespec))
    7352                 ,stream)))
    7353            (*compile-file-environment* environment))
    7354       (compile-1 (make-compiland :name name
    7355                                  :lambda-expression
    7356                                  (precompiler:precompile-form form t
    7357                                                               environment)
    7358                                  :class-file class-file)
    7359                  stream)
    7360       class-file)))
     7344    (flet ((compiler-bailout ()
     7345             (let ((class-file (make-abcl-class-file :pathname filespec))
     7346                   (error-form (make-compiler-error-form form)))
     7347               (compile-1 (make-compiland :name name
     7348                                          :lambda-expression error-form
     7349                                          :class-file class-file)
     7350                          stream)
     7351               class-file)))
     7352      (let* ((class-file (make-abcl-class-file :pathname filespec))
     7353             (*compiler-error-bailout* #'compiler-bailout)
     7354             (*compile-file-environment* environment)
     7355             (precompiled-form (pre:precompile-form form t environment)))
     7356        (compile-1 (make-compiland :name name
     7357                                   :lambda-expression precompiled-form
     7358                                   :class-file class-file)
     7359                   stream)
     7360        class-file))))
    73617361
    73627362(defvar *catch-errors* t)
Note: See TracChangeset for help on using the changeset viewer.