Dan Sugalski wrote:
Whups, misunderstanding there. I realize that we need to throw an
exception (or a junction of exception and not exception) if evaluating
one of the junction members. The question is whether we should evaluate
them all regardless and then figure it out at the end, and what to do
with currently running junction evaluations if we've spawned off
multiple threads to evaluate them in parallel. I expect I'm getting a
bit too Quantum here, though.
Not at all. It's an important question, especially if the other threads
have side effects. I suspect, however, that once one state of a junction
throws an exception, we should just kill off the other states immediately.
I'm thinking that we shouldn't parallelize junction evaluation by
default. Dealing with threads has too many issues that must be dealt
with to spring it on unsuspecting programs.
Perhaps. But we need to think through the issues so that we can eventually
move to threaded implementations without changing the semantics.
Damian