Safe Haskell | Safe |
---|---|
Language | Haskell2010 |
GHC.Platform
Description
A description of the platform we're compiling for.
Synopsis
- data Platform = Platform {}
- data PlatformWordSize
- data Arch
- = ArchUnknown
- | ArchX86
- | ArchX86_64
- | ArchPPC
- | ArchPPC_64 { }
- | ArchSPARC
- | ArchSPARC64
- | ArchARM { }
- | ArchARM64
- | ArchAlpha
- | ArchMipseb
- | ArchMipsel
- | ArchJavaScript
- data OS
- data ArmISA
- data ArmISAExt
- data ArmABI
- data PPC_64ABI
- target32Bit :: Platform -> Bool
- isARM :: Arch -> Bool
- osElfTarget :: OS -> Bool
- osMachOTarget :: OS -> Bool
- osSubsectionsViaSymbols :: OS -> Bool
- platformUsesFrameworks :: Platform -> Bool
- platformWordSizeInBytes :: Platform -> Int
- platformWordSizeInBits :: Platform -> Int
- data PlatformMisc = PlatformMisc {
- platformMisc_targetPlatformString :: String
- platformMisc_integerLibrary :: String
- platformMisc_integerLibraryType :: IntegerLibrary
- platformMisc_ghcWithInterpreter :: Bool
- platformMisc_ghcWithNativeCodeGen :: Bool
- platformMisc_ghcWithSMP :: Bool
- platformMisc_ghcRTSWays :: String
- platformMisc_tablesNextToCode :: Bool
- platformMisc_leadingUnderscore :: Bool
- platformMisc_libFFI :: Bool
- platformMisc_ghcThreaded :: Bool
- platformMisc_ghcDebugged :: Bool
- platformMisc_ghcRtsWithLibdw :: Bool
- platformMisc_llvmTarget :: String
- data IntegerLibrary
- stringEncodeArch :: Arch -> String
- stringEncodeOS :: OS -> String
Documentation
Contains enough information for the native code generator to emit code for this platform.
Constructors
Platform | |
data PlatformWordSize Source #
Instances
Eq PlatformWordSize Source # | |
Defined in GHC.Platform Methods (==) :: PlatformWordSize -> PlatformWordSize -> Bool # (/=) :: PlatformWordSize -> PlatformWordSize -> Bool # | |
Read PlatformWordSize Source # | |
Defined in GHC.Platform Methods readsPrec :: Int -> ReadS PlatformWordSize # readList :: ReadS [PlatformWordSize] # | |
Show PlatformWordSize Source # | |
Defined in GHC.Platform Methods showsPrec :: Int -> PlatformWordSize -> ShowS # show :: PlatformWordSize -> String # showList :: [PlatformWordSize] -> ShowS # |
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.
Constructors
ArchUnknown | |
ArchX86 | |
ArchX86_64 | |
ArchPPC | |
ArchPPC_64 | |
ArchSPARC | |
ArchSPARC64 | |
ArchARM | |
ArchARM64 | |
ArchAlpha | |
ArchMipseb | |
ArchMipsel | |
ArchJavaScript |
Operating systems that the native code generator knows about. Having OSUnknown should produce a sensible default, but no promises.
Constructors
OSUnknown | |
OSLinux | |
OSDarwin | |
OSSolaris2 | |
OSMinGW32 | |
OSFreeBSD | |
OSDragonFly | |
OSOpenBSD | |
OSNetBSD | |
OSKFreeBSD | |
OSHaiku | |
OSQNXNTO | |
OSAIX | |
OSHurd |
ARM Instruction Set Architecture, Extensions and ABI
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.
osSubsectionsViaSymbols :: OS -> Bool Source #
platformWordSizeInBits :: Platform -> Int Source #
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).
Constructors
PlatformMisc | |
Fields
|
data IntegerLibrary Source #
Constructors
IntegerGMP | |
IntegerSimple |
Instances
Eq IntegerLibrary Source # | |
Defined in GHC.Platform Methods (==) :: IntegerLibrary -> IntegerLibrary -> Bool # (/=) :: IntegerLibrary -> IntegerLibrary -> Bool # | |
Read IntegerLibrary Source # | |
Defined in GHC.Platform Methods readsPrec :: Int -> ReadS IntegerLibrary # readList :: ReadS [IntegerLibrary] # | |
Show IntegerLibrary Source # | |
Defined in GHC.Platform Methods showsPrec :: Int -> IntegerLibrary -> ShowS # show :: IntegerLibrary -> String # showList :: [IntegerLibrary] -> ShowS # |
stringEncodeArch :: Arch -> String Source #
See Note [Platform Syntax].
stringEncodeOS :: OS -> String Source #
See Note [Platform Syntax].