diff options
Diffstat (limited to 'dev-lisp/sbcl/files/1.1.6-fix-svref.patch')
-rw-r--r-- | dev-lisp/sbcl/files/1.1.6-fix-svref.patch | 59 |
1 files changed, 0 insertions, 59 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 deleted file mode 100644 index 95861ad7c02c..000000000000 --- a/dev-lisp/sbcl/files/1.1.6-fix-svref.patch +++ /dev/null @@ -1,59 +0,0 @@ -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)))))) |