diff options
author | 2013-04-20 14:17:45 +0000 | |
---|---|---|
committer | 2013-04-20 14:17:45 +0000 | |
commit | fbfd9cca17b4ed84143529d6cde2d37b764e7c52 (patch) | |
tree | 478ccdd5b7172eeacca86c4dc8614174ca0baef6 /dev-lisp/sbcl/files | |
parent | Fix src_configure. (diff) | |
download | historical-fbfd9cca17b4ed84143529d6cde2d37b764e7c52.tar.gz historical-fbfd9cca17b4ed84143529d6cde2d37b764e7c52.tar.bz2 historical-fbfd9cca17b4ed84143529d6cde2d37b764e7c52.zip |
Version bump from the lisp overlay (pmasked)
Package-Manager: portage-2.2.0_alpha173/cvs/Linux i686
Manifest-Sign-Key: 0x3AFFCE974D34BD8C!
Diffstat (limited to 'dev-lisp/sbcl/files')
-rw-r--r-- | dev-lisp/sbcl/files/1.1.6-fix-svref.patch | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/dev-lisp/sbcl/files/1.1.6-fix-svref.patch b/dev-lisp/sbcl/files/1.1.6-fix-svref.patch new file mode 100644 index 000000000000..95861ad7c02c --- /dev/null +++ b/dev-lisp/sbcl/files/1.1.6-fix-svref.patch @@ -0,0 +1,59 @@ +commit 66ee499237be5778b44b0d7b2de396562137228e +Author: Paul Khuong <pvk@pvk.ca> +Date: Sat Mar 30 19:22:46 2013 +0100 + + Fix a compilation failure on svref of a symbol macro + + Introduced in 0892423b (faster SVREF and (SETF SVREF) compilation) + + Thanks to James M. Lawrence for the quick report, with a reduced + test case. + +diff --git a/NEWS b/NEWS +index 0774be8..0357268 100644 +--- a/NEWS ++++ b/NEWS +@@ -1,4 +1,8 @@ + ;;;; -*- coding: utf-8; fill-column: 78 -*- ++changes relative to sbcl-1.1.6 ++ * bug fix: svref/(setf svref) on symbol macros don't crash the compiler ++ anymore. (Minimal test case provided by James M. Lawrence on sbcl-devel) ++ + changes in sbcl-1.1.6 relative to sbcl-1.1.5: + * enhancement: the continuable error when defknown-ing over extant + fndb entries can be ignored by passing :overwrite-fndb-silently t +diff --git a/src/compiler/array-tran.lisp b/src/compiler/array-tran.lisp +index a595e63..d70cdb5 100644 +--- a/src/compiler/array-tran.lisp ++++ b/src/compiler/array-tran.lisp +@@ -1023,7 +1023,7 @@ + (define-source-transform svref (vector index) + (let ((elt-type (or (when (symbolp vector) + (let ((var (lexenv-find vector vars))) +- (when var ++ (when (lambda-var-p var) + (type-specifier + (array-type-declared-element-type (lambda-var-type var)))))) + t))) +@@ -1036,7 +1036,7 @@ + (define-source-transform %svset (vector index value) + (let ((elt-type (or (when (symbolp vector) + (let ((var (lexenv-find vector vars))) +- (when var ++ (when (lambda-var-p var) + (type-specifier + (array-type-declared-element-type (lambda-var-type var)))))) + t))) +diff --git a/tests/compiler.pure.lisp b/tests/compiler.pure.lisp +index 833c5ee..1a4fc7d 100644 +--- a/tests/compiler.pure.lisp ++++ b/tests/compiler.pure.lisp +@@ -4378,3 +4378,8 @@ + (with-test (:name :second-open-coded) + (let ((fun (compile nil `(lambda (x) (second x))))) + (assert (not (ctu:find-named-callees fun))))) ++ ++(with-test (:name :svref-of-symbol-macro) ++ (compile nil `(lambda (x) ++ (symbol-macrolet ((sv x)) ++ (values (svref sv 0) (setf (svref sv 0) 99)))))) |