- As an SBCL extension (starting with SBCL 1.0.33), we also support receiving
- as a seed an object of the following types:
+ See SB-EXT:SEED-RANDOM-STATE for a SBCL extension to this functionality."
+ (/show0 "entering MAKE-RANDOM-STATE")
+ (check-type state (or boolean random-state))
+ (seed-random-state state))
+
+(defun seed-random-state (&optional state)
+ #!+sb-doc
+ "Make a random state object. The optional STATE argument specifies a seed
+ for deterministic pseudo-random number generation.
+
+ As per the Common Lisp standard for MAKE-RANDOM-STATE,
+ - If STATE is NIL or not supplied or is NIL, return a copy of the default
+ *RANDOM-STATE*.
+ - If STATE is a random state, return a copy of it.
+ - If STATE is T, return a randomly initialized state (using operating-system
+ provided randomness source where available, otherwise a poor substitute
+ based on internal time and pid)
+
+ As a supported SBCL extension, we also support receiving as a seed an object
+ of the following types: