Ada Programming/Ada 2022
Appearance
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
[edit | edit source]New profile
[edit | edit source]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
[edit | edit source]- 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
[edit | edit source]New pragmas
[edit | edit source]- 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 | edit source]- 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 | edit source]- 'Enum_Rep
- 'Enum_Val
- 'Index
- 'Object_Size
- 'Parallel_Reduce
- 'Preelaborable_Initialization
- 'Put_Image
- 'Reduce
- 'Relative_Deadline
New packages
[edit | edit source]- Atomic_Operations:
- Big Numbers:
- Containers: