Ada Programming/Ada 2022

This is an overview of the major features that are available in Ada 2022, the most recent version of the Ada standard.

New profile
Jorvik is a subset of the Ada tasking capabilities, similar to Ravenscar and which imposes fewer restrictions, removing the following ones compared to the Ravenscar profile:


 * No_Implicit_Heap_Allocations
 * No_Relative_Delay
 * Simple_Barriers
 * Max_Entry_Queue_Length => 1
 * Max_Protected_Entries => 1
 * No_Dependence => Ada.Calendar
 * No_Dependence => Ada.Synchronous_Barriers

New syntax

 * Assignment target name @
 * Square brackets for array aggregates
 * Default initial conditions for types
 * Default generic parameters
 * Declare expressions
 * Reduction expressions
 * Iteration filters
 * Generalized literals

New keywords

 * parallel

New pragmas

 * Admission_Policy
 * All_Calls_Remote
 * Conflict_Check_Policy
 * Elaborate_Body
 * Generate_Deadlines
 * Preelaborable_Initialization
 * Preelaborate
 * Profile now supports the Jorvik profile
 * Pure
 * Remote_Call_Interface
 * Remote_Types
 * Shared_Passive

New aspects

 * Aggregate
 * Allows_Exit
 * Default_Initial_Condition
 * Dispatching
 * Elaborate_Body
 * Full_Access_Only
 * Global
 * Global'Class
 * Integer_Literal
 * Iterator_View
 * Max_Entry_Queue_Length
 * No_Controlled_Parts
 * No_Return (for functions)
 * Nonblocking
 * Parallel_Calls
 * Parallel_Iterator
 * Preelaborable_Initialization
 * Put_Image
 * Real_Literal
 * Relative_Deadline
 * Stable_Properties
 * Stable_Properties'Class
 * Static
 * Static_Predicate
 * String_Literal
 * Synchronization
 * Use_Formal
 * Yield

New attributes

 * 'Enum_Rep
 * 'Enum_Val
 * 'Index
 * 'Object_Size
 * 'Parallel_Reduce
 * 'Preelaborable_Initialization
 * 'Put_Image
 * 'Reduce
 * 'Relative_Deadline

New packages

 * Atomic_Operations:
 * System.Atomic_Operations.Exchange
 * System.Atomic_Operations.Test_And_Set
 * System.Atomic_Operations.Integer_Arithmetic
 * System.Atomic_Operations.Modular_Arithmetic


 * Big Numbers:
 * Ada.Numerics.Big_Numbers.Big_Integers
 * Ada.Numerics.Big_Numbers.Big_Reals
 * Containers:
 * Ada.Containers.Bounded_Indefinite_Holders

Wikibook

 * Ada Programming/Ada 83
 * Ada Programming/Ada 95
 * Ada Programming/Ada 2005
 * Ada Programming/Ada 2012

|Ada 2022 *Ada 2022 *Ada 2022