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
editNew profile
editJorvik 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
edit- 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
editNew pragmas
edit- 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
edit- 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
edit- 'Enum_Rep
- 'Enum_Val
- 'Index
- 'Object_Size
- 'Parallel_Reduce
- 'Preelaborable_Initialization
- 'Put_Image
- 'Reduce
- 'Relative_Deadline
New packages
edit- Atomic_Operations: