On 8/7/15 2:19 PM, Jay Norwood wrote:
This appears to hang up dmd compiler 2.067.1. Changing parallel(s) to s
works ok. Is this a known problem?

import std.stdio;
import std.string;
import std.format;
import std.range;
import std.parallelism;

int main(string[] argv)
{

     string s[100000];
     foreach (i, ref si ; parallel(s)){
         si = format("hi:%d",i);
     }

     foreach (ref rm; s[99000..99010]){
         writeln(rm);
     }
     return 0;
}


When you said "hang up", I didn't understand what you meant.

Now I see, it actually hangs dmd (actually, it's not hung, it is still running as far as I can tell).

If I reduce to 10000, it completes the compile with an error.

I think it has to do with parallel(s).

In fact, this code also hangs:

int main(string[] argv)
{
   string s[100000];
   parallel(s);
}

In order to get what you really do want (no hangs, no errors), use this:

parallel(s[])

I'll file a bug on this.

-Steve

Reply via email to