Problem with parallel map

dsimcha dsimcha at yahoo.com
Sun Mar 6 06:33:05 PST 2011


http://d.puremagic.com/issues/show_bug.cgi?id=5710

It's a DMD issue.  I've been meaning to report it for a while. 
Unfortunately making a workaround for it would be a huge PITA at best 
and impossible in the toughest use cases.

On 3/6/2011 9:12 AM, Russel Winder wrote:
> David,
>
> I am not sure how properly to report this in this review period . . .
>
> If I use:
>
> 	taskPool.reduce ! ( "a + b" ) ( 0.0 , outputData )
>
> then it works.  If however I try:
>
>          taskPool.reduce ! ( ( a , b ) { return a + b ; } ) ( 0.0 , outputData )
>
> I get:
>
>          pi_d2_parallelMap.d(58): Error: template instance cannot use local '__dgliteral1(__T2,__T3)' as parameter to non-global template reduce(functions...)
>
> which doesn't really work for me :-((
>
> If I try
>
> 	taskPool.reduce ! ( function double ( double a , double b ) { return a + b ; } ) ( 0.0 , outputData )
>
> then I get:
>
>          pi_d2_parallelMap.d(59): Error: function std.parallelism.__funcliteral1 cannot access frame of function pi_d2_parallelMap.execute.__funcliteral1
>          pi_d2_parallelMap.d(59): Error: function std.parallelism.__funcliteral1 cannot access frame of function pi_d2_parallelMap.execute.__funcliteral1
>
> which is just the error I get with the sequential map and so a compiler
> problem, I just added it for completeness.
>
> Thanks.
>



More information about the Digitalmars-d mailing list