[wwwdocs] Mention random number generators in porting_to.html
Commit Message
Hi,
Text says it all. OK for web pages?
Best regards
Thomas
Mention issues with integer owerflow for random number generators.
This mentions the issues with integer overflow and how to work
around them.
Comments
Hi Thomas,
Am 18.03.23 um 19:23 schrieb Thomas Koenig via Gcc-patches:
> Hi,
>
> Text says it all. OK for web pages?
>
> Best regards
>
> Thomas
>
> Mention issues with integer owerflow for random number generators.
>
> This mentions the issues with integer overflow and how to work
> around them.
it's basically fine, although I'd prefer a formulation replacing
+ <p> GCC 13 includes new optimizations which expose reliance on
+ non-standard behavior for integer overflow, which was often used
+ for linear congruential pseudo-random number generators in old
+ programs. It is recommended to use the intrinsic
by something like:
GCC 13 includes new optimizations which may change behavior on
integer overflow. Traditional code, like linear congruential
pseudo-random number generators in old programs and relying on a
specific, non-standard behavior may now generate unexpected results.
In such cases it is recommended to use the intrinsic ...
Thanks for updating the documentation!
Harald
@@ -203,11 +203,20 @@ class Alloc
<p>
Since C++20, there is no <code>rebind</code> member in
<code>std::allocator</code>, so deriving your own allocator types from
-<code>std::allocator</code> is simpler and doesn't require the derived
+<code>std::allocator</code> is simpler and does not require the derived
allocator to provide its own <code>rebind</code>.
For compatibility with previous C++ standards, the member should still be
provided. The converting constructor is still required even in C++20.
</p>
+<h2 id="fortran">Fortran language issues</h2>
+<h3 id="overflow">Behavior on integer overflow</h3>
+<p> GCC 13 includes new optimizations which expose reliance on
+ non-standard behavior for integer overflow, which was often used
+ for linear congruential pseudo-random number generators in old
+ programs. It is recommended to use the intrinsic
+ subroutine <code>RANDOM_NUMBER</code> for random number generators
+ or, if the old behavior is desired, to use the <code>-fwrapv</code>
+ option. Note that this option can impact performance.
</body>
</html>