CC Daniel Corin, maintainer of hint.

On 17/11/2015 11:49, Luite Stegeman wrote:
I like this idea, and it overlaps very much with the work that still
needs to be done for GHCJSi. I think that for Template Haskell, the
restriction that everything has to be marshalled via Binary is not too
problematic, although it'd require a bit of care if Richard's
pre-proposal to expose more GHC types to TH ( #11081 ) is to be
implemented. In particular, the API for querying the type environment
would have to remain implementable via message passing, so we can't
expose the full TcRn there.

compileExpr / dynCompileExpr seem to get some use, perhaps mostly
through the hint package:

http://packdeps.haskellers.com/reverse/hint

But I think the most common use case is just compiling and running
Haskell expressions, without any specific need for interpreted code. The
machinery behind hint could be reworked to have the GHC API produce a
dynamic library for the compiled expression, which could then be loaded
into the current process with the system linker. Or is there some reason
that  this approach would be unusable?

I don't think that simplifies the problem, we would still be dynamically loading and running code in the current process, which is exactly what we do now.

The issue is with

  interpret :: (MonadInterpreter m, Typeable a) => String -> a -> m a

which would need to become

interpret :: (MonadInterpreter m, Typeable a, Binary a) => String -> a -> m a

or else we have to keep the current single-process mechanism for this use case.

Cheers,
Simon



luite

On Tue, Nov 17, 2015 at 10:10 AM Simon Marlow <marlo...@gmail.com
<mailto:marlo...@gmail.com>> wrote:

    Hi folks - I've been thinking about changing the way we run interpreted
    code so that it would be run in a separate process.  It turns out this
    has quite a few benefits, and would let us kill some of the really
    awkward hacks we have in GHC to work around problems that arise because
    we're running interpreted code and the compiler on the same runtime.

    I summarised the idea here:
    https://ghc.haskell.org/trac/ghc/wiki/RemoteGHCi

    I'd be interested to hear if anyone has any thoughts around this,
    particularly if doing this would make your life difficult in some way.
    Are people relying on dynCompileExpr for anything?

    Cheers,
    Simon

_______________________________________________
ghc-devs mailing list
ghc-devs@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs

Reply via email to