[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