)
import BasicTypes ( Boxity(..), Arity )
import Name ( Name, mkInternalName, mkExternalName )
-import SrcLoc ( noSrcLoc )
+import SrcLoc
import FastString
\end{code}
This *local* name is used by the interactive stuff
\begin{code}
-itName uniq = mkInternalName uniq (mkOccNameFS varName FSLIT("it")) noSrcLoc
+itName uniq = mkInternalName uniq (mkOccNameFS varName FSLIT("it")) noSrcSpan
\end{code}
\begin{code}
-- mkUnboundName makes a place-holder Name; it shouldn't be looked at except possibly
-- during compiler debugging.
mkUnboundName :: RdrName -> Name
-mkUnboundName rdr_name = mkInternalName unboundKey (rdrNameOcc rdr_name) noSrcLoc
+mkUnboundName rdr_name = mkInternalName unboundKey (rdrNameOcc rdr_name) noSrcSpan
isUnboundName :: Name -> Bool
isUnboundName name = name `hasKey` unboundKey
basicKnownKeyNames
= genericTyConNames
++ typeableClassNames
+ ++ ndpNames
++ [ -- Type constructors (synonyms especially)
ioTyConName, ioDataConName,
runMainIOName,
otherwiseIdName, inlineIdName,
plusIntegerName, timesIntegerName,
eqStringName, assertName, breakpointName, breakpointCondName,
- breakpointAutoName, opaqueTyConName, unknownTyConName,
- unknown1TyConName, unknown2TyConName, unknown3TyConName,
+ breakpointAutoName, opaqueTyConName,
assertErrorName, runSTRepName,
printName, fstName, sndName,
genericTyConNames :: [Name]
genericTyConNames = [crossTyConName, plusTyConName, genUnitTyConName]
+
+ndpNames :: [Name]
+ndpNames = [ parrayTyConName, paClassName, closureTyConName
+ , mkClosureName, applyClosureName
+ , mkClosurePName, applyClosurePName
+ , lengthPAName, replicatePAName ]
\end{code}
rANDOM = mkBaseModule FSLIT("System.Random")
gLA_EXTS = mkBaseModule FSLIT("GHC.Exts")
+nDP_LIFTED = mkNDPModule FSLIT("Data.Array.Parallel.Lifted")
+
mAIN = mkMainModule_ mAIN_NAME
rOOT_MAIN = mkMainModule FSLIT(":Main") -- Root module for initialisation
mkBaseModule_ :: ModuleName -> Module
mkBaseModule_ m = mkModule basePackageId m
+mkNDPModule :: FastString -> Module
+mkNDPModule m = mkModule ndpPackageId (mkModuleNameFS m)
+
+mkNDPModule_ :: ModuleName -> Module
+mkNDPModule_ m = mkModule ndpPackageId m
+
mkMainModule :: FastString -> Module
mkMainModule m = mkModule mainPackageId (mkModuleNameFS m)
breakpointName = varQual gHC_BASE FSLIT("breakpoint") breakpointIdKey
breakpointCondName= varQual gHC_BASE FSLIT("breakpointCond") breakpointCondIdKey
breakpointAutoName= varQual gHC_BASE FSLIT("breakpointAuto") breakpointAutoIdKey
-unknownTyConName = tcQual gHC_BASE FSLIT("Unknown") unknownTyConKey
-unknown1TyConName = tcQual gHC_BASE FSLIT("Unknown1") unknown1TyConKey
-unknown2TyConName = tcQual gHC_BASE FSLIT("Unknown2") unknown2TyConKey
-unknown3TyConName = tcQual gHC_BASE FSLIT("Unknown3") unknown3TyConKey
opaqueTyConName = tcQual gHC_BASE FSLIT("Opaque") opaqueTyConKey
breakpointJumpName
= mkInternalName
breakpointJumpIdKey
(mkOccNameFS varName FSLIT("breakpointJump"))
- noSrcLoc
+ noSrcSpan
breakpointCondJumpName
= mkInternalName
breakpointCondJumpIdKey
(mkOccNameFS varName FSLIT("breakpointCondJump"))
- noSrcLoc
+ noSrcSpan
breakpointAutoJumpName
= mkInternalName
breakpointAutoJumpIdKey
(mkOccNameFS varName FSLIT("breakpointAutoJump"))
- noSrcLoc
+ noSrcSpan
-- PrelTup
fstName = varQual dATA_TUP FSLIT("fst") fstIdKey
marshalStringName = varQual dOTNET FSLIT("marshalString") marshalStringIdKey
unmarshalStringName = varQual dOTNET FSLIT("unmarshalString") unmarshalStringIdKey
checkDotnetResName = varQual dOTNET FSLIT("checkResult") checkDotnetResNameIdKey
+
+-- NDP stuff
+parrayTyConName = tcQual nDP_LIFTED FSLIT("PArray") parrayTyConKey
+paClassName = clsQual nDP_LIFTED FSLIT("PA") paClassKey
+closureTyConName = tcQual nDP_LIFTED FSLIT(":->") closureTyConKey
+mkClosureName = varQual nDP_LIFTED FSLIT("mkClosure") mkClosureIdKey
+applyClosureName = varQual nDP_LIFTED FSLIT("$:") applyClosureIdKey
+mkClosurePName = varQual nDP_LIFTED FSLIT("mkClosureP") mkClosurePIdKey
+applyClosurePName = varQual nDP_LIFTED FSLIT("$:^") applyClosurePIdKey
+lengthPAName = methName nDP_LIFTED FSLIT("lengthPA") lengthPAClassOpKey
+replicatePAName = methName nDP_LIFTED FSLIT("replicatePA") replicatePAClassOpKey
\end{code}
%************************************************************************
clsQual = mk_known_key_name clsName
mk_known_key_name space mod str uniq
- = mkExternalName uniq mod (mkOccNameFS space str) noSrcLoc
+ = mkExternalName uniq mod (mkOccNameFS space str) noSrcSpan
conName :: Module -> FastString -> Unique -> Name
conName mod occ uniq
- = mkExternalName uniq mod (mkOccNameFS dataName occ) noSrcLoc
+ = mkExternalName uniq mod (mkOccNameFS dataName occ) noSrcSpan
methName :: Module -> FastString -> Unique -> Name
methName mod occ uniq
- = mkExternalName uniq mod (mkVarOccFS occ) noSrcLoc
+ = mkExternalName uniq mod (mkVarOccFS occ) noSrcSpan
\end{code}
%************************************************************************
randomGenClassKey = mkPreludeClassUnique 32
isStringClassKey = mkPreludeClassUnique 33
+
+paClassKey = mkPreludeClassUnique 34
\end{code}
%************************************************************************
stringTyConKey = mkPreludeTyConUnique 134
+parrayTyConKey = mkPreludeTyConUnique 135
+closureTyConKey = mkPreludeTyConUnique 136
+
---------------- Template Haskell -------------------
-- USES TyConUniques 100-129
fromStringClassOpKey = mkPreludeMiscIdUnique 125
+-- Flattened parallel array functions
+mkClosureIdKey = mkPreludeMiscIdUnique 126
+applyClosureIdKey = mkPreludeMiscIdUnique 127
+mkClosurePIdKey = mkPreludeMiscIdUnique 128
+applyClosurePIdKey = mkPreludeMiscIdUnique 129
+closurePAIdKey = mkPreludeMiscIdUnique 130
+lengthPAClassOpKey = mkPreludeMiscIdUnique 131
+replicatePAClassOpKey = mkPreludeMiscIdUnique 132
+
---------------- Template Haskell -------------------
-- USES IdUniques 200-399
-----------------------------------------------------