Overview of Ada 2022
Chapter 2: Parallelism
Although parallelism may be the first improvement
on the list, the parallelism features may be the hardest of the new features
to add, so unfortunately they may be the last ones to be implemented.
OpenMP
is a promising platform
to use for the parallelism features though. It already provides facilities
for C, C++ and Fortran. A logical thread of control could be mapped on
to an OpenMP lightweight thread. OpenMP has made similar design decisions
to Ada 2022. For example, if either an exception is propagated out of
a logical thread of control, or there is an explicit transfer of control
out of a logical thread of control, then an attempt is made to cancel
all logical threads of control within the construct.
Some of the new Ada features are clearly inspired
by existing SPARK 2014 features, especially
Global-in and global-out
annotations (AI12-0079-3),
but generalising these to cover the whole of the Ada language, not just
the SPARK subset, has been far from trivial.
© 2021, 2022 Jeff Cousins