[Issue 6593] New: final class random generators?
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Fri Sep 2 02:31:03 PDT 2011
http://d.puremagic.com/issues/show_bug.cgi?id=6593
Summary: final class random generators?
Product: D
Version: D2
Platform: All
OS/Version: All
Status: NEW
Severity: enhancement
Priority: P2
Component: Phobos
AssignedTo: nobody at puremagic.com
ReportedBy: bearophile_hugs at eml.cc
--- Comment #0 from bearophile_hugs at eml.cc 2011-09-02 02:30:49 PDT ---
This is a _potential_ enhancement request.
A wrong D2 program:
import std.stdio, std.random;
void foo(RND)(RND rnd) {
foreach (i; 0 .. 5)
write(uniform(0, 10, rnd), " ");
writeln();
}
void main() {
auto rnd = Xorshift(1);
foo(rnd);
foo(rnd);
}
DMD 2.054 output:
3 1 2 7 5
3 1 2 7 5
The mistake is a missing ref, that causes foo to not return an updated random
generator, so it always generate the same random values:
void foo(RND)(ref RND rnd) {
To avoid this bug (that I think is common enough), I suggest to experiment if
it's performance-wide possibile to turn all random generators into reference
things, that is final class instances, that don't require that "ref".
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
More information about the Digitalmars-d-bugs
mailing list