X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2Fprelude%2FPrelNames.lhs;h=3d1f968d8c444ea7b96a70428b05d3ad32d7f937;hb=66579ff945831c5fc9a17c58c722ff01f2268d76;hp=27d253b37cf512df716a67fda0ba68fb1c9fdf8d;hpb=ed4c5b9f46e502f04b74922e8440731537ee30d2;p=ghc-hetmet.git diff --git a/compiler/prelude/PrelNames.lhs b/compiler/prelude/PrelNames.lhs index 27d253b..3d1f968 100644 --- a/compiler/prelude/PrelNames.lhs +++ b/compiler/prelude/PrelNames.lhs @@ -6,33 +6,33 @@ Nota Bene: all Names defined in here should come from the base package -* ModuleNames for prelude modules, + - ModuleNames for prelude modules, e.g. pREL_BASE_Name :: ModuleName -* Modules for prelude modules + - Modules for prelude modules e.g. pREL_Base :: Module -* Uniques for Ids, DataCons, TyCons and Classes that the compiler - "knows about" in some way + - Uniques for Ids, DataCons, TyCons and Classes that the compiler + "knows about" in some way e.g. intTyConKey :: Unique minusClassOpKey :: Unique -* Names for Ids, DataCons, TyCons and Classes that the compiler - "knows about" in some way + - Names for Ids, DataCons, TyCons and Classes that the compiler + "knows about" in some way e.g. intTyConName :: Name minusName :: Name - One of these Names contains + One of these Names contains (a) the module and occurrence name of the thing (b) its Unique - The may way the compiler "knows about" one of these things is - where the type checker or desugarer needs to look it up. For - example, when desugaring list comprehensions the desugarer - needs to conjure up 'foldr'. It does this by looking up - foldrName in the environment. + The may way the compiler "knows about" one of these things is + where the type checker or desugarer needs to look it up. For + example, when desugaring list comprehensions the desugarer + needs to conjure up 'foldr'. It does this by looking up + foldrName in the environment. -* RdrNames for Ids, DataCons etc that the compiler may emit into - generated code (e.g. for deriving). It's not necessary to know - the uniques for these guys, only their names + - RdrNames for Ids, DataCons etc that the compiler may emit into + generated code (e.g. for deriving). It's not necessary to know + the uniques for these guys, only their names \begin{code} @@ -182,7 +182,7 @@ basicKnownKeyNames -- Parallel array operations nullPName, lengthPName, replicatePName, singletonPName, mapPName, filterPName, zipPName, crossMapPName, indexPName, - toPName, bpermutePName, bpermuteDftPName, indexOfPName, + toPName, emptyPName, appPName, -- FFI primitive types that are not wired-in. stablePtrTyConName, ptrTyConName, funPtrTyConName, @@ -231,26 +231,31 @@ genericTyConNames = [crossTyConName, plusTyConName, genUnitTyConName] pRELUDE :: Module pRELUDE = mkBaseModule_ pRELUDE_NAME -gHC_PRIM, gHC_BOOL, gHC_ORDERING, gHC_GENERICS, gHC_BASE, gHC_ENUM, - gHC_SHOW, gHC_READ, gHC_NUM, gHC_INTEGER, gHC_LIST, gHC_PARR, - dATA_TUP, dATA_EITHER, dATA_STRING, gHC_PACK, gHC_CONC, gHC_IO_BASE, +gHC_PRIM, gHC_TYPES, gHC_BOOL, gHC_UNIT, gHC_ORDERING, gHC_GENERICS, gHC_CLASSES, gHC_BASE, gHC_ENUM, + gHC_SHOW, gHC_READ, gHC_NUM, gHC_INTEGER, gHC_INTEGER_INTERNALS, gHC_LIST, gHC_PARR, + gHC_TUPLE, dATA_TUPLE, dATA_EITHER, dATA_STRING, gHC_PACK, gHC_CONC, gHC_IO_BASE, gHC_ST, gHC_ARR, gHC_STABLE, gHC_ADDR, gHC_PTR, gHC_ERR, gHC_REAL, gHC_FLOAT, gHC_TOP_HANDLER, sYSTEM_IO, dYNAMIC, tYPEABLE, gENERICS, dOTNET, rEAD_PREC, lEX, gHC_INT, gHC_WORD, mONAD, mONAD_FIX, aRROW, - gHC_DESUGAR, rANDOM, gHC_EXTS :: Module + gHC_DESUGAR, rANDOM, gHC_EXTS, cONTROL_EXCEPTION_BASE :: Module gHC_PRIM = mkPrimModule (fsLit "GHC.Prim") -- Primitive types and values +gHC_TYPES = mkPrimModule (fsLit "GHC.Types") +gHC_UNIT = mkPrimModule (fsLit "GHC.Unit") gHC_BOOL = mkPrimModule (fsLit "GHC.Bool") gHC_ORDERING = mkPrimModule (fsLit "GHC.Ordering") gHC_GENERICS = mkPrimModule (fsLit "GHC.Generics") +gHC_CLASSES = mkBaseModule (fsLit "GHC.Classes") gHC_BASE = mkBaseModule (fsLit "GHC.Base") gHC_ENUM = mkBaseModule (fsLit "GHC.Enum") gHC_SHOW = mkBaseModule (fsLit "GHC.Show") gHC_READ = mkBaseModule (fsLit "GHC.Read") gHC_NUM = mkBaseModule (fsLit "GHC.Num") gHC_INTEGER = mkIntegerModule (fsLit "GHC.Integer") +gHC_INTEGER_INTERNALS = mkIntegerModule (fsLit "GHC.Integer.Internals") gHC_LIST = mkBaseModule (fsLit "GHC.List") gHC_PARR = mkBaseModule (fsLit "GHC.PArr") -dATA_TUP = mkBaseModule (fsLit "Data.Tuple") +gHC_TUPLE = mkPrimModule (fsLit "GHC.Tuple") +dATA_TUPLE = mkBaseModule (fsLit "Data.Tuple") dATA_EITHER = mkBaseModule (fsLit "Data.Either") dATA_STRING = mkBaseModule (fsLit "Data.String") gHC_PACK = mkBaseModule (fsLit "GHC.Pack") @@ -268,7 +273,7 @@ gHC_TOP_HANDLER = mkBaseModule (fsLit "GHC.TopHandler") sYSTEM_IO = mkBaseModule (fsLit "System.IO") dYNAMIC = mkBaseModule (fsLit "Data.Dynamic") tYPEABLE = mkBaseModule (fsLit "Data.Typeable") -gENERICS = mkBaseModule (fsLit "Data.Generics.Basics") +gENERICS = mkSybModule (fsLit "Data.Generics.Basics") dOTNET = mkBaseModule (fsLit "GHC.Dotnet") rEAD_PREC = mkBaseModule (fsLit "Text.ParserCombinators.ReadPrec") lEX = mkBaseModule (fsLit "Text.Read.Lex") @@ -280,6 +285,7 @@ aRROW = mkBaseModule (fsLit "Control.Arrow") gHC_DESUGAR = mkBaseModule (fsLit "GHC.Desugar") rANDOM = mkBaseModule (fsLit "System.Random") gHC_EXTS = mkBaseModule (fsLit "GHC.Exts") +cONTROL_EXCEPTION_BASE = mkBaseModule (fsLit "Control.Exception.Base") mAIN, rOOT_MAIN :: Module mAIN = mkMainModule_ mAIN_NAME @@ -309,6 +315,9 @@ mkBaseModule m = mkModule basePackageId (mkModuleNameFS m) mkBaseModule_ :: ModuleName -> Module mkBaseModule_ m = mkModule basePackageId m +mkSybModule :: FastString -> Module +mkSybModule m = mkModule sybPackageId (mkModuleNameFS m) + mkMainModule :: FastString -> Module mkMainModule m = mkModule mainPackageId (mkModuleNameFS m) @@ -324,8 +333,8 @@ mkMainModule_ m = mkModule mainPackageId m \begin{code} mkTupleModule :: Boxity -> Arity -> Module -mkTupleModule Boxed 0 = gHC_BASE -mkTupleModule Boxed _ = dATA_TUP +mkTupleModule Boxed 0 = gHC_UNIT +mkTupleModule Boxed _ = gHC_TUPLE mkTupleModule Unboxed _ = gHC_PRIM \end{code} @@ -350,11 +359,11 @@ eq_RDR, ge_RDR, ne_RDR, le_RDR, lt_RDR, gt_RDR, compare_RDR, ltTag_RDR, eqTag_RDR, gtTag_RDR :: RdrName eq_RDR = nameRdrName eqName ge_RDR = nameRdrName geName -ne_RDR = varQual_RDR gHC_BASE (fsLit "/=") -le_RDR = varQual_RDR gHC_BASE (fsLit "<=") -lt_RDR = varQual_RDR gHC_BASE (fsLit "<") -gt_RDR = varQual_RDR gHC_BASE (fsLit ">") -compare_RDR = varQual_RDR gHC_BASE (fsLit "compare") +ne_RDR = varQual_RDR gHC_CLASSES (fsLit "/=") +le_RDR = varQual_RDR gHC_CLASSES (fsLit "<=") +lt_RDR = varQual_RDR gHC_CLASSES (fsLit "<") +gt_RDR = varQual_RDR gHC_CLASSES (fsLit ">") +compare_RDR = varQual_RDR gHC_CLASSES (fsLit "compare") ltTag_RDR = dataQual_RDR gHC_ORDERING (fsLit "LT") eqTag_RDR = dataQual_RDR gHC_ORDERING (fsLit "EQ") gtTag_RDR = dataQual_RDR gHC_ORDERING (fsLit "GT") @@ -434,7 +443,7 @@ compose_RDR = varQual_RDR gHC_BASE (fsLit ".") not_RDR, getTag_RDR, succ_RDR, pred_RDR, minBound_RDR, maxBound_RDR, range_RDR, inRange_RDR, index_RDR, unsafeIndex_RDR, unsafeRangeSize_RDR :: RdrName -not_RDR = varQual_RDR gHC_BASE (fsLit "not") +not_RDR = varQual_RDR gHC_CLASSES (fsLit "not") getTag_RDR = varQual_RDR gHC_BASE (fsLit "getTag") succ_RDR = varQual_RDR gHC_ENUM (fsLit "succ") pred_RDR = varQual_RDR gHC_ENUM (fsLit "pred") @@ -548,10 +557,10 @@ inlineIdName = varQual gHC_BASE (fsLit "inline") inlineIdKey -- Base classes (Eq, Ord, Functor) eqClassName, eqName, ordClassName, geName, functorClassName :: Name -eqClassName = clsQual gHC_BASE (fsLit "Eq") eqClassKey -eqName = methName gHC_BASE (fsLit "==") eqClassOpKey -ordClassName = clsQual gHC_BASE (fsLit "Ord") ordClassKey -geName = methName gHC_BASE (fsLit ">=") geClassOpKey +eqClassName = clsQual gHC_CLASSES (fsLit "Eq") eqClassKey +eqName = methName gHC_CLASSES (fsLit "==") eqClassOpKey +ordClassName = clsQual gHC_CLASSES (fsLit "Ord") ordClassKey +geName = methName gHC_CLASSES (fsLit ">=") geClassOpKey functorClassName = clsQual gHC_BASE (fsLit "Functor") functorClassKey -- Class Monad @@ -578,8 +587,8 @@ buildName = varQual gHC_BASE (fsLit "build") buildIdKey augmentName = varQual gHC_BASE (fsLit "augment") augmentIdKey mapName = varQual gHC_BASE (fsLit "map") mapIdKey appendName = varQual gHC_BASE (fsLit "++") appendIdKey -andName = varQual gHC_BASE (fsLit "&&") andIdKey -orName = varQual gHC_BASE (fsLit "||") orIdKey +andName = varQual gHC_CLASSES (fsLit "&&") andIdKey +orName = varQual gHC_CLASSES (fsLit "||") orIdKey assertName = varQual gHC_BASE (fsLit "assert") assertIdKey breakpointName = varQual gHC_BASE (fsLit "breakpoint") breakpointIdKey breakpointCondName= varQual gHC_BASE (fsLit "breakpointCond") breakpointCondIdKey @@ -607,8 +616,8 @@ breakpointAutoJumpName -- PrelTup fstName, sndName :: Name -fstName = varQual dATA_TUP (fsLit "fst") fstIdKey -sndName = varQual dATA_TUP (fsLit "snd") sndIdKey +fstName = varQual dATA_TUPLE (fsLit "fst") fstIdKey +sndName = varQual dATA_TUPLE (fsLit "snd") sndIdKey -- Module PrelNum numClassName, fromIntegerName, minusName, negateName, plusIntegerName, @@ -619,7 +628,7 @@ minusName = methName gHC_NUM (fsLit "-") minusClassOpKey negateName = methName gHC_NUM (fsLit "negate") negateClassOpKey plusIntegerName = varQual gHC_INTEGER (fsLit "plusInteger") plusIntegerIdKey timesIntegerName = varQual gHC_INTEGER (fsLit "timesInteger") timesIntegerIdKey -integerTyConName = tcQual gHC_INTEGER (fsLit "Integer") integerTyConKey +integerTyConName = tcQual gHC_INTEGER_INTERNALS (fsLit "Integer") integerTyConKey smallIntegerName = varQual gHC_INTEGER (fsLit "smallInteger") smallIntegerIdKey -- PrelReal types and classes @@ -668,7 +677,7 @@ dataClassName = clsQual gENERICS (fsLit "Data") dataClassKey -- Error module assertErrorName :: Name -assertErrorName = varQual gHC_ERR (fsLit "assertError") assertErrorIdKey +assertErrorName = varQual gHC_IO_BASE (fsLit "assertError") assertErrorIdKey -- Enum module (Enum, Bounded) enumClassName, enumFromName, enumFromToName, enumFromThenName, @@ -697,8 +706,8 @@ readClassName = clsQual gHC_READ (fsLit "Read") readClassKey -- parallel array types and functions enumFromToPName, enumFromThenToPName, nullPName, lengthPName, singletonPName, replicatePName, mapPName, filterPName, - zipPName, crossMapPName, indexPName, toPName, bpermutePName, - bpermuteDftPName, indexOfPName :: Name + zipPName, crossMapPName, indexPName, toPName, + emptyPName, appPName :: Name enumFromToPName = varQual gHC_PARR (fsLit "enumFromToP") enumFromToPIdKey enumFromThenToPName= varQual gHC_PARR (fsLit "enumFromThenToP") enumFromThenToPIdKey nullPName = varQual gHC_PARR (fsLit "nullP") nullPIdKey @@ -711,9 +720,8 @@ zipPName = varQual gHC_PARR (fsLit "zipP") zipPIdKey crossMapPName = varQual gHC_PARR (fsLit "crossMapP") crossMapPIdKey indexPName = varQual gHC_PARR (fsLit "!:") indexPIdKey toPName = varQual gHC_PARR (fsLit "toP") toPIdKey -bpermutePName = varQual gHC_PARR (fsLit "bpermuteP") bpermutePIdKey -bpermuteDftPName = varQual gHC_PARR (fsLit "bpermuteDftP") bpermuteDftPIdKey -indexOfPName = varQual gHC_PARR (fsLit "indexOfP") indexOfPIdKey +emptyPName = varQual gHC_PARR (fsLit "emptyP") emptyPIdKey +appPName = varQual gHC_PARR (fsLit "+:+") appPIdKey -- IOBase things ioTyConName, ioDataConName, thenIOName, bindIOName, returnIOName, @@ -1169,8 +1177,7 @@ groupWithIdKey = mkPreludeMiscIdUnique 70 -- Parallel array functions singletonPIdKey, nullPIdKey, lengthPIdKey, replicatePIdKey, mapPIdKey, filterPIdKey, zipPIdKey, crossMapPIdKey, indexPIdKey, toPIdKey, - enumFromToPIdKey, enumFromThenToPIdKey, - bpermutePIdKey, bpermuteDftPIdKey, indexOfPIdKey :: Unique + enumFromToPIdKey, enumFromThenToPIdKey, emptyPIdKey, appPIdKey :: Unique singletonPIdKey = mkPreludeMiscIdUnique 79 nullPIdKey = mkPreludeMiscIdUnique 80 lengthPIdKey = mkPreludeMiscIdUnique 81 @@ -1183,9 +1190,8 @@ indexPIdKey = mkPreludeMiscIdUnique 87 toPIdKey = mkPreludeMiscIdUnique 88 enumFromToPIdKey = mkPreludeMiscIdUnique 89 enumFromThenToPIdKey = mkPreludeMiscIdUnique 90 -bpermutePIdKey = mkPreludeMiscIdUnique 91 -bpermuteDftPIdKey = mkPreludeMiscIdUnique 92 -indexOfPIdKey = mkPreludeMiscIdUnique 93 +emptyPIdKey = mkPreludeMiscIdUnique 91 +appPIdKey = mkPreludeMiscIdUnique 92 -- dotnet interop unmarshalObjectIdKey, marshalObjectIdKey, marshalStringIdKey,