- initSysTools :: Maybe String -> IO Settings
- runUnlit :: DynFlags -> [Option] -> IO ()
- runCpp :: DynFlags -> [Option] -> IO ()
- runCc :: DynFlags -> [Option] -> IO ()
- runPp :: DynFlags -> [Option] -> IO ()
- runSplit :: DynFlags -> [Option] -> IO ()
- runAs :: DynFlags -> [Option] -> IO ()
- runLink :: DynFlags -> [Option] -> IO ()
- runMkDLL :: DynFlags -> [Option] -> IO ()
- runWindres :: DynFlags -> [Option] -> IO ()
- runLlvmOpt :: DynFlags -> [Option] -> IO ()
- runLlvmLlc :: DynFlags -> [Option] -> IO ()
- figureLlvmVersion :: DynFlags -> IO (Maybe Int)
- readElfSection :: DynFlags -> String -> FilePath -> IO (Maybe String)
- touch :: DynFlags -> String -> String -> IO ()
- copy :: DynFlags -> String -> FilePath -> FilePath -> IO ()
- copyWithHeader :: DynFlags -> String -> Maybe String -> FilePath -> FilePath -> IO ()
- setTmpDir :: FilePath -> DynFlags -> DynFlags
- newTempName :: DynFlags -> Suffix -> IO FilePath
- cleanTempDirs :: DynFlags -> IO ()
- cleanTempFiles :: DynFlags -> IO ()
- cleanTempFilesExcept :: DynFlags -> [FilePath] -> IO ()
- addFilesToClean :: DynFlags -> [FilePath] -> IO ()
- data Option
Documentation
runWindres :: DynFlags -> [Option] -> IO ()Source
runLlvmOpt :: DynFlags -> [Option] -> IO ()Source
Run the LLVM Optimiser
runLlvmLlc :: DynFlags -> [Option] -> IO ()Source
Run the LLVM Compiler
figureLlvmVersion :: DynFlags -> IO (Maybe Int)Source
Figure out which version of LLVM we are running this session
readElfSection :: DynFlags -> String -> FilePath -> IO (Maybe String)Source
read the contents of the named section in an ELF object as a String.
cleanTempDirs :: DynFlags -> IO ()Source
cleanTempFiles :: DynFlags -> IO ()Source
cleanTempFilesExcept :: DynFlags -> [FilePath] -> IO ()Source
addFilesToClean :: DynFlags -> [FilePath] -> IO ()Source
When invoking external tools as part of the compilation pipeline, we pass these a sequence of options on the command-line. Rather than just using a list of Strings, we use a type that allows us to distinguish between filepaths and 'other stuff'. The reason for this is that this type gives us a handle on transforming filenames, and filenames only, to whatever format they're expected to be on a particular platform.