# Ada Programming/Libraries/System

<noinclude>

## Description

The System package is a standard library package provided with each Ada implementation. It includes implementation and system configuration-dependent definitions. The System package contains a standard set of language-defined (but implementation-dependent) types and named numbers.

### Types

* Name
* Address
* Priority (also Interrupt_Priority and Any_Priority since Ada 95)
* Bit_Order (since Ada 95)

### Constants

The following named numbers may be set by pragmas. These pragmas may only be used at the start of compilation:
* System_Name
* Storage_Unit
* Memory_Size
The following named numbers are set by the implementation:
* Null_Address (since Ada 95)
* Default_Priority (since Ada 95)
* Default_Bit_Order (since Ada 95)
* MIN_INT — the smallest value of all predefined integer types (negative).
* MAX_INT — the largest value of all predefined integer types (positive).
* MAX_BINARY_MODULUS — the largest power of allowed as the modulus for modular types.
* MAX_NONBINARY_MODULUS — the largest value allowed as the modulus for modular types.
* MAX_BASE_DIGITS — the largest number of significant decimal digits in a floating point declaration.
* MAX_DIGITS — the largest number of significant decimal digits in a floating point declaration without a range specification. This value is at most as large as the previous one.
* MAX_MANTISSA — the largest possible number of binary digits in the mantissa of fixed point values.
* FINE_DELTA — The smallest delta allowed in a fixed point value (given a range constraint of -1.0 to 1.0).
* TICK — the clock period (in seconds).

## Child packages
### Standard System packages

The six untagged System packages are from the ISO/IEC 8652:1995(E) standard.

#### (Ada 2012)

    This package is available since Ada 2012.

#### (Ada 2022)

    This package is available since Ada 2022.
* System
* System.Address_To_Access_Conversions
* System.Atomic_Operations (Ada 2022)
** System.Atomic_Operations.Exchange (Ada 2022)
** System.Atomic_Operations.Integer_Arithmetic (Ada 2022)
** System.Atomic_Operations.Modular_Arithmetic (Ada 2022)
** System.Atomic_Operations.Test_And_Set (Ada 2022)
* System.Machine_Code
* System.Multiprocessors (Ada 2012)
** System.Multiprocessors.Dispatching_Domains (Ada 2012)
* System.RPC
* System.Storage_Elements
* System.Storage_Pools
** System.Storage_Pools.Subpools (Ada 2012)

### GNAT System packages

* System.Address_Image
* System.Assertions
* System.Memory
* System.Partition_Interface
* System.Task_Info
* System.WCh_Cnv
* System.WCh_Con
The following 200 odd packages form the GNAT runtime environment. They are mentioned here as a reference for advanced users. Normal GNAT users should ignore them because they are internal units of the runtime system.
* System.Address_Operations
* System.Arith_64
* System.AST_Handling
* System.Aux_DEC
* System.Bit_Ops
* System.Boolean_Array_Operations
* System.Compare_Array_Signed_8
* System.Compare_Array_Unsigned_8
* System.Compare_Array_Signed_16
* System.Compare_Array_Signed_32
* System.Compare_Array_Signed_64
* System.Case_Util
* System.Compare_Array_Unsigned_16
* System.Compare_Array_Unsigned_32
* System.Compare_Array_Unsigned_64
* System.Checked_Pools
* System.CRC32
* System.CRTL
* System.Direct_IO
* System.Error_Reporting
* System.Exceptions
* System.Exception_Table
* System.Exn_Int
* System.Exn_LLF
* System.Exn_LLI
* System.Exp_Int
* System.Exp_LLI
* System.Exp_LLU
* System.Exp_Mod
* System.Exp_Uns
* System.Fat_Flt
* System.Fat_Gen
* System.Fat_LFlt
* System.Fat_LLF
* System.Fat_SFlt
* System.File_Control_Block
* System.File_IO
* System.Finalization_Implementation
* System.Finalization_Root
* System.Fore
* System.Generic_Vector_Operations
* System.Global_Locks
* System.HIE_Back_End
* System.HTable
* System.Img_BIU
* System.Img_Bool
* System.Img_Char
* System.Img_Dec
* System.Img_Enum
* System.Img_Int
* System.Img_LLB
* System.Img_LLD
* System.Img_LLI
* System.Img_LLU
* System.Img_LLW
* System.Img_Real
* System.Img_Uns
* System.Img_WChar
* System.Img_WIU
* System.Interrupt_Management.Operations
* System.Interrupts
* System.Interrupt_Management
* System.IO
* System.Mantissa
* System.Machine_State_Operations
* System.Memory_Copy
* System.OS_Interface
* System.OS_Primitives
* System.Pack_03
* System.Pack_05
* System.Pack_06
* System.Pack_07
* System.Pack_09
* System.Pack_10
* System.Pack_11
* System.Pack_12
* System.Pack_13
* System.Pack_14
* System.Pack_15
* System.Pack_17
* System.Pack_18
* System.Pack_19
* System.Pack_20
* System.Pack_21
* System.Pack_22
* System.Pack_23
* System.Pack_24
* System.Pack_25
* System.Pack_26
* System.Pack_27
* System.Pack_28
* System.Pack_29
* System.Pack_30
* System.Pack_31
* System.Pack_33
* System.Pack_34
* System.Pack_35
* System.Pack_36
* System.Pack_37
* System.Pack_38
* System.Pack_39
* System.Pack_40
* System.Pack_41
* System.Pack_42
* System.Pack_43
* System.Pack_44
* System.Pack_45
* System.Pack_46
* System.Pack_47
* System.Pack_48
* System.Pack_49
* System.Pack_50
* System.Pack_51
* System.Pack_52
* System.Pack_53
* System.Pack_54
* System.Pack_55
* System.Pack_56
* System.Pack_57
* System.Pack_58
* System.Pack_59
* System.Pack_60
* System.Pack_61
* System.Pack_62
* System.Pack_63
* System.Parameters
* System.Pool_Global
* System.Pool_Local
* System.Pool_Size
* System.Powten_Table
* System.Program_Info
* System.Pure_Exceptions
* System.Restrictions
* System.Rident
* System.Scalar_Values
* System.Secondary_Stack
* System.Sequential_IO
* System.Shared_Storage
* System.Soft_Links
* System.Soft_Links.Tasking
* System.String_Ops_Concat_3
* System.String_Ops_Concat_4
* System.String_Ops_Concat_5
* System.Stack_Checking
* System.Standard_Library
* System.Stack_Checking.Operations
* System.Stream_Attributes
* System.String_Compare
* System.String_Ops
* System.Tasking.Async_Delays
* System.Tasking.Entry_Calls
* System.Tasking.Protected_Objects
* System.Task_Primitives.Operations
* System.Tasking.Restricted.Stages
* System.Tasking.Debug
* System.Tasking.Initialization
* System.Tasking
* System.Task_Primitives
* System.Tasking.Queuing
* System.Tasking.Rendezvous
* System.Tasking.Restricted
* System.Tasking.Stages
* System.Tasking.Utilities
* System.Tasking.Task_Attributes
* System.Task_Primitives.Interrupt_Operations
* System.Tasking.Protected_Objects.Entries
* System.Tasking.Protected_Objects.Operations
* System.Tasking.Protected_Objects.Single_Entry
* System.Traceback
* System.Traces
* System.Traceback_Entries
* System.Traces.Tasking
* System.Unsigned_Types
* System.Vax_Float_Operations
* System.Val_Bool
* System.Val_Char
* System.Val_Dec
* System.Val_Enum
* System.Val_Int
* System.Val_LLD
* System.Val_LLI
* System.Val_LLU
* System.Val_Real
* System.Val_Uns
* System.Val_Util
* System.Val_WChar
* System.Vectors.Boolean_Operations
* System.Vectors
* System.Version_Control
* System.VMS_Exception_Table
* System.WCh_JIS
* System.WCh_StW
* System.WCh_WtS
* System.Wid_Bool
* System.Wid_Char
* System.Wid_Enum
* System.Wid_LLI
* System.Wid_LLU
* System.Wid_WChar
* System.WWd_Char
* System.WWd_Enum
* System.Wwd_WChar

## See also
### Wikibook

* Ada Programming
* Ada Programming/Libraries
* Ada Programming/Libraries/Standard
* Ada Programming/Libraries/Ada
* Ada Programming/Libraries/Interfaces

### Ada 83 Reference Manual

* 13.7: The Package System

### Ada 95 Reference Manual

* 13.7: The Package System

### Ada 2005 Reference Manual

* 13.7: The Package System