diff --git a/basis/compiler/cfg/liveness/liveness-tests.factor b/basis/compiler/cfg/liveness/liveness-tests.factor index fbd375c027..cb95300ca0 100644 --- a/basis/compiler/cfg/liveness/liveness-tests.factor +++ b/basis/compiler/cfg/liveness/liveness-tests.factor @@ -1,11 +1,10 @@ USING: accessors alien assocs compiler.cfg compiler.cfg.comparisons compiler.cfg.def-use compiler.cfg.instructions compiler.cfg.liveness compiler.cfg.registers compiler.cfg.ssa.destruction.leaders -compiler.cfg.utilities compiler.test cpu.architecture +compiler.cfg.utilities compiler.test compiler.utilities cpu.architecture cpu.x86.assembler.operands kernel math namespaces sequences system tools.test ; IN: compiler.cfg.liveness.tests -QUALIFIED: sets ! compute-edge-live-in { H{ } } [ @@ -71,7 +70,7 @@ QUALIFIED: sets { 124 double-2-rep } { 125 tagged-rep } } representations set - { 123 124 125 } sets:unique gc-roots + { 123 124 125 } unique gc-roots ] unit-test ! gen-uses diff --git a/basis/compiler/cfg/liveness/liveness.factor b/basis/compiler/cfg/liveness/liveness.factor index d8eb1614b9..f78c336d6f 100644 --- a/basis/compiler/cfg/liveness/liveness.factor +++ b/basis/compiler/cfg/liveness/liveness.factor @@ -1,11 +1,11 @@ ! Copyright (C) 2009, 2010 Slava Pestov. ! See http://factorcode.org/license.txt for BSD license. USING: accessors assocs combinators combinators.short-circuit -compiler.cfg.def-use compiler.cfg.instructions compiler.cfg.predecessors -compiler.cfg.registers compiler.cfg.rpo -compiler.cfg.ssa.destruction.leaders compiler.cfg.utilities -cpu.architecture deques dlists fry kernel locals namespaces -sequences sets ; +compiler.cfg.def-use compiler.cfg.instructions +compiler.cfg.predecessors compiler.cfg.registers +compiler.cfg.rpo compiler.cfg.ssa.destruction.leaders +compiler.cfg.utilities compiler.utilities cpu.architecture +deques dlists fry kernel locals namespaces sequences sets ; IN: compiler.cfg.liveness SYMBOL: live-ins diff --git a/basis/compiler/cfg/parallel-copy/parallel-copy.factor b/basis/compiler/cfg/parallel-copy/parallel-copy.factor index a67bdf15c8..696f532e78 100644 --- a/basis/compiler/cfg/parallel-copy/parallel-copy.factor +++ b/basis/compiler/cfg/parallel-copy/parallel-copy.factor @@ -1,9 +1,9 @@ ! Copyright (C) 2009 Slava Pestov. ! See http://factorcode.org/license.txt for BSD license. USING: assocs compiler.cfg.instructions compiler.cfg.registers -compiler.cfg.ssa.destruction.leaders cpu.architecture deques -dlists fry kernel locals make namespaces sequences ; -QUALIFIED: sets +compiler.cfg.ssa.destruction.leaders compiler.utilities +cpu.architecture deques dlists fry kernel locals make namespaces +sequences ; IN: compiler.cfg.parallel-copy diff --git a/basis/compiler/cfg/ssa/destruction/coalescing/coalescing-tests.factor b/basis/compiler/cfg/ssa/destruction/coalescing/coalescing-tests.factor index 2e213d02c8..d119e17958 100644 --- a/basis/compiler/cfg/ssa/destruction/coalescing/coalescing-tests.factor +++ b/basis/compiler/cfg/ssa/destruction/coalescing/coalescing-tests.factor @@ -1,9 +1,9 @@ USING: assocs compiler.cfg.def-use compiler.cfg.instructions compiler.cfg.registers compiler.cfg.ssa.destruction.coalescing -compiler.cfg.ssa.destruction.leaders compiler.cfg.ssa.interference -compiler.cfg.utilities cpu.architecture grouping kernel make +compiler.cfg.ssa.destruction.leaders +compiler.cfg.ssa.interference compiler.cfg.utilities +compiler.utilities cpu.architecture grouping kernel make namespaces random sequences tools.test ; -QUALIFIED: sets IN: compiler.cfg.ssa.destruction.coalescing.tests ! eliminatable-copy? @@ -104,7 +104,7 @@ IN: compiler.cfg.ssa.destruction.coalescing.tests { t } [ 10 [ - { 2286 2287 2288 } sets:unique leader-map set + { 2286 2287 2288 } unique leader-map set 2286 make-phi-inputs ##phi new-insn coalesce-now 2286 leader diff --git a/basis/compiler/cfg/ssa/destruction/coalescing/coalescing.factor b/basis/compiler/cfg/ssa/destruction/coalescing/coalescing.factor index 22ab8d5ff8..e488b320d0 100644 --- a/basis/compiler/cfg/ssa/destruction/coalescing/coalescing.factor +++ b/basis/compiler/cfg/ssa/destruction/coalescing/coalescing.factor @@ -1,8 +1,9 @@ USING: accessors arrays assocs compiler.cfg.def-use compiler.cfg.instructions compiler.cfg.linearization compiler.cfg.registers compiler.cfg.ssa.destruction.leaders -compiler.cfg.ssa.interference cpu.architecture fry kernel make -namespaces sequences sets sorting ; +compiler.cfg.ssa.interference compiler.utilities +cpu.architecture fry kernel make namespaces sequences sets +sorting ; IN: compiler.cfg.ssa.destruction.coalescing : zip-scalar ( scalar seq -- pairs ) diff --git a/basis/compiler/cfg/utilities/utilities.factor b/basis/compiler/cfg/utilities/utilities.factor index e09ad88735..8bbf408650 100644 --- a/basis/compiler/cfg/utilities/utilities.factor +++ b/basis/compiler/cfg/utilities/utilities.factor @@ -1,8 +1,9 @@ ! Copyright (C) 2008, 2010 Slava Pestov. ! See http://factorcode.org/license.txt for BSD license. -USING: accessors arrays assocs combinators.short-circuit compiler.cfg -compiler.cfg.instructions compiler.cfg.rpo cpu.architecture deques fry -heaps kernel locals macros math sequences sets ; +USING: accessors arrays assocs combinators.short-circuit +compiler.cfg compiler.cfg.instructions compiler.cfg.rpo +cpu.architecture deques fry hashtables heaps kernel locals +macros math sequences sets ; IN: compiler.cfg.utilities : block>cfg ( bb -- cfg ) diff --git a/basis/compiler/utilities/utilities.factor b/basis/compiler/utilities/utilities.factor index 4fb30e8c2b..3c4baae41e 100644 --- a/basis/compiler/utilities/utilities.factor +++ b/basis/compiler/utilities/utilities.factor @@ -1,7 +1,7 @@ ! Copyright (C) 2008, 2009 Slava Pestov. ! See http://factorcode.org/license.txt for BSD license. -USING: arrays assocs fry kernel locals math math.order -namespaces sequences vectors ; +USING: arrays assocs fry hashtables kernel locals math +math.order namespaces sequences vectors ; IN: compiler.utilities : flattener ( seq quot -- seq vector quot' ) @@ -47,3 +47,12 @@ yield-hook [ [ ] ] initialize ] unless destination' ] if ; + +: unique ( seq -- assoc ) + [ dup ] H{ } map>assoc ; + +: conjoin ( elt assoc -- ) + dupd set-at ; + +: conjoin-at ( value key assoc -- ) + [ dupd ?set-at ] change-at ; diff --git a/basis/math/vectors/simd/simd-tests.factor b/basis/math/vectors/simd/simd-tests.factor index 6bdb270e57..cefe886b72 100644 --- a/basis/math/vectors/simd/simd-tests.factor +++ b/basis/math/vectors/simd/simd-tests.factor @@ -238,16 +238,18 @@ TUPLE: simd-test-failure word '[ _ execute ] ; : remove-float-words ( alist -- alist' ) - { distance vsqrt n/v v/n v/ normalize } unique assoc-diff ; + { distance vsqrt n/v v/n v/ normalize } + '[ drop _ member? ] assoc-reject ; : remove-integer-words ( alist -- alist' ) - { vlshift vrshift v*high v*hs+ } unique assoc-diff ; + { vlshift vrshift v*high v*hs+ } + '[ drop _ member? ] assoc-reject ; : boolean-ops ( -- words ) { vand vandn vor vxor vnot vcount } ; : remove-boolean-words ( alist -- alist' ) - boolean-ops unique assoc-diff ; + boolean-ops '[ drop _ member? ] assoc-reject ; : ops-to-check ( elt-class -- alist ) [ vector-words >alist ] dip diff --git a/basis/unicode/data/data.factor b/basis/unicode/data/data.factor index ed77842365..397f483974 100644 --- a/basis/unicode/data/data.factor +++ b/basis/unicode/data/data.factor @@ -108,10 +108,10 @@ PRIVATE> : exclusions ( -- set ) exclusions-file utf8 file-lines [ "#" split1 drop [ blank? ] trim-tail hex> ] map - [ 0 = ] reject ; + [ 0 = ] reject fast-set ; : remove-exclusions ( alist -- alist ) - exclusions unique assoc-diff ; + exclusions [ nip sets:in? ] curry assoc-reject ; : process-canonical ( data -- hash hash ) (process-decomposed) [ first* ] filter diff --git a/core/assocs/assocs-docs.factor b/core/assocs/assocs-docs.factor index 731313f702..36b1730ba8 100644 --- a/core/assocs/assocs-docs.factor +++ b/core/assocs/assocs-docs.factor @@ -1,8 +1,7 @@ ! Copyright (C) 2007, 2009 Daniel Ehrenberg, Slava Pestov, and Doug Coleman ! See http://factorcode.org/license.txt for BSD license. -USING: help.markup help.syntax kernel sequences -sequences.private namespaces math quotations assocs.private -sets ; +USING: assocs.private help.markup help.syntax kernel math +namespaces quotations sequences ; IN: assocs ARTICLE: "alists" "Association lists" @@ -103,11 +102,6 @@ $nl substitute extract-keys } -"Adding elements to sets:" -{ $subsections - conjoin - conjoin-at -} "Destructive operations:" { $subsections assoc-union! diff --git a/core/sets/sets.factor b/core/sets/sets.factor index 9000bdd926..990b33d6f8 100644 --- a/core/sets/sets.factor +++ b/core/sets/sets.factor @@ -169,12 +169,3 @@ M: sequence clear-set : intersect! ( set1 set2 -- set1 ) dupd sequence/tester [ dup ] prepose [ not ] compose pick [ delete ] curry [ [ drop ] if ] curry compose each ; - -! Temporarily for compatibility - -: unique ( seq -- assoc ) - [ dup ] H{ } map>assoc ; -: conjoin ( elt assoc -- ) - dupd set-at ; -: conjoin-at ( value key assoc -- ) - [ dupd ?set-at ] change-at ; diff --git a/extra/smalltalk/compiler/compiler.factor b/extra/smalltalk/compiler/compiler.factor index c7f4807faf..f5a519f97d 100644 --- a/extra/smalltalk/compiler/compiler.factor +++ b/extra/smalltalk/compiler/compiler.factor @@ -67,9 +67,9 @@ M: ast-return compile-ast : block-lexenv ( block -- lexenv ) [ [ arguments>> ] [ temporaries>> ] bi append ] - [ body>> [ assigned-locals ] map concat unique ] bi + [ body>> [ assigned-locals ] map concat fast-set ] bi '[ - dup dup _ key? + dup dup _ in? [ ] [ ] if