Hello Simon, hello Kevin,

At first thanks for your replies. But I still have some questions.

On 19 Mar 1998 10:06:17 +0000, Simon Marlow wrote:
>
> ....
>the update continuation has both a return vector and a direct return
>address, so any kind of return can be handled by the update frame.
>....
>
But wouldn't this imply that each binding has to be compiled in two
versions. One version for the vectored return and another for the
direct return? In this case a polymorphic spark has to use always the
version for the direct return an wouldn't be as efficient as an
evaluation which was not sparked.


On Thu, 19 Mar 1998 20:56:09 +0000, Kevin Hammond wrote:
>
>....
>        par a e
>....
>
>If 'a' happens to be shared, then there will be an update frame
>for 'a' somewhere that will ensure the update is carried out
>correctly.  There's no need to pass registers around!
>....
>
I didn't get this point. If an updatable closure has been shipped to
another processor it is replaced by a fetchme closure. If the shipped
closure was shared, the fetchme closure is shared after shipping the
original. In the original STGM only the original updatable closure
pushes an updateframe. Assumed fetchme closures are updatable, the
fetchme closure will also push an update frame when it is entered.
But this happens probably after the remote computation has finished.
The result has to be stored in some way until this moment.

Matthias.



Reply via email to