On Wednesday, 19 March 2014 at 00:13:10 UTC, bearophile wrote:
A problem (that is not a regression) is that taskPool.amap doesn't seem able to accept a lambda for some reason.
The reason for that is that any function in D currently can have at most one context pointer. For class and struct methods, that is the "this" pointer. For free functions which take a lambda, such as "map", "reduce" and other std.algorithm functions, it is the context of the lambda (a pointer to the containing function's stack frame or whatnot).
You can't have both. I think this is a glaring design problem in std.parallelism.
But even using a normal static inner function, the program asserts most times at run-time (but not always), while few months ago it used to work reliably. So perhaps in this messy situation there's some material for bug reports. Opinions and suggestions are welcome.
Can you perform a regression test, or post the asserting program?
