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.
More information about the ghc-devs