Commit c36b02d9 authored by simonmar's avatar simonmar
Browse files

[project @ 2001-11-23 12:01:34 by simonmar]

Adorn various constructor fields with strictness annotations - this
fixes at least one space leak, in the mi_usages field of a ModIface.
parent 3642d212
...@@ -139,26 +139,26 @@ linking; it is the "linked" form of the mi_decls field. ...@@ -139,26 +139,26 @@ linking; it is the "linked" form of the mi_decls field.
\begin{code} \begin{code}
data ModIface data ModIface
= ModIface { = ModIface {
mi_module :: Module, -- Complete with package info mi_module :: !Module, -- Complete with package info
mi_version :: VersionInfo, -- Module version number mi_version :: !VersionInfo, -- Module version number
mi_orphan :: WhetherHasOrphans, -- Whether this module has orphans mi_orphan :: WhetherHasOrphans, -- Whether this module has orphans
mi_boot :: IsBootInterface, -- Whether this interface was read from an hi-boot file mi_boot :: !IsBootInterface, -- read from an hi-boot file?
mi_usages :: [ImportVersion Name], -- Usages; kept sorted so that it's easy mi_usages :: ![ImportVersion Name],
-- to decide whether to write a new iface file -- Usages; kept sorted so that it's easy to decide
-- (changing usages doesn't affect the version of -- whether to write a new iface file (changing usages
-- this module) -- doesn't affect the version of this module)
mi_exports :: [(ModuleName,Avails)], -- What it exports mi_exports :: ![(ModuleName,Avails)],
-- Kept sorted by (mod,occ), -- What it exports Kept sorted by (mod,occ), to make
-- to make version comparisons easier -- version comparisons easier
mi_globals :: GlobalRdrEnv, -- Its top level environment mi_globals :: !GlobalRdrEnv, -- Its top level environment
mi_fixities :: NameEnv Fixity, -- Fixities mi_fixities :: !(NameEnv Fixity), -- Fixities
mi_deprecs :: Deprecations, -- Deprecations mi_deprecs :: !Deprecations, -- Deprecations
mi_decls :: IfaceDecls -- The RnDecls form of ModDetails mi_decls :: IfaceDecls -- The RnDecls form of ModDetails
} }
data IfaceDecls = IfaceDecls { dcl_tycl :: [RenamedTyClDecl], -- Sorted data IfaceDecls = IfaceDecls { dcl_tycl :: [RenamedTyClDecl], -- Sorted
...@@ -180,10 +180,10 @@ mkIfaceDecls tycls rules insts ...@@ -180,10 +180,10 @@ mkIfaceDecls tycls rules insts
data ModDetails data ModDetails
= ModDetails { = ModDetails {
-- The next three fields are created by the typechecker -- The next three fields are created by the typechecker
md_types :: TypeEnv, md_types :: !TypeEnv,
md_insts :: [DFunId], -- Dfun-ids for the instances in this module md_insts :: ![DFunId], -- Dfun-ids for the instances in this module
md_rules :: [IdCoreRule], -- Domain may include Ids from other modules md_rules :: ![IdCoreRule], -- Domain may include Ids from other modules
md_binds :: [CoreBind] md_binds :: ![CoreBind]
} }
-- The ModDetails takes on several slightly different forms: -- The ModDetails takes on several slightly different forms:
...@@ -512,18 +512,18 @@ type IsExported = Name -> Bool -- True for names that are exported from this mo ...@@ -512,18 +512,18 @@ type IsExported = Name -> Bool -- True for names that are exported from this mo
\begin{code} \begin{code}
data PersistentCompilerState data PersistentCompilerState
= PCS { = PCS {
pcs_PIT :: PackageIfaceTable, -- Domain = non-home-package modules pcs_PIT :: !PackageIfaceTable, -- Domain = non-home-package modules
-- the mi_decls component is empty -- the mi_decls component is empty
pcs_PTE :: PackageTypeEnv, -- Domain = non-home-package modules pcs_PTE :: !PackageTypeEnv, -- Domain = non-home-package modules
-- except that the InstEnv components is empty -- except that the InstEnv components is empty
pcs_insts :: PackageInstEnv, -- The total InstEnv accumulated from all pcs_insts :: !PackageInstEnv, -- The total InstEnv accumulated from all
-- the non-home-package modules -- the non-home-package modules
pcs_rules :: PackageRuleBase, -- Ditto RuleEnv pcs_rules :: !PackageRuleBase, -- Ditto RuleEnv
pcs_PRS :: PersistentRenamerState pcs_PRS :: !PersistentRenamerState
} }
\end{code} \end{code}
...@@ -554,11 +554,11 @@ type PackageRuleBase = RuleBase ...@@ -554,11 +554,11 @@ type PackageRuleBase = RuleBase
type PackageInstEnv = InstEnv type PackageInstEnv = InstEnv
data PersistentRenamerState data PersistentRenamerState
= PRS { prsOrig :: NameSupply, = PRS { prsOrig :: !NameSupply,
prsImpMods :: ImportedModuleInfo, prsImpMods :: !ImportedModuleInfo,
prsDecls :: DeclsMap, prsDecls :: !DeclsMap,
prsInsts :: IfaceInsts, prsInsts :: !IfaceInsts,
prsRules :: IfaceRules prsRules :: !IfaceRules
} }
\end{code} \end{code}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment