1st draft of complete class-based std.random successor
monarch_dodra
monarchdodra at gmail.com
Thu Mar 20 01:22:36 PDT 2014
On Thursday, 20 March 2014 at 01:32:41 UTC, Chris Williams wrote:
> On Wednesday, 19 March 2014 at 23:49:41 UTC, Joseph Rushton
> Wakeling wrote:
>> Hello all,
>>
>> As some of you may already know, monarch_dodra and I have
>> spent quite a lot of time over the last year discussing the
>> state of std.random. To cut a long story short, there are
>> significant problems that arise because the current RNGs are
>> value types rather than reference types.
>
> Any chance that you could describe them? I was about to resume
> porting the dcrypt library into Phobos, and had intended to
> flip the classes into structs, to match what the rest of the
> library was doing.
The issue isn't class vs struct, but rather "value semantic" vs
"reference semantic" (classes are always ref, but structs can be
either). Basically, if you make a copy, and modify the copy, will
the original range be modified?
The problem with "value semantics" is that it always un-expected
duplication of the range, which is a critical blocker problem as
far as random goes.
The tell-tale usecase is:
//----
auto g = rndGen();
g.take(10).writeln();
g.take(10).writeln();
//----
This will write the same sequence... TWICE!
More information about the Digitalmars-d-announce
mailing list