1.0.16.42: Fix LOCALLY in fopcompiled context
authorChristophe Rhodes <csr21@cantab.net>
Wed, 21 May 2008 12:25:44 +0000 (12:25 +0000)
committerChristophe Rhodes <csr21@cantab.net>
Wed, 21 May 2008 12:25:44 +0000 (12:25 +0000)
Patch by Juho Snellman; gentle prodding by Attila Lendvai.

NEWS
src/compiler/fopcompile.lisp
tests/compiler.test.sh
tests/expect.sh
version.lisp-expr

diff --git a/NEWS b/NEWS
index d496869..d6e2011 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -41,6 +41,8 @@ changes in sbcl-1.0.17 relative to 1.0.16:
     2.18.50.0.4 support.  (thanks to Marijn Schouten)
   * bug fix: fix ECASE warnings from CMUCL-as-xc-host.  (reported by
     Andreas Franke)
+  * bug fix: the fopcompiler can handle LOCALLY forms (with no
+    declarations) successfully.  (reported by Attila Lendvai)
 
 changes in sbcl-1.0.16 relative to 1.0.15:
   * minor incompatible change: revert the changes to sb-posix's error
index 3ddc35c..1a33385 100644 (file)
                                     for-value-p)))
                    ((if)
                     (fopcompile-if args path for-value-p))
-                   ((progn)
+                   ((progn locally)
                     (loop for (arg . next) on args
                           do (fopcompile arg
                                          path (if next
index 48aa64e..548f9ee 100644 (file)
@@ -379,5 +379,10 @@ cat > $tmpfilename <<EOF
 EOF
 expect_aborted_compile $tmpfilename
 
+cat > $tmpfilename <<EOF
+(if t (locally))
+EOF
+expect_clean_cload $tmpfilename
+
 # success
 exit $EXIT_TEST_WIN
index 5919750..60cbdc8 100644 (file)
@@ -30,6 +30,19 @@ EOF
     check_status_maybe_lose load-into-interpreter $?
 }
 
+expect_clean_cload ()
+{
+    expect_clean_compile $1
+    run_sbcl <<EOF
+        (multiple-value-bind (value0 value1) 
+            (ignore-errors (load (compile-file-pathname "$1")))
+          (assert value0)
+          (assert (null value1)))
+        (sb-ext:quit :unix-status $EXIT_LISP_WIN)
+EOF
+    check_status_maybe_lose load-compiled $?
+}
+
 # Test that a file compiles cleanly, with no ERRORs, WARNINGs or
 # STYLE-WARNINGs.
 expect_clean_compile ()
index 7268658..88d46d3 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".)
-"1.0.16.41"
+"1.0.16.42"