[m-rev.] for review: dependent AND parallelism via inline C code
Peter Wang
novalazy at gmail.com
Mon Nov 3 15:48:58 AEDT 2008
On 2008-11-03, Zoltan Somogyi <zs at csse.unimelb.edu.au> wrote:
> On 29-Oct-2008, Peter Wang <novalazy at gmail.com> wrote:
> > > + % XXX The implementation actually allows a future to be signalled
> > > + % more than once, provided the signals specify the same value.
> > > %
> >
> > Replace the XXX and the sentence before it with something like:
> >
> > A future may be signalled more than once if it is passed to a procedure
> > multiple times, but then it must be signalled with the same value.
>
> Under what circumstances can it be passed to a procedure multiple times?
> Superhomogeneous form requires the arguments of a call to be *distinct*
> variables. Some optimizations such as excess assignment elimination may
> replace distinct input arguments with multiple copies of the same variable,
> but as far as I know this shouldn't happen for output arguments.
I didn't think of that.
> > > new_future(Future::uo),
> > > [will_not_call_mercury, promise_pure, thread_safe, will_not_modify_trail],
> >
> > To prevent intermodule inlining `may_not_duplicate' should be added.
> > Similarly for the following.
>
> I have done that, but what would be the problem with intermodule inlining?
No problem except that the behaviour of --intermodule-optimisation
--no-inline-par-builtins might be a bit surprising.
Peter
--------------------------------------------------------------------------
mercury-reviews mailing list
Post messages to: mercury-reviews at csse.unimelb.edu.au
Administrative Queries: owner-mercury-reviews at csse.unimelb.edu.au
Subscriptions: mercury-reviews-request at csse.unimelb.edu.au
--------------------------------------------------------------------------
More information about the reviews
mailing list