Changeset 13468
- Timestamp:
- 08/12/11 18:53:46 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/abcl/src/org/armedbear/lisp/compiler-pass1.lisp
r13228 r13468 725 725 (defmacro with-local-functions-for-flet/labels 726 726 (form local-functions-var lambda-list-var name-var body-var body1 body2) 727 `( progn (incf (compiland-children *current-compiland*) (length (cadr ,form)))728 (let ((*visible-variables* *visible-variables*)729 (*local-functions* *local-functions*)730 (*current-compiland* *current-compiland*)731 (,local-functions-var '()))732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 ,@body2)))727 `(let ((*visible-variables* *visible-variables*) 728 (*local-functions* *local-functions*) 729 (*current-compiland* *current-compiland*) 730 (,local-functions-var '())) 731 (incf (compiland-children *current-compiland*) (length (cadr ,form))) 732 (dolist (definition (cadr ,form)) 733 (let ((,name-var (car definition)) 734 (,lambda-list-var (cadr definition))) 735 (validate-function-name ,name-var) 736 (let* ((,body-var (cddr definition)) 737 (compiland (make-compiland :name ,name-var 738 :parent *current-compiland*))) 739 ,@body1))) 740 (setf ,local-functions-var (nreverse ,local-functions-var)) 741 ;; Make the local functions visible. 742 (dolist (local-function ,local-functions-var) 743 (push local-function *local-functions*) 744 (let ((variable (local-function-variable local-function))) 745 (when variable 746 (push variable *visible-variables*)))) 747 ,@body2)) 748 748 749 749 (defun split-decls (forms specific-vars)
Note: See TracChangeset
for help on using the changeset viewer.