From 643da5f073e42af8495fd9c73fd82a07124164f5 Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Wed, 11 Mar 2009 16:21:29 -0500 Subject: [PATCH 1/5] Remove match iterators for a performance boost --- basis/regexp/regexp-docs.factor | 16 ++---- basis/regexp/regexp-tests.factor | 4 +- basis/regexp/regexp.factor | 97 ++++++++++++++++---------------- 3 files changed, 55 insertions(+), 62 deletions(-) diff --git a/basis/regexp/regexp-docs.factor b/basis/regexp/regexp-docs.factor index d31b185b2f..adbeb341bb 100644 --- a/basis/regexp/regexp-docs.factor +++ b/basis/regexp/regexp-docs.factor @@ -42,8 +42,8 @@ ARTICLE: { "regexp" "operations" } "Matching operations with regular expressions { $subsection matches? } { $subsection re-contains? } { $subsection first-match } -{ $subsection all-matches } -{ $subsection re-split1 } +{ $subsection all-matching-slices } +{ $subsection all-matching-subseqs } { $subsection re-split } { $subsection re-replace } { $subsection count-matches } ; @@ -67,25 +67,21 @@ HELP: matches? { $values { "string" string } { "regexp" regexp } { "?" "a boolean" } } { $description "Tests if the string as a whole matches the given regular expression." } ; -HELP: re-split1 -{ $values { "string" string } { "regexp" regexp } { "before" string } { "after/f" string } } -{ $description "Searches the string for a substring which matches the pattern. If found, the input string is split on the leftmost and longest occurence of the match, and the two halves are given as output. If no match is found, then the input string and " { $link f } " are output." } ; - -HELP: all-matches +HELP: all-matching-slices { $values { "string" string } { "regexp" regexp } { "seq" "a sequence of slices of the input" } } { $description "Finds a sequence of disjoint substrings which each match the pattern. It chooses this by finding the leftmost longest match, and then the leftmost longest match which starts after the end of the previous match, and so on." } ; HELP: count-matches { $values { "string" string } { "regexp" regexp } { "n" integer } } -{ $description "Counts how many disjoint matches the regexp has in the string, as made unambiguous by " { $link all-matches } "." } ; +{ $description "Counts how many disjoint matches the regexp has in the string, as made unambiguous by " { $link all-matching-slices } "." } ; HELP: re-split { $values { "string" string } { "regexp" regexp } { "seq" "a sequence of slices of the input" } } -{ $description "Splits the input string into chunks separated by the regular expression. Each chunk contains no match of the regexp. The chunks are chosen by the strategy of " { $link all-matches } "." } ; +{ $description "Splits the input string into chunks separated by the regular expression. Each chunk contains no match of the regexp. The chunks are chosen by the strategy of " { $link all-matching-slices } "." } ; HELP: re-replace { $values { "string" string } { "regexp" regexp } { "replacement" string } { "result" string } } -{ $description "Replaces substrings which match the input regexp with the given replacement text. The boundaries of the substring are chosen by the strategy used by " { $link all-matches } "." } ; +{ $description "Replaces substrings which match the input regexp with the given replacement text. The boundaries of the substring are chosen by the strategy used by " { $link all-matching-slices } "." } ; HELP: first-match { $values { "string" string } { "regexp" regexp } { "slice/f" "the match, if one exists" } } diff --git a/basis/regexp/regexp-tests.factor b/basis/regexp/regexp-tests.factor index e01241552d..c6d1487d5a 100644 --- a/basis/regexp/regexp-tests.factor +++ b/basis/regexp/regexp-tests.factor @@ -287,7 +287,7 @@ IN: regexp-tests [ { "a" "" } ] [ "a=" R/ =/ re-split [ >string ] map ] unit-test [ { "ABC" "DEF" "GHI" } ] -[ "1ABC2DEF3GHI4" R/ [A-Z]+/ all-matches [ >string ] map ] unit-test +[ "1ABC2DEF3GHI4" R/ [A-Z]+/ all-matching-subseqs ] unit-test [ 3 ] [ "1ABC2DEF3GHI4" R/ [A-Z]+/ count-matches ] unit-test @@ -431,7 +431,7 @@ IN: regexp-tests [ f ] [ "a bar b" R/ foo/ re-contains? ] unit-test [ t ] [ "foo" R/ foo/ re-contains? ] unit-test -[ { "foo" "fxx" "fab" } ] [ "fab fxx foo" R/ f../r all-matches [ >string ] map ] unit-test +[ { "foo" "fxx" "fab" } ] [ "fab fxx foo" R/ f../r all-matching-subseqs ] unit-test ! [ t ] [ "foo" "\\bfoo\\b" matches? ] unit-test ! [ t ] [ "afoob" "\\Bfoo\\B" matches? ] unit-test diff --git a/basis/regexp/regexp.factor b/basis/regexp/regexp.factor index 7f27a13104..e385c515ef 100644 --- a/basis/regexp/regexp.factor +++ b/basis/regexp/regexp.factor @@ -49,93 +49,90 @@ M: reverse-regexp end/start drop length 1- -1 swap ; PRIVATE> : matches? ( string regexp -- ? ) - [ end/start ] 2keep [ check-string ] dip + [ end/start ] 2keep match-index-from - [ swap = ] [ drop f ] if* ; + [ = ] [ drop f ] if* ; ( i string quot: ( i string -- i seq j ) reverse? -- match/f ) + i string quot call dup [| j | + j i j + reverse? [ swap [ 1+ ] bi@ ] when + string match boa + ] when ; inline : search-range ( i string reverse? -- seq ) [ drop 0 [a,b] ] [ length [a,b) ] if ; inline -: match>result ( match reverse? -- i start end string ) - over [ - [ [ i>> ] [ j>> tuck ] [ seq>> ] tri ] dip - [ [ swap [ 1+ ] bi@ ] dip ] when - ] [ 2drop f f f f ] if ; inline +: match>result ( match -- i start end string ) + dup + [ { [ i>> ] [ start>> ] [ end>> ] [ string>> ] } cleave ] + [ drop f f f f ] + if ; inline -:: next-match ( i string quot reverse? -- i start end string ) +:: next-match ( i string quot reverse? -- i start end ? ) i string reverse? search-range - [ string quot match-slice ] map-find drop - reverse? match>result ; inline + [ string quot reverse? ] map-find drop + match>result ; inline -: do-next-match ( i string regexp -- i start end string ) +: do-next-match ( i string regexp -- i start end ? ) dup next-match>> - execute-unsafe( i string regexp -- i start end string ) ; + execute-unsafe( i string regexp -- i start end ? ) ; inline -: next-slice ( i string regexp -- i/f slice/f ) - do-next-match - [ slice boa ] [ drop ] if* ; inline +:: (each-match) ( i string regexp quot: ( start end string -- ) -- ) + i string regexp do-next-match [| i' start end | + start end string quot call + i' string regexp quot (each-match) + ] [ 3drop ] if ; inline recursive PRIVATE> -TUPLE: match-iterator - { string read-only } - { regexp read-only } - { i read-only } - { value read-only } ; +: prepare-match-iterator ( string regexp -- i string regexp ) + [ check-string ] dip [ end/start nip ] 2keep ; inline -: iterate ( iterator -- iterator'/f ) - dup - [ i>> ] [ string>> ] [ regexp>> ] tri next-slice - [ [ [ string>> ] [ regexp>> ] bi ] 2dip match-iterator boa ] - [ 2drop f ] if* ; +: each-match ( string regexp quot: ( start end string -- ) -- ) + [ prepare-match-iterator ] dip (each-match) ; inline -: value ( iterator/f -- value/f ) - dup [ value>> ] when ; +: map-matches ( string regexp quot: ( start end string -- obj ) -- seq ) + accumulator [ each-match ] dip >array ; inline -: ( string regexp -- match-iterator ) - [ check-string ] dip - 2dup end/start nip f - match-iterator boa - iterate ; inline +: all-matching-slices ( string regexp -- seq ) + [ slice boa ] map-matches ; -: all-matches ( string regexp -- seq ) - [ iterate ] follow [ value ] map ; +: all-matching-subseqs ( string regexp -- seq ) + [ subseq ] map-matches ; : count-matches ( string regexp -- n ) - all-matches length ; + [ 0 ] 2dip [ 3drop 1+ ] each-match ; > ] map 0 prefix - slices [ from>> ] map string length suffix - [ string ] 2map ; +:: (re-split) ( string regexp quot -- new-slices ) + 0 string regexp [| end start end' string | + end' ! leave it on the stack for the next iteration + end start string quot call + ] map-matches + ! Final chunk + swap string length string quot call suffix ; inline PRIVATE> : first-match ( string regexp -- slice/f ) - value ; + [ prepare-match-iterator do-next-match ] [ drop ] 2bi + '[ _ slice boa nip ] [ 3drop f ] if ; : re-contains? ( string regexp -- ? ) - first-match >boolean ; - -: re-split1 ( string regexp -- before after/f ) - dupd first-match [ 1array split-slices first2 ] [ f ] if* ; + prepare-match-iterator do-next-match [ 3drop ] dip >boolean ; : re-split ( string regexp -- seq ) - dupd all-matches split-slices ; + [ slice boa ] (re-split) ; : re-replace ( string regexp replacement -- result ) - [ re-split ] dip join ; + [ [ subseq ] (re-split) ] dip join ; Date: Wed, 11 Mar 2009 16:36:53 -0500 Subject: [PATCH 2/5] Get rid of match tuple --- basis/regexp/regexp.factor | 28 ++++++++++------------------ 1 file changed, 10 insertions(+), 18 deletions(-) diff --git a/basis/regexp/regexp.factor b/basis/regexp/regexp.factor index e385c515ef..778421b20d 100644 --- a/basis/regexp/regexp.factor +++ b/basis/regexp/regexp.factor @@ -56,28 +56,20 @@ PRIVATE> ( i string quot: ( i string -- i seq j ) reverse? -- match/f ) - i string quot call dup [| j | +:: (next-match) ( i string regexp word: ( i string -- j ) reverse? -- i start end ? ) + i string regexp word execute dup [| j | j i j reverse? [ swap [ 1+ ] bi@ ] when - string match boa - ] when ; inline + string + ] [ drop f f f f ] if ; inline : search-range ( i string reverse? -- seq ) [ drop 0 [a,b] ] [ length [a,b) ] if ; inline -: match>result ( match -- i start end string ) - dup - [ { [ i>> ] [ start>> ] [ end>> ] [ string>> ] } cleave ] - [ drop f f f f ] - if ; inline - -:: next-match ( i string quot reverse? -- i start end ? ) +:: next-match ( i string regexp word reverse? -- i start end ? ) + f f f f i string reverse? search-range - [ string quot reverse? ] map-find drop - match>result ; inline + [ [ 2drop 2drop ] dip string regexp word reverse? (next-match) dup ] find 2drop ; inline : do-next-match ( i string regexp -- i start end ? ) dup next-match>> @@ -89,11 +81,11 @@ TUPLE: match { i read-only } { start read-only } { end read-only } { string read i' string regexp quot (each-match) ] [ 3drop ] if ; inline recursive -PRIVATE> - : prepare-match-iterator ( string regexp -- i string regexp ) [ check-string ] dip [ end/start nip ] 2keep ; inline +PRIVATE> + : each-match ( string regexp quot: ( start end string -- ) -- ) [ prepare-match-iterator ] dip (each-match) ; inline @@ -165,7 +157,7 @@ DEFER: compile-next-match dup '[ dup \ next-initial-word = [ drop _ [ compile-regexp dfa>> ] [ reverse-regexp? ] bi - '[ _ '[ _ _ execute ] _ next-match ] + '[ _ _ next-match ] (( i string regexp -- i start end string )) simple-define-temp ] when ] change-next-match ; From 18ca3b34190c71de6af50443bec5c4daa5e49d44 Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Wed, 11 Mar 2009 16:53:44 -0500 Subject: [PATCH 3/5] Add some declarations so that next-match is faster --- basis/regexp/regexp.factor | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/basis/regexp/regexp.factor b/basis/regexp/regexp.factor index 778421b20d..ab6accb120 100644 --- a/basis/regexp/regexp.factor +++ b/basis/regexp/regexp.factor @@ -1,10 +1,10 @@ ! Copyright (C) 2008, 2009 Doug Coleman, Daniel Ehrenberg. ! See http://factorcode.org/license.txt for BSD license. -USING: accessors combinators kernel math sequences strings sets -assocs prettyprint.backend prettyprint.custom make lexer -namespaces parser arrays fry locals regexp.parser splitting -sorting regexp.ast regexp.negation regexp.compiler words -call call.private math.ranges ; +USING: accessors combinators kernel kernel.private math sequences +sequences.private strings sets assocs prettyprint.backend +prettyprint.custom make lexer namespaces parser arrays fry locals +regexp.parser splitting sorting regexp.ast regexp.negation +regexp.compiler words call call.private math.ranges ; IN: regexp TUPLE: regexp @@ -56,7 +56,7 @@ PRIVATE> ] [ drop f f f f ] if ; inline : search-range ( i string reverse? -- seq ) - [ drop 0 [a,b] ] [ length [a,b) ] if ; inline + [ drop dup 1+ -1 ] [ length 1 ] if range boa ; inline :: next-match ( i string regexp word reverse? -- i start end ? ) f f f f @@ -157,7 +157,7 @@ DEFER: compile-next-match dup '[ dup \ next-initial-word = [ drop _ [ compile-regexp dfa>> ] [ reverse-regexp? ] bi - '[ _ _ next-match ] + '[ { array-capacity string regexp } declare _ _ next-match ] (( i string regexp -- i start end string )) simple-define-temp ] when ] change-next-match ; From 034bda42caede36f3afe415940cabd0331caaef3 Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Wed, 11 Mar 2009 17:06:45 -0500 Subject: [PATCH 4/5] Inline initial state in next-match loop --- basis/regexp/regexp.factor | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/basis/regexp/regexp.factor b/basis/regexp/regexp.factor index 22c7e2474f..29f7e3e84e 100644 --- a/basis/regexp/regexp.factor +++ b/basis/regexp/regexp.factor @@ -51,8 +51,8 @@ PRIVATE> : search-range ( i string reverse? -- seq ) [ drop dup 1+ -1 ] [ length 1 ] if range boa ; inline -:: next-match ( i string regexp word reverse? -- i start end ? ) +:: next-match ( i string regexp quot: ( i string regexp -- j ) reverse? -- i start end ? ) f f f f i string reverse? search-range - [ [ 2drop 2drop ] dip string regexp word reverse? (next-match) dup ] find 2drop ; inline + [ [ 2drop 2drop ] dip string regexp quot reverse? (next-match) dup ] find 2drop ; inline : do-next-match ( i string regexp -- i start end ? ) dup next-match>> @@ -151,7 +151,7 @@ DEFER: compile-next-match : compile-next-match ( regexp -- regexp ) dup '[ dup \ next-initial-word = [ - drop _ [ compile-regexp dfa>> ] [ reverse-regexp? ] bi + drop _ [ compile-regexp dfa>> def>> ] [ reverse-regexp? ] bi '[ { array-capacity string regexp } declare _ _ next-match ] (( i string regexp -- i start end string )) simple-define-temp ] when From 667eca941099c6cce01d8dde4220dc9595d6d843 Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Wed, 11 Mar 2009 17:33:54 -0500 Subject: [PATCH 5/5] Fix unit tests and help lint for 'see' move --- basis/delegate/delegate-tests.factor | 2 +- .../help/definitions/definitions-tests.factor | 2 +- basis/inspector/inspector-tests.factor | 2 +- basis/locals/locals-tests.factor | 2 +- basis/macros/macros-tests.factor | 2 +- basis/memoize/memoize-tests.factor | 2 +- basis/opengl/textures/textures-tests.factor | 22 +++++++++++-------- basis/ui/gadgets/panes/panes-tests.factor | 2 +- core/classes/singleton/singleton-tests.factor | 2 +- core/classes/tuple/tuple-tests.factor | 2 +- core/classes/union/union-tests.factor | 2 +- core/generic/standard/standard-tests.factor | 2 +- core/kernel/kernel-docs.factor | 2 +- extra/descriptive/descriptive-tests.factor | 2 +- extra/multi-methods/tests/syntax.factor | 2 +- 15 files changed, 27 insertions(+), 23 deletions(-) diff --git a/basis/delegate/delegate-tests.factor b/basis/delegate/delegate-tests.factor index e2bea82e68..9bf07a5330 100644 --- a/basis/delegate/delegate-tests.factor +++ b/basis/delegate/delegate-tests.factor @@ -1,7 +1,7 @@ USING: delegate kernel arrays tools.test words math definitions compiler.units parser generic prettyprint io.streams.string accessors eval multiline generic.standard delegate.protocols -delegate.private assocs ; +delegate.private assocs see ; IN: delegate.tests TUPLE: hello this that ; diff --git a/basis/help/definitions/definitions-tests.factor b/basis/help/definitions/definitions-tests.factor index d95f6988a2..5d83afae88 100644 --- a/basis/help/definitions/definitions-tests.factor +++ b/basis/help/definitions/definitions-tests.factor @@ -1,6 +1,6 @@ USING: math definitions help.topics help tools.test prettyprint parser io.streams.string kernel source-files -assocs namespaces words io sequences eval accessors ; +assocs namespaces words io sequences eval accessors see ; IN: help.definitions.tests [ ] [ \ + >link see ] unit-test diff --git a/basis/inspector/inspector-tests.factor b/basis/inspector/inspector-tests.factor index 4ce549ac83..3f3e7f13df 100644 --- a/basis/inspector/inspector-tests.factor +++ b/basis/inspector/inspector-tests.factor @@ -8,7 +8,7 @@ f describe H{ } describe H{ } describe -[ "fixnum instance\n" ] [ [ 3 describe ] with-string-writer ] unit-test +[ "fixnum instance\n\n" ] [ [ 3 describe ] with-string-writer ] unit-test [ ] [ H{ } clone inspect ] unit-test diff --git a/basis/locals/locals-tests.factor b/basis/locals/locals-tests.factor index 923f890adf..558fa78494 100644 --- a/basis/locals/locals-tests.factor +++ b/basis/locals/locals-tests.factor @@ -2,7 +2,7 @@ USING: locals math sequences tools.test hashtables words kernel namespaces arrays strings prettyprint io.streams.string parser accessors generic eval combinators combinators.short-circuit combinators.short-circuit.smart math.order math.functions -definitions compiler.units fry lexer words.symbol ; +definitions compiler.units fry lexer words.symbol see ; IN: locals.tests :: foo ( a b -- a a ) a a ; diff --git a/basis/macros/macros-tests.factor b/basis/macros/macros-tests.factor index 7b061ab2f5..7d93ce8a9e 100644 --- a/basis/macros/macros-tests.factor +++ b/basis/macros/macros-tests.factor @@ -1,6 +1,6 @@ IN: macros.tests USING: tools.test macros math kernel arrays -vectors io.streams.string prettyprint parser eval ; +vectors io.streams.string prettyprint parser eval see ; MACRO: see-test ( a b -- c ) + ; diff --git a/basis/memoize/memoize-tests.factor b/basis/memoize/memoize-tests.factor index 168a0061e3..54378bd37e 100644 --- a/basis/memoize/memoize-tests.factor +++ b/basis/memoize/memoize-tests.factor @@ -1,7 +1,7 @@ ! Copyright (C) 2007, 2009 Slava Pestov, Daniel Ehrenberg. ! See http://factorcode.org/license.txt for BSD license. USING: math kernel memoize tools.test parser generalizations -prettyprint io.streams.string sequences eval namespaces ; +prettyprint io.streams.string sequences eval namespaces see ; IN: memoize.tests MEMO: fib ( m -- n ) diff --git a/basis/opengl/textures/textures-tests.factor b/basis/opengl/textures/textures-tests.factor index 45b1d8f706..7141caa67d 100644 --- a/basis/opengl/textures/textures-tests.factor +++ b/basis/opengl/textures/textures-tests.factor @@ -5,15 +5,19 @@ images kernel namespaces ; IN: opengl.textures.tests [ ] [ - { 3 5 } - RGB - B{ - 1 2 3 4 5 6 7 8 9 - 10 11 12 13 14 15 16 17 18 - 19 20 21 22 23 24 25 26 27 - 28 29 30 31 32 33 34 35 36 - 37 38 39 40 41 42 43 44 45 - } image boa "image" set + T{ image + { dim { 3 5 } } + { component-order RGB } + { bitmap + B{ + 1 2 3 4 5 6 7 8 9 + 10 11 12 13 14 15 16 17 18 + 19 20 21 22 23 24 25 26 27 + 28 29 30 31 32 33 34 35 36 + 37 38 39 40 41 42 43 44 45 + } + } + } "image" set ] unit-test [ diff --git a/basis/ui/gadgets/panes/panes-tests.factor b/basis/ui/gadgets/panes/panes-tests.factor index e486bffd38..2947ce242d 100644 --- a/basis/ui/gadgets/panes/panes-tests.factor +++ b/basis/ui/gadgets/panes/panes-tests.factor @@ -2,7 +2,7 @@ USING: alien ui.gadgets.panes ui.gadgets namespaces kernel sequences io io.styles io.streams.string tools.test prettyprint definitions help help.syntax help.markup help.stylesheet splitting tools.test.ui models math summary -inspector accessors help.topics ; +inspector accessors help.topics see ; IN: ui.gadgets.panes.tests : #children "pane" get children>> length ; diff --git a/core/classes/singleton/singleton-tests.factor b/core/classes/singleton/singleton-tests.factor index 10ddde75ae..d9011ad776 100644 --- a/core/classes/singleton/singleton-tests.factor +++ b/core/classes/singleton/singleton-tests.factor @@ -1,4 +1,4 @@ -USING: kernel classes.singleton tools.test prettyprint io.streams.string ; +USING: kernel classes.singleton tools.test prettyprint io.streams.string see ; IN: classes.singleton.tests [ ] [ SINGLETON: bzzt ] unit-test diff --git a/core/classes/tuple/tuple-tests.factor b/core/classes/tuple/tuple-tests.factor index d221d28da9..f27d24e39d 100644 --- a/core/classes/tuple/tuple-tests.factor +++ b/core/classes/tuple/tuple-tests.factor @@ -4,7 +4,7 @@ namespaces quotations sequences.private classes continuations generic.standard effects classes.tuple classes.tuple.private arrays vectors strings compiler.units accessors classes.algebra calendar prettyprint io.streams.string splitting summary -columns math.order classes.private slots slots.private eval ; +columns math.order classes.private slots slots.private eval see ; IN: classes.tuple.tests TUPLE: rect x y w h ; diff --git a/core/classes/union/union-tests.factor b/core/classes/union/union-tests.factor index 97baf08874..0802c0a2d9 100644 --- a/core/classes/union/union-tests.factor +++ b/core/classes/union/union-tests.factor @@ -4,7 +4,7 @@ tools.test vectors words quotations classes classes.private classes.union classes.mixin classes.predicate classes.algebra vectors definitions source-files compiler.units kernel.private sorting vocabs io.streams.string -eval ; +eval see ; IN: classes.union.tests ! DEFER: bah diff --git a/core/generic/standard/standard-tests.factor b/core/generic/standard/standard-tests.factor index 516d408933..2cd64ac9f4 100644 --- a/core/generic/standard/standard-tests.factor +++ b/core/generic/standard/standard-tests.factor @@ -5,7 +5,7 @@ specialized-arrays.double byte-arrays bit-arrays parser namespaces make quotations stack-checker vectors growable hashtables sbufs prettyprint byte-vectors bit-vectors specialized-vectors.double definitions generic sets graphs assocs -grouping ; +grouping see ; GENERIC: lo-tag-test ( obj -- obj' ) diff --git a/core/kernel/kernel-docs.factor b/core/kernel/kernel-docs.factor index 9c5d6f56ea..c178573a0a 100644 --- a/core/kernel/kernel-docs.factor +++ b/core/kernel/kernel-docs.factor @@ -684,7 +684,7 @@ $nl "This operation is efficient and does not copy the quotation." } { $examples { $example "USING: kernel prettyprint ;" "5 [ . ] curry ." "[ 5 . ]" } - { $example "USING: kernel prettyprint ;" "\\ = [ see ] curry ." "[ \\ = see ]" } + { $example "USING: kernel prettyprint see ;" "\\ = [ see ] curry ." "[ \\ = see ]" } { $example "USING: kernel math prettyprint sequences ;" "{ 1 2 3 } 2 [ - ] curry map ." "{ -1 0 1 }" } } ; diff --git a/extra/descriptive/descriptive-tests.factor b/extra/descriptive/descriptive-tests.factor index 1582ca895d..755c57ceda 100755 --- a/extra/descriptive/descriptive-tests.factor +++ b/extra/descriptive/descriptive-tests.factor @@ -1,4 +1,4 @@ -USING: descriptive kernel math tools.test continuations prettyprint io.streams.string ; +USING: descriptive kernel math tools.test continuations prettyprint io.streams.string see ; IN: descriptive.tests DESCRIPTIVE: divide ( num denom -- fraction ) / ; diff --git a/extra/multi-methods/tests/syntax.factor b/extra/multi-methods/tests/syntax.factor index 597a1cebeb..9d9c80b214 100644 --- a/extra/multi-methods/tests/syntax.factor +++ b/extra/multi-methods/tests/syntax.factor @@ -1,7 +1,7 @@ IN: multi-methods.tests USING: multi-methods tools.test math sequences namespaces system kernel strings definitions prettyprint debugger arrays -hashtables continuations classes assocs accessors ; +hashtables continuations classes assocs accessors see ; GENERIC: first-test