Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
A description of the platform we're compiling for.
Synopsis
- data PlatformMini = PlatformMini {}
- data PlatformWordSize
- data Platform = Platform {}
- platformArch :: Platform -> Arch
- platformOS :: Platform -> OS
- data Arch
- = ArchUnknown
- | ArchX86
- | ArchX86_64
- | ArchPPC
- | ArchPPC_64 { }
- | ArchS390X
- | 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
data PlatformMini #
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.
Instances
Eq PlatformMini # | |
Defined in GHC.Platform (==) :: PlatformMini -> PlatformMini -> Bool # (/=) :: PlatformMini -> PlatformMini -> Bool # | |
Read PlatformMini # | |
Defined in GHC.Platform | |
Show PlatformMini # | |
Defined in GHC.Platform |
data PlatformWordSize #
Instances
Eq PlatformWordSize # | |
Defined in GHC.Platform (==) :: PlatformWordSize -> PlatformWordSize -> Bool # (/=) :: PlatformWordSize -> PlatformWordSize -> Bool # | |
Read PlatformWordSize # | |
Defined in GHC.Platform | |
Show PlatformWordSize # | |
Defined in GHC.Platform |
Contains enough information for the native code generator to emit code for this platform.
platformArch :: Platform -> Arch #
Legacy accessor
platformOS :: Platform -> OS #
Legacy accessor
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.
ArchUnknown | |
ArchX86 | |
ArchX86_64 | |
ArchPPC | |
ArchPPC_64 | |
ArchS390X | |
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.
OSUnknown | |
OSLinux | |
OSDarwin | |
OSSolaris2 | |
OSMinGW32 | |
OSFreeBSD | |
OSDragonFly | |
OSOpenBSD | |
OSNetBSD | |
OSKFreeBSD | |
OSHaiku | |
OSQNXNTO | |
OSAIX | |
OSHurd |
ARM Instruction Set Architecture, Extensions and ABI
target32Bit :: Platform -> Bool #
This predicate tells us whether the platform is 32-bit.
osElfTarget :: OS -> Bool #
This predicate tells us whether the OS supports ELF-like shared libraries.
osMachOTarget :: OS -> Bool #
This predicate tells us whether the OS support Mach-O shared libraries.
osSubsectionsViaSymbols :: OS -> Bool #
platformUsesFrameworks :: Platform -> Bool #
platformWordSizeInBytes :: Platform -> Int #
platformWordSizeInBits :: Platform -> Int #
data PlatformMisc #
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).
PlatformMisc | |
|
data IntegerLibrary #
Instances
Eq IntegerLibrary # | |
Defined in GHC.Platform (==) :: IntegerLibrary -> IntegerLibrary -> Bool # (/=) :: IntegerLibrary -> IntegerLibrary -> Bool # | |
Read IntegerLibrary # | |
Defined in GHC.Platform | |
Show IntegerLibrary # | |
Defined in GHC.Platform |
stringEncodeArch :: Arch -> String #
See Note [Platform Syntax].
stringEncodeOS :: OS -> String #
See Note [Platform Syntax].