nDP_PARRAY = mkNDPModule FSLIT("Data.Array.Parallel.Lifted.PArray")
nDP_UTILS = mkNDPModule FSLIT("Data.Array.Parallel.Lifted.Utils")
nDP_CLOSURE = mkNDPModule FSLIT("Data.Array.Parallel.Lifted.Closure")
-nDP_INTERFACE_NAME = mkModuleNameFS FSLIT("Data.Array.Parallel.Lifted")
-nDP_BUILTIN = mkModuleNameFS FSLIT(":NDP")
mAIN = mkMainModule_ mAIN_NAME
rOOT_MAIN = mkMainModule FSLIT(":Main") -- Root module for initialisation
-- warning for {- SOURCE -} ones that are unnecessary
= do this_mod <- getModule
implicit_prelude <- doptM Opt_ImplicitPrelude
- implicit_ndp <- doptM Opt_Vectorise
let prel_imports = mkPrelImports this_mod implicit_prelude imports
- ndp_imports = mkNDPImports implicit_ndp
(source, ordinary) = partition is_source_import imports
is_source_import (L _ (ImportDecl _ is_boot _ _ _)) = is_boot
when (notNull prel_imports) $ addWarn (implicitPreludeWarn)
)
- stuff1 <- mapM (rnImportDecl this_mod) (prel_imports
- ++ ndp_imports
- ++ ordinary)
+ stuff1 <- mapM (rnImportDecl this_mod) (prel_imports ++ ordinary)
stuff2 <- mapM (rnImportDecl this_mod) source
let (decls, rdr_env, imp_avails,hpc_usage) = combine (stuff1 ++ stuff2)
return (decls, rdr_env, imp_avails,hpc_usage)
loc = mkGeneralSrcSpan FSLIT("Implicit import declaration")
-mkNDPImports :: Bool -> [LImportDecl RdrName]
-mkNDPImports False = []
-mkNDPImports True = [ndpImportDecl]
- where
- ndpImportDecl
- = L loc $
- ImportDecl (L loc nDP_INTERFACE_NAME)
- False -- not a boot interface
- True -- qualified
- (Just nDP_BUILTIN) -- "as"
- Nothing -- no import list
-
- loc = mkGeneralSrcSpan FSLIT("Implicit import declaration")
-
rnImportDecl :: Module
-> LImportDecl RdrName