-hscCompileBatch = hscCompileHardCode norecompBatch batchMsg hscBatch hscNothing
-
--- Compile to hardcode (C,asm,...). This general structure is shared by OneShot and Batch.
-hscCompileHardCode :: NoRecomp result -- No recomp necessary
- -> (Maybe (Int,Int) -> Bool -> Comp ()) -- Message callback
- -> ((ModIface, ModDetails, CgGuts) -> Comp result) -- Compile normal file
- -> ((ModIface, ModDetails, ModGuts) -> Comp result) -- Compile boot file
- -> Compiler result
-hscCompileHardCode norecomp msg compNormal compBoot hsc_env mod_summary =
- compiler hsc_env mod_summary
- where mkComp = hscMkCompiler norecomp msg
- -- How to compile nonBoot files.
- nonBootComp inp = hscSimplify inp >>= hscNormalIface >>=
- hscWriteIface >>= compNormal
- -- How to compile boot files.
- bootComp inp = hscSimpleIface inp >>= hscWriteIface >>= compBoot
- compiler
- = case ms_hsc_src mod_summary of
- ExtCoreFile
- -> mkComp hscCoreFrontEnd nonBootComp
- HsSrcFile
- -> mkComp hscFileFrontEnd nonBootComp
- HsBootFile
- -> mkComp hscFileFrontEnd bootComp
+hscCompileBatch
+ = hscCompiler norecompBatch batchMsg backend boot_backend
+ where
+ backend inp = hscSimplify inp >>= hscNormalIface >>= hscWriteIface >>= hscBatch
+ boot_backend inp = hscSimpleIface inp >>= hscWriteIface >>= hscNothing