]> gitweb.factorcode.org Git - factor.git/commitdiff
sets: moving unique/conjoin/conjoin-at to compiler.utilities.
authorJohn Benediktsson <mrjbq7@gmail.com>
Wed, 8 Feb 2017 02:54:24 +0000 (18:54 -0800)
committerJohn Benediktsson <mrjbq7@gmail.com>
Wed, 8 Feb 2017 02:54:24 +0000 (18:54 -0800)
12 files changed:
basis/compiler/cfg/liveness/liveness-tests.factor
basis/compiler/cfg/liveness/liveness.factor
basis/compiler/cfg/parallel-copy/parallel-copy.factor
basis/compiler/cfg/ssa/destruction/coalescing/coalescing-tests.factor
basis/compiler/cfg/ssa/destruction/coalescing/coalescing.factor
basis/compiler/cfg/utilities/utilities.factor
basis/compiler/utilities/utilities.factor
basis/math/vectors/simd/simd-tests.factor
basis/unicode/data/data.factor
core/assocs/assocs-docs.factor
core/sets/sets.factor
extra/smalltalk/compiler/compiler.factor

index fbd375c02717502fb058be474a5a255904245335..cb95300ca089fbd2a974000d4f99df173c1206b5 100644 (file)
@@ -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
index d8eb1614b94e813cec24a7facfc7c0428a5c505f..f78c336d6fa34c3415158249e8e7c52ac7c2cec0 100644 (file)
@@ -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
index a67bdf15c8483016c1bde25be272915a8f8a0270..696f532e783cd7d6939011f67aaf01540abd16d0 100644 (file)
@@ -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
 
 <PRIVATE
@@ -60,7 +60,7 @@ SYMBOL: temp-vregs
 
 : temp-vreg ( rep -- vreg )
     temp-vregs get [ next-vreg-rep ] cache
-    [ leader-map get sets:conjoin ] keep ;
+    [ leader-map get conjoin ] keep ;
 
 PRIVATE>
 
index 2e213d02c890cd816892abe839c9b0157a1b5b4e..d119e17958d8fef27112ee1c76bb3fc26c001e73 100644 (file)
@@ -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
index 22ab8d5ff84c307a76e22ad0f12980ae02e68299..e488b320d028aed7409a881190825350afc0c045 100644 (file)
@@ -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 )
index e09ad88735f2b188d2a5f0a9fb6818ca3337ca8d..8bbf4086507fc4aaa45d65f285ff07c2283272e4 100644 (file)
@@ -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 )
index 4fb30e8c2b0f4efd38cbc8932a23bf7c8d64dc59..3c4baae41e0592b307fd6b04cb677a422b2403d4 100644 (file)
@@ -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 ;
index 6bdb270e5719bfdacdbf1db8d8916914e2d1ae31..cefe886b7234589aea753e5db731cf84b5ad5bda 100644 (file)
@@ -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
index ed778423651661dc887a086e76d6d85df637fdc6..397f4839747d1653cbe78677bcbfaee6c28b5ba1 100644 (file)
@@ -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
index 731313f702e55db6675799b9f7260caa57c62a31..36b1730ba8e6f8e0d59b12620157d57591423c4c 100644 (file)
@@ -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!
index 9000bdd926c56d69b18d0b6f16bcc5d82177da19..990b33d6f8058e95789ce7a093756df04eb865f4 100644 (file)
@@ -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 ;
index c7f4807faf052a4b0ffceba2de538f380066eab7..f5a519f97d152c81883ea333a639efbdc4c1cc73 100644 (file)
@@ -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?
         [ <local-reader> ]
         [ <local> ]
         if