From 380759e3d91a1d6517a2025452df594a47e25a68 Mon Sep 17 00:00:00 2001
From: Raymond Toy <toy.raymond@gmail.com>
Date: Sat, 27 Jan 2018 21:59:25 -0800
Subject: [PATCH] Restore ability to compile in mt19937 rng.

- src/tools/worldbuild.lisp
    - only compile rand-xoroshiro if :random-xoroshiro is a feature
- src/tools/worldload.lisp
    - only load rand-xoroshiro if :random-xoroshiro is a feature
- tests/rng.lisp
    - Add a quick test that the state vector of the *random-state* has
      the correct type.
---
 src/tools/worldbuild.lisp | 1 -
 src/tools/worldload.lisp  | 1 -
 tests/rng.lisp            | 9 +++++++++
 3 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/src/tools/worldbuild.lisp b/src/tools/worldbuild.lisp
index cb2b6353a..7dd0381cb 100644
--- a/src/tools/worldbuild.lisp
+++ b/src/tools/worldbuild.lisp
@@ -127,7 +127,6 @@
 	     '("target:code/rand-xoroshiro"))
 	    (t
 	     '("target:code/rand")))
-    "target:code/rand-xoroshiro"
     "target:code/alieneval"
     "target:code/c-call"
     "target:code/sap"
diff --git a/src/tools/worldload.lisp b/src/tools/worldload.lisp
index 16365e787..f1064df35 100644
--- a/src/tools/worldload.lisp
+++ b/src/tools/worldload.lisp
@@ -102,7 +102,6 @@
 (maybe-byte-load "code:rand-xoroshiro")
 #-(or random-mt19937 random-xoroshiro)
 (maybe-byte-load "code:rand")
-(maybe-byte-load "code:rand-xoroshiro")
 (maybe-byte-load "target:pcl/walk")
 (maybe-byte-load "code:fwrappers")
 (maybe-byte-load "code:ntrace")
diff --git a/tests/rng.lisp b/tests/rng.lisp
index 1b5dcbcaf..a02285a7a 100644
--- a/tests/rng.lisp
+++ b/tests/rng.lisp
@@ -20,6 +20,13 @@
 
 (defvar *test-state*)
   
+(define-test rng.state
+  (let ((s (kernel::random-state-state *random-state*)))
+    #+random-xoroshiro
+    (assert-true (typep s '(simple-array double-float (2))))
+    #+random-mt19937
+    (assert-true (typep s '(simple-array (unsigned-byte 32) (627))))))
+
 #+random-xoroshiro
 (define-test rng.initial-state
   (setf *test-state*
@@ -56,6 +63,7 @@
       (assert-equal value (64-bit-value *test-state*))
       (assert-equal state (multiple-value-list (64-bit-rng-state *test-state*))))))
 
+#+random-xoroshiro
 (define-test rng.jump
   (setf *test-state*
 	(kernel::make-random-object :state (kernel::init-random-state #x12345678)
@@ -68,3 +76,4 @@
     (kernel:random-state-jump *test-state*)
     (assert-equal result (multiple-value-list
 			  (64-bit-rng-state *test-state*)))))
+
-- 
GitLab