kernel: move recusrive-hashcode to math and add test
authorDoug Coleman <doug.coleman@gmail.com>
Fri, 16 Sep 2022 22:31:04 +0000 (18:31 -0400)
committerDoug Coleman <doug.coleman@gmail.com>
Fri, 16 Sep 2022 22:33:30 +0000 (18:33 -0400)
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
core/kernel/kernel.factor
core/math/math.factor

index d8ce2094e6a60aa86171ec5979c6d6c919425bbf..79f4aac263a4ca0882bbd3cfecf5cad0c8cf822e 100644 (file)
@@ -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
index ce9c8381cbb0d7ada0c863b44aa0fc00f547f900..e5389f401f2117e1cd302362ac99cdea1923d769 100644 (file)
@@ -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
index c88f274141b506b8bb051b9343ee9b6b43ffdff3..869d0aa133261075d9f419eb25d813d9f07d3770 100644 (file)
@@ -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 )