0.8.21.25:
authorChristophe Rhodes <csr21@cam.ac.uk>
Fri, 8 Apr 2005 14:19:06 +0000 (14:19 +0000)
committerChristophe Rhodes <csr21@cam.ac.uk>
Fri, 8 Apr 2005 14:19:06 +0000 (14:19 +0000)
Fix for "Apparent memory leak in (eval '(lambda () ...))" (Kevin
Reid sbcl-devel 2004-02-26
... don't name the EVAL-TMP function.

NEWS
src/code/eval.lisp
version.lisp-expr

diff --git a/NEWS b/NEWS
index ef3df1b..78021aa 100644 (file)
--- 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
index 9bd74e2..2c36fb6 100644 (file)
@@ -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)))
index 06a02f8..a8cae07 100644 (file)
@@ -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"