[m-rev.] for post-commit review: document .par grades
Peter Wang
novalazy at gmail.com
Tue Aug 19 16:15:58 AEST 2025
On Mon, 18 Aug 2025 13:05:36 +0200 "Zoltan Somogyi" <zoltan.somogyi at runbox.com> wrote:
>
>
> On Mon, 18 Aug 2025 20:49:41 +1000, Julien Fischer <jfischer at opturion.com> wrote:
> > I think we should just bite the bullet and use separate grade
> > components for concurrency
> > and parallel conjunction across *all* of the C grades.
>
> Agreed.
>
> > Yes, it's an
> > extra grade component,
> > but it simplifies the question of how do I get a C grade that supports
> > concurrency?
> > If we disable concurrency in the (as now) non .par LLDS grades, then
> > having concurrency
> > support is matter of either using a csharp or java grade, or using a C
> > grade that has a ".mt"
> > component.
>
> At the moment, it is not an *extra* grade component. It is a *rename*
> of the .par grade component to .mt, given that parallel conjunction
> does not work :-(
Did something break parallel conjunction?
> I would be inclined to proceed as follows:
>
> - document the current .par grade as providing multithreading in C,
> both LLDS and MLDS, with multithreading provided without .par
> in C# and Java,
>
Yes, this is what .par means.
> - document that we plan to rename the .par grade modifier to .mt
> after a transition period where both are valid,
If someone wants multiple (native) threads, it's pretty much because
they want parallel execution. .mt is a bit more direct, but .par was
fine as well. It's not worse than "asm_fast".
> - document that eventually, we intend to use the .par modifier
> for LLDS grades that support parallel conjunctions.
If a grade has the prerequisites to support parallel conjunction,
and we've done the work to enable that support, I don't see why
it needs to be gated behind another grade modifier.
To bring the discussion away from the C grades for a moment, if someone
decided to implement parallel conjunction for the Java or C# backends
(which could be relatively easy compared to the C backends),
would we insist that parallel conjunction only be enabled in separate
java.par and csharp.par grades, when it could work just as well in the
existing java or csharp grades? Why?
Peter
More information about the reviews
mailing list