On Fri, Jan 18, 2013 at 05:03:26PM +0000, Simon Marlow wrote: > On 18/01/13 16:45, Simon Peyton-Jones wrote: > >| > In Packages we have a dflags with an error thunk in it for pkgState, > >| and it's the strict evaluation of that pkgState that is changing the > >| behaviour. > >| > >| Whereabouts are we evaluating it? Could we fix that instead? > > > >That would be good. It's here; > > > >applyPackageFlag dflags unusable pkgs flag = > > case flag of > > ExposePackage str -> > > case selectPackages (matchingStr str) pkgs unusable of > > Left ps -> packageFlagErr dflags flag ps > > Right (p:ps,qs) -> return (p':ps') > > where p' = p {exposed=True} > > ps' = hideAll (pkgName (sourcePackageId p)) (ps++qs) > > _ -> panic "applyPackageFlag" > > > >etc > > > >The call to packageFlagErr is divergent, of course, but dflags has an error > >thunk for the pkgState. > > Looks like we should be using throwIO. Unfortunately I'm out of > time right now, feel free to fix it, otherwise I'll do it next week.
I tried that, but it didn't fix it. However, it seems like a sensible thing to be doing anyway, so I pushed the patch. I'll do a sweep for other places that we could/should be using throwIO. Thanks Ian _______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://www.haskell.org/mailman/listinfo/ghc-devs