From 2d46cfdf9eeba5c3be1e47cb718679790f6493f9 Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Tue, 8 Sep 2009 13:13:30 -0500 Subject: [PATCH 1/2] Improved line number handling for unit test failure errors --- basis/tools/test/test.factor | 2 +- basis/ui/tools/error-list/error-list.factor | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/basis/tools/test/test.factor b/basis/tools/test/test.factor index 42721bada1..2692c5a8b6 100644 --- a/basis/tools/test/test.factor +++ b/basis/tools/test/test.factor @@ -45,7 +45,7 @@ T{ error-type SYMBOL: file : file-failure ( error -- ) - f file get f failure ; + [ f file get ] keep error-line failure ; :: (unit-test) ( output input -- error ? ) [ { } input with-datastack output assert-sequence= f f ] [ t ] recover ; diff --git a/basis/ui/tools/error-list/error-list.factor b/basis/ui/tools/error-list/error-list.factor index a1da59fe39..34a5221307 100644 --- a/basis/ui/tools/error-list/error-list.factor +++ b/basis/ui/tools/error-list/error-list.factor @@ -97,7 +97,7 @@ M: error-renderer column-titles M: error-renderer column-alignment drop { 0 1 0 0 } ; : sort-errors ( seq -- seq' ) - [ [ [ line#>> ] [ asset>> unparse-short ] bi 2array ] keep ] { } map>assoc + [ [ [ line#>> 0 or ] [ asset>> unparse-short ] bi 2array ] keep ] { } map>assoc sort-keys values ; : file-matches? ( error pathname/f -- ? ) From f5536bdde0df53b22f40fd201359864a2d460a1d Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Tue, 8 Sep 2009 13:37:25 -0500 Subject: [PATCH 2/2] math.vectors.specialization: specialized vector words are now subwords of the generic vector word. This ensures that specializations get compiled correctly in all cases --- .../vectors/specialization/specialization.factor | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/basis/math/vectors/specialization/specialization.factor b/basis/math/vectors/specialization/specialization.factor index c9db3e02b3..a31a209a19 100644 --- a/basis/math/vectors/specialization/specialization.factor +++ b/basis/math/vectors/specialization/specialization.factor @@ -69,12 +69,16 @@ H{ { vtruncate { +vector+ -> +vector+ } } } -SYMBOL: specializations +PREDICATE: vector-word < word vector-words key? ; -specializations [ vector-words keys [ V{ } clone ] H{ } map>assoc ] initialize +: specializations ( word -- assoc ) + dup "specializations" word-prop + [ ] [ V{ } clone [ "specializations" set-word-prop ] keep ] ?if ; + +M: vector-word subwords specializations values ; : add-specialization ( new-word signature word -- ) - specializations get at set-at ; + specializations set-at ; : word-schema ( word -- schema ) vector-words at ; @@ -98,7 +102,7 @@ specializations [ vector-words keys [ V{ } clone ] H{ } map>assoc ] initialize ] each ; : find-specialization ( classes word -- word/f ) - specializations get at + specializations [ first [ class<= ] 2all? ] with find swap [ second ] when ;