From 38a61cff222cc99e5eb31133339c9768e9b5c8b0 Mon Sep 17 00:00:00 2001 From: Pat Rogers Date: Mon, 21 Sep 2020 13:23:44 -0500 Subject: [PATCH] [Ada] Replace GNAT_Extended_Ravenscar profile name gcc/ada/ * doc/gnat_rm/implementation_defined_pragmas.rst: Include "Jorvik" in pragma Profile description. * gnat_rm.texi: Regenerate. --- .../implementation_defined_pragmas.rst | 25 ++++++++++++------- gcc/ada/gnat_rm.texi | 23 ++++++++++------- 2 files changed, 30 insertions(+), 18 deletions(-) diff --git a/gcc/ada/doc/gnat_rm/implementation_defined_pragmas.rst b/gcc/ada/doc/gnat_rm/implementation_defined_pragmas.rst index e1e6853e02c..ddf60ec3dba 100644 --- a/gcc/ada/doc/gnat_rm/implementation_defined_pragmas.rst +++ b/gcc/ada/doc/gnat_rm/implementation_defined_pragmas.rst @@ -5079,7 +5079,7 @@ Syntax: .. code-block:: ada - pragma Profile (Ravenscar | Restricted | Rational | + pragma Profile (Ravenscar | Restricted | Rational | Jorvik | GNAT_Extended_Ravenscar | GNAT_Ravenscar_EDF ); @@ -5087,10 +5087,12 @@ This pragma is standard in Ada 2005, but is available in all earlier versions of Ada as an implementation-defined pragma. This is a configuration pragma that establishes a set of configuration pragmas that depend on the argument. ``Ravenscar`` is standard in Ada 2005. +``Jorvik`` is standard in Ada 202x. The other possibilities (``Restricted``, ``Rational``, ``GNAT_Extended_Ravenscar``, ``GNAT_Ravenscar_EDF``) -are implementation-defined. The set of configuration pragmas -is defined in the following sections. +are implementation-defined. ``GNAT_Extended_Ravenscar`` is an alias for ``Jorvik``. + +The set of configuration pragmas is defined in the following sections. * Pragma Profile (Ravenscar) @@ -5160,7 +5162,7 @@ is defined in the following sections. * ``Simple_Barriers`` The Ravenscar profile also includes the following restrictions that specify - that there are no semantic dependences on the corresponding predefined + that there are no semantic dependencies on the corresponding predefined packages: * ``No_Dependence => Ada.Asynchronous_Task_Control`` @@ -5201,12 +5203,10 @@ is defined in the following sections. automatically causes the use of a simplified, more efficient version of the tasking run-time library. -* Pragma Profile (GNAT_Extended_Ravenscar) +* Pragma Profile (Jorvik) - This profile corresponds to a GNAT specific extension of the - Ravenscar profile. The profile may change in the future although - only in a compatible way: some restrictions may be removed or - relaxed. It is defined as a variation of the Ravenscar profile. + ``Jorvik`` is the new profile added to the Ada 202x draft standard, + previously implemented under the name ``GNAT_Extended_Ravenscar``. The ``No_Implicit_Heap_Allocations`` restriction has been replaced by ``No_Implicit_Task_Allocations`` and @@ -5218,6 +5218,13 @@ is defined in the following sections. The ``Max_Protected_Entries``, ``Max_Entry_Queue_Length``, and ``No_Relative_Delay`` restrictions have been removed. + Details on the rationale for ``Jorvik`` and implications for use may be + found in :title:`A New Ravenscar-Based Profile` by P. Rogers, J. Ruiz, + T. Gingold and P. Bernardi, in :title:`Reliable Software Technologies -- + Ada Europe 2017`, Springer-Verlag Lecture Notes in Computer Science, + Number 10300. + + * Pragma Profile (GNAT_Ravenscar_EDF) This profile corresponds to the Ravenscar profile but using diff --git a/gcc/ada/gnat_rm.texi b/gcc/ada/gnat_rm.texi index 9992cf4a13f..c28518fbc19 100644 --- a/gcc/ada/gnat_rm.texi +++ b/gcc/ada/gnat_rm.texi @@ -6536,7 +6536,7 @@ See Ada 2012 Reference Manual for details. Syntax: @example -pragma Profile (Ravenscar | Restricted | Rational | +pragma Profile (Ravenscar | Restricted | Rational | Jorvik | GNAT_Extended_Ravenscar | GNAT_Ravenscar_EDF ); @end example @@ -6544,10 +6544,12 @@ This pragma is standard in Ada 2005, but is available in all earlier versions of Ada as an implementation-defined pragma. This is a configuration pragma that establishes a set of configuration pragmas that depend on the argument. @code{Ravenscar} is standard in Ada 2005. +@code{Jorvik} is standard in Ada 202x. The other possibilities (@code{Restricted}, @code{Rational}, @code{GNAT_Extended_Ravenscar}, @code{GNAT_Ravenscar_EDF}) -are implementation-defined. The set of configuration pragmas -is defined in the following sections. +are implementation-defined. @code{GNAT_Extended_Ravenscar} is an alias for @code{Jorvik}. + +The set of configuration pragmas is defined in the following sections. @itemize * @@ -6647,7 +6649,7 @@ No rendezvous statements are allowed. @end itemize The Ravenscar profile also includes the following restrictions that specify -that there are no semantic dependences on the corresponding predefined +that there are no semantic dependencies on the corresponding predefined packages: @@ -6699,12 +6701,10 @@ automatically causes the use of a simplified, more efficient version of the tasking run-time library. @item -Pragma Profile (GNAT_Extended_Ravenscar) +Pragma Profile (Jorvik) -This profile corresponds to a GNAT specific extension of the -Ravenscar profile. The profile may change in the future although -only in a compatible way: some restrictions may be removed or -relaxed. It is defined as a variation of the Ravenscar profile. +@code{Jorvik} is the new profile added to the Ada 202x draft standard, +previously implemented under the name @code{GNAT_Extended_Ravenscar}. The @code{No_Implicit_Heap_Allocations} restriction has been replaced by @code{No_Implicit_Task_Allocations} and @@ -6716,6 +6716,11 @@ The @code{Simple_Barriers} restriction has been replaced by The @code{Max_Protected_Entries}, @code{Max_Entry_Queue_Length}, and @code{No_Relative_Delay} restrictions have been removed. +Details on the rationale for @code{Jorvik} and implications for use may be +found in @cite{A New Ravenscar-Based Profile} by P. Rogers, J. Ruiz, +T. Gingold and P. Bernardi, in @cite{Reliable Software Technologies -- Ada Europe 2017}, Springer-Verlag Lecture Notes in Computer Science, +Number 10300. + @item Pragma Profile (GNAT_Ravenscar_EDF) -- 2.30.2