Unlifted data types

Simon Peyton Jones simonpj at microsoft.com
Thu Sep 10 09:41:59 UTC 2015


|  > The awkward spot is the runtime system.  Currently it goes to some
|  > lengths to ensure that it never introduces an indirection for a
|  > boxed-but-unlifted type.  Simon Marlow would know exactly where.  So
|  
|  I *think* we're ok here.  The RTS doesn't have any special machinery
|  to avoid indirections to unlifted things that I'm aware of.  Did you
|  have a particular problem in mind?

Well I can't point to anything very specific.  I just recall that in various places, if a pointer was to an Array# we would immediately, eagerly, recurse in the GC rather than add the Array# to the queue for later processing.  Maybe that is no longer true.  Maybe it was never true.

It shouldn't be hard to find out. If true, there would be a run-time system test that returns true for boxed-but-unlifted heap objects. 

I think it would be worth a look because if I'm right it could have a significant impact on the design.

Simon


More information about the ghc-devs mailing list