<div dir="auto">Here [1] is the tweak we do in HaRe to get the right dynflags<div dir="auto"><br></div><div dir="auto">Alan</div><div dir="auto"><br></div><div dir="auto">[1] <a href="https://github.com/alanz/HaRe/blob/master/src/Language/Haskell/Refact/Utils/Utils.hs#L224">https://github.com/alanz/HaRe/blob/master/src/Language/Haskell/Refact/Utils/Utils.hs#L224</a></div></div><div class="gmail_extra"><br><div class="gmail_quote">On 3 Feb 2017 5:59 p.m., "Matthew Pickering" <<a href="mailto:matthewtpickering@gmail.com">matthewtpickering@gmail.com</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">You are right. I looked more closely now and it looks like<br>
"parseModule" and so on overwrite the DynFlags with a cached version<br>
before running the relevant piece of the pipeline.<br>
<br>
 857    hsc_env <- getSession<br>
 858    let hsc_env_tmp = hsc_env { hsc_dflags = ms_hspp_opts ms }<br>
 859    hpm <- liftIO $ hscParse hsc_env_tmp ms<br>
<br>
<br>
I think this is symptom of the fact that DynFlags is not very well<br>
structured and a lot of different compiler options are lumped<br>
together. It makes sense that we need to use the right DynFlags to run<br>
the module but this shouldn't overwrite things which are irrelevant<br>
like log_action.<br>
<br>
Matt<br>
<br>
<br>
On Fri, Feb 3, 2017 at 3:30 PM, Christopher Done <<a href="mailto:chrisdone@gmail.com">chrisdone@gmail.com</a>> wrote:<br>
> Adding `handleSourceError` around it makes no difference.<br>
><br>
> Which makes sense, as I don't think warnings count as exceptions,<br>
> otherwise my code would never have completed in the first place.<br>
><br>
> On 3 February 2017 at 12:50, Matthew Pickering<br>
> <<a href="mailto:matthewtpickering@gmail.com">matthewtpickering@gmail.com</a>> wrote:<br>
>> The errors are eventually caught and printed by "handleSourceError"<br>
>> which is used a few times in your code. You could either modify one of<br>
>> these to not print out any errors or try something more intelligent<br>
>> like is in `parUpsweep_one` which does use the `log_action` in order<br>
>> to print the errors out.<br>
>><br>
>> On Fri, Feb 3, 2017 at 12:21 PM, Christopher Done <<a href="mailto:chrisdone@gmail.com">chrisdone@gmail.com</a>> wrote:<br>
>>> In Intero, after loading modules, for each one I run the following<br>
>>> function: <a href="https://github.com/commercialhaskell/intero/blob/300ac5a/src/GhciInfo.hs#L75..L85" rel="noreferrer" target="_blank">https://github.com/<wbr>commercialhaskell/intero/blob/<wbr>300ac5a/src/GhciInfo.hs#L75..<wbr>L85</a><br>
>>><br>
>>> If there are warnings or any output, they get outputted. As they are<br>
>>> already outputted by regular :load, I don’t need the same output<br>
>>> twice.<br>
>>><br>
>>> How do I disable non-severe output for any GhcMonad m => m a? I’m<br>
>>> using GHC 8.0.1 presently.<br>
>>><br>
>>> I tried the following before calling getModInfo, expecting there to be<br>
>>> no output anymore:<br>
>>><br>
>>> +      GHC.setSessionDynFlags<br>
>>> +        df {log_action = \ref dflags severity srcSpan style msg -> return ()}<br>
>>><br>
>>> And this had no effect. I tried some other things but ran out of<br>
>>> patience to keep a record of them all.<br>
>>><br>
>>> Ciao!<br>
>>> ______________________________<wbr>_________________<br>
>>> ghc-devs mailing list<br>
>>> <a href="mailto:ghc-devs@haskell.org">ghc-devs@haskell.org</a><br>
>>> <a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-<wbr>bin/mailman/listinfo/ghc-devs</a><br>
______________________________<wbr>_________________<br>
ghc-devs mailing list<br>
<a href="mailto:ghc-devs@haskell.org">ghc-devs@haskell.org</a><br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-<wbr>bin/mailman/listinfo/ghc-devs</a><br>
</blockquote></div></div>