Faster tuple predicates

release
slava 2006-07-24 05:22:01 +00:00
parent 7c85cc68c6
commit 378b157153
1 changed files with 5 additions and 6 deletions

View File

@ -7,9 +7,6 @@ vectors words ;
IN: kernel-internals
: class-tuple ( object -- class )
dup tuple? [ 2 slot ] [ drop f ] if ; inline
: tuple= ( tuple tuple -- ? )
2dup [ array-capacity ] 2apply number= [
dup array-capacity
@ -24,9 +21,11 @@ IN: generic
dup tuple? [ 2 slot ] [ type type>class ] if ; inline
: tuple-predicate ( word -- )
dup predicate-word
[ \ class-tuple , over literalize , \ eq? , ] [ ] make
define-predicate ;
dup predicate-word [
[ dup tuple? ] %
[ [ 2 slot ] % over literalize , \ eq? , ] [ ] make ,
[ [ drop f ] if ] %
] [ ] make define-predicate ;
: forget-tuple ( class -- )
dup forget "predicate" word-prop first [ forget ] when* ;