X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Fcompiler%2Fprelude%2FPrelNames.lhs;h=6ad498079ea95104503be7339e00af847c551f83;hb=a7d8f43718b167689c0a4a4c23b33a325e0239f1;hp=4932258ef4193314f3e8e8eea7c4e3557f792d90;hpb=8c1b6bd7ffb9ce97da7a72f9e102998df19b23a2;p=ghc-hetmet.git diff --git a/ghc/compiler/prelude/PrelNames.lhs b/ghc/compiler/prelude/PrelNames.lhs index 4932258..6ad4980 100644 --- a/ghc/compiler/prelude/PrelNames.lhs +++ b/ghc/compiler/prelude/PrelNames.lhs @@ -4,8 +4,7 @@ \section[PrelNames]{Definitions of prelude modules and names} -The strings identify built-in prelude modules. They are -defined here so as to avod +Nota Bene: all Names defined in here should come from the base package * ModuleNames for prelude modules, e.g. pREL_BASE_Name :: ModuleName @@ -43,36 +42,17 @@ module PrelNames ( ----------------------------------------------------------- module PrelNames, -- A huge bunch of (a) Names, e.g. intTyConName -- (b) Uniques e.g. intTyConKey + -- (c) Groups of classes and types + -- (d) miscellaneous things -- So many that we export them all - - ----------------------------------------------------------- - basicKnownKeyNames, - mkTupNameStr, isBuiltInSyntaxName, - - ------------------------------------------------------------ - -- Goups of classes and types - needsDataDeclCtxtClassKeys, cCallishClassKeys, noDictClassKeys, - fractionalClassKeys, numericClassKeys, standardClassKeys, - derivableClassKeys, -- things are needed as a result of a - -- deriving(C) clause - numericTyKeys, cCallishTyKeys, - - mkUnboundName, isUnboundName ) where #include "HsVersions.h" -import Module ( ModuleName, mkPrelModule, mkHomeModule, mkModuleName,mkVanillaModule ) -import OccName ( UserFS, dataName, tcName, clsName, +import Module ( ModuleName, mkBasePkgModule, mkHomeModule, mkModuleName ) +import OccName ( UserFS, dataName, tcName, clsName, varName, mkKindOccFS, mkOccFS ) - --- to avoid clashes with Meta.var we must make a local alias for OccName.varName --- we do this by removing varName from the import of OccName above, making --- a qualified instance of OccName and using OccNameAlias.varName where varName --- ws previously used in this file. -import qualified OccName as OccNameAlias - import RdrName ( RdrName, nameRdrName, mkOrig, rdrNameOcc ) import Unique ( Unique, Uniquable(..), hasKey, @@ -100,7 +80,7 @@ import FastString This *local* name is used by the interactive stuff \begin{code} -itName uniq = mkInternalName uniq (mkOccFS OccNameAlias.varName FSLIT("it")) noSrcLoc +itName uniq = mkInternalName uniq (mkOccFS varName FSLIT("it")) noSrcLoc \end{code} \begin{code} @@ -177,6 +157,8 @@ basicKnownKeyNames realFloatClassName, -- numeric cCallableClassName, -- mentioned, ccallish cReturnableClassName, -- mentioned, ccallish + dataClassName, + typeableClassName, -- Numeric stuff negateName, minusName, @@ -233,6 +215,10 @@ basicKnownKeyNames -- Booleans andName, orName + + -- dotnet interop + , objectTyConName, marshalObjectName, unmarshalObjectName + , marshalStringName, unmarshalStringName, checkDotnetResName ] monadNames :: [Name] -- The monad ops need by a HsDo @@ -273,6 +259,10 @@ pREL_REAL_Name = mkModuleName "GHC.Real" pREL_FLOAT_Name = mkModuleName "GHC.Float" pREL_TOP_HANDLER_Name = mkModuleName "GHC.TopHandler" sYSTEM_IO_Name = mkModuleName "System.IO" +dYNAMIC_Name = mkModuleName "Data.Dynamic" +tRAVERSE_Name = mkModuleName "Data.Traverse" +gENERICS_Name = mkModuleName "Data.Generics" +dOTNET_Name = mkModuleName "GHC.Dotnet" rEAD_PREC_Name = mkModuleName "Text.ParserCombinators.ReadPrec" lEX_Name = mkModuleName "Text.Read.Lex" @@ -285,18 +275,18 @@ aDDR_Name = mkModuleName "Addr" gLA_EXTS_Name = mkModuleName "GHC.Exts" -gHC_PRIM = mkPrelModule gHC_PRIM_Name -pREL_BASE = mkPrelModule pREL_BASE_Name -pREL_ADDR = mkPrelModule pREL_ADDR_Name -pREL_PTR = mkPrelModule pREL_PTR_Name -pREL_STABLE = mkPrelModule pREL_STABLE_Name -pREL_IO_BASE = mkPrelModule pREL_IO_BASE_Name -pREL_PACK = mkPrelModule pREL_PACK_Name -pREL_ERR = mkPrelModule pREL_ERR_Name -pREL_NUM = mkPrelModule pREL_NUM_Name -pREL_REAL = mkPrelModule pREL_REAL_Name -pREL_FLOAT = mkPrelModule pREL_FLOAT_Name -pRELUDE = mkPrelModule pRELUDE_Name +gHC_PRIM = mkBasePkgModule gHC_PRIM_Name +pREL_BASE = mkBasePkgModule pREL_BASE_Name +pREL_ADDR = mkBasePkgModule pREL_ADDR_Name +pREL_PTR = mkBasePkgModule pREL_PTR_Name +pREL_STABLE = mkBasePkgModule pREL_STABLE_Name +pREL_IO_BASE = mkBasePkgModule pREL_IO_BASE_Name +pREL_PACK = mkBasePkgModule pREL_PACK_Name +pREL_ERR = mkBasePkgModule pREL_ERR_Name +pREL_NUM = mkBasePkgModule pREL_NUM_Name +pREL_REAL = mkBasePkgModule pREL_REAL_Name +pREL_FLOAT = mkBasePkgModule pREL_FLOAT_Name +pRELUDE = mkBasePkgModule pRELUDE_Name iNTERACTIVE = mkHomeModule (mkModuleName "$Interactive") @@ -338,8 +328,6 @@ mkTupNameStr Unboxed n = (gHC_PRIM_Name, mkFastString ("(#" ++ nOfThem (n-1) ',' %************************************************************************ \begin{code} -getTag_RDR = nameRdrName getTagName - eq_RDR = nameRdrName eqName ge_RDR = nameRdrName geName ne_RDR = varQual_RDR pREL_BASE_Name FSLIT("/=") @@ -407,6 +395,7 @@ plus_RDR = varQual_RDR pREL_NUM_Name FSLIT("+") compose_RDR = varQual_RDR pREL_BASE_Name FSLIT(".") not_RDR = varQual_RDR pREL_BASE_Name FSLIT("not") +getTag_RDR = varQual_RDR pREL_BASE_Name FSLIT("getTag") succ_RDR = varQual_RDR pREL_ENUM_Name FSLIT("succ") pred_RDR = varQual_RDR pREL_ENUM_Name FSLIT("pred") minBound_RDR = varQual_RDR pREL_ENUM_Name FSLIT("minBound") @@ -439,6 +428,22 @@ showsPrec_RDR = varQual_RDR pREL_SHOW_Name FSLIT("showsPrec") showString_RDR = varQual_RDR pREL_SHOW_Name FSLIT("showString") showSpace_RDR = varQual_RDR pREL_SHOW_Name FSLIT("showSpace") showParen_RDR = varQual_RDR pREL_SHOW_Name FSLIT("showParen") + +typeOf_RDR = varQual_RDR dYNAMIC_Name FSLIT("typeOf") +mkTypeRep_RDR = varQual_RDR dYNAMIC_Name FSLIT("mkAppTy") +mkTyConRep_RDR = varQual_RDR dYNAMIC_Name FSLIT("mkTyCon") + +constr_RDR = dataQual_RDR gENERICS_Name FSLIT("Constr") +gfoldl_RDR = varQual_RDR gENERICS_Name FSLIT("gfoldl") +gfoldr_RDR = varQual_RDR gENERICS_Name FSLIT("gfoldr") +gunfold_RDR = varQual_RDR gENERICS_Name FSLIT("gunfold") +gmapT_RDR = varQual_RDR gENERICS_Name FSLIT("gmapT") +gmapQ_RDR = varQual_RDR gENERICS_Name FSLIT("gmapQ") +gmapM_RDR = varQual_RDR gENERICS_Name FSLIT("gmapM") +conOf_RDR = varQual_RDR gENERICS_Name FSLIT("conOf") +consOf_RDR = varQual_RDR gENERICS_Name FSLIT("consOf") + +undefined_RDR = varQual_RDR pREL_ERR_Name FSLIT("undefined") \end{code} @@ -461,14 +466,11 @@ dollarMainName = varQual mAIN_Name FSLIT("$main") dollarMainKey runIOName = varQual pREL_TOP_HANDLER_Name FSLIT("runIO") runMainKey -- Stuff from GHC.Prim -usOnceTyConName = kindQual FSLIT(".") usOnceTyConKey -usManyTyConName = kindQual FSLIT("!") usManyTyConKey superKindName = kindQual FSLIT("KX") kindConKey superBoxityName = kindQual FSLIT("BX") boxityConKey liftedConName = kindQual FSLIT("*") liftedConKey unliftedConName = kindQual FSLIT("#") unliftedConKey openKindConName = kindQual FSLIT("?") anyBoxConKey -usageKindConName = kindQual FSLIT("$") usageConKey typeConName = kindQual FSLIT("Type") typeConKey funTyConName = tcQual gHC_PRIM_Name FSLIT("(->)") funTyConKey @@ -499,7 +501,6 @@ threadIdPrimTyConName = tcQual gHC_PRIM_Name FSLIT("ThreadId#") threadI cCallableClassName = clsQual gHC_PRIM_Name FSLIT("CCallable") cCallableClassKey cReturnableClassName = clsQual gHC_PRIM_Name FSLIT("CReturnable") cReturnableClassKey -getTagName = wVarQual gHC_PRIM_Name FSLIT("getTag#") getTagIdKey unsafeCoerceName = wVarQual gHC_PRIM_Name FSLIT("unsafeCoerce#") unsafeCoerceIdKey nullAddrName = wVarQual gHC_PRIM_Name FSLIT("nullAddr#") nullAddrIdKey seqName = wVarQual gHC_PRIM_Name FSLIT("seq") seqIdKey @@ -596,6 +597,10 @@ realFloatClassName = clsQual pREL_FLOAT_Name FSLIT("RealFloat") realFloatClassK -- Class Ix ixClassName = clsQual pREL_ARR_Name FSLIT("Ix") ixClassKey +-- Class Typeable and Data +typeableClassName = clsQual dYNAMIC_Name FSLIT("Typeable") typeableClassKey +dataClassName = clsQual gENERICS_Name FSLIT("Data") dataClassKey + -- Enum module (Enum, Bounded) enumClassName = clsQual pREL_ENUM_Name FSLIT("Enum") enumClassKey enumFromName = varQual pREL_ENUM_Name FSLIT("enumFrom") enumFromClassOpKey @@ -697,6 +702,15 @@ splitName = varQual gLA_EXTS_Name FSLIT("split") splitIdKey -- Recursive-do notation mfixName = varQual mONAD_FIX_Name FSLIT("mfix") mfixIdKey + +-- dotnet interop +objectTyConName = wTcQual dOTNET_Name FSLIT("Object") objectTyConKey +unmarshalObjectName = varQual dOTNET_Name FSLIT("unmarshalObject") unmarshalObjectIdKey +marshalObjectName = varQual dOTNET_Name FSLIT("marshalObject") marshalObjectIdKey +marshalStringName = varQual dOTNET_Name FSLIT("marshalString") marshalStringIdKey +unmarshalStringName = varQual dOTNET_Name FSLIT("unmarshalString") unmarshalStringIdKey +checkDotnetResName = varQual dOTNET_Name FSLIT("checkResult") checkDotnetResNameIdKey + \end{code} %************************************************************************ @@ -708,24 +722,25 @@ mfixName = varQual mONAD_FIX_Name FSLIT("mfix") mfixIdKey All these are original names; hence mkOrig \begin{code} -varQual = mk_known_key_name OccNameAlias.varName -- Note use of local alias vName -dataQual = mk_known_key_name dataName +varQual = mk_known_key_name varName +dataQual = mk_known_key_name dataName -- All the constructor names here are for the DataCon + -- itself, which lives in the VarName name space tcQual = mk_known_key_name tcName clsQual = mk_known_key_name clsName -wVarQual = mk_wired_in_name OccNameAlias.varName -- The wired-in analogues +wVarQual = mk_wired_in_name varName -- The wired-in analogues wDataQual = mk_wired_in_name dataName wTcQual = mk_wired_in_name tcName -varQual_RDR mod str = mkOrig mod (mkOccFS OccNameAlias.varName str) -- note use of local alias vName +varQual_RDR mod str = mkOrig mod (mkOccFS varName str) -- The RDR analogues +dataQual_RDR mod str = mkOrig mod (mkOccFS dataName str) tcQual_RDR mod str = mkOrig mod (mkOccFS tcName str) clsQual_RDR mod str = mkOrig mod (mkOccFS clsName str) -dataQual_RDR mod str = mkOrig mod (mkOccFS dataName str) mk_known_key_name space mod str uniq - = mkKnownKeyExternalName mod (mkOccFS space str) uniq + = mkKnownKeyExternalName (mkBasePkgModule mod) (mkOccFS space str) uniq mk_wired_in_name space mod str uniq - = mkWiredInName (mkVanillaModule mod) (mkOccFS space str) uniq + = mkWiredInName (mkBasePkgModule mod) (mkOccFS space str) uniq kindQual str uq = mkInternalName uq (mkKindOccFS tcName str) noSrcLoc -- Kinds are not z-encoded in interface file, hence mkKindOccFS @@ -744,10 +759,12 @@ kindQual str uq = mkInternalName uq (mkKindOccFS tcName str) noSrcLoc boundedClassKey = mkPreludeClassUnique 1 enumClassKey = mkPreludeClassUnique 2 eqClassKey = mkPreludeClassUnique 3 +typeableClassKey = mkPreludeClassUnique 4 floatingClassKey = mkPreludeClassUnique 5 fractionalClassKey = mkPreludeClassUnique 6 integralClassKey = mkPreludeClassUnique 7 monadClassKey = mkPreludeClassUnique 8 +dataClassKey = mkPreludeClassUnique 9 functorClassKey = mkPreludeClassUnique 10 numClassKey = mkPreludeClassUnique 11 ordClassKey = mkPreludeClassUnique 12 @@ -756,10 +773,8 @@ realClassKey = mkPreludeClassUnique 14 realFloatClassKey = mkPreludeClassUnique 15 realFracClassKey = mkPreludeClassUnique 16 showClassKey = mkPreludeClassUnique 17 - cCallableClassKey = mkPreludeClassUnique 18 cReturnableClassKey = mkPreludeClassUnique 19 - ixClassKey = mkPreludeClassUnique 20 \end{code} @@ -829,11 +844,6 @@ bcoPrimTyConKey = mkPreludeTyConUnique 73 ptrTyConKey = mkPreludeTyConUnique 74 funPtrTyConKey = mkPreludeTyConUnique 75 --- Usage type constructors -usageConKey = mkPreludeTyConUnique 76 -usOnceTyConKey = mkPreludeTyConUnique 77 -usManyTyConKey = mkPreludeTyConUnique 78 - -- Generic Type Constructors crossTyConKey = mkPreludeTyConUnique 79 plusTyConKey = mkPreludeTyConUnique 80 @@ -842,6 +852,9 @@ genUnitTyConKey = mkPreludeTyConUnique 81 -- Parallel array type constructor parrTyConKey = mkPreludeTyConUnique 82 +-- dotnet interop +objectTyConKey = mkPreludeTyConUnique 83 + ---------------- Template Haskell ------------------- -- USES TyConUniques 100-119 ----------------------------------------------------- @@ -893,7 +906,6 @@ parrDataConKey = mkPreludeDataConUnique 24 \begin{code} absentErrorIdKey = mkPreludeMiscIdUnique 1 -getTagIdKey = mkPreludeMiscIdUnique 2 augmentIdKey = mkPreludeMiscIdUnique 3 appendIdKey = mkPreludeMiscIdUnique 4 buildIdKey = mkPreludeMiscIdUnique 5 @@ -969,6 +981,14 @@ enumFromThenToPIdKey = mkPreludeMiscIdUnique 90 bpermutePIdKey = mkPreludeMiscIdUnique 91 bpermuteDftPIdKey = mkPreludeMiscIdUnique 92 indexOfPIdKey = mkPreludeMiscIdUnique 93 + +-- dotnet interop +unmarshalObjectIdKey = mkPreludeMiscIdUnique 94 +marshalObjectIdKey = mkPreludeMiscIdUnique 95 +marshalStringIdKey = mkPreludeMiscIdUnique 96 +unmarshalStringIdKey = mkPreludeMiscIdUnique 97 +checkDotnetResNameIdKey = mkPreludeMiscIdUnique 98 + \end{code} Certain class operations from Prelude classes. They get their own