Today's validate failures

Simon Marlow marlowsd at gmail.com
Wed Jan 30 10:55:39 CET 2013


On 30/01/13 01:20, Ian Lynagh wrote:
> 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.

Me too :)

 > 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.

Yes, we should definitely be using throwIO.  In fact, every use of 
throwGhcException should be treated with suspicion.

Cheers,
	Simon




More information about the ghc-devs mailing list