|
|
|
|
|
by b0a04gl
353 days ago
|
|
found one more flakiness over cross platform, when seed mt19937 same way on linux and windows, same compiler, same code... but problem is std::random_device or libc internals differ under the hood. some platforms do random_device as true hardware entropy, others fake it or seed from diff system sources. so seed retrieved isn't stable cross platform. that means mt19937 starts from diff states, causing different random sequences it's not a bug in mt19937 itself, it's how random_device (or libc randomness) works differently across environments. makes cross platform tests flaky even when logic is rock solid >> std::random_device rd; // might differ per platform std::mt19937 gen(rd()); // seed depends on rd output std::uniform_int_distribution<> dist(1, 100); int random_number = dist(gen); // different on linux vs windows tho same code |
|