std.parallelism changes done
dsimcha
dsimcha at yahoo.com
Wed Mar 23 21:32:26 PDT 2011
I've finished all of the changes that were discussed in the initial
std.parallelism review. I know I said I needed more time than this, but
honestly, I hit a best-case scenario. I had more time than I
anticipated to work on it *and* the changes (especially fixing the
exception handling issue) took less time than I anticipated.
I would say that the documentation has now improved "radically", like
Andrei suggested it needs to. I want to thank Andrei and Michael Fortin
for their extremely useful suggestions, and apologize for getting
defensive at times. I felt compelled to defend my initial design in
cases where I shouldn't have, due to a combination of time pressure and
a misunderstanding of the review process. Andrei's suggestions in
particular led to a tremendous improvement of the documentation and, to
a lesser extent, an improvement of the API.
In addition to improving the documentation, I added
Task.executeInNewThread() to allow Task to be useful without a TaskPool.
(Should this have a less verbose name?) I also fixed some exception
handling bugs, implemented exception chaining for exceptions thrown
concurrently, and fixed some silliness with respect to seed values in
reduce().
One thing Andrei mentioned that I'm really not sure about is what to do
with TaskPool.join(). My example for it is still terrible, because I
think it's an evolutionary artifact. It was useful in earlier designs
that were never released and didn't have high-level data parallelism
primitives. I never use it, don't have any good use cases for it and
would be inclined to remove it entirely. Andrei seems to have some good
use cases in mind, but he has not detailed any that I believe are
reasonably implementable and I'm not sure whether they could be solved
better using the higher-level data parallelism primitives.
As far as the vote, I know I asked for more time and to allow another
module ahead of me, and of course I'll honor that. I'd like to un-git
stash this review as soon as isemail is done, though. I anticipate a
decent amount more suggestions now, given how major the changes have
been, but most will probably be minor things like documentation
clarifications and renaming stuff.
The new docs are at
http://cis.jhu.edu/~dsimcha/d/phobos/std_parallelism.html .
More information about the Digitalmars-d
mailing list