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.
Summary of what's new
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
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:
- Big Numbers:
- Containers: