Interpreter thread in ghc-8.10.6 in macOS

Domínguez, Facundo facundo.dominguez at tweag.io
Tue Nov 16 22:07:17 UTC 2021


Thanks Zubin! That looks very much on the mark. We might not need to change
GHC after all if we can avoid calling the R runtime from Template Haskell
[4].

[4] https://github.com/tweag/HaskellR/issues/369

On Tue, Nov 16, 2021 at 3:11 PM Zubin Duggal <zubin at well-typed.com> wrote:

> A patch to run Template Haskell code in a forked thread was included in
> ghc-8.10.6:  https://gitlab.haskell.org/ghc/ghc/-/merge_requests/5042
>
> This was chosen as the only robust way to avoid reporting any
> asynchronous exceptions thrown to the compilation process during TH
> evaluation as a user error in TH code. If you cancel a compile by
> throwing the compilation thread an exception, we don't want to catch
> that error in GHC and report it as if the TH code had a regular
> exception. By running the TH code in a forked thread and not sharing
> the ThreadId, we ensure that any exception caught during the evaluation
> of TH code either originated from the code itself or was thrown by the
> RTS directly to the TH code (BlockedIndefinetelyOnMVar,... etc.).
>
> There may be alternative solutions to this or ways to make this
> behaviour configurable. I would urge you to open an ticket on the GHC
> tracker detailing your use case.
>
> On 21/11/16 11:26, Domínguez, Facundo wrote:
> >Dear devs,
> >
> >I found recently that ghc-8.10.6 and ghc-8.10.7 might be behaving
> >differently than previous compilers when running Template Haskell code.
> >
> >When upgrading HaskellR to use a newer ghc I found that it would work fine
> >with ghc-8.10.4, but not ghc-8.10.6 or ghc-8.10.7. HaskellR, and the R
> >runtime in particular, is sensitive to local state in the threads that are
> >used to execute the runtime. HaskellR is arranging to run the R runtime
> >when running TemplateHaskell splices, and this stopped working in MacOS
> >with ghc-8.10.6.
> >
> >The error I got is not new. It comes from R and we would get it in ghci if
> >we try to use HaskellR without passing the command line flag
> >-fno-ghci-sandbox. But this is the first time we get the error when using
> >TemplateHaskell.
> >
> >Does anyone know if there have been changes to the threads in which the TH
> >splices are run? And were there any changes specific to TH in MacOS?
> >
> >Thanks in advance,
> >Facundo
> >
> >[1] https://github.com/tweag/HaskellR/pull/368#issuecomment-968864170
>
> >_______________________________________________
> >ghc-devs mailing list
> >ghc-devs at haskell.org
> >http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-devs/attachments/20211116/9df25bce/attachment.html>


More information about the ghc-devs mailing list