Bringing some observable sharing to GHCi

Simon Marlow marlowsd at gmail.com
Thu Nov 2 10:27:16 UTC 2017


Not being able to :print an exception would be quite annoying. Do TypeReps
need to be cyclic?

Observable sharing can be done with StableName, but that would be a bit
pile of hassle in the printer. Maybe exceptions warrant a special case.

Cheers
Simon

On 29 October 2017 at 20:40, David Feuer <david.feuer at gmail.com> wrote:

> The :sprint, :print, and :force commands in GHCi fall into infinite
> loops when confronted by cyclical data. This bit me hard in
> https://phabricator.haskell.org/D4085 because that produces cyclical
> TypeReps, which is trouble for (e.g.) the test break011 which tries to
> :force a SomeException (which wraps an Exception dictionary, which has
> a Typeable constraint). I could try coming up with a fix myself, but
> I'm rather curious whether some of the work you (or others) have
> already done on observing GHC data graphs could be yanked into GHCi
> itself for this purpose. We want
>
> 1. To be able to display cyclical data in some sensible way.
>
> > x = "hi" : x
> > x `seq` ()
> > :print x
>
> should print some useful representation of x.
>
> 2. To be able to force cyclical data without looping.
>
> > x = "hi" : x
> > :force x
>
> should print a useful representation of x.
> _______________________________________________
> 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/20171102/87d1ee5a/attachment.html>


More information about the ghc-devs mailing list