summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
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.patch59
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))))))