dmd 2.029 release

tama repeatedly at gmail.com
Tue Apr 21 15:03:45 PDT 2009


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?

-- 
tama <repeatedly at gmail.com>
http://profile.livedoor.com/repeatedly/
メンバー募集中
http://tpf.techtalk.jp/


More information about the Digitalmars-d-announce mailing list