ghc-lib-parser-9.2.3.20220527: The GHC API, decoupled from GHC versions
Safe HaskellNone
LanguageHaskell2010

GHC.Platform

Description

Platform description

Synopsis

Documentation

data Platform Source #

Platform description

This is used to describe platforms so that we can generate code for them.

Constructors

Platform 

Fields

Instances

Instances details
Eq Platform Source # 
Instance details

Defined in GHC.Platform

Read Platform Source # 
Instance details

Defined in GHC.Platform

Show Platform Source # 
Instance details

Defined in GHC.Platform

OutputableP Platform CLabel Source # 
Instance details

Defined in GHC.Cmm.CLabel

Methods

pdoc :: Platform -> CLabel -> SDoc Source #

platformArch :: Platform -> Arch Source #

Platform architecture

platformOS :: Platform -> OS Source #

Platform OS

data ArchOS Source #

Platform architecture and OS.

Constructors

ArchOS 

Fields

Instances

Instances details
Eq ArchOS Source # 
Instance details

Defined in GHC.Platform.ArchOS

Methods

(==) :: ArchOS -> ArchOS -> Bool #

(/=) :: ArchOS -> ArchOS -> Bool #

Read ArchOS Source # 
Instance details

Defined in GHC.Platform.ArchOS

Show ArchOS Source # 
Instance details

Defined in GHC.Platform.ArchOS

data Arch Source #

Architectures

TODO: It might be nice to extend these constructors with information about what instruction set extensions an architecture might support.

Instances

Instances details
Eq Arch Source # 
Instance details

Defined in GHC.Platform.ArchOS

Methods

(==) :: Arch -> Arch -> Bool #

(/=) :: Arch -> Arch -> Bool #

Read Arch Source # 
Instance details

Defined in GHC.Platform.ArchOS

Show Arch Source # 
Instance details

Defined in GHC.Platform.ArchOS

Methods

showsPrec :: Int -> Arch -> ShowS #

show :: Arch -> String #

showList :: [Arch] -> ShowS #

data OS Source #

Operating systems.

Using OSUnknown to generate code should produce a sensible default, but no promises.

Instances

Instances details
Eq OS Source # 
Instance details

Defined in GHC.Platform.ArchOS

Methods

(==) :: OS -> OS -> Bool #

(/=) :: OS -> OS -> Bool #

Read OS Source # 
Instance details

Defined in GHC.Platform.ArchOS

Show OS Source # 
Instance details

Defined in GHC.Platform.ArchOS

Methods

showsPrec :: Int -> OS -> ShowS #

show :: OS -> String #

showList :: [OS] -> ShowS #

data ArmISA Source #

ARM Instruction Set Architecture

Constructors

ARMv5 
ARMv6 
ARMv7 

Instances

Instances details
Eq ArmISA Source # 
Instance details

Defined in GHC.Platform.ArchOS

Methods

(==) :: ArmISA -> ArmISA -> Bool #

(/=) :: ArmISA -> ArmISA -> Bool #

Read ArmISA Source # 
Instance details

Defined in GHC.Platform.ArchOS

Show ArmISA Source # 
Instance details

Defined in GHC.Platform.ArchOS

data ArmISAExt Source #

ARM extensions

Constructors

VFPv2 
VFPv3 
VFPv3D16 
NEON 
IWMMX2 

Instances

Instances details
Eq ArmISAExt Source # 
Instance details

Defined in GHC.Platform.ArchOS

Read ArmISAExt Source # 
Instance details

Defined in GHC.Platform.ArchOS

Show ArmISAExt Source # 
Instance details

Defined in GHC.Platform.ArchOS

data ArmABI Source #

ARM ABI

Constructors

SOFT 
SOFTFP 
HARD 

Instances

Instances details
Eq ArmABI Source # 
Instance details

Defined in GHC.Platform.ArchOS

Methods

(==) :: ArmABI -> ArmABI -> Bool #

(/=) :: ArmABI -> ArmABI -> Bool #

Read ArmABI Source # 
Instance details

Defined in GHC.Platform.ArchOS

Show ArmABI Source # 
Instance details

Defined in GHC.Platform.ArchOS

data PPC_64ABI Source #

PowerPC 64-bit ABI

Constructors

ELF_V1

PowerPC64

ELF_V2

PowerPC64 LE

Instances

Instances details
Eq PPC_64ABI Source # 
Instance details

Defined in GHC.Platform.ArchOS

Read PPC_64ABI Source # 
Instance details

Defined in GHC.Platform.ArchOS

Show PPC_64ABI Source # 
Instance details

Defined in GHC.Platform.ArchOS

data ByteOrder #

Byte ordering.

Constructors

BigEndian

most-significant-byte occurs in lowest address.

LittleEndian

least-significant-byte occurs in lowest address.

Instances

Instances details
Bounded ByteOrder

Since: base-4.11.0.0

Instance details

Defined in GHC.ByteOrder

Enum ByteOrder

Since: base-4.11.0.0

Instance details

Defined in GHC.ByteOrder

Eq ByteOrder

Since: base-4.11.0.0

Instance details

Defined in GHC.ByteOrder

Ord ByteOrder

Since: base-4.11.0.0

Instance details

Defined in GHC.ByteOrder

Read ByteOrder

Since: base-4.11.0.0

Instance details

Defined in GHC.ByteOrder

Show ByteOrder

Since: base-4.11.0.0

Instance details

Defined in GHC.ByteOrder

target32Bit :: Platform -> Bool Source #

This predicate tells us whether the platform is 32-bit.

osElfTarget :: OS -> Bool Source #

This predicate tells us whether the OS supports ELF-like shared libraries.

osMachOTarget :: OS -> Bool Source #

This predicate tells us whether the OS support Mach-O shared libraries.

platformMinInt :: Platform -> Integer Source #

Minimum representable Int value for the given platform

platformMaxInt :: Platform -> Integer Source #

Maximum representable Int value for the given platform

platformMaxWord :: Platform -> Integer Source #

Maximum representable Word value for the given platform

platformInIntRange :: Platform -> Integer -> Bool Source #

Test if the given Integer is representable with a platform Int

platformInWordRange :: Platform -> Integer -> Bool Source #

Test if the given Integer is representable with a platform Word

platformCConvNeedsExtension :: Platform -> Bool Source #

For some architectures the C calling convention is that any integer shorter than 64 bits is replaced by its 64 bits representation using sign or zero extension.

data PlatformMisc Source #

Platform-specific settings formerly hard-coded in Config.hs.

These should probably be all be triaged whether they can be computed from other settings or belong in another another place (like Platform above).

data SseVersion Source #

x86 SSE instructions

Constructors

SSE1 
SSE2 
SSE3 
SSE4 
SSE42 

data BmiVersion Source #

x86 BMI (bit manipulation) instructions

Constructors

BMI1 
BMI2 

Platform constants

data PlatformConstants Source #

Constructors

PlatformConstants 

Fields

lookupPlatformConstants :: [FilePath] -> IO (Maybe PlatformConstants) Source #

Try to locate "GhclibDerivedConstants.h" file in the given dirs and to parse the PlatformConstants from it.

See Note [Platform constants]

Shared libraries