From: Christophe Rhodes Date: Fri, 8 Apr 2005 14:19:06 +0000 (+0000) Subject: 0.8.21.25: X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;h=472d737eb6041f2ed632a4595ceb320cc953041c;p=sbcl.git 0.8.21.25: Fix for "Apparent memory leak in (eval '(lambda () ...))" (Kevin Reid sbcl-devel 2004-02-26 ... don't name the EVAL-TMP function. --- diff --git a/NEWS b/NEWS index ef3df1b..78021aa 100644 --- a/NEWS +++ b/NEWS @@ -27,14 +27,17 @@ changes in sbcl-0.8.22 relative to sbcl-0.8.21: fixed. (thanks to Bruno Haible) * improvements to the MIPS runtime code for increased stability. (thanks to Thiemo Seufer) - * fixed some bugs related to Unicode integration: - ** the restarts for recovering from input and output encoding - errors only appear when there is in fact such an error to - handle. * increased the maximimum compact environment size to allow purify on images with large amounts of functions. (thanks to Cyrus Harmon) + * partial workaround for bug 135: don't name the function we're + calling for hairy cases of EVAL, so as not to accumulate one environment + entry per call to EVAL. (reported by Kevin Reid) * improvements to the x86-64 disassembler. (thanks to Lutz Euler) * optimization: type testing for non-vector arrays should be faster. + * fixed some bugs related to Unicode integration: + ** the restarts for recovering from input and output encoding + errors only appear when there is in fact such an error to + handle. * fixed some bugs revealed by Paul Dietz' test suite: ** MISC.549 and similar: late transformation of unsafe type assertions into derived types caused unexpected code diff --git a/src/code/eval.lisp b/src/code/eval.lisp index 9bd74e2..2c36fb6 100644 --- a/src/code/eval.lisp +++ b/src/code/eval.lisp @@ -20,7 +20,7 @@ ;; to be careful about not muffling warnings arising from inner ;; evaluations/compilations, though [e.g. the ignored variable in ;; (DEFUN FOO (X) 1)]. -- CSR, 2003-05-13 - (let ((fun (sb!c:compile-in-lexenv (gensym "EVAL-TMPFUN-") + (let ((fun (sb!c:compile-in-lexenv nil `(lambda () ,expr) lexenv))) (funcall fun))) diff --git a/version.lisp-expr b/version.lisp-expr index 06a02f8..a8cae07 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -17,4 +17,4 @@ ;;; checkins which aren't released. (And occasionally for internal ;;; versions, especially for internal versions off the main CVS ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".) -"0.8.21.24" +"0.8.21.25"