summaryrefslogtreecommitdiff
path: root/lang/sbcl
diff options
context:
space:
mode:
authorBrendan Fabeny <bf@FreeBSD.org>2013-03-03 15:55:04 +0000
committerBrendan Fabeny <bf@FreeBSD.org>2013-03-03 15:55:04 +0000
commita6005117606a1fc60787de3e56f9f29f85943614 (patch)
tree8aed0df263b674b6b2e8e62a64b840dab9abcb22 /lang/sbcl
parent- Fix stat option in appearance-install-theme script (diff)
update lang/sbcl to 1.1.5+bugfixes, and adjust dependent ports
Notes
Notes: svn path=/head/; revision=313363
Diffstat (limited to 'lang/sbcl')
-rw-r--r--lang/sbcl/Makefile8
-rw-r--r--lang/sbcl/distinfo8
-rw-r--r--lang/sbcl/files/patch-20130303101
3 files changed, 112 insertions, 5 deletions
diff --git a/lang/sbcl/Makefile b/lang/sbcl/Makefile
index 564ab9672b54..87093a20d955 100644
--- a/lang/sbcl/Makefile
+++ b/lang/sbcl/Makefile
@@ -5,7 +5,7 @@
#
PORTNAME= sbcl
-PORTVERSION= 1.1.4
+PORTVERSION= 1.1.5
PORTEPOCH= 1
CATEGORIES= lang lisp
MASTER_SITES= SF/${PORTNAME}/${PORTNAME}/${PORTVERSION} \
@@ -175,6 +175,12 @@ post-patch:
${WRKSRC}/tests/threads.impure.lisp
@${REINPLACE_CMD} -e 's|( cd ./doc ; sh ./clean.sh )|#&|' \
${WRKSRC}/clean.sh
+ @case "`${CC} --version`" in \
+ *clang*) \
+ ${REINPLACE_CMD} -e '/#define END()/s/\.end//' \
+ ${WRKSRC}/src/runtime/x86-assem.S \
+ ${WRKSRC}/src/runtime/x86-64-assem.S ;; \
+ esac
do-build:
@${FIND} ${WRKSRC} \( -name '*.orig' -o -name '*.bak' \) -delete
diff --git a/lang/sbcl/distinfo b/lang/sbcl/distinfo
index f659fadfd21e..0a14bfeb0436 100644
--- a/lang/sbcl/distinfo
+++ b/lang/sbcl/distinfo
@@ -1,7 +1,7 @@
-SHA256 (sbcl-1.1.4-source.tar.bz2) = 468bd52f8a15584ffdca2356f6c85b7053a72a321c309dfff37e340d0d4af7cc
-SIZE (sbcl-1.1.4-source.tar.bz2) = 3702076
-SHA256 (sbcl-1.1.4-documentation-html.tar.bz2) = d474ef7a50c4e53d5882dab237daa102b6675e86d206744b74b7bb5c253dd390
-SIZE (sbcl-1.1.4-documentation-html.tar.bz2) = 178787
+SHA256 (sbcl-1.1.5-source.tar.bz2) = e870780f85586d87c6873e2252bfbf6a0e80bbe433cb2c573e3ae704954a9107
+SIZE (sbcl-1.1.5-source.tar.bz2) = 3716584
+SHA256 (sbcl-1.1.5-documentation-html.tar.bz2) = 1b196bf5a0807acf0bdfef5785c5d667fdb27858145efaa5ca376cd37c8659e0
+SIZE (sbcl-1.1.5-documentation-html.tar.bz2) = 180398
SHA256 (sbcl-1.0.31-amd64-freebsd8-binary.tar.bz2) = 06a1e4e3a5f5f8e012ff6037a51624d7d1f34bff0979ce45e70418a293412b4e
SIZE (sbcl-1.0.31-amd64-freebsd8-binary.tar.bz2) = 8397764
SHA256 (sbcl-1.0.31-amd64-freebsd7-binary.tar.bz2) = fcbd5ed1948312a7b6eff7e6daf736e41be945a2c57bcee4b64f172ddde518b8
diff --git a/lang/sbcl/files/patch-20130303 b/lang/sbcl/files/patch-20130303
new file mode 100644
index 000000000000..8406a09cf715
--- /dev/null
+++ b/lang/sbcl/files/patch-20130303
@@ -0,0 +1,101 @@
+diff --git NEWS NEWS
+index ca2919b..5ff7f27 100644
+--- NEWS
++++ NEWS
+@@ -1,4 +1,9 @@
+ ;;;; -*- coding: utf-8; fill-column: 78 -*-
++changes relative to sbcl-1.1.5:
++ * bug fix: Prevent a make-array transform from modifying source forms
++ causing problems for inlined code. Thanks to Bart Botta.
++ (regression since 1.0.42.11-bis)
++
+ changes in sbcl-1.1.5 relative to sbcl-1.1.4:
+ * minor incompatible change: SB-SPROF:WITH-PROFILING no longer loops
+ by default.
+diff --git src/compiler/array-tran.lisp src/compiler/array-tran.lisp
+index baf1b98..02c5c37 100644
+--- src/compiler/array-tran.lisp
++++ src/compiler/array-tran.lisp
+@@ -372,7 +372,8 @@
+ (values dimensions nil))))
+ (let ((initial-contents (getf keyargs :initial-contents)))
+ (when (and initial-contents rank)
+- (setf (getf keyargs :initial-contents)
++ (setf keyargs (copy-list keyargs)
++ (getf keyargs :initial-contents)
+ (rewrite-initial-contents rank initial-contents env))))
+ `(locally (declare (notinline list vector))
+ (make-array ,new-dimensions ,@keyargs)))))
+diff --git tests/float.impure.lisp tests/float.impure.lisp
+index daef1f2..29ca23b 100644
+--- tests/float.impure.lisp
++++ tests/float.impure.lisp
+@@ -248,8 +248,11 @@
+ (flet ((almost= (x y)
+ (< (abs (- x y)) 1d-5)))
+ (macrolet ((foo (op value)
+- `(assert (almost= (,op (mod ,value (* 2 pi)))
+- (,op ,value)))))
++ `(let ((actual (,op ,value))
++ (expected (,op (mod ,value (* 2 pi)))))
++ (unless (almost= actual expected)
++ (error "Inaccurate result for ~a: expected ~a, got ~a"
++ (list ',op ,value) expected actual)))))
+ (let ((big (* pi (expt 2d0 70)))
+ (mid (coerce most-positive-fixnum 'double-float))
+ (odd (* pi most-positive-fixnum)))
+diff --git tests/test-util.lisp tests/test-util.lisp
+index 20b2c54..d6246bf 100644
+--- tests/test-util.lisp
++++ tests/test-util.lisp
+@@ -39,7 +39,7 @@
+ (defmacro with-test ((&key fails-on broken-on skipped-on name)
+ &body body)
+ (let ((block-name (gensym))
+- (threads (gensym "THREADS")))
++ #+sb-thread (threads (gensym "THREADS")))
+ `(progn
+ (start-test)
+ (cond
+diff --git tests/threads.impure.lisp tests/threads.impure.lisp
+index ddd1ef0..7ebc17c 100644
+--- tests/threads.impure.lisp
++++ tests/threads.impure.lisp
+@@ -37,18 +37,6 @@
+ (with-mutex (mutex)
+ mutex)))
+
+-(with-test (:name (:with-mutex :timeout))
+- (let ((m (make-mutex)))
+- (with-mutex (m)
+- (assert (null (join-thread (make-thread
+- (lambda ()
+- (with-mutex (m :timeout 0.1)
+- t)))))))
+- (assert (join-thread (make-thread
+- (lambda ()
+- (with-mutex (m :timeout 0.1)
+- t)))))))
+-
+ (sb-alien:define-alien-routine "check_deferrables_blocked_or_lose"
+ void
+ (where sb-alien:unsigned-long))
+@@ -84,6 +72,18 @@
+
+ ;;;; Now the real tests...
+
++(with-test (:name (:with-mutex :timeout))
++ (let ((m (make-mutex)))
++ (with-mutex (m)
++ (assert (null (join-thread (make-thread
++ (lambda ()
++ (with-mutex (m :timeout 0.1)
++ t)))))))
++ (assert (join-thread (make-thread
++ (lambda ()
++ (with-mutex (m :timeout 0.1)
++ t)))))))
++
+ (with-test (:name (:interrupt-thread :deferrables-unblocked-by-lock))
+ (let ((lock (sb-thread::make-mutex))
+ (thread (make-join-thread (lambda ()