X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2Fprelude%2FPrelNames.lhs;h=b3194a102c5932ca5d12d65abad98ac355d06cf7;hb=c26787dd0e3e0e6859fcd63e2c92278451e160dc;hp=8d571b6bc3519792fdc73ef9ef17584ecb19d53e;hpb=dbc5ae8aa41a629151eeb38987e2f5c83a4d7d53;p=ghc-hetmet.git diff --git a/compiler/prelude/PrelNames.lhs b/compiler/prelude/PrelNames.lhs index 8d571b6..b3194a1 100644 --- a/compiler/prelude/PrelNames.lhs +++ b/compiler/prelude/PrelNames.lhs @@ -61,7 +61,7 @@ import Unique ( Unique, Uniquable(..), hasKey, ) import BasicTypes ( Boxity(..), Arity ) import Name ( Name, mkInternalName, mkExternalName ) -import SrcLoc ( noSrcLoc ) +import SrcLoc import FastString \end{code} @@ -75,14 +75,14 @@ import FastString 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 @@ -104,6 +104,7 @@ basicKnownKeyNames :: [Name] basicKnownKeyNames = genericTyConNames ++ typeableClassNames + ++ ndpNames ++ [ -- Type constructors (synonyms especially) ioTyConName, ioDataConName, runMainIOName, @@ -188,11 +189,10 @@ basicKnownKeyNames wordTyConName, word8TyConName, word16TyConName, word32TyConName, word64TyConName, -- Others - otherwiseIdName, + otherwiseIdName, inlineIdName, plusIntegerName, timesIntegerName, eqStringName, assertName, breakpointName, breakpointCondName, - breakpointAutoName, opaqueTyConName, unknownTyConName, - unknown1TyConName, unknown2TyConName, unknown3TyConName, + breakpointAutoName, opaqueTyConName, assertErrorName, runSTRepName, printName, fstName, sndName, @@ -215,6 +215,15 @@ basicKnownKeyNames genericTyConNames :: [Name] genericTyConNames = [crossTyConName, plusTyConName, genUnitTyConName] + +ndpNames :: [Name] +ndpNames = [ parrayTyConName, paTyConName, preprTyConName, prClassName + , ndpCrossTyConName, ndpPlusTyConName, embedTyConName + , closureTyConName + , mkClosureName, applyClosureName + , mkClosurePName, applyClosurePName + , lengthPAName, replicatePAName, emptyPAName, packPAName, + combinePAName, intEqPAName ] \end{code} @@ -266,6 +275,11 @@ aRROW = mkBaseModule FSLIT("Control.Arrow") rANDOM = mkBaseModule FSLIT("System.Random") 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_INSTANCES = mkNDPModule FSLIT("Data.Array.Parallel.Lifted.Instances") + mAIN = mkMainModule_ mAIN_NAME rOOT_MAIN = mkMainModule FSLIT(":Main") -- Root module for initialisation @@ -285,6 +299,12 @@ mkBaseModule m = mkModule basePackageId (mkModuleNameFS m) 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) @@ -503,27 +523,23 @@ assertName = varQual gHC_BASE FSLIT("assert") assertIdKey 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 @@ -675,6 +691,26 @@ marshalObjectName = varQual dOTNET FSLIT("marshalObject") marshalObjectIdKey marshalStringName = varQual dOTNET FSLIT("marshalString") marshalStringIdKey unmarshalStringName = varQual dOTNET FSLIT("unmarshalString") unmarshalStringIdKey checkDotnetResName = varQual dOTNET FSLIT("checkResult") checkDotnetResNameIdKey + +-- NDP stuff +parrayTyConName = tcQual nDP_PARRAY FSLIT("PArray") parrayTyConKey +paTyConName = tcQual nDP_PARRAY FSLIT("PA") paTyConKey +preprTyConName = tcQual nDP_PARRAY FSLIT("PRepr") preprTyConKey +prClassName = clsQual nDP_PARRAY FSLIT("PR") prClassKey +ndpCrossTyConName = tcQual nDP_PARRAY FSLIT(":*:") ndpCrossTyConKey +ndpPlusTyConName = tcQual nDP_PARRAY FSLIT(":+:") ndpPlusTyConKey +embedTyConName = tcQual nDP_PARRAY FSLIT("Embed") embedTyConKey +lengthPAName = varQual nDP_PARRAY FSLIT("lengthPA") lengthPAIdKey +replicatePAName = varQual nDP_PARRAY FSLIT("replicatePA") replicatePAIdKey +emptyPAName = varQual nDP_PARRAY FSLIT("emptyPA") emptyPAIdKey +packPAName = varQual nDP_PARRAY FSLIT("packPA") packPAIdKey +combinePAName = varQual nDP_PARRAY FSLIT("combinePA") combinePAIdKey +intEqPAName = varQual nDP_UTILS FSLIT("intEqPA") intEqPAIdKey +closureTyConName = tcQual nDP_CLOSURE FSLIT(":->") closureTyConKey +mkClosureName = varQual nDP_CLOSURE FSLIT("mkClosure") mkClosureIdKey +applyClosureName = varQual nDP_CLOSURE FSLIT("$:") applyClosureIdKey +mkClosurePName = varQual nDP_CLOSURE FSLIT("mkClosureP") mkClosurePIdKey +applyClosurePName = varQual nDP_CLOSURE FSLIT("$:^") applyClosurePIdKey \end{code} %************************************************************************ @@ -691,15 +727,15 @@ tcQual = mk_known_key_name tcName 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} %************************************************************************ @@ -744,6 +780,8 @@ randomClassKey = mkPreludeClassUnique 31 randomGenClassKey = mkPreludeClassUnique 32 isStringClassKey = mkPreludeClassUnique 33 + +prClassKey = mkPreludeClassUnique 34 \end{code} %************************************************************************ @@ -854,6 +892,14 @@ opaqueTyConKey = mkPreludeTyConUnique 133 stringTyConKey = mkPreludeTyConUnique 134 +parrayTyConKey = mkPreludeTyConUnique 135 +closureTyConKey = mkPreludeTyConUnique 136 +paTyConKey = mkPreludeTyConUnique 137 +preprTyConKey = mkPreludeTyConUnique 138 +embedTyConKey = mkPreludeTyConUnique 139 +ndpCrossTyConKey = mkPreludeTyConUnique 140 +ndpPlusTyConKey = mkPreludeTyConUnique 141 + ---------------- Template Haskell ------------------- -- USES TyConUniques 100-129 @@ -1034,6 +1080,19 @@ loopAIdKey = mkPreludeMiscIdUnique 124 fromStringClassOpKey = mkPreludeMiscIdUnique 125 +-- Flattened parallel array functions +mkClosureIdKey = mkPreludeMiscIdUnique 126 +applyClosureIdKey = mkPreludeMiscIdUnique 127 +mkClosurePIdKey = mkPreludeMiscIdUnique 128 +applyClosurePIdKey = mkPreludeMiscIdUnique 129 +closurePAIdKey = mkPreludeMiscIdUnique 130 +lengthPAIdKey = mkPreludeMiscIdUnique 131 +replicatePAIdKey = mkPreludeMiscIdUnique 132 +emptyPAIdKey = mkPreludeMiscIdUnique 133 +packPAIdKey = mkPreludeMiscIdUnique 134 +combinePAIdKey = mkPreludeMiscIdUnique 135 +intEqPAIdKey = mkPreludeMiscIdUnique 136 + ---------------- Template Haskell ------------------- -- USES IdUniques 200-399 -----------------------------------------------------