|  > 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
_______________________________________________
ghc-devs mailing list
[email protected]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs

Reply via email to