load random.sfmt by default, and use it as default random-generator if sse2 is present

db4
Doug Coleman 2009-10-07 21:05:51 -05:00
parent e758d4061a
commit 83bc4907d4
5 changed files with 15 additions and 5 deletions

View File

@ -0,0 +1 @@
Doug Coleman

View File

@ -0,0 +1,10 @@
! Copyright (C) 2009 Doug Coleman.
! See http://factorcode.org/license.txt for BSD license.
USING: cpu.x86.features init kernel namespaces random
random.mersenne-twister random.sfmt ;
IN: random.backend
[
sse2? [ default-sfmt ] [ default-mersenne-twister ] if
random-generator set-global
] "bootstrap.random" add-init-hook

View File

@ -76,7 +76,3 @@ M: mersenne-twister random-32* ( mt -- r )
: default-mersenne-twister ( -- mersenne-twister )
[ 32 random-bits ] with-system-random
<mersenne-twister> ;
[
default-mersenne-twister random-generator set-global
] "bootstrap.random" add-init-hook

View File

@ -112,4 +112,4 @@ PRIVATE>
{ [ os unix? ] [ "random.unix" require ] }
} cond
"random.mersenne-twister" require
"random.backend" require

View File

@ -152,3 +152,6 @@ M: sfmt seed-random ( sfmt seed -- sfmt )
uint-4{ HEX: dfffffef HEX: ddfecb7f HEX: bffaffff HEX: bffffff6 }
uint-4{ HEX: 1 HEX: 0 HEX: 0 HEX: 13c9e684 }
<sfmt> ; inline
: default-sfmt ( -- sfmt )
[ random-32 ] with-secure-random <sfmt-19937> ;