Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
GHC
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
4,262
Issues
4,262
List
Boards
Labels
Service Desk
Milestones
Iterations
Merge Requests
394
Merge Requests
394
Requirements
Requirements
List
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Operations
Operations
Incidents
Environments
Analytics
Analytics
CI / CD
Code Review
Insights
Issue
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Glasgow Haskell Compiler
GHC
Commits
e7498a3e
Commit
e7498a3e
authored
Jun 05, 1996
by
partain
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[project @ 1996-06-05 06:44:31 by partain]
SLPJ changes through 960604
parent
30cf375e
Changes
215
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
215 changed files
with
3048 additions
and
2446 deletions
+3048
-2446
ghc/compiler/HsVersions.h
ghc/compiler/HsVersions.h
+25
-2
ghc/compiler/Jmakefile
ghc/compiler/Jmakefile
+44
-45
ghc/compiler/absCSyn/AbsCSyn.lhs
ghc/compiler/absCSyn/AbsCSyn.lhs
+1
-1
ghc/compiler/absCSyn/AbsCUtils.lhs
ghc/compiler/absCSyn/AbsCUtils.lhs
+1
-1
ghc/compiler/absCSyn/CLabel.lhs
ghc/compiler/absCSyn/CLabel.lhs
+49
-34
ghc/compiler/absCSyn/CStrings.lhs
ghc/compiler/absCSyn/CStrings.lhs
+6
-0
ghc/compiler/absCSyn/Costs.lhs
ghc/compiler/absCSyn/Costs.lhs
+1
-1
ghc/compiler/absCSyn/HeapOffs.lhs
ghc/compiler/absCSyn/HeapOffs.lhs
+2
-2
ghc/compiler/absCSyn/PprAbsC.lhs
ghc/compiler/absCSyn/PprAbsC.lhs
+5
-5
ghc/compiler/basicTypes/FieldLabel.lhs
ghc/compiler/basicTypes/FieldLabel.lhs
+1
-1
ghc/compiler/basicTypes/Id.lhs
ghc/compiler/basicTypes/Id.lhs
+23
-17
ghc/compiler/basicTypes/IdInfo.lhs
ghc/compiler/basicTypes/IdInfo.lhs
+23
-8
ghc/compiler/basicTypes/IdLoop.lhi
ghc/compiler/basicTypes/IdLoop.lhi
+1
-3
ghc/compiler/basicTypes/IdUtils.lhs
ghc/compiler/basicTypes/IdUtils.lhs
+9
-12
ghc/compiler/basicTypes/Literal.lhs
ghc/compiler/basicTypes/Literal.lhs
+60
-18
ghc/compiler/basicTypes/Name.lhs
ghc/compiler/basicTypes/Name.lhs
+5
-1
ghc/compiler/basicTypes/PprEnv.lhs
ghc/compiler/basicTypes/PprEnv.lhs
+1
-1
ghc/compiler/basicTypes/PragmaInfo.lhs
ghc/compiler/basicTypes/PragmaInfo.lhs
+1
-1
ghc/compiler/basicTypes/SrcLoc.lhs
ghc/compiler/basicTypes/SrcLoc.lhs
+1
-1
ghc/compiler/basicTypes/UniqSupply.lhs
ghc/compiler/basicTypes/UniqSupply.lhs
+1
-1
ghc/compiler/basicTypes/Unique.lhs
ghc/compiler/basicTypes/Unique.lhs
+100
-75
ghc/compiler/codeGen/CgBindery.lhs
ghc/compiler/codeGen/CgBindery.lhs
+2
-2
ghc/compiler/codeGen/CgCase.lhs
ghc/compiler/codeGen/CgCase.lhs
+3
-4
ghc/compiler/codeGen/CgClosure.lhs
ghc/compiler/codeGen/CgClosure.lhs
+7
-6
ghc/compiler/codeGen/CgCompInfo.lhs
ghc/compiler/codeGen/CgCompInfo.lhs
+0
-3
ghc/compiler/codeGen/CgCon.lhs
ghc/compiler/codeGen/CgCon.lhs
+8
-13
ghc/compiler/codeGen/CgConTbls.lhs
ghc/compiler/codeGen/CgConTbls.lhs
+8
-8
ghc/compiler/codeGen/CgExpr.lhs
ghc/compiler/codeGen/CgExpr.lhs
+2
-2
ghc/compiler/codeGen/CgHeapery.lhs
ghc/compiler/codeGen/CgHeapery.lhs
+1
-1
ghc/compiler/codeGen/CgLetNoEscape.lhs
ghc/compiler/codeGen/CgLetNoEscape.lhs
+6
-6
ghc/compiler/codeGen/CgMonad.lhs
ghc/compiler/codeGen/CgMonad.lhs
+2
-2
ghc/compiler/codeGen/CgRetConv.lhs
ghc/compiler/codeGen/CgRetConv.lhs
+4
-6
ghc/compiler/codeGen/CgStackery.lhs
ghc/compiler/codeGen/CgStackery.lhs
+1
-1
ghc/compiler/codeGen/CgTailCall.lhs
ghc/compiler/codeGen/CgTailCall.lhs
+1
-1
ghc/compiler/codeGen/CgUpdate.lhs
ghc/compiler/codeGen/CgUpdate.lhs
+1
-1
ghc/compiler/codeGen/CgUsages.lhs
ghc/compiler/codeGen/CgUsages.lhs
+4
-2
ghc/compiler/codeGen/ClosureInfo.lhs
ghc/compiler/codeGen/ClosureInfo.lhs
+28
-30
ghc/compiler/codeGen/CodeGen.lhs
ghc/compiler/codeGen/CodeGen.lhs
+1
-1
ghc/compiler/codeGen/SMRep.lhs
ghc/compiler/codeGen/SMRep.lhs
+1
-1
ghc/compiler/coreSyn/AnnCoreSyn.lhs
ghc/compiler/coreSyn/AnnCoreSyn.lhs
+1
-1
ghc/compiler/coreSyn/CoreLift.lhs
ghc/compiler/coreSyn/CoreLift.lhs
+1
-1
ghc/compiler/coreSyn/CoreLint.lhs
ghc/compiler/coreSyn/CoreLint.lhs
+3
-2
ghc/compiler/coreSyn/CoreSyn.lhs
ghc/compiler/coreSyn/CoreSyn.lhs
+1
-4
ghc/compiler/coreSyn/CoreUnfold.lhs
ghc/compiler/coreSyn/CoreUnfold.lhs
+18
-44
ghc/compiler/coreSyn/CoreUtils.lhs
ghc/compiler/coreSyn/CoreUtils.lhs
+43
-6
ghc/compiler/coreSyn/FreeVars.lhs
ghc/compiler/coreSyn/FreeVars.lhs
+1
-1
ghc/compiler/coreSyn/PprCore.lhs
ghc/compiler/coreSyn/PprCore.lhs
+1
-1
ghc/compiler/deSugar/Desugar.lhs
ghc/compiler/deSugar/Desugar.lhs
+1
-1
ghc/compiler/deSugar/DsBinds.lhs
ghc/compiler/deSugar/DsBinds.lhs
+2
-2
ghc/compiler/deSugar/DsCCall.lhs
ghc/compiler/deSugar/DsCCall.lhs
+2
-4
ghc/compiler/deSugar/DsExpr.lhs
ghc/compiler/deSugar/DsExpr.lhs
+68
-21
ghc/compiler/deSugar/DsGRHSs.lhs
ghc/compiler/deSugar/DsGRHSs.lhs
+2
-2
ghc/compiler/deSugar/DsHsSyn.lhs
ghc/compiler/deSugar/DsHsSyn.lhs
+1
-1
ghc/compiler/deSugar/DsListComp.lhs
ghc/compiler/deSugar/DsListComp.lhs
+4
-2
ghc/compiler/deSugar/DsMonad.lhs
ghc/compiler/deSugar/DsMonad.lhs
+6
-1
ghc/compiler/deSugar/DsUtils.lhs
ghc/compiler/deSugar/DsUtils.lhs
+12
-14
ghc/compiler/deSugar/Match.lhs
ghc/compiler/deSugar/Match.lhs
+9
-9
ghc/compiler/deSugar/MatchCon.lhs
ghc/compiler/deSugar/MatchCon.lhs
+2
-2
ghc/compiler/deSugar/MatchLit.lhs
ghc/compiler/deSugar/MatchLit.lhs
+2
-2
ghc/compiler/deforest/DefExpr.lhs
ghc/compiler/deforest/DefExpr.lhs
+1
-1
ghc/compiler/hsSyn/HsBinds.lhs
ghc/compiler/hsSyn/HsBinds.lhs
+2
-2
ghc/compiler/hsSyn/HsCore.lhs
ghc/compiler/hsSyn/HsCore.lhs
+1
-1
ghc/compiler/hsSyn/HsDecls.lhs
ghc/compiler/hsSyn/HsDecls.lhs
+2
-2
ghc/compiler/hsSyn/HsExpr.lhs
ghc/compiler/hsSyn/HsExpr.lhs
+17
-8
ghc/compiler/hsSyn/HsImpExp.lhs
ghc/compiler/hsSyn/HsImpExp.lhs
+12
-11
ghc/compiler/hsSyn/HsLit.lhs
ghc/compiler/hsSyn/HsLit.lhs
+2
-1
ghc/compiler/hsSyn/HsMatches.lhs
ghc/compiler/hsSyn/HsMatches.lhs
+2
-2
ghc/compiler/hsSyn/HsPat.lhs
ghc/compiler/hsSyn/HsPat.lhs
+33
-36
ghc/compiler/hsSyn/HsPragmas.lhs
ghc/compiler/hsSyn/HsPragmas.lhs
+1
-1
ghc/compiler/hsSyn/HsSyn.lhs
ghc/compiler/hsSyn/HsSyn.lhs
+1
-1
ghc/compiler/hsSyn/HsTypes.lhs
ghc/compiler/hsSyn/HsTypes.lhs
+1
-1
ghc/compiler/main/ErrUtils.lhs
ghc/compiler/main/ErrUtils.lhs
+1
-1
ghc/compiler/main/Main.lhs
ghc/compiler/main/Main.lhs
+12
-16
ghc/compiler/main/MkIface.lhs
ghc/compiler/main/MkIface.lhs
+17
-26
ghc/compiler/nativeGen/AbsCStixGen.lhs
ghc/compiler/nativeGen/AbsCStixGen.lhs
+5
-1
ghc/compiler/nativeGen/AsmCodeGen.lhs
ghc/compiler/nativeGen/AsmCodeGen.lhs
+5
-5
ghc/compiler/nativeGen/AsmRegAlloc.lhs
ghc/compiler/nativeGen/AsmRegAlloc.lhs
+2
-1
ghc/compiler/nativeGen/MachCode.lhs
ghc/compiler/nativeGen/MachCode.lhs
+1
-1
ghc/compiler/nativeGen/MachMisc.lhs
ghc/compiler/nativeGen/MachMisc.lhs
+3
-3
ghc/compiler/nativeGen/MachRegs.lhs
ghc/compiler/nativeGen/MachRegs.lhs
+11
-8
ghc/compiler/nativeGen/PprMach.lhs
ghc/compiler/nativeGen/PprMach.lhs
+3
-2
ghc/compiler/nativeGen/RegAllocInfo.lhs
ghc/compiler/nativeGen/RegAllocInfo.lhs
+2
-1
ghc/compiler/nativeGen/Stix.lhs
ghc/compiler/nativeGen/Stix.lhs
+1
-1
ghc/compiler/nativeGen/StixInfo.lhs
ghc/compiler/nativeGen/StixInfo.lhs
+1
-1
ghc/compiler/nativeGen/StixInteger.lhs
ghc/compiler/nativeGen/StixInteger.lhs
+2
-2
ghc/compiler/nativeGen/StixMacro.lhs
ghc/compiler/nativeGen/StixMacro.lhs
+2
-2
ghc/compiler/nativeGen/StixPrim.lhs
ghc/compiler/nativeGen/StixPrim.lhs
+6
-2
ghc/compiler/parser/UgenAll.lhs
ghc/compiler/parser/UgenAll.lhs
+3
-1
ghc/compiler/parser/UgenUtil.lhs
ghc/compiler/parser/UgenUtil.lhs
+1
-1
ghc/compiler/parser/binding.ugn
ghc/compiler/parser/binding.ugn
+3
-1
ghc/compiler/parser/constr.ugn
ghc/compiler/parser/constr.ugn
+3
-1
ghc/compiler/parser/either.ugn
ghc/compiler/parser/either.ugn
+3
-1
ghc/compiler/parser/entidt.ugn
ghc/compiler/parser/entidt.ugn
+3
-1
ghc/compiler/parser/hslexer.flex
ghc/compiler/parser/hslexer.flex
+8
-5
ghc/compiler/parser/hsparser.y
ghc/compiler/parser/hsparser.y
+11
-5
ghc/compiler/parser/list.ugn
ghc/compiler/parser/list.ugn
+3
-1
ghc/compiler/parser/literal.ugn
ghc/compiler/parser/literal.ugn
+3
-1
ghc/compiler/parser/maybe.ugn
ghc/compiler/parser/maybe.ugn
+3
-1
ghc/compiler/parser/pbinding.ugn
ghc/compiler/parser/pbinding.ugn
+3
-1
ghc/compiler/parser/qid.ugn
ghc/compiler/parser/qid.ugn
+3
-1
ghc/compiler/parser/tree.ugn
ghc/compiler/parser/tree.ugn
+3
-1
ghc/compiler/parser/ttype.ugn
ghc/compiler/parser/ttype.ugn
+3
-1
ghc/compiler/parser/util.c
ghc/compiler/parser/util.c
+1
-27
ghc/compiler/parser/utils.h
ghc/compiler/parser/utils.h
+0
-1
ghc/compiler/prelude/PrelInfo.lhs
ghc/compiler/prelude/PrelInfo.lhs
+30
-22
ghc/compiler/prelude/PrelMods.lhs
ghc/compiler/prelude/PrelMods.lhs
+3
-0
ghc/compiler/prelude/PrelVals.lhs
ghc/compiler/prelude/PrelVals.lhs
+7
-11
ghc/compiler/prelude/PrimOp.lhs
ghc/compiler/prelude/PrimOp.lhs
+13
-3
ghc/compiler/prelude/PrimRep.lhs
ghc/compiler/prelude/PrimRep.lhs
+1
-2
ghc/compiler/prelude/TysPrim.lhs
ghc/compiler/prelude/TysPrim.lhs
+34
-41
ghc/compiler/prelude/TysWiredIn.lhs
ghc/compiler/prelude/TysWiredIn.lhs
+81
-135
ghc/compiler/profiling/CostCentre.lhs
ghc/compiler/profiling/CostCentre.lhs
+1
-1
ghc/compiler/profiling/SCCauto.lhs
ghc/compiler/profiling/SCCauto.lhs
+1
-1
ghc/compiler/profiling/SCCfinal.lhs
ghc/compiler/profiling/SCCfinal.lhs
+1
-1
ghc/compiler/reader/PrefixSyn.lhs
ghc/compiler/reader/PrefixSyn.lhs
+5
-1
ghc/compiler/reader/PrefixToHs.lhs
ghc/compiler/reader/PrefixToHs.lhs
+1
-1
ghc/compiler/reader/RdrHsSyn.lhs
ghc/compiler/reader/RdrHsSyn.lhs
+1
-1
ghc/compiler/reader/ReadPrefix.lhs
ghc/compiler/reader/ReadPrefix.lhs
+19
-8
ghc/compiler/rename/ParseIface.y
ghc/compiler/rename/ParseIface.y
+2
-1
ghc/compiler/rename/ParseUtils.lhs
ghc/compiler/rename/ParseUtils.lhs
+27
-13
ghc/compiler/rename/Rename.lhs
ghc/compiler/rename/Rename.lhs
+21
-9
ghc/compiler/rename/RnBinds.lhs
ghc/compiler/rename/RnBinds.lhs
+2
-2
ghc/compiler/rename/RnExpr.lhs
ghc/compiler/rename/RnExpr.lhs
+2
-2
ghc/compiler/rename/RnHsSyn.lhs
ghc/compiler/rename/RnHsSyn.lhs
+2
-2
ghc/compiler/rename/RnIfaces.lhs
ghc/compiler/rename/RnIfaces.lhs
+70
-31
ghc/compiler/rename/RnMonad.lhs
ghc/compiler/rename/RnMonad.lhs
+38
-11
ghc/compiler/rename/RnNames.lhs
ghc/compiler/rename/RnNames.lhs
+83
-50
ghc/compiler/rename/RnSource.lhs
ghc/compiler/rename/RnSource.lhs
+90
-57
ghc/compiler/rename/RnUtils.lhs
ghc/compiler/rename/RnUtils.lhs
+4
-25
ghc/compiler/simplCore/AnalFBWW.lhs
ghc/compiler/simplCore/AnalFBWW.lhs
+1
-1
ghc/compiler/simplCore/BinderInfo.lhs
ghc/compiler/simplCore/BinderInfo.lhs
+35
-15
ghc/compiler/simplCore/ConFold.lhs
ghc/compiler/simplCore/ConFold.lhs
+11
-13
ghc/compiler/simplCore/FloatIn.lhs
ghc/compiler/simplCore/FloatIn.lhs
+1
-1
ghc/compiler/simplCore/FloatOut.lhs
ghc/compiler/simplCore/FloatOut.lhs
+1
-1
ghc/compiler/simplCore/FoldrBuildWW.lhs
ghc/compiler/simplCore/FoldrBuildWW.lhs
+1
-1
ghc/compiler/simplCore/LiberateCase.lhs
ghc/compiler/simplCore/LiberateCase.lhs
+1
-1
ghc/compiler/simplCore/MagicUFs.lhs
ghc/compiler/simplCore/MagicUFs.lhs
+13
-17
ghc/compiler/simplCore/OccurAnal.lhs
ghc/compiler/simplCore/OccurAnal.lhs
+5
-5
ghc/compiler/simplCore/SAT.lhs
ghc/compiler/simplCore/SAT.lhs
+1
-1
ghc/compiler/simplCore/SATMonad.lhs
ghc/compiler/simplCore/SATMonad.lhs
+1
-1
ghc/compiler/simplCore/SetLevels.lhs
ghc/compiler/simplCore/SetLevels.lhs
+1
-1
ghc/compiler/simplCore/SimplCase.lhs
ghc/compiler/simplCore/SimplCase.lhs
+15
-26
ghc/compiler/simplCore/SimplCore.lhs
ghc/compiler/simplCore/SimplCore.lhs
+2
-2
ghc/compiler/simplCore/SimplEnv.lhs
ghc/compiler/simplCore/SimplEnv.lhs
+92
-97
ghc/compiler/simplCore/SimplMonad.lhs
ghc/compiler/simplCore/SimplMonad.lhs
+2
-4
ghc/compiler/simplCore/SimplPgm.lhs
ghc/compiler/simplCore/SimplPgm.lhs
+1
-1
ghc/compiler/simplCore/SimplUtils.lhs
ghc/compiler/simplCore/SimplUtils.lhs
+2
-1
ghc/compiler/simplCore/SimplVar.lhs
ghc/compiler/simplCore/SimplVar.lhs
+9
-22
ghc/compiler/simplCore/Simplify.lhs
ghc/compiler/simplCore/Simplify.lhs
+2
-2
ghc/compiler/simplCore/SmplLoop.lhi
ghc/compiler/simplCore/SmplLoop.lhi
+5
-0
ghc/compiler/simplStg/LambdaLift.lhs
ghc/compiler/simplStg/LambdaLift.lhs
+1
-1
ghc/compiler/simplStg/SatStgRhs.lhs
ghc/compiler/simplStg/SatStgRhs.lhs
+1
-1
ghc/compiler/simplStg/SimplStg.lhs
ghc/compiler/simplStg/SimplStg.lhs
+1
-1
ghc/compiler/simplStg/StgSAT.lhs
ghc/compiler/simplStg/StgSAT.lhs
+1
-1
ghc/compiler/simplStg/StgSATMonad.lhs
ghc/compiler/simplStg/StgSATMonad.lhs
+1
-1
ghc/compiler/simplStg/StgStats.lhs
ghc/compiler/simplStg/StgStats.lhs
+1
-1
ghc/compiler/simplStg/StgVarInfo.lhs
ghc/compiler/simplStg/StgVarInfo.lhs
+1
-1
ghc/compiler/simplStg/UpdAnal.lhs
ghc/compiler/simplStg/UpdAnal.lhs
+1
-1
ghc/compiler/specialise/SpecEnv.lhs
ghc/compiler/specialise/SpecEnv.lhs
+1
-1
ghc/compiler/specialise/SpecUtils.lhs
ghc/compiler/specialise/SpecUtils.lhs
+1
-1
ghc/compiler/specialise/Specialise.lhs
ghc/compiler/specialise/Specialise.lhs
+1
-1
ghc/compiler/stgSyn/CoreToStg.lhs
ghc/compiler/stgSyn/CoreToStg.lhs
+40
-18
ghc/compiler/stgSyn/StgLint.lhs
ghc/compiler/stgSyn/StgLint.lhs
+1
-1
ghc/compiler/stgSyn/StgSyn.lhs
ghc/compiler/stgSyn/StgSyn.lhs
+1
-3
ghc/compiler/stgSyn/StgUtils.lhs
ghc/compiler/stgSyn/StgUtils.lhs
+1
-1
ghc/compiler/stranal/SaAbsInt.lhs
ghc/compiler/stranal/SaAbsInt.lhs
+5
-18
ghc/compiler/stranal/SaLib.lhs
ghc/compiler/stranal/SaLib.lhs
+1
-1
ghc/compiler/stranal/StrictAnal.lhs
ghc/compiler/stranal/StrictAnal.lhs
+1
-1
ghc/compiler/stranal/WorkWrap.lhs
ghc/compiler/stranal/WorkWrap.lhs
+1
-1
ghc/compiler/stranal/WwLib.lhs
ghc/compiler/stranal/WwLib.lhs
+1
-1
ghc/compiler/typecheck/GenSpecEtc.lhs
ghc/compiler/typecheck/GenSpecEtc.lhs
+28
-14
ghc/compiler/typecheck/Inst.lhs
ghc/compiler/typecheck/Inst.lhs
+93
-93
ghc/compiler/typecheck/TcBinds.lhs
ghc/compiler/typecheck/TcBinds.lhs
+8
-8
ghc/compiler/typecheck/TcClassDcl.lhs
ghc/compiler/typecheck/TcClassDcl.lhs
+156
-49
ghc/compiler/typecheck/TcDefaults.lhs
ghc/compiler/typecheck/TcDefaults.lhs
+1
-1
ghc/compiler/typecheck/TcDeriv.lhs
ghc/compiler/typecheck/TcDeriv.lhs
+247
-166
ghc/compiler/typecheck/TcEnv.lhs
ghc/compiler/typecheck/TcEnv.lhs
+5
-5
ghc/compiler/typecheck/TcExpr.lhs
ghc/compiler/typecheck/TcExpr.lhs
+122
-126
ghc/compiler/typecheck/TcGRHSs.lhs
ghc/compiler/typecheck/TcGRHSs.lhs
+4
-2
ghc/compiler/typecheck/TcGenDeriv.lhs
ghc/compiler/typecheck/TcGenDeriv.lhs
+266
-224
ghc/compiler/typecheck/TcHsSyn.lhs
ghc/compiler/typecheck/TcHsSyn.lhs
+36
-28
ghc/compiler/typecheck/TcIfaceSig.lhs
ghc/compiler/typecheck/TcIfaceSig.lhs
+14
-6
ghc/compiler/typecheck/TcInstDcls.lhs
ghc/compiler/typecheck/TcInstDcls.lhs
+45
-41
ghc/compiler/typecheck/TcInstUtil.lhs
ghc/compiler/typecheck/TcInstUtil.lhs
+2
-2
ghc/compiler/typecheck/TcKind.lhs
ghc/compiler/typecheck/TcKind.lhs
+3
-1
ghc/compiler/typecheck/TcMatches.lhs
ghc/compiler/typecheck/TcMatches.lhs
+2
-2
ghc/compiler/typecheck/TcModule.lhs
ghc/compiler/typecheck/TcModule.lhs
+12
-21
ghc/compiler/typecheck/TcMonad.lhs
ghc/compiler/typecheck/TcMonad.lhs
+20
-5
ghc/compiler/typecheck/TcMonoType.lhs
ghc/compiler/typecheck/TcMonoType.lhs
+2
-2
ghc/compiler/typecheck/TcPat.lhs
ghc/compiler/typecheck/TcPat.lhs
+2
-2
ghc/compiler/typecheck/TcSimplify.lhs
ghc/compiler/typecheck/TcSimplify.lhs
+18
-17
ghc/compiler/typecheck/TcTyClsDecls.lhs
ghc/compiler/typecheck/TcTyClsDecls.lhs
+3
-3
ghc/compiler/typecheck/TcTyDecls.lhs
ghc/compiler/typecheck/TcTyDecls.lhs
+1
-2
ghc/compiler/typecheck/TcType.lhs
ghc/compiler/typecheck/TcType.lhs
+56
-20
ghc/compiler/typecheck/Unify.lhs
ghc/compiler/typecheck/Unify.lhs
+13
-4
ghc/compiler/types/Class.lhs
ghc/compiler/types/Class.lhs
+35
-16
ghc/compiler/types/Kind.lhs
ghc/compiler/types/Kind.lhs
+3
-3
ghc/compiler/types/PprType.lhs
ghc/compiler/types/PprType.lhs
+17
-11
ghc/compiler/types/TyCon.lhs
ghc/compiler/types/TyCon.lhs
+29
-44
ghc/compiler/types/TyLoop.lhi
ghc/compiler/types/TyLoop.lhi
+4
-2
ghc/compiler/types/TyVar.lhs
ghc/compiler/types/TyVar.lhs
+10
-3
ghc/compiler/types/Type.lhs
ghc/compiler/types/Type.lhs
+64
-24
ghc/compiler/types/Usage.lhs
ghc/compiler/types/Usage.lhs
+1
-1
ghc/compiler/utils/Bag.lhs
ghc/compiler/utils/Bag.lhs
+4
-1
ghc/compiler/utils/CharSeq.lhs
ghc/compiler/utils/CharSeq.lhs
+16
-61
ghc/compiler/utils/FiniteMap.lhs
ghc/compiler/utils/FiniteMap.lhs
+35
-72
ghc/compiler/utils/ListSetOps.lhs
ghc/compiler/utils/ListSetOps.lhs
+3
-1
ghc/compiler/utils/Maybes.lhs
ghc/compiler/utils/Maybes.lhs
+1
-9
ghc/compiler/utils/Outputable.lhs
ghc/compiler/utils/Outputable.lhs
+1
-1
ghc/compiler/utils/Pretty.lhs
ghc/compiler/utils/Pretty.lhs
+9
-10
ghc/compiler/utils/Ubiq.lhi
ghc/compiler/utils/Ubiq.lhi
+12
-0
ghc/compiler/utils/UniqFM.lhs
ghc/compiler/utils/UniqFM.lhs
+5
-2
ghc/compiler/utils/UniqSet.lhs
ghc/compiler/utils/UniqSet.lhs
+1
-1
ghc/compiler/utils/Unpretty.lhs
ghc/compiler/utils/Unpretty.lhs
+5
-4
ghc/compiler/utils/Util.lhs
ghc/compiler/utils/Util.lhs
+4
-4
No files found.
ghc/compiler/HsVersions.h
View file @
e7498a3e
...
...
@@ -25,7 +25,30 @@ you will screw up the layout where they are used in case expressions!
#else
#define ASSERT(e)
#endif
#define CHK_Ubiq() import Ubiq
#if __STDC__
#define CAT2(a,b)a##b
#else
#define CAT2(a,b)a
/**/
b
#endif
#if defined(__GLASGOW_HASKELL__) && __GLASGOW_HASKELL__ >= 200
# define REALLY_HASKELL_1_3
# define SYN_IE(a) a
# define IMPORT_DELOOPER(mod) import CAT2(mod,_1_3)
# define IMPORT_1_3(mod) import mod
# define _tagCmp compare
# define _LT LT
# define _EQ EQ
# define _GT GT
# define Text Show
#else
# define SYN_IE(a) a(..)
# define IMPORT_DELOOPER(mod) import mod
# define IMPORT_1_3(mod) {--}
#endif
#define IMP_Ubiq() IMPORT_DELOOPER(Ubiq)
#define CHK_Ubiq() IMPORT_DELOOPER(Ubiq)
#if defined(__GLASGOW_HASKELL__) && __GLASGOW_HASKELL__ >= 26
#define trace _trace
...
...
@@ -76,7 +99,7 @@ you will screw up the layout where they are used in case expressions!
#endif {- ! __GLASGOW_HASKELL__ -}
#if __GLASGOW_HASKELL__ >= 23
#if __GLASGOW_HASKELL__ >= 23
&& __GLASGOW_HASKELL__ < 200
#define USE_FAST_STRINGS 1
#define FAST_STRING _PackedString
#define SLIT(x) (_packCString (A# x#))
...
...
ghc/compiler/Jmakefile
View file @
e7498a3e
...
...
@@ -27,6 +27,12 @@ SuffixRules_flexish()
SuffixRule_c_o()
LitSuffixRule(.lprl,.prl) /* for makeSymbolList.prl */
.SUFFIXES: .lhi
.lhi.hi:
$(RM) $@
$(GHC_UNLIT) $< $@
@chmod 444 $@
/* assume ALL source is in subdirectories one level below
they don't have Jmakefiles; this Jmakefile controls everything
*/
...
...
@@ -356,6 +362,28 @@ SIMPL_SRCS_LHS \
STG_SRCS_LHS \
BACKSRCS_LHS NATIVEGEN_SRCS_LHS
#if GhcBuilderVersion >= 200
# define loop_hi(f) CAT3(f,_1_3,.hi)
#else
# define loop_hi(f) CAT2(f,.hi)
#endif
DELOOP_HIs = \
utils/Ubiq.hi \
absCSyn/AbsCLoop.hi \
basicTypes/IdLoop.hi \
codeGen/CgLoop1.hi \
codeGen/CgLoop2.hi \
deSugar/DsLoop.hi \
hsSyn/HsLoop.hi \
nativeGen/NcgLoop.hi \
prelude/PrelLoop.hi \
rename/RnLoop.hi \
simplCore/SmplLoop.hi \
typecheck/TcMLoop.hi \
typecheck/TcLoop.hi \
types/TyLoop.hi
/*
\
*/
...
...
@@ -471,36 +499,6 @@ HaskellCompileWithExtraFlags_Recursive(module,isuf,o,-c,extra_flags)
/* OK, here we go: */
utils/Ubiq.hi : utils/Ubiq.lhi
$(GHC_UNLIT) utils/Ubiq.lhi utils/Ubiq.hi
absCSyn/AbsCLoop.hi : absCSyn/AbsCLoop.lhi
$(GHC_UNLIT) absCSyn/AbsCLoop.lhi absCSyn/AbsCLoop.hi
basicTypes/IdLoop.hi : basicTypes/IdLoop.lhi
$(GHC_UNLIT) basicTypes/IdLoop.lhi basicTypes/IdLoop.hi
codeGen/CgLoop1.hi : codeGen/CgLoop1.lhi
$(GHC_UNLIT) codeGen/CgLoop1.lhi codeGen/CgLoop1.hi
codeGen/CgLoop2.hi : codeGen/CgLoop2.lhi
$(GHC_UNLIT) codeGen/CgLoop2.lhi codeGen/CgLoop2.hi
deSugar/DsLoop.hi : deSugar/DsLoop.lhi
$(GHC_UNLIT) deSugar/DsLoop.lhi deSugar/DsLoop.hi
hsSyn/HsLoop.hi : hsSyn/HsLoop.lhi
$(GHC_UNLIT) hsSyn/HsLoop.lhi hsSyn/HsLoop.hi
nativeGen/NcgLoop.hi : nativeGen/NcgLoop.lhi
$(GHC_UNLIT) nativeGen/NcgLoop.lhi nativeGen/NcgLoop.hi
prelude/PrelLoop.hi : prelude/PrelLoop.lhi
$(GHC_UNLIT) prelude/PrelLoop.lhi prelude/PrelLoop.hi
rename/RnLoop.hi : rename/RnLoop.lhi
$(GHC_UNLIT) rename/RnLoop.lhi rename/RnLoop.hi
simplCore/SmplLoop.hi : simplCore/SmplLoop.lhi
$(GHC_UNLIT) simplCore/SmplLoop.lhi simplCore/SmplLoop.hi
typecheck/TcMLoop.hi : typecheck/TcMLoop.lhi
$(GHC_UNLIT) typecheck/TcMLoop.lhi typecheck/TcMLoop.hi
typecheck/TcLoop.hi : typecheck/TcLoop.lhi
$(GHC_UNLIT) typecheck/TcLoop.lhi typecheck/TcLoop.hi
types/TyLoop.hi : types/TyLoop.lhi
$(GHC_UNLIT) types/TyLoop.lhi types/TyLoop.hi
rename/ParseIface.hs : rename/ParseIface.y
$(RM) rename/ParseIface.hs rename/ParseIface.hinfo
happy -g -i rename/ParseIface.hinfo rename/ParseIface.y
...
...
@@ -620,7 +618,7 @@ compile(reader/RdrHsSyn,lhs,)
compile(rename/ParseIface,hs,)
compile(rename/ParseUtils,lhs,)
compile(rename/RnHsSyn,lhs,)
compile(rename/RnMonad,lhs,)
compile(rename/RnMonad,lhs,
if_ghc(-fvia-C)
)
compile(rename/Rename,lhs,)
compile(rename/RnNames,lhs,)
compile(rename/RnSource,lhs,)
...
...
@@ -672,7 +670,7 @@ compile(deforest/Deforest,lhs,)
compile(deforest/TreelessForm,lhs,)
#endif
compile(specialise/Specialise,lhs,
)
compile(specialise/Specialise,lhs,
-H12m if_ghc(-Onot)) /* -Onot for compile-space reasons */
compile(specialise/SpecEnv,lhs,)
compile(specialise/SpecUtils,lhs,)
...
...
@@ -702,7 +700,7 @@ compile(typecheck/TcInstDcls,lhs,)
compile(typecheck/TcInstUtil,lhs,)
compile(typecheck/TcMatches,lhs,)
compile(typecheck/TcModule,lhs,)
compile(typecheck/TcMonad,lhs,)
compile(typecheck/TcMonad,lhs,
if_ghc(-fvia-C)
)
compile(typecheck/TcKind,lhs,)
compile(typecheck/TcType,lhs,)
compile(typecheck/TcEnv,lhs,)
...
...
@@ -716,7 +714,7 @@ compile(typecheck/Unify,lhs,)
compile(types/Class,lhs,)
compile(types/Kind,lhs,)
compile(types/PprType,lhs,
)
compile(types/PprType,lhs,
if_ghc26(-Onot)) /* avoid a 0.26 bug */
compile(types/TyCon,lhs,)
compile(types/TyVar,lhs,)
compile(types/Usage,lhs,)
...
...
@@ -822,17 +820,17 @@ InstallBinaryTarget(hsp,$(INSTLIBDIR_GHC))
YaccRunWithExpectMsg(parser/hsparser,12,0)
UgenTarget(parser
/
constr)
UgenTarget(parser
/
binding)
UgenTarget(parser
/
pbinding)
UgenTarget(parser
/
entidt)
UgenTarget(parser
/
list)
UgenTarget(parser
/
literal)
UgenTarget(parser
/
maybe)
UgenTarget(parser
/
either)
UgenTarget(parser
/
qid)
UgenTarget(parser
/
tree)
UgenTarget(parser
/
ttype)
UgenTarget(parser
,
constr)
UgenTarget(parser
,
binding)
UgenTarget(parser
,
pbinding)
UgenTarget(parser
,
entidt)
UgenTarget(parser
,
list)
UgenTarget(parser
,
literal)
UgenTarget(parser
,
maybe)
UgenTarget(parser
,
either)
UgenTarget(parser
,
qid)
UgenTarget(parser
,
tree)
UgenTarget(parser
,
ttype)
UGENS_C = parser/constr.c \
parser/binding.c \
...
...
@@ -884,6 +882,7 @@ MKDEPENDHS_OPTS= -o .hc -I$(MAIN_INCLUDE_DIR) -I$(COMPINFO_DIR) -x HsVersions.h
#if HaskellCompilerType != HC_USE_HC_FILES
/* otherwise, the dependencies jeopardize our .hc files --
which are all we have! */
depend :: $(DELOOP_HIs)
HaskellDependTarget( $(DEPSRCS) )
#endif
...
...
ghc/compiler/absCSyn/AbsCSyn.lhs
View file @
e7498a3e
...
...
@@ -35,7 +35,7 @@ module AbsCSyn {- (
CostRes(Cost)
)-} where
import Ubiq
{-uitous-}
IMP_Ubiq()
{-uitous-}
import CgCompInfo ( mAX_Vanilla_REG, mAX_Float_REG,
mAX_Double_REG, lIVENESS_R1, lIVENESS_R2,
...
...
ghc/compiler/absCSyn/AbsCUtils.lhs
View file @
e7498a3e
...
...
@@ -19,7 +19,7 @@ module AbsCUtils (
-- printing/forcing stuff comes from PprAbsC
) where
import Ubiq
{-uitous-}
IMP_Ubiq()
{-uitous-}
import AbsCSyn
...
...
ghc/compiler/absCSyn/CLabel.lhs
View file @
e7498a3e
...
...
@@ -16,7 +16,9 @@ module CLabel (
mkConEntryLabel,
mkStaticConEntryLabel,
mkRednCountsLabel,
mkConInfoTableLabel,
mkPhantomInfoTableLabel,
mkStaticClosureLabel,
mkStaticInfoTableLabel,
mkVapEntryLabel,
mkVapInfoTableLabel,
...
...
@@ -45,12 +47,12 @@ module CLabel (
#endif
) where
import Ubiq
{-uitous-}
import AbsCLoop
( CtrlReturnConvention(..),
IMP_Ubiq()
{-uitous-}
IMPORT_DELOOPER(AbsCLoop)
( CtrlReturnConvention(..),
ctrlReturnConvAlg
)
#if ! OMIT_NATIVE_CODEGEN
import NcgLoop
( underscorePrefix, fmtAsmLbl )
IMPORT_DELOOPER(NcgLoop)
( underscorePrefix, fmtAsmLbl )
#endif
import CStrings ( pp_cSEP )
...
...
@@ -110,26 +112,25 @@ unspecialised constructors are compared.
\begin{code}
data CLabelId = CLabelId Id
instance Ord3 CLabelId where
cmp (CLabelId a) (CLabelId b) = cmpId_withSpecDataCon a b
instance Eq CLabelId where
CLabelId a == CLabelId b = case
cmpId_withSpecDataCon a b
of { EQ_ -> True; _ -> False }
CLabelId a /= CLabelId b = case
cmpId_withSpecDataCon a b
of { EQ_ -> False; _ -> True }
CLabelId a == CLabelId b = case
(a `cmp` b)
of { EQ_ -> True; _ -> False }
CLabelId a /= CLabelId b = case
(a `cmp` b)
of { EQ_ -> False; _ -> True }
instance Ord CLabelId where
CLabelId a <= CLabelId b = case cmpId_withSpecDataCon a b
of { LT_ -> True; EQ_ -> True; GT__ -> False }
CLabelId a < CLabelId b = case cmpId_withSpecDataCon a b
of { LT_ -> True; EQ_ -> False; GT__ -> False }
CLabelId a >= CLabelId b = case cmpId_withSpecDataCon a b
of { LT_ -> False; EQ_ -> True; GT__ -> True }
CLabelId a > CLabelId b = case cmpId_withSpecDataCon a b
of { LT_ -> False; EQ_ -> False; GT__ -> True }
_tagCmp (CLabelId a) (CLabelId b) = case cmpId_withSpecDataCon a b
of { LT_ -> _LT; EQ_ -> _EQ; GT__ -> _GT }
CLabelId a <= CLabelId b = case (a `cmp` b) of { LT_ -> True; EQ_ -> True; GT__ -> False }
CLabelId a < CLabelId b = case (a `cmp` b) of { LT_ -> True; EQ_ -> False; GT__ -> False }
CLabelId a >= CLabelId b = case (a `cmp` b) of { LT_ -> False; EQ_ -> True; GT__ -> True }
CLabelId a > CLabelId b = case (a `cmp` b) of { LT_ -> False; EQ_ -> False; GT__ -> True }
_tagCmp (CLabelId a) (CLabelId b) = case (a `cmp` b) of { LT_ -> _LT; EQ_ -> _EQ; GT__ -> _GT }
\end{code}
\begin{code}
data IdLabelInfo
= Closure -- Label for (static???) closure
| StaticClosure -- Static closure -- e.g., nullary constructor
| InfoTbl -- Info table for a closure; always read-only
...
...
@@ -139,14 +140,15 @@ data IdLabelInfo
-- encoded into the name)
| ConEntry -- the only kind of entry pt for constructors
|
StaticConEntry -- static constructor entry point
|
ConInfoTbl -- corresponding info table
| StaticConEntry -- static constructor entry point
| StaticInfoTbl -- corresponding info table
| PhantomInfoTbl -- for phantom constructors that only exist in regs
| VapInfoTbl Bool -- True <=> the update-reqd version; False <=> the no-update-reqd version
| VapEntry Bool
| VapEntry
Bool
-- Ticky-ticky counting
| RednCounts -- Label of place to keep reduction-count info for this Id
...
...
@@ -195,18 +197,28 @@ data RtsLabelInfo
\end{code}
\begin{code}
mkClosureLabel id = IdLabel (CLabelId id) Closure
mkInfoTableLabel id = IdLabel (CLabelId id) InfoTbl
mkStdEntryLabel id = IdLabel (CLabelId id) EntryStd
mkClosureLabel id = IdLabel (CLabelId id)
Closure
mkInfoTableLabel id = IdLabel (CLabelId id)
InfoTbl
mkStdEntryLabel id = IdLabel (CLabelId id)
EntryStd
mkFastEntryLabel id arity = ASSERT(arity > 0)
IdLabel (CLabelId id) (EntryFast arity)
mkConEntryLabel id = IdLabel (CLabelId id) ConEntry
mkStaticConEntryLabel id = IdLabel (CLabelId id) StaticConEntry
mkRednCountsLabel id = IdLabel (CLabelId id) RednCounts
mkPhantomInfoTableLabel id = IdLabel (CLabelId id) PhantomInfoTbl
mkStaticInfoTableLabel id = IdLabel (CLabelId id) StaticInfoTbl
mkVapEntryLabel id upd_flag = IdLabel (CLabelId id) (VapEntry upd_flag)
mkVapInfoTableLabel id upd_flag = IdLabel (CLabelId id) (VapInfoTbl upd_flag)
IdLabel (CLabelId id) (EntryFast arity)
mkStaticClosureLabel con = ASSERT(isDataCon con)
IdLabel (CLabelId con) StaticClosure
mkStaticInfoTableLabel con = ASSERT(isDataCon con)
IdLabel (CLabelId con) StaticInfoTbl
mkConInfoTableLabel con = ASSERT(isDataCon con)
IdLabel (CLabelId con) ConInfoTbl
mkPhantomInfoTableLabel con = ASSERT(isDataCon con)
IdLabel (CLabelId con) PhantomInfoTbl
mkConEntryLabel con = ASSERT(isDataCon con)
IdLabel (CLabelId con) ConEntry
mkStaticConEntryLabel con = ASSERT(isDataCon con)
IdLabel (CLabelId con) StaticConEntry
mkRednCountsLabel id = IdLabel (CLabelId id) RednCounts
mkVapEntryLabel id upd_flag = IdLabel (CLabelId id) (VapEntry upd_flag)
mkVapInfoTableLabel id upd_flag = IdLabel (CLabelId id) (VapInfoTbl upd_flag)
mkConUpdCodePtrVecLabel tycon tag = TyConLabel tycon (VecConUpdCode tag)
mkStdUpdCodePtrVecLabel tycon tag = TyConLabel tycon (StdUpdCode tag)
...
...
@@ -258,11 +270,12 @@ needsCDecl other = True
Whether the labelled thing can be put in C "text space":
\begin{code}
isReadOnly (IdLabel _ InfoTbl) = True -- info-tables: yes
isReadOnly (IdLabel _ StaticInfoTbl) = True -- and so on, for other
isReadOnly (IdLabel _ PhantomInfoTbl) = True
isReadOnly (IdLabel _ (VapInfoTbl _)) = True
isReadOnly (IdLabel _ other) = False -- others: pessimistically, no
isReadOnly (IdLabel _ InfoTbl) = True -- info-tables: yes
isReadOnly (IdLabel _ ConInfoTbl) = True -- and so on, for other
isReadOnly (IdLabel _ StaticInfoTbl) = True
isReadOnly (IdLabel _ PhantomInfoTbl) = True
isReadOnly (IdLabel _ (VapInfoTbl _)) = True
isReadOnly (IdLabel _ other) = False -- others: pessimistically, no
isReadOnly (TyConLabel _ _) = True
isReadOnly (CaseLabel _ _) = True
...
...
@@ -378,7 +391,9 @@ ppFlavor x = uppBeside pp_cSEP
EntryStd -> uppPStr SLIT("entry")
EntryFast arity -> --false:ASSERT (arity > 0)
uppBeside (uppPStr SLIT("fast")) (uppInt arity)
ConEntry -> uppPStr SLIT("entry")
StaticClosure -> uppPStr SLIT("static_closure")
ConEntry -> uppPStr SLIT("con_entry")
ConInfoTbl -> uppPStr SLIT("con_info")
StaticConEntry -> uppPStr SLIT("static_entry")
StaticInfoTbl -> uppPStr SLIT("static_info")
PhantomInfoTbl -> uppPStr SLIT("inregs_info")
...
...
ghc/compiler/absCSyn/CStrings.lhs
View file @
e7498a3e
...
...
@@ -18,6 +18,12 @@ CHK_Ubiq() -- debugging consistency check
import Pretty
import Unpretty( uppChar )
IMPORT_1_3(Char (isAlphanum))
#ifdef REALLY_HASKELL_1_3
ord = fromEnum :: Char -> Int
chr = toEnum :: Int -> Char
#endif
\end{code}
...
...
ghc/compiler/absCSyn/Costs.lhs
View file @
e7498a3e
...
...
@@ -57,7 +57,7 @@ module Costs( costs,
addrModeCosts, CostRes(Cost), nullCosts, Side(..)
) where
import Ubiq
{-uitous-}
IMP_Ubiq()
{-uitous-}
import AbsCSyn
import PrimOp ( primOpNeedsWrapper, PrimOp(..) )
...
...
ghc/compiler/absCSyn/HeapOffs.lhs
View file @
e7498a3e
...
...
@@ -31,9 +31,9 @@ module HeapOffs (
SpARelOffset(..), SpBRelOffset(..)
) where
import Ubiq
{-uitous-}
IMP_Ubiq()
{-uitous-}
#if ! OMIT_NATIVE_CODEGEN
import AbsCLoop
( fixedHdrSizeInWords, varHdrSizeInWords )
IMPORT_DELOOPER(AbsCLoop)
( fixedHdrSizeInWords, varHdrSizeInWords )
#endif
import Maybes ( catMaybes )
...
...
ghc/compiler/absCSyn/PprAbsC.lhs
View file @
e7498a3e
...
...
@@ -18,8 +18,8 @@ module PprAbsC (
#endif
) where
import Ubiq
{-uitous-}
import AbsCLoop
-- break its dependence on ClosureInfo
IMP_Ubiq()
{-uitous-}
IMPORT_DELOOPER(AbsCLoop)
-- break its dependence on ClosureInfo
import AbsCSyn
...
...
@@ -62,10 +62,10 @@ call to a cost evaluation function @GRAN_EXEC@. For that,
@pprAbsC@ has a new ``costs'' argument. %% HWL
\begin{code}
writeRealC ::
_FILE
-> AbstractC -> IO ()
writeRealC ::
Handle
-> AbstractC -> IO ()
writeRealC
fi
le absC
= upp
AppendFile fi
le 80 (
writeRealC
hand
le absC
= upp
PutStr hand
le 80 (
uppAbove (pprAbsC PprForC absC (costs absC)) (uppChar '\n')
)
...
...
ghc/compiler/basicTypes/FieldLabel.lhs
View file @
e7498a3e
...
...
@@ -8,7 +8,7 @@
module FieldLabel where
import Ubiq
{-uitous-}
IMP_Ubiq()
{-uitous-}
import Name ( Name{-instance Eq/Outputable-} )
import Type ( Type(..) )
...
...
ghc/compiler/basicTypes/Id.lhs
View file @
e7498a3e
...
...
@@ -36,7 +36,7 @@ module Id {- (
getMentionedTyConsAndClassesFromId,
dataConTag, dataConStrictMarks,
dataConSig, dataConArgTys,
dataConSig, dataCon
RawArgTys, dataCon
ArgTys,
dataConTyCon, dataConArity,
dataConFieldLabels,
...
...
@@ -44,6 +44,7 @@ module Id {- (
-- PREDICATES
isDataCon, isTupleCon,
isNullaryDataCon,
isSpecId_maybe, isSpecPragmaId_maybe,
toplevelishId, externallyVisibleId,
isTopLevId, isWorkerId, isWrapperId,
...
...
@@ -94,9 +95,9 @@ module Id {- (
GenIdSet(..), IdSet(..)
)-} where
import Ubiq
import IdLoop
-- for paranoia checking
import TyLoop
-- for paranoia checking
IMP_Ubiq()
IMPORT_DELOOPER(IdLoop)
-- for paranoia checking
IMPORT_DELOOPER(TyLoop)
-- for paranoia checking
import Bag
import Class ( classOpString, Class(..), GenClass, ClassOp(..), GenClassOp )
...
...
@@ -1043,17 +1044,17 @@ mkSuperDictSelId u c sc ty info
n = mkCompoundName u SLIT("sdsel") [origName cname, origName sc] cname
mkMethodSelId u c op ty info
= Id u n ty (MethodSelId c op) NoPragmaInfo info
mkMethodSelId u
rec_
c op ty info
= Id u n ty (MethodSelId
rec_
c op) NoPragmaInfo info
where
cname = getName c -- we get other info out of here
cname = getName
rec_
c -- we get other info out of here
n = mkCompoundName u SLIT("meth") [origName cname, Unqual (classOpString op)] cname
mkDefaultMethodId u c op gen ty info
= Id u n ty (DefaultMethodId c op gen) NoPragmaInfo info
mkDefaultMethodId u
rec_
c op gen ty info
= Id u n ty (DefaultMethodId
rec_
c op gen) NoPragmaInfo info
where
cname = getName c -- we get other info out of here
cname = getName
rec_
c -- we get other info out of here
n = mkCompoundName u SLIT("defm") [origName cname, Unqual (classOpString op)] cname
...
...
@@ -1227,6 +1228,8 @@ dataConArity id@(Id _ _ _ _ _ id_info)
Nothing -> pprPanic "dataConArity:Nothing:" (pprId PprDebug id)
Just i -> i
isNullaryDataCon con = dataConArity con == 0 -- function of convenience
addIdArity :: Id -> Int -> Id
addIdArity (Id u n ty details pinfo info) arity
= Id u n ty details pinfo (info `addInfo` (mkArityInfo arity))
...
...
@@ -1405,6 +1408,9 @@ dataConStrictMarks (Id _ _ _ (DataConId _ stricts _ _ _ _ _) _ _) = stricts
dataConStrictMarks (Id _ _ _ (TupleConId arity) _ _)
= nOfThem arity NotMarkedStrict
dataConRawArgTys :: DataCon -> [TauType] -- a function of convenience
dataConRawArgTys con = case (dataConSig con) of { (_,_, arg_tys,_) -> arg_tys }
dataConArgTys :: DataCon
-> [Type] -- Instantiated at these types
-> [Type] -- Needs arguments of these types
...
...
@@ -1583,15 +1589,15 @@ instance Ord3 (GenId ty) where
cmp = cmpId
instance Eq (GenId ty) where
a == b = case
cmpId a b
of { EQ_ -> True; _ -> False }
a /= b = case
cmpId a b
of { EQ_ -> False; _ -> True }
a == b = case
(a `cmp` b)
of { EQ_ -> True; _ -> False }
a /= b = case
(a `cmp` b)
of { EQ_ -> False; _ -> True }
instance Ord (GenId ty) where
a <= b = case
cmpId a b
of { LT_ -> True; EQ_ -> True; GT__ -> False }
a < b = case
cmpId a b
of { LT_ -> True; EQ_ -> False; GT__ -> False }
a >= b = case
cmpId a b
of { LT_ -> False; EQ_ -> True; GT__ -> True }
a > b = case
cmpId a b
of { LT_ -> False; EQ_ -> False; GT__ -> True }
_tagCmp a b = case
cmpId a b
of { LT_ -> _LT; EQ_ -> _EQ; GT__ -> _GT }
a <= b = case
(a `cmp` b)
of { LT_ -> True; EQ_ -> True; GT__ -> False }
a < b = case
(a `cmp` b)
of { LT_ -> True; EQ_ -> False; GT__ -> False }
a >= b = case
(a `cmp` b)
of { LT_ -> False; EQ_ -> True; GT__ -> True }
a > b = case
(a `cmp` b)
of { LT_ -> False; EQ_ -> False; GT__ -> True }
_tagCmp a b = case
(a `cmp` b)
of { LT_ -> _LT; EQ_ -> _EQ; GT__ -> _GT }
\end{code}
@cmpId_withSpecDataCon@ ensures that any spectys are taken into
...
...
ghc/compiler/basicTypes/IdInfo.lhs
View file @
e7498a3e
...
...
@@ -67,9 +67,9 @@ module IdInfo (
) where
import Ubiq
IMP_Ubiq()
import IdLoop
-- IdInfo is a dependency-loop ranch, and
IMPORT_DELOOPER(IdLoop)
-- IdInfo is a dependency-loop ranch, and
-- we break those loops by using IdLoop and
-- *not* importing much of anything else,
-- except from the very general "utils".
...
...
@@ -77,6 +77,7 @@ import IdLoop -- IdInfo is a dependency-loop ranch, and
import CmdLineOpts ( opt_OmitInterfacePragmas )
import Maybes ( firstJust )
import MatchEnv ( nullMEnv, isEmptyMEnv, mEnvToList )
import OccurAnal ( occurAnalyseGlobalExpr )
import Outputable ( ifPprInterface, Outputable(..){-instances-} )
import PprStyle ( PprStyle(..) )
import Pretty
...
...
@@ -84,10 +85,13 @@ import SrcLoc ( mkUnknownSrcLoc )
import Type ( eqSimpleTy, splitFunTyExpandingDicts )
import Util ( mapAccumL, panic, assertPanic, pprPanic )
#ifdef REALLY_HASKELL_1_3
ord = fromEnum :: Char -> Int
#endif
applySubstToTy = panic "IdInfo.applySubstToTy"
showTypeCategory = panic "IdInfo.showTypeCategory"
mkFormSummary = panic "IdInfo.mkFormSummary"
occurAnalyseGlobalExpr = panic "IdInfo.occurAnalyseGlobalExpr"
isWrapperFor = panic "IdInfo.isWrapperFor"
pprCoreUnfolding = panic "IdInfo.pprCoreUnfolding"
\end{code}
...
...
@@ -607,7 +611,11 @@ as the worker requires. Hence we have to give up altogether, and call
the wrapper only; so under these circumstances we return \tr{False}.
\begin{code}
#ifdef REALLY_HASKELL_1_3
instance Read Demand where
#else
instance Text Demand where
#endif
readList str = read_em [{-acc-}] str
where
read_em acc [] = [(reverse acc, "")]
...
...
@@ -626,6 +634,9 @@ instance Text Demand where
read_em acc other = panic ("IdInfo.readem:"++other)
#ifdef REALLY_HASKELL_1_3
instance Show Demand where
#endif
showList wrap_args rest = (concat (map show1 wrap_args)) ++ rest
where
show1 (WwLazy False) = "L"
...
...
@@ -725,7 +736,7 @@ pp_strictness sty for_this_id_maybe better_id_fn inline_env
\begin{code}
mkUnfolding guide expr
= GenForm
False
(mkFormSummary NoStrictnessInfo expr)
= GenForm (mkFormSummary NoStrictnessInfo expr)
(occurAnalyseGlobalExpr expr)
guide
\end{code}
...
...
@@ -735,8 +746,8 @@ noInfo_UF = NoUnfoldingDetails