Changeset 12116
- Timestamp:
- 08/24/09 19:21:13 (14 years ago)
- Location:
- trunk/abcl/src/org/armedbear/lisp
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/abcl/src/org/armedbear/lisp/compiler-pass1.lisp
r12115 r12116 671 671 (*current-compiland* (local-function-compiland local-function))) 672 672 (p1-compiland (local-function-compiland local-function)))) 673 (let* ((block (make- block-node '(LABELS)))673 (let* ((block (make-labels-node)) 674 674 (*blocks* (cons block *blocks*)) 675 675 (body (cddr form)) 676 676 (*visible-variables* *visible-variables*)) 677 (setf ( block-free-specials block)677 (setf (labels-free-specials block) 678 678 (process-declarations-for-vars body nil block)) 679 (dolist (special ( block-free-specials block))679 (dolist (special (labels-free-specials block)) 680 680 (push special *visible-variables*)) 681 (setf ( block-form block)681 (setf (labels-form block) 682 682 (list* (car form) local-functions (p1-body (cddr form)))) 683 683 block)))) -
trunk/abcl/src/org/armedbear/lisp/compiler-pass2.lisp
r12115 r12116 4971 4971 (defknown p2-labels-node (t t t) t) 4972 4972 (defun p2-labels-node (block target representation) 4973 (let* ((form ( block-form block))4973 (let* ((form (labels-form block)) 4974 4974 (*local-functions* *local-functions*) 4975 4975 (*visible-variables* *visible-variables*) … … 4986 4986 (dolist (local-function local-functions) 4987 4987 (p2-labels-process-compiland local-function)) 4988 (dolist (special ( block-free-specials block))4988 (dolist (special (labels-free-specials block)) 4989 4989 (push special *visible-variables*)) 4990 (compile-progn-body body target representation))) 4990 (let ((*blocks* (cons block *blocks*))) 4991 (compile-progn-body body target representation)))) 4991 4992 4992 4993 (defun p2-lambda (compiland target) … … 7915 7916 ((eq name 'LET) 7916 7917 (p2-let/let*-node form target representation)) 7917 ((eq name 'LABELS)7918 (p2-labels-node form target representation))7919 ((eq name 'SETF) ;; SETF functions create7918 ;; ((eq name 'LABELS) 7919 ;; (p2-labels-node form target representation)) 7920 ;; ((eq name 'SETF) ;; SETF functions create 7920 7921 ;; consp block names, if we're unlucky 7921 (p2-block-node form target representation))7922 ;; (p2-block-node form target representation)) 7922 7923 (t 7923 7924 (print name) … … 7937 7938 ((flet-node-p form) 7938 7939 (p2-flet-node form target representation)) 7940 ((labels-node-p form) 7941 (p2-labels-node form target representation)) 7939 7942 ((locally-node-p form) 7940 7943 (p2-locally-node form target representation))
Note: See TracChangeset
for help on using the changeset viewer.