From 809b40d4971cc888284a3558c56d737c7e46ad1c Mon Sep 17 00:00:00 2001 From: Joe Groff Date: Tue, 7 Jul 2009 16:26:50 -0500 Subject: [PATCH 1/4] preserve sequence type in math.matrices:cross --- basis/math/matrices/matrices.factor | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/basis/math/matrices/matrices.factor b/basis/math/matrices/matrices.factor index b939162577..3203355bb9 100644 --- a/basis/math/matrices/matrices.factor +++ b/basis/math/matrices/matrices.factor @@ -120,7 +120,7 @@ IN: math.matrices PRIVATE> -: cross ( vec1 vec2 -- vec3 ) [ i ] [ j ] [ k ] 2tri 3array ; +: cross ( vec1 vec2 -- vec3 ) [ [ i ] [ j ] [ k ] 2tri ] keep 3sequence ; : proj ( v u -- w ) [ [ v. ] [ norm-sq ] bi / ] keep n*v ; From 771d4fd4d9071a276d034833e17db39c5b477436 Mon Sep 17 00:00:00 2001 From: Joe Groff Date: Tue, 7 Jul 2009 16:27:14 -0500 Subject: [PATCH 2/4] byte-length for specialized-vectors --- basis/specialized-vectors/functor/functor.factor | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/basis/specialized-vectors/functor/functor.factor b/basis/specialized-vectors/functor/functor.factor index 6635fbeaf2..08c44cd197 100644 --- a/basis/specialized-vectors/functor/functor.factor +++ b/basis/specialized-vectors/functor/functor.factor @@ -1,6 +1,6 @@ ! Copyright (C) 2008, 2009 Slava Pestov. ! See http://factorcode.org/license.txt for BSD license. -USING: functors sequences sequences.private growable +USING: accessors alien.c-types functors sequences sequences.private growable prettyprint.custom kernel words classes math parser ; QUALIFIED: vectors.functor IN: specialized-vectors.functor @@ -21,6 +21,8 @@ V A vectors.functor:define-vector M: V contract 2drop ; +M: V byte-length underlying>> byte-length ; + M: V pprint-delims drop \ V{ \ } ; M: V >pprint-sequence ; From ccae9b59a4e69b17b2a011313a5050d524920d8e Mon Sep 17 00:00:00 2001 From: Doug Coleman Date: Mon, 13 Jul 2009 19:02:05 -0500 Subject: [PATCH 3/4] clean up value numbering conversion of ##add/sub to ##add/sub-imm --- .../value-numbering/rewrite/rewrite.factor | 28 ++++++++++++------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/basis/compiler/cfg/value-numbering/rewrite/rewrite.factor b/basis/compiler/cfg/value-numbering/rewrite/rewrite.factor index 92965e40c5..988df366eb 100755 --- a/basis/compiler/cfg/value-numbering/rewrite/rewrite.factor +++ b/basis/compiler/cfg/value-numbering/rewrite/rewrite.factor @@ -49,9 +49,12 @@ M: insn rewrite ; [ src2>> tag-mask get bitand 0 = ] } 1&& ; inline +: tagged>constant ( n -- n' ) + tag-bits get neg shift ; inline + : (rewrite-tagged-comparison) ( insn -- src1 src2 cc ) [ src1>> vreg>expr in1>> vn>vreg ] - [ src2>> tag-bits get neg shift ] + [ src2>> tagged>constant ] [ cc>> ] tri ; inline @@ -203,15 +206,20 @@ M: ##or-imm rewrite [ bitor ] \ ##or-imm combine-imm ; M: ##xor-imm rewrite [ bitxor ] \ ##xor-imm combine-imm ; -: rewrite-add? ( insn -- ? ) - src2>> vreg-small-constant? ; - -M: ##add rewrite - dup rewrite-add? [ +: new-arithmetic ( obj op -- ) + [ [ dst>> ] [ src1>> ] - [ src2>> vreg>constant ] tri \ ##add-imm new-insn - dup number-values - ] when ; + [ src2>> vreg>constant ] tri + ] dip new-insn dup number-values ; inline -M: ##sub rewrite constant-fold ; +: rewrite-arithmetic ( insn op -- ? ) + over src2>> vreg-small-constant? [ + new-arithmetic constant-fold + ] [ + drop + ] if ; inline + +M: ##add rewrite \ ##add-imm rewrite-arithmetic ; + +M: ##sub rewrite \ ##sub-imm rewrite-arithmetic ; From a06948298bf705649c04bc77d141a14687683522 Mon Sep 17 00:00:00 2001 From: Joe Groff Date: Mon, 13 Jul 2009 22:35:36 -0500 Subject: [PATCH 4/4] ensure resize-world never happens before begin-world --- basis/ui/gadgets/worlds/worlds.factor | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/basis/ui/gadgets/worlds/worlds.factor b/basis/ui/gadgets/worlds/worlds.factor index ed21c85b19..0c59af95d6 100755 --- a/basis/ui/gadgets/worlds/worlds.factor +++ b/basis/ui/gadgets/worlds/worlds.factor @@ -163,9 +163,11 @@ M: world resize-world M: world (>>dim) [ call-next-method ] [ - dup handle>> - [ [ set-gl-context ] [ resize-world ] bi ] - [ drop ] if + dup active?>> [ + dup handle>> + [ [ set-gl-context ] [ resize-world ] bi ] + [ drop ] if + ] [ drop ] if ] bi ; GENERIC: draw-world* ( world -- )