From 0bb85a1ef9bdd5d841b294db33d1a06a93f933d2 Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Sun, 6 Jul 2008 18:21:34 -0500 Subject: [PATCH] Fix obscure corner case; -include='compiler math' --- core/math/intervals/intervals.factor | 7 ++++++- core/optimizer/math/math.factor | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/core/math/intervals/intervals.factor b/core/math/intervals/intervals.factor index 9540081d5b..9b994b4bbf 100755 --- a/core/math/intervals/intervals.factor +++ b/core/math/intervals/intervals.factor @@ -2,7 +2,7 @@ ! See http://factorcode.org/license.txt for BSD license. ! Based on Slate's src/unfinished/interval.slate by Brian Rice. USING: accessors kernel sequences arrays math math.order -combinators ; +combinators generic ; IN: math.intervals TUPLE: interval { from read-only } { to read-only } ; @@ -177,6 +177,11 @@ C: interval : interval/ ( i1 i2 -- i3 ) [ [ / ] interval-op ] interval-division-op ; +: interval/-safe ( i1 i2 -- i3 ) + #! Just a hack to make the compiler work if bootstrap.math + #! is not loaded. + \ integer \ / method [ interval/ ] [ 2drop f ] if ; + : interval/i ( i1 i2 -- i3 ) [ [ [ /i ] interval-op ] interval-integer-op diff --git a/core/optimizer/math/math.factor b/core/optimizer/math/math.factor index b7a3ff28e7..27ef4042e2 100755 --- a/core/optimizer/math/math.factor +++ b/core/optimizer/math/math.factor @@ -158,7 +158,7 @@ optimizer.math.partial generic.standard system accessors ; { + { { fixnum integer } } interval+ } { - { { fixnum integer } } interval- } { * { { fixnum integer } } interval* } - { / { { fixnum rational } { integer rational } } interval/ } + { / { { fixnum rational } { integer rational } } interval/-safe } { /i { { fixnum integer } } interval/i } { shift { { fixnum integer } } interval-shift-safe } } [