Merge branch 'master' of git://factorcode.org/git/factor
commit
946602b8d7
|
@ -0,0 +1 @@
|
|||
Slava Pestov
|
|
@ -0,0 +1,7 @@
|
|||
! Copyright (C) 2009 Slava Pestov.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: accessors math.rectangles kernel prettyprint.custom prettyprint.backend ;
|
||||
IN: math.rectangles.prettyprint
|
||||
|
||||
M: rect pprint*
|
||||
\ RECT: [ [ loc>> ] [ dim>> ] bi [ pprint* ] bi@ ] pprint-prefix ;
|
|
@ -1,7 +1,7 @@
|
|||
! Copyright (C) 2008, 2009 Slava Pestov.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: kernel arrays sequences math math.vectors accessors
|
||||
parser prettyprint.custom prettyprint.backend ;
|
||||
parser ;
|
||||
IN: math.rectangles
|
||||
|
||||
TUPLE: rect { loc initial: { 0 0 } } { dim initial: { 0 0 } } ;
|
||||
|
@ -10,9 +10,6 @@ TUPLE: rect { loc initial: { 0 0 } } { dim initial: { 0 0 } } ;
|
|||
|
||||
SYNTAX: RECT: scan-object scan-object <rect> parsed ;
|
||||
|
||||
M: rect pprint*
|
||||
\ RECT: [ [ loc>> ] [ dim>> ] bi [ pprint* ] bi@ ] pprint-prefix ;
|
||||
|
||||
: <zero-rect> ( -- rect ) rect new ; inline
|
||||
|
||||
: point>rect ( loc -- rect ) { 0 0 } <rect> ; inline
|
||||
|
@ -64,3 +61,7 @@ M: rect contains-point?
|
|||
[ [ loc>> ] dip (>>loc) ]
|
||||
[ [ dim>> ] dip (>>dim) ]
|
||||
2bi ; inline
|
||||
|
||||
USING: vocabs vocabs.loader ;
|
||||
|
||||
"prettyprint" vocab [ "math.rectangles.prettyprint" require ] when
|
|
@ -3,8 +3,7 @@
|
|||
USING: accessors arrays hashtables kernel models math namespaces
|
||||
make sequences quotations math.vectors combinators sorting
|
||||
binary-search vectors dlists deques models threads
|
||||
concurrency.flags math.order math.rectangles fry locals
|
||||
prettyprint.backend prettyprint.custom ;
|
||||
concurrency.flags math.order math.rectangles fry locals ;
|
||||
IN: ui.gadgets
|
||||
|
||||
! Values for orientation slot
|
||||
|
@ -28,9 +27,6 @@ interior
|
|||
boundary
|
||||
model ;
|
||||
|
||||
! Don't print gadgets with RECT: syntax
|
||||
M: gadget pprint* pprint-tuple ;
|
||||
|
||||
M: gadget equal? 2drop f ;
|
||||
|
||||
M: gadget hashcode* nip [ [ \ gadget counter ] unless* ] change-id id>> ;
|
||||
|
@ -397,3 +393,7 @@ M: f request-focus-on 2drop ;
|
|||
|
||||
: focus-path ( gadget -- seq )
|
||||
[ focus>> ] follow ;
|
||||
|
||||
USING: vocabs vocabs.loader ;
|
||||
|
||||
"prettyprint" vocab [ "ui.gadgets.prettyprint" require ] when
|
|
@ -0,0 +1 @@
|
|||
Slava Pestov
|
|
@ -0,0 +1,7 @@
|
|||
! Copyright (C) 2009 Slava Pestov.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: ui.gadgets prettyprint.backend prettyprint.custom ;
|
||||
IN: ui.gadgets.prettyprint
|
||||
|
||||
! Don't print gadgets with RECT: syntax
|
||||
M: gadget pprint* pprint-tuple ;
|
|
@ -163,7 +163,7 @@ M: hi-tag-dispatch-engine compile-engine
|
|||
|
||||
: build-fast-hash ( methods -- buckets )
|
||||
>alist V{ } clone [ hashcode 1array ] distribute-buckets
|
||||
[ compile-engines* >alist >array ] map ;
|
||||
[ compile-engines* >alist { } join ] map ;
|
||||
|
||||
M: echelon-dispatch-engine compile-engine
|
||||
dup n>> 0 = [
|
||||
|
|
|
@ -8,15 +8,14 @@ cell megamorphic_cache_misses;
|
|||
|
||||
static cell search_lookup_alist(cell table, cell klass)
|
||||
{
|
||||
array *pairs = untag<array>(table);
|
||||
fixnum index = array_capacity(pairs) - 1;
|
||||
array *elements = untag<array>(table);
|
||||
fixnum index = array_capacity(elements) - 2;
|
||||
while(index >= 0)
|
||||
{
|
||||
array *pair = untag<array>(array_nth(pairs,index));
|
||||
if(array_nth(pair,0) == klass)
|
||||
return array_nth(pair,1);
|
||||
if(array_nth(elements,index) == klass)
|
||||
return array_nth(elements,index + 1);
|
||||
else
|
||||
index--;
|
||||
index -= 2;
|
||||
}
|
||||
|
||||
return F;
|
||||
|
|
Loading…
Reference in New Issue