From: Alastair B. <lis...@us...> - 2013-05-02 00:41:30
|
The branch "master" has been updated in SBCL: via e57446ab7db28aca5599d8a2c62cfc3b4b9bbffa (commit) from 427da7910cc5d8398f19def9a02f3fa13c798c25 (commit) - Log ----------------------------------------------------------------- commit e57446ab7db28aca5599d8a2c62cfc3b4b9bbffa Author: Alastair Bridgewater <ny...@la...> Date: Wed Apr 24 13:12:23 2013 -0400 Add test cases for non-consing WITHOUT-GCING and WITH-PINNED-OBJECTS. * Neither of these two constructs should cons under normal circumstances, but WITH-PINNED-OBJECTS is occasionally broken in this respect on some backends. May as well make it explicit and official. --- tests/dynamic-extent.impure.lisp | 15 +++++++++++++++ 1 files changed, 15 insertions(+), 0 deletions(-) diff --git a/tests/dynamic-extent.impure.lisp b/tests/dynamic-extent.impure.lisp index 3a227eb..ee1244b 100644 --- a/tests/dynamic-extent.impure.lisp +++ b/tests/dynamic-extent.impure.lisp @@ -633,6 +633,21 @@ (with-test (:name (:no-consing :hash-tables) :fails-on '(and :ppc :sb-thread)) (assert-no-consing (test-hash-table))) +;;; Both with-pinned-objects and without-gcing should not cons + +(defun call-without-gcing (fun) + (sb-sys:without-gcing (funcall fun))) + +(defun call-with-pinned-object (fun obj) + (sb-sys:with-pinned-objects (obj) + (funcall fun obj))) + +(with-test (:name (:no-consing :without-gcing)) + (assert-no-consing (call-without-gcing (lambda ())))) + +(with-test (:name (:no-consing :with-pinned-objects)) + (assert-no-consing (call-with-pinned-object #'identity 42))) + ;;; with-mutex should use DX and not cons (defvar *mutex* (sb-thread::make-mutex :name "mutexlock")) ----------------------------------------------------------------------- hooks/post-receive -- SBCL |