dmd 2.029 release

Andrei Alexandrescu SeeWebsiteForEmail at erdani.org
Wed Apr 22 10:49:18 PDT 2009


tama wrote:
> On Mon, 20 Apr 2009 16:09:09 +0900, Walter Bright 
> <newshound1 at digitalmars.com> wrote:
> 
>>
>> This is a major revision to Phobos, including Andrei's revolutionary 
>> new range support.
>>
>> http://www.digitalmars.com/d/2.0/changelog.html
>> http://ftp.digitalmars.com/dmd.2.029.zip
> 
> Range is so cool!
> 
> Though...
> I tried following code:
> 
> void main()
> {
>     writeln("Case1");
>     {
>         Mt19937 gen = Mt19937(0);
>         writeln(gen.front);
>         gen.popFront;
>         writeln(gen.front);
>     }
>     writeln("---");
>     {
>         Mt19937 gen = Mt19937(0);
>         advance(gen, 1);  // skip 1 element
>         writeln(gen.front);
>         gen.popFront;
>         writeln(gen.front);
>     }
>     writeln("\nCase2");
>     {
>         Mt19937 gen;
>         writeln(gen.front);
>         gen.popFront;
>         writeln(gen.front);
>     }
>     writeln("---");
>     {
>         Mt19937 gen;
>         advance(gen, 1);  // skip 1 element
>         writeln(gen.front);
>         gen.popFront;
>         writeln(gen.front);
>     }
> }
> 
> Result:
> 
> Case1
> 2357136044 (1)
> 2546248239 (2)
> ---
> 2546248239 (2)
> 3071714933 (3)
> 
> Case2
> 581869302  (1)
> 3890346734 (2)
> ---
> 581869302  (1)?
> 3890346734 (2)?
> 
> I think 'Case1' is correct, but 'Case2' is wrong.
> Mt19937's bug?
> 

If you initialize the Mersenne twister with no seed it will start with
seed 5489u.

Andrei


More information about the Digitalmars-d-announce mailing list