From: simonpj Date: Mon, 2 Jun 2003 13:27:53 +0000 (+0000) Subject: [project @ 2003-06-02 13:27:53 by simonpj] X-Git-Tag: Approx_11550_changesets_converted~825 X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=7849d4a5be50796cda506c5d92ca2ccb0d15dd90;p=ghc-hetmet.git [project @ 2003-06-02 13:27:53 by simonpj] Add comments --- diff --git a/ghc/compiler/typecheck/TcIfaceSig.lhs b/ghc/compiler/typecheck/TcIfaceSig.lhs index e1d3230..5295fec 100644 --- a/ghc/compiler/typecheck/TcIfaceSig.lhs +++ b/ghc/compiler/typecheck/TcIfaceSig.lhs @@ -55,8 +55,20 @@ signatures. tcInterfaceSigs :: [RenamedTyClDecl] -- Ignore non-sig-decls in these decls -> TcM TcGblEnv +-- May 2003: +-- NOTE 1: careful about the side-effected EPS +-- in the two tcExtendGlobalValueEnv calls +-- NOTE 2: no point in tying the knot with fixM; all +-- the important knot-tying comes via the PCS global variable + tcInterfaceSigs decls = zapEnv (fixM (tc_interface_sigs decls)) `thenM` \ (_,sig_ids) -> + -- The zapEnv dramatically trims the environment, solely + -- to plug the space leak that would otherwise be caused + -- by a rich environment bound into lots of lazy thunks + -- The thunks are the lazily-typechecked IdInfo of the + -- imported things. + tcExtendGlobalValEnv sig_ids getGblEnv `thenM` \ gbl_env -> returnM gbl_env -- We tie a knot so that the Ids read out of interfaces are in scope