ghc-lib-parser-0.20200201: The GHC API, decoupled from GHC versions

Safe HaskellSafe
LanguageHaskell2010

GHC.Platform

Description

A description of the platform we're compiling for.

Synopsis

Documentation

data PlatformMini Source #

Contains the bare-bones arch and os information. This isn't enough for code gen, but useful for tasks where we can fall back upon the host platform, as this is all we know about the host platform.

data Platform Source #

Contains enough information for the native code generator to emit code for this platform.

Instances
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

platformArch :: Platform -> Arch Source #

Legacy accessor

platformOS :: Platform -> OS Source #

Legacy accessor

data Arch Source #

Architectures that the native code generator knows about. TODO: It might be nice to extend these constructors with information about what instruction set extensions an architecture might support.

Instances
Eq Arch Source # 
Instance details

Defined in GHC.Platform

Methods

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

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

Read Arch Source # 
Instance details

Defined in GHC.Platform

Show Arch Source # 
Instance details

Defined in GHC.Platform

Methods

showsPrec :: Int -> Arch -> ShowS #

show :: Arch -> String #

showList :: [Arch] -> ShowS #

data OS Source #

Operating systems that the native code generator knows about. Having OSUnknown should produce a sensible default, but no promises.

Instances
Eq OS Source # 
Instance details

Defined in GHC.Platform

Methods

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

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

Read OS Source # 
Instance details

Defined in GHC.Platform

Show OS Source # 
Instance details

Defined in GHC.Platform

Methods

showsPrec :: Int -> OS -> ShowS #

show :: OS -> String #

showList :: [OS] -> ShowS #

data ArmISA Source #

ARM Instruction Set Architecture, Extensions and ABI

Constructors

ARMv5 
ARMv6 
ARMv7 
Instances
Eq ArmISA Source # 
Instance details

Defined in GHC.Platform

Methods

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

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

Read ArmISA Source # 
Instance details

Defined in GHC.Platform

Show ArmISA Source # 
Instance details

Defined in GHC.Platform

data ArmISAExt Source #

Constructors

VFPv2 
VFPv3 
VFPv3D16 
NEON 
IWMMX2 
Instances
Eq ArmISAExt Source # 
Instance details

Defined in GHC.Platform

Read ArmISAExt Source # 
Instance details

Defined in GHC.Platform

Show ArmISAExt Source # 
Instance details

Defined in GHC.Platform

data ArmABI Source #

Constructors

SOFT 
SOFTFP 
HARD 
Instances
Eq ArmABI Source # 
Instance details

Defined in GHC.Platform

Methods

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

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

Read ArmABI Source # 
Instance details

Defined in GHC.Platform

Show ArmABI Source # 
Instance details

Defined in GHC.Platform

data PPC_64ABI Source #

PowerPC 64-bit ABI

Constructors

ELF_V1 
ELF_V2 
Instances
Eq PPC_64ABI Source # 
Instance details

Defined in GHC.Platform

Read PPC_64ABI Source # 
Instance details

Defined in GHC.Platform

Show PPC_64ABI Source # 
Instance details

Defined in GHC.Platform

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.

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).

stringEncodeArch :: Arch -> String Source #

See Note [Platform Syntax].

stringEncodeOS :: OS -> String Source #

See Note [Platform Syntax].