comp.lang.ada
 help / color / mirror / Atom feed
From: "Randy Brukardt" <randy@rrsoftware.com>
Subject: Re: Ichbiah 2022 compiler mode
Date: Sat, 14 Sep 2024 01:13:28 -0500	[thread overview]
Message-ID: <vc39ib$1avpa$1@dont-email.me> (raw)
In-Reply-To: lkg1vvF1tp6U1@mid.individual.net


"Niklas Holsti" <niklas.holsti@tidorum.invalid> wrote in message 
news:lkg1vvF1tp6U1@mid.individual.net...
...
>> Priorities are just optimization on how to manage cores when there are 
>> not enough of them.
>
> In some contexts it could be optimization -- for example, to increase 
> throughput in a soft real-time system -- but in hard real-time systems 
> priorities (or deadlines) are needed for correctness, not just for 
> optimizatiion.

This I don't buy: priorities never help for correctness. At least not 
without extensive static analysis, but if you can do that, you almost 
certainly can do the correctness without depending upon priorities.

I view priorities as similar to floating point accuracy: most people use 
them and get the results they want, but the reason for that is that they got 
lucky, and not because of anything intrinsic. Unless you do a lot of 
detailed analysis, you don't know if priorities really are helping or not 
(and similarly, whether your results actually are meaningful in the case of 
floating point).

Anyway, I don't see any such changes coming to Ada, but rather to some 
separate follow-on language (which necessarily needs to be simpler), and 
thus some things that are sometimes useful would get dropped.

(Different message)
...
> Ok, I understand. In that case, what "parallel" adds to the current 
> tasking feature is an easy way to create a largish and perhaps dynamically 
> defined number of concurrent threads from a "parallel" loop, where the 
> threads are automatically created when the loop is started and 
> automatically "joined" and destroyed when the loop completes.

I think the parallel block is more useful for general tasking. The advantage 
of using parallel structures is that they look very similar to sequential 
structures, and one lets the system do the scheduling (rather than trying to 
figure out an organization manually).

One of the advantages of the model I'm thinking about is that it separates 
concerns such as parallel execution, mutual exclusion, inheritance, 
organization (privacy, type grouping), and so on into separate (mostly) 
non-overlapping constructs. Ada started this process by having tagged types 
a separate construct from packages; you need both to get traditional OOP, 
but you can also construct many structures that are quite hard in 
traditional "one construct" OOP. I think that ought to be done for all 
constructs, and thus the special task and protected constructs ought to go. 
We already know that protected types cause problems with privacy of 
implementation and with inheritance. Tasks have similar issues (admittedly 
less encountered), so splitting them into a set of constructs would fit the 
model.

In any case, this is still a thought experiment at this time, whether 
anything ever comes of it is unknown.

                Randy.




               Randy. 


  reply	other threads:[~2024-09-14  6:13 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-09-05 11:52 Ichbiah 2022 compiler mode Kevin Chadwick
2024-09-05 13:40 ` Jeffrey R.Carter
2024-09-05 13:49   ` Bill Findlay
2024-09-05 19:22     ` Jeffrey R.Carter
2024-09-05 14:05   ` Kevin Chadwick
2024-09-05 16:08   ` Kevin Chadwick
2024-09-05 19:24     ` Jeffrey R.Carter
2024-09-06  0:03 ` Randy Brukardt
2024-09-06  0:58   ` Lawrence D'Oliveiro
2024-09-12  4:39     ` Randy Brukardt
2024-09-12 22:24       ` Lawrence D'Oliveiro
2024-09-14  6:18         ` Randy Brukardt
2024-09-14  7:18           ` Lawrence D'Oliveiro
2024-09-06 21:22   ` Simon Wright
2024-09-07 17:13     ` Niklas Holsti
2024-09-07 20:34       ` Nioclás Pól Caileán de Ghloucester
2024-09-12  4:46       ` Randy Brukardt
2024-09-12  7:42         ` Niklas Holsti
2024-09-12  9:07           ` Dmitry A. Kazakov
2024-09-12 12:36           ` Kevin Chadwick
2024-09-12 15:43             ` Niklas Holsti
2024-09-13 20:45             ` Nioclás Pól Caileán de Ghloucester
2024-09-12  9:04         ` J-P. Rosen
2024-09-12 11:35           ` Niklas Holsti
2024-09-14  6:13             ` Randy Brukardt [this message]
2024-09-14  6:47               ` Dmitry A. Kazakov
2024-09-14  7:19               ` Lawrence D'Oliveiro
2024-09-14  8:12               ` Niklas Holsti
2024-09-06 11:07 ` Jeffrey R.Carter
2024-09-06 20:26   ` Nioclás Pól Caileán de Ghloucester
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox