]> gitweb.factorcode.org Git - factor.git/blob - extra/random/unix/unix.factor
Merge branch 'master' of git://factorcode.org/git/factor
[factor.git] / extra / random / unix / unix.factor
1 USING: alien.c-types io io.files kernel namespaces random
2 io.encodings.binary init accessors system ;
3 IN: random.unix
4
5 TUPLE: unix-random reader ;
6
7 : <unix-random> ( path -- random )
8     binary <file-reader> unix-random boa ;
9
10 M: unix-random random-bytes* ( n tuple -- byte-array )
11     reader>> stream-read ;
12
13 os openbsd? [
14     [
15         "/dev/srandom" <unix-random> secure-random-generator set-global
16         "/dev/arandom" <unix-random> system-random-generator set-global
17     ] "random.unix" add-init-hook
18 ] [
19     [
20         "/dev/random" <unix-random> secure-random-generator set-global
21         "/dev/urandom" <unix-random> system-random-generator set-global
22     ] "random.unix" add-init-hook
23 ] if