From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1914) id 18DFC388456B; Wed, 11 May 2022 08:55:29 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 18DFC388456B MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="utf-8" From: Pierre-Marie de Rodat To: gcc-cvs@gcc.gnu.org Subject: [gcc r13-300] [Ada] Use pygments for Ada code examples of elaboration control X-Act-Checkin: gcc X-Git-Author: Piotr Trojanek X-Git-Refname: refs/heads/master X-Git-Oldrev: 42c0119157824beb106345faa4b100c10dbb38cc X-Git-Newrev: a473646ec83e0835cf3f16e146a69445e6da7ee5 Message-Id: <20220511085529.18DFC388456B@sourceware.org> Date: Wed, 11 May 2022 08:55:29 +0000 (GMT) X-BeenThere: gcc-cvs@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-cvs mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 11 May 2022 08:55:29 -0000 https://gcc.gnu.org/g:a473646ec83e0835cf3f16e146a69445e6da7ee5 commit r13-300-ga473646ec83e0835cf3f16e146a69445e6da7ee5 Author: Piotr Trojanek Date: Sun Jan 30 18:39:39 2022 +0100 [Ada] Use pygments for Ada code examples of elaboration control Only enhancement of formatting. gcc/ada/ * doc/gnat_ugn/elaboration_order_handling_in_gnat.rst: Change blocks from plain code to Ada. Diff: --- .../elaboration_order_handling_in_gnat.rst | 52 +++++++++++----------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/gcc/ada/doc/gnat_ugn/elaboration_order_handling_in_gnat.rst b/gcc/ada/doc/gnat_ugn/elaboration_order_handling_in_gnat.rst index eb0f905d3ed..4982ebf4b10 100644 --- a/gcc/ada/doc/gnat_ugn/elaboration_order_handling_in_gnat.rst +++ b/gcc/ada/doc/gnat_ugn/elaboration_order_handling_in_gnat.rst @@ -93,7 +93,7 @@ Elaboration code may appear in two distinct contexts: [body] compilation unit, ignoring any other package [body] declarations in between. - :: + .. code-block:: ada with Server; package Client is @@ -116,7 +116,7 @@ Elaboration code may appear in two distinct contexts: bounded by the region starting from the ``begin`` keyword of the package body and ending at the ``end`` keyword of the package body. - :: + .. code-block:: ada package body Client is procedure Proc is @@ -142,7 +142,7 @@ executed is referred to as **elaboration order**. Within a single unit, elaboration code is executed in sequential order. - :: + .. code-block:: ada package body Client is Result : ... := Server.Func; @@ -190,13 +190,13 @@ factors: A program may have several elaboration orders depending on its structure. - :: + .. code-block:: ada package Server is function Func (Index : Integer) return Integer; end Server; - :: + .. code-block:: ada package body Server is Results : array (1 .. 5) of Integer := (1, 2, 3, 4, 5); @@ -207,14 +207,14 @@ A program may have several elaboration orders depending on its structure. end Func; end Server; - :: + .. code-block:: ada with Server; package Client is Val : constant Integer := Server.Func (3); end Client; - :: + .. code-block:: ada with Client; procedure Main is begin null; end Main; @@ -320,7 +320,7 @@ the desired elaboration order and avoiding ABE problems altogether. A library package which does not require a completing body does not suffer from ABE problems. - :: + .. code-block:: ada package Pack is generic @@ -358,7 +358,7 @@ the desired elaboration order and avoiding ABE problems altogether. scenario can invoke a server target before the target body has been elaborated because the spec and body are effectively "glued" together. - :: + .. code-block:: ada package Server is pragma Elaborate_Body; @@ -366,7 +366,7 @@ the desired elaboration order and avoiding ABE problems altogether. function Func return Integer; end Server; - :: + .. code-block:: ada package body Server is function Func return Integer is @@ -375,7 +375,7 @@ the desired elaboration order and avoiding ABE problems altogether. end Func; end Server; - :: + .. code-block:: ada with Server; package Client is @@ -425,13 +425,13 @@ depend on. be elaborated prior to the unit with the pragma. Note that other unrelated units may be elaborated in between the spec and the body. - :: + .. code-block:: ada package Server is function Func return Integer; end Server; - :: + .. code-block:: ada package body Server is function Func return Integer is @@ -440,7 +440,7 @@ depend on. end Func; end Server; - :: + .. code-block:: ada with Server; pragma Elaborate (Server); @@ -479,13 +479,13 @@ depend on. |withed| by the spec and body of the argument, recursively. Note that other unrelated units may be elaborated in between the spec and the body. - :: + .. code-block:: ada package Math is function Factorial (Val : Natural) return Natural; end Math; - :: + .. code-block:: ada package body Math is function Factorial (Val : Natural) return Natural is @@ -494,7 +494,7 @@ depend on. end Factorial; end Math; - :: + .. code-block:: ada package Computer is type Operation_Kind is (None, Op_Factorial); @@ -504,7 +504,7 @@ depend on. Op : Operation_Kind) return Natural; end Computer; - :: + .. code-block:: ada with Math; package body Computer is @@ -520,7 +520,7 @@ depend on. end Compute; end Computer; - :: + .. code-block:: ada with Computer; pragma Elaborate_All (Computer); @@ -738,7 +738,7 @@ execution. The warnings can be suppressed selectively with ``pragma Warnings A *guaranteed ABE* arises when the body of a target is not elaborated early enough, and causes *all* scenarios that directly invoke the target to fail. - :: + .. code-block:: ada package body Guaranteed_ABE is function ABE return Integer; @@ -765,7 +765,7 @@ the declaration of ``Val``. This invokes function ``ABE``, however the body of A *conditional ABE* arises when the body of a target is not elaborated early enough, and causes *some* scenarios that directly invoke the target to fail. - :: + .. code-block:: ada 1. package body Conditional_ABE is 2. procedure Force_Body is null; @@ -850,19 +850,19 @@ clauses, elaboration-control pragmas, or invocations in elaboration code. The following example exhibits an elaboration circularity. - :: + .. code-block:: ada with B; pragma Elaborate (B); package A is end A; - :: + .. code-block:: ada package B is procedure Force_Body; end B; - :: + .. code-block:: ada with C; package body B is @@ -871,13 +871,13 @@ The following example exhibits an elaboration circularity. Elab : constant Integer := C.Func; end B; - :: + .. code-block:: ada package C is function Func return Integer; end C; - :: + .. code-block:: ada with A; package body C is