From f9a93e9993c77fde573b6bd7f9923f9d57382ff3 Mon Sep 17 00:00:00 2001 From: Doug Coleman Date: Fri, 16 Sep 2022 18:31:04 -0400 Subject: [PATCH] kernel: move recusrive-hashcode to math and add test kernel reload fails on DEFER: - being undefined we should add a unit test that does something like: `load-all [ reload ] each` or for core: `core-vocabs [ dup . flush reload ] each` --- core/kernel/kernel-tests.factor | 2 ++ core/kernel/kernel.factor | 4 ---- core/math/math.factor | 3 +++ 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/core/kernel/kernel-tests.factor b/core/kernel/kernel-tests.factor index d8ce2094e6..79f4aac263 100644 --- a/core/kernel/kernel-tests.factor +++ b/core/kernel/kernel-tests.factor @@ -207,3 +207,5 @@ IN: kernel.tests { 2 3 4 1 } [ 1 2 3 4 roll ] unit-test { 1 2 3 4 } [ 2 3 4 1 -roll ] unit-test + +{ } [ "kernel" reload ] long-unit-test \ No newline at end of file diff --git a/core/kernel/kernel.factor b/core/kernel/kernel.factor index ce9c8381cb..e5389f401f 100644 --- a/core/kernel/kernel.factor +++ b/core/kernel/kernel.factor @@ -1,6 +1,5 @@ ! Copyright (C) 2004, 2009 Slava Pestov. ! See http://factorcode.org/license.txt for BSD license. -IN: math DEFER: <= DEFER: - ! for bootstrap USE: slots.private USE: kernel.private USE: math.private @@ -307,9 +306,6 @@ M: f hashcode* 2drop 31337 ; inline : hashcode ( obj -- code ) 3 swap hashcode* ; inline -: recursive-hashcode ( n obj quot -- code ) - pick 0 <= [ 3drop 0 ] [ [ 1 - ] 2dip call ] if ; inline - GENERIC: equal? ( obj1 obj2 -- ? ) M: object equal? 2drop f ; inline diff --git a/core/math/math.factor b/core/math/math.factor index c88f274141..869d0aa133 100644 --- a/core/math/math.factor +++ b/core/math/math.factor @@ -131,6 +131,9 @@ GENERIC: (log2) ( x -- n ) foldable PRIVATE> +: recursive-hashcode ( n obj quot -- code ) + pick 0 <= [ 3drop 0 ] [ [ 1 - ] 2dip call ] if ; inline + ERROR: log2-expects-positive x ; : log2 ( x -- n ) -- 2.34.1