X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Fcompiler%2Fprelude%2FPrelNames.lhs;h=7467facc42c56404676f1a030c66209f2c8d190b;hb=d4e38936bf64bcd3dc301ec404406bbff20f01d5;hp=c903b16efc34ad00d488e249f7d23abbfc55a297;hpb=65ace55b0200fd37c6cf475d6ee16135866a3359;p=ghc-hetmet.git diff --git a/ghc/compiler/prelude/PrelNames.lhs b/ghc/compiler/prelude/PrelNames.lhs index c903b16..7467fac 100644 --- a/ghc/compiler/prelude/PrelNames.lhs +++ b/ghc/compiler/prelude/PrelNames.lhs @@ -36,8 +36,10 @@ module PrelNames ( #include "HsVersions.h" -import Module ( ModuleName, mkPrelModule, mkModuleName ) -import OccName ( NameSpace, UserFS, varName, dataName, tcName, clsName, mkKindOccFS ) +import Module ( ModuleName, mkPrelModule, mkHomeModule, mkModuleName ) +import OccName ( NameSpace, UserFS, varName, dataName, tcName, clsName, + mkKindOccFS, mkOccFS + ) import RdrName ( RdrName, mkOrig, mkUnqual ) import UniqFM import Unique ( Unique, Uniquable(..), hasKey, @@ -48,7 +50,7 @@ import BasicTypes ( Boxity(..), Arity ) import UniqFM ( UniqFM, listToUFM ) import Name ( Name, mkLocalName, mkKnownKeyGlobal, nameRdrName ) import RdrName ( rdrNameOcc ) -import SrcLoc ( builtinSrcLoc ) +import SrcLoc ( builtinSrcLoc, noSrcLoc ) import Util ( nOfThem ) import Panic ( panic ) \end{code} @@ -56,6 +58,29 @@ import Panic ( panic ) %************************************************************************ %* * +\subsection{Local Names} +%* * +%************************************************************************ + +This *local* name is used by the interactive stuff + +\begin{code} +itName uniq = mkLocalName uniq (mkOccFS varName SLIT("it")) noSrcLoc +\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 = mkLocalName unboundKey (rdrNameOcc rdr_name) builtinSrcLoc + +isUnboundName :: Name -> Bool +isUnboundName name = name `hasKey` unboundKey +\end{code} + + +%************************************************************************ +%* * \subsection{Known key Names} %* * %************************************************************************ @@ -107,8 +132,8 @@ knownKeyNames cReturnableClassName, -- mentioned, ccallish -- ClassOps - fromIntName, fromIntegerName, + negateName, geName, minusName, enumFromName, @@ -127,6 +152,7 @@ knownKeyNames newStablePtrName, bindIOName, returnIOName, + failIOName, -- Strings and lists mapName, @@ -155,12 +181,14 @@ knownKeyNames word64TyConName, -- Others + unsafeCoerceName, otherwiseIdName, plusIntegerName, timesIntegerName, eqStringName, assertName, - runSTRepName + runSTRepName, + printName ] \end{code} @@ -184,12 +212,14 @@ pREL_TUP_Name = mkModuleName "PrelTup" pREL_PACK_Name = mkModuleName "PrelPack" pREL_CONC_Name = mkModuleName "PrelConc" pREL_IO_BASE_Name = mkModuleName "PrelIOBase" +pREL_IO_Name = mkModuleName "PrelIO" pREL_ST_Name = mkModuleName "PrelST" pREL_ARR_Name = mkModuleName "PrelArr" pREL_BYTEARR_Name = mkModuleName "PrelByteArr" pREL_FOREIGN_Name = mkModuleName "PrelForeign" pREL_STABLE_Name = mkModuleName "PrelStable" pREL_ADDR_Name = mkModuleName "PrelAddr" +pREL_PTR_Name = mkModuleName "PrelPtr" pREL_ERR_Name = mkModuleName "PrelErr" pREL_REAL_Name = mkModuleName "PrelReal" pREL_FLOAT_Name = mkModuleName "PrelFloat" @@ -199,9 +229,13 @@ mAIN_Name = mkModuleName "Main" pREL_INT_Name = mkModuleName "PrelInt" pREL_WORD_Name = mkModuleName "PrelWord" +fOREIGNOBJ_Name = mkModuleName "ForeignObj" +aDDR_Name = mkModuleName "Addr" + pREL_GHC = mkPrelModule pREL_GHC_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 @@ -209,6 +243,8 @@ pREL_ERR = mkPrelModule pREL_ERR_Name pREL_NUM = mkPrelModule pREL_NUM_Name pREL_REAL = mkPrelModule pREL_REAL_Name pREL_FLOAT = mkPrelModule pREL_FLOAT_Name + +iNTERACTIVE = mkHomeModule (mkModuleName "$Interactive") \end{code} %************************************************************************ @@ -273,8 +309,8 @@ usOnceTyConName = kindQual SLIT(".") usOnceTyConKey usManyTyConName = kindQual SLIT("!") usManyTyConKey superKindName = kindQual SLIT("KX") kindConKey superBoxityName = kindQual SLIT("BX") boxityConKey -boxedConName = kindQual SLIT("*") boxedConKey -unboxedConName = kindQual SLIT("#") unboxedConKey +liftedConName = kindQual SLIT("*") liftedConKey +unliftedConName = kindQual SLIT("#") unliftedConKey openKindConName = kindQual SLIT("?") anyBoxConKey usageKindConName = kindQual SLIT("$") usageConKey typeConName = kindQual SLIT("Type") typeConKey @@ -328,6 +364,7 @@ genUnitTyConName = tcQual pREL_BASE_Name SLIT("Unit") genUnitTyConKey genUnitDataConName = dataQual pREL_BASE_Name SLIT("Unit") genUnitDataConKey -- Random PrelBase functions +unsafeCoerceName = varQual pREL_BASE_Name SLIT("unsafeCoerce") unsafeCoerceIdKey otherwiseIdName = varQual pREL_BASE_Name SLIT("otherwise") otherwiseIdKey appendName = varQual pREL_BASE_Name SLIT("++") appendIdKey foldrName = varQual pREL_BASE_Name SLIT("foldr") foldrIdKey @@ -366,9 +403,9 @@ readClassName = clsQual pREL_READ_Name SLIT("Read") readClassKey -- Module PrelNum numClassName = clsQual pREL_NUM_Name SLIT("Num") numClassKey -fromIntName = varQual pREL_NUM_Name SLIT("fromInt") fromIntClassOpKey fromIntegerName = varQual pREL_NUM_Name SLIT("fromInteger") fromIntegerClassOpKey minusName = varQual pREL_NUM_Name SLIT("-") minusClassOpKey +negateName = varQual pREL_NUM_Name SLIT("negate") negateClassOpKey plusIntegerName = varQual pREL_NUM_Name SLIT("plusInteger") plusIntegerIdKey timesIntegerName = varQual pREL_NUM_Name SLIT("timesInteger") timesIntegerIdKey integerTyConName = tcQual pREL_NUM_Name SLIT("Integer") integerTyConKey @@ -418,31 +455,41 @@ ioTyConName = tcQual pREL_IO_BASE_Name SLIT("IO") ioTyConKey ioDataConName = dataQual pREL_IO_BASE_Name SLIT("IO") ioDataConKey bindIOName = varQual pREL_IO_BASE_Name SLIT("bindIO") bindIOIdKey returnIOName = varQual pREL_IO_BASE_Name SLIT("returnIO") returnIOIdKey +failIOName = varQual pREL_IO_BASE_Name SLIT("failIO") failIOIdKey + +-- IO things +printName = varQual pREL_IO_Name SLIT("print") printIdKey -- Int, Word, and Addr things int8TyConName = tcQual pREL_INT_Name SLIT("Int8") int8TyConKey int16TyConName = tcQual pREL_INT_Name SLIT("Int16") int16TyConKey int32TyConName = tcQual pREL_INT_Name SLIT("Int32") int32TyConKey -int64TyConName = tcQual pREL_ADDR_Name SLIT("Int64") int64TyConKey +int64TyConName = tcQual pREL_INT_Name SLIT("Int64") int64TyConKey + +word8TyConName = tcQual pREL_WORD_Name SLIT("Word8") word8TyConKey +word16TyConName = tcQual pREL_WORD_Name SLIT("Word16") word16TyConKey +word32TyConName = tcQual pREL_WORD_Name SLIT("Word32") word32TyConKey +word64TyConName = tcQual pREL_WORD_Name SLIT("Word64") word64TyConKey -wordTyConName = tcQual pREL_ADDR_Name SLIT("Word") wordTyConKey -wordDataConName = dataQual pREL_ADDR_Name SLIT("W#") wordDataConKey -word8TyConName = tcQual pREL_WORD_Name SLIT("Word8") word8TyConKey -word16TyConName = tcQual pREL_WORD_Name SLIT("Word16") word16TyConKey -word32TyConName = tcQual pREL_WORD_Name SLIT("Word32") word32TyConKey -word64TyConName = tcQual pREL_ADDR_Name SLIT("Word64") word64TyConKey +wordTyConName = tcQual pREL_WORD_Name SLIT("Word") wordTyConKey +wordDataConName = dataQual pREL_WORD_Name SLIT("W#") wordDataConKey -addrTyConName = tcQual pREL_ADDR_Name SLIT("Addr") addrTyConKey -addrDataConName = dataQual pREL_ADDR_Name SLIT("A#") addrDataConKey +addrTyConName = tcQual aDDR_Name SLIT("Addr") addrTyConKey +addrDataConName = dataQual aDDR_Name SLIT("A#") addrDataConKey +ptrTyConName = tcQual pREL_PTR_Name SLIT("Ptr") ptrTyConKey +ptrDataConName = dataQual pREL_PTR_Name SLIT("Ptr") ptrDataConKey + +funPtrTyConName = tcQual pREL_PTR_Name SLIT("FunPtr") funPtrTyConKey +funPtrDataConName = dataQual pREL_PTR_Name SLIT("FunPtr") funPtrDataConKey -- Byte array types byteArrayTyConName = tcQual pREL_BYTEARR_Name SLIT("ByteArray") byteArrayTyConKey mutableByteArrayTyConName = tcQual pREL_BYTEARR_Name SLIT("MutableByteArray") mutableByteArrayTyConKey -- Forign objects and weak pointers -foreignObjTyConName = tcQual pREL_IO_BASE_Name SLIT("ForeignObj") foreignObjTyConKey -foreignObjDataConName = dataQual pREL_IO_BASE_Name SLIT("ForeignObj") foreignObjDataConKey +foreignObjTyConName = tcQual fOREIGNOBJ_Name SLIT("ForeignObj") foreignObjTyConKey +foreignObjDataConName = dataQual fOREIGNOBJ_Name SLIT("ForeignObj") foreignObjDataConKey foreignPtrTyConName = tcQual pREL_FOREIGN_Name SLIT("ForeignPtr") foreignPtrTyConKey foreignPtrDataConName = dataQual pREL_FOREIGN_Name SLIT("ForeignPtr") foreignPtrDataConKey stablePtrTyConName = tcQual pREL_STABLE_Name SLIT("StablePtr") stablePtrTyConKey @@ -681,24 +728,26 @@ word16TyConKey = mkPreludeTyConUnique 60 word32TyConKey = mkPreludeTyConUnique 61 word64PrimTyConKey = mkPreludeTyConUnique 62 word64TyConKey = mkPreludeTyConUnique 63 -boxedConKey = mkPreludeTyConUnique 64 -unboxedConKey = mkPreludeTyConUnique 65 +liftedConKey = mkPreludeTyConUnique 64 +unliftedConKey = mkPreludeTyConUnique 65 anyBoxConKey = mkPreludeTyConUnique 66 kindConKey = mkPreludeTyConUnique 67 boxityConKey = mkPreludeTyConUnique 68 typeConKey = mkPreludeTyConUnique 69 threadIdPrimTyConKey = mkPreludeTyConUnique 70 bcoPrimTyConKey = mkPreludeTyConUnique 71 +ptrTyConKey = mkPreludeTyConUnique 72 +funPtrTyConKey = mkPreludeTyConUnique 73 -- Usage type constructors -usageConKey = mkPreludeTyConUnique 72 -usOnceTyConKey = mkPreludeTyConUnique 73 -usManyTyConKey = mkPreludeTyConUnique 74 +usageConKey = mkPreludeTyConUnique 74 +usOnceTyConKey = mkPreludeTyConUnique 75 +usManyTyConKey = mkPreludeTyConUnique 76 -- Generic Type Constructors -crossTyConKey = mkPreludeTyConUnique 75 -plusTyConKey = mkPreludeTyConUnique 76 -genUnitTyConKey = mkPreludeTyConUnique 77 +crossTyConKey = mkPreludeTyConUnique 77 +plusTyConKey = mkPreludeTyConUnique 78 +genUnitTyConKey = mkPreludeTyConUnique 79 \end{code} %************************************************************************ @@ -726,12 +775,14 @@ stableNameDataConKey = mkPreludeDataConUnique 14 trueDataConKey = mkPreludeDataConUnique 15 wordDataConKey = mkPreludeDataConUnique 16 ioDataConKey = mkPreludeDataConUnique 17 +ptrDataConKey = mkPreludeDataConUnique 18 +funPtrDataConKey = mkPreludeDataConUnique 19 -- Generic data constructors -crossDataConKey = mkPreludeDataConUnique 17 -inlDataConKey = mkPreludeDataConUnique 18 -inrDataConKey = mkPreludeDataConUnique 19 -genUnitDataConKey = mkPreludeDataConUnique 20 +crossDataConKey = mkPreludeDataConUnique 20 +inlDataConKey = mkPreludeDataConUnique 21 +inrDataConKey = mkPreludeDataConUnique 22 +genUnitDataConKey = mkPreludeDataConUnique 23 \end{code} %************************************************************************ @@ -781,6 +832,8 @@ newStablePtrIdKey = mkPreludeMiscIdUnique 39 getTagIdKey = mkPreludeMiscIdUnique 40 plusIntegerIdKey = mkPreludeMiscIdUnique 41 timesIntegerIdKey = mkPreludeMiscIdUnique 42 +printIdKey = mkPreludeMiscIdUnique 43 +failIOIdKey = mkPreludeMiscIdUnique 44 \end{code} Certain class operations from Prelude classes. They get their own @@ -788,7 +841,6 @@ uniques so we can look them up easily when we want to conjure them up during type checking. \begin{code} -fromIntClassOpKey = mkPreludeMiscIdUnique 101 fromIntegerClassOpKey = mkPreludeMiscIdUnique 102 minusClassOpKey = mkPreludeMiscIdUnique 103 fromRationalClassOpKey = mkPreludeMiscIdUnique 104 @@ -798,6 +850,7 @@ enumFromToClassOpKey = mkPreludeMiscIdUnique 107 enumFromThenToClassOpKey = mkPreludeMiscIdUnique 108 eqClassOpKey = mkPreludeMiscIdUnique 109 geClassOpKey = mkPreludeMiscIdUnique 110 +negateClassOpKey = mkPreludeMiscIdUnique 111 failMClassOpKey = mkPreludeMiscIdUnique 112 thenMClassOpKey = mkPreludeMiscIdUnique 113 -- (>>=) -- Just a place holder for unbound variables produced by the renamer: @@ -962,12 +1015,3 @@ noDictClassKeys -- These classes are used only for type annotations; = cCallishClassKeys \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 = mkLocalName unboundKey (rdrNameOcc rdr_name) builtinSrcLoc - -isUnboundName :: Name -> Bool -isUnboundName name = name `hasKey` unboundKey -\end{code}