From: Christophe R. <cr...@us...> - 2005-08-06 11:31:55
|
Update of /cvsroot/sbcl/sbcl/src/compiler In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6766/src/compiler Modified Files: ir1tran-lambda.lisp ir2tran.lisp Log Message: 0.9.3.32: Fix bug 343: No more need for INSTANCE-LAMBDA. What happened to four-line patches? ... port to all architectures; ... remove use of INSTANCE-LAMBDA from pcl; ... give a deprecation warning for uses of INSTANCE-LAMBDA; ... write long explanatory comment; ... add test cases. Index: ir1tran-lambda.lisp =================================================================== RCS file: /cvsroot/sbcl/sbcl/src/compiler/ir1tran-lambda.lisp,v retrieving revision 1.27 retrieving revision 1.28 diff -u -d -r1.27 -r1.28 --- ir1tran-lambda.lisp 14 Jul 2005 18:56:59 -0000 1.27 +++ ir1tran-lambda.lisp 6 Aug 2005 11:31:16 -0000 1.28 @@ -922,11 +922,10 @@ :source-name source-name :debug-name debug-name)) ((instance-lambda) - (let ((res (ir1-convert-lambda `(lambda ,@(cdr thing)) - :source-name source-name - :debug-name debug-name))) - (setf (getf (functional-plist res) :fin-function) t) - res)) + (deprecation-warning 'instance-lambda 'lambda) + (ir1-convert-lambda `(lambda ,@(cdr thing)) + :source-name source-name + :debug-name debug-name)) ((named-lambda) (let ((name (cadr thing)) (lambda-expression `(lambda ,@(cddr thing)))) Index: ir2tran.lisp =================================================================== RCS file: /cvsroot/sbcl/sbcl/src/compiler/ir2tran.lisp,v retrieving revision 1.61 retrieving revision 1.62 diff -u -d -r1.61 -r1.62 --- ir2tran.lisp 14 Jul 2005 18:57:00 -0000 1.61 +++ ir2tran.lisp 6 Aug 2005 11:31:16 -0000 1.62 @@ -1138,8 +1138,9 @@ (if (ir2-physenv-closure env) (let ((closure (make-normal-tn *backend-t-primitive-type*))) (vop setup-closure-environment node block start-label closure) - (when (getf (functional-plist ef) :fin-function) - (vop funcallable-instance-lexenv node block closure closure)) + ;; KLUDGE: see the comment around the definition of + ;; CLOSURE objects in src/compiler/objdef.lisp + (vop funcallable-instance-lexenv node block closure closure) (let ((n -1)) (dolist (loc (ir2-physenv-closure env)) (vop closure-ref node block closure (incf n) (cdr loc))))) |