Changeset 12115 for trunk/abcl/src/org


Ignore:
Timestamp:
08/23/09 21:50:04 (14 years ago)
Author:
ehuelsmann
Message:

Convert FLET BLOCK-NODEs to flet-nodes.

Note: This commit also fixes the failure of some ANSI

tests introduced in r12086 by special casing SETF function
handling. This special casing is temporary.

Location:
trunk/abcl/src/org/armedbear/lisp
Files:
2 edited

Legend:

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

    r12107 r12115  
    641641      ((with-saved-compiler-policy
    642642     (process-optimization-declarations (cddr form))
    643          (let* ((block (make-block-node '(FLET)))
     643         (let* ((block (make-flet-node))
    644644                (*blocks* (cons block *blocks*))
    645645                (body (cddr form))
    646646                (*visible-variables* *visible-variables*))
    647            (setf (block-free-specials block)
     647           (setf (flet-free-specials block)
    648648                 (process-declarations-for-vars body nil block))
    649            (dolist (special (block-free-specials block))
     649           (dolist (special (flet-free-specials block))
    650650             (push special *visible-variables*))
    651            (setf (block-form block)
     651           (setf (flet-form block)
    652652                 (list* (car form) local-functions (p1-body (cddr form))))
    653653           block)))))
  • trunk/abcl/src/org/armedbear/lisp/compiler-pass2.lisp

    r12112 r12115  
    49554955(defknown p2-flet-node (t t t) t)
    49564956(defun p2-flet-node (block target representation)
    4957   (let* ((form (block-form block))
     4957  (let* ((form (flet-form block))
    49584958         (*local-functions* *local-functions*)
    49594959         (*visible-variables* *visible-variables*)
     
    49644964    (dolist (local-function local-functions)
    49654965      (push local-function *local-functions*))
    4966     (dolist (special (block-free-specials block))
     4966    (dolist (special (flet-free-specials block))
    49674967      (push special *visible-variables*))
    4968     (compile-progn-body body target representation)))
     4968    (let ((*blocks* (cons block *blocks*)))
     4969      (compile-progn-body body target representation))))
    49694970
    49704971(defknown p2-labels-node (t t t) t)
     
    79147915                   ((eq name 'LET)
    79157916                    (p2-let/let*-node form target representation))
    7916                    ((eq name 'FLET)
    7917                     (p2-flet-node form target representation))
    79187917                   ((eq name 'LABELS)
    79197918                    (p2-labels-node form target representation))
     7919                   ((eq name 'SETF) ;; SETF functions create
     7920                    ;; consp block names, if we're unlucky
     7921                    (p2-block-node form target representation))
     7922                   (t
     7923                    (print name)
     7924                    (aver (not "Can't happen.")))
    79207925                   )))))
    79217926        ((node-p form)
     
    79307935            (p2-m-v-b-node form target)
    79317936            (fix-boxing representation nil))
     7937           ((flet-node-p form)
     7938            (p2-flet-node form target representation))
    79327939           ((locally-node-p form)
    79337940            (p2-locally-node form target representation))
Note: See TracChangeset for help on using the changeset viewer.