[prev in list] [next in list] [prev in thread] [next in thread]
List: sbcl-commits
Subject: [Sbcl-commits] master: Implement CLOSUREP without using WIDETAG-OF
From: "Douglas Katzman" <snuglas () users ! sourceforge ! net>
Date: 2014-04-28 15:06:01
Message-ID: E1Wen8J-0000Je-Ok () sfs-ml-4 ! v29 ! ch3 ! sourceforge ! com
[Download RAW message or body]
The branch "master" has been updated in SBCL:
via 6657f58827bc1b4d1b3e1c53a7b2397d0fc014e4 (commit)
from 97ea245146c433449b360c7cf0e2755104634d2d (commit)
- Log -----------------------------------------------------------------
commit 6657f58827bc1b4d1b3e1c53a7b2397d0fc014e4
Author: Douglas Katzman <dougk@google.com>
Date: Mon Apr 28 10:49:48 2014 -0400
Implement CLOSUREP without using WIDETAG-OF
---
src/code/kernel.lisp | 3 +--
src/compiler/generic/late-type-vops.lisp | 2 ++
src/compiler/generic/vm-fndb.lisp | 1 +
src/compiler/typetran.lisp | 1 +
4 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/src/code/kernel.lisp b/src/code/kernel.lisp
index 18dfabe..653d68b 100644
--- a/src/code/kernel.lisp
+++ b/src/code/kernel.lisp
@@ -164,9 +164,8 @@
;;;; CLOSURE type and accessors
-(declaim (inline closurep))
(defun closurep (object)
- (= sb!vm:closure-header-widetag (widetag-of object)))
+ (closurep object))
(deftype closure ()
'(satisfies closurep))
diff --git a/src/compiler/generic/late-type-vops.lisp b/src/compiler/generic/late-type-vops.lisp
index 4a9016b..c83542b 100644
--- a/src/compiler/generic/late-type-vops.lisp
+++ b/src/compiler/generic/late-type-vops.lisp
@@ -110,6 +110,8 @@
(!define-type-vops fdefn-p nil nil nil
(fdefn-widetag))
+(!define-type-vops closurep nil nil nil (closure-header-widetag))
+
(!define-type-vops funcallable-instance-p nil nil nil
(funcallable-instance-header-widetag))
diff --git a/src/compiler/generic/vm-fndb.lisp b/src/compiler/generic/vm-fndb.lisp
index 4416b8b..744fef5 100644
--- a/src/compiler/generic/vm-fndb.lisp
+++ b/src/compiler/generic/vm-fndb.lisp
@@ -63,6 +63,7 @@
#!+#.(cl:if (cl:= 64 sb!vm:n-word-bits) '(and) '(or))
signed-byte-64-p
weak-pointer-p code-component-p lra-p
+ closurep
funcallable-instance-p)
(t) boolean (movable foldable flushable))
diff --git a/src/compiler/typetran.lisp b/src/compiler/typetran.lisp
index 840a4dc..dec9679 100644
--- a/src/compiler/typetran.lisp
+++ b/src/compiler/typetran.lisp
@@ -195,6 +195,7 @@
(define-type-predicate simple-vector-p simple-vector)
(define-type-predicate stringp string)
(define-type-predicate %instancep instance)
+ (define-type-predicate closurep closure)
(define-type-predicate funcallable-instance-p funcallable-instance)
(define-type-predicate symbolp symbol)
(define-type-predicate vectorp vector))
-----------------------------------------------------------------------
hooks/post-receive
--
SBCL
------------------------------------------------------------------------------
"Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE
Instantly run your Selenium tests across 300+ browser/OS combos. Get
unparalleled scalability from the best Selenium testing platform available.
Simple to use. Nothing to install. Get started now for free."
http://p.sf.net/sfu/SauceLabs
_______________________________________________
Sbcl-commits mailing list
Sbcl-commits@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sbcl-commits
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic