xsmith/private/random prevents use of randomness functions at top-level
For example, the Verilog fuzzer in c4c6780b cannot run if you simply replace the #lang
and require
s with Xsmith's own because the random-source
parameter has not yet been parameterized at the time of initial evaluation of forms like random-module-count-dist
, random-module-item-count-dist
, random-block-statement-count-dist
, and random-small-const-int-dist
. To accommodate xsmith/private/random
, these were converted to thunks in bfe14105, but this is not an ideal solution.
At the very least, an error should be generated that detects the use of these functions at the top-level and suggests converting the forms to a thunk.