Commit 82661b7f authored by rl@cse.unsw.edu.au's avatar rl@cse.unsw.edu.au
Browse files

Implicitly import NDP stuff when vectorising

We add the following declaration to all vectorised modules:

  import qualified <NDP interface module> as :NDP

This allows us to refer to NDP stuff by RdrName later on but does not expose
NDP names to the user's code.
parent e6b66d7d
......@@ -276,8 +276,6 @@ gLA_EXTS = mkBaseModule FSLIT("GHC.Exts")
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
......
......@@ -65,9 +65,7 @@ rnImports imports
-- 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
......@@ -75,9 +73,7 @@ rnImports imports
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)
......@@ -121,20 +117,6 @@ mkPrelImports this_mod implicit_prelude import_decls
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
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment