
On 11/02/2010 21:55, Evan Laforge wrote:
On Thu, Feb 11, 2010 at 1:49 PM, John Van Enk
wrote: Perhaps just defining the interface and demonstrating that different RTS's are swappable would be enough?
I read a paper by (I think) a Simon, in which he described a haskell RTS. It would make it easier to experiment with GC, scheduling, and whatever else. I recall a few problems, such as performance, but nothing really intractable. Swappable RTS would be a nice side-effect.
You're probably referring to this: http://www.haskell.org/~simonmar/papers/conc-substrate.pdf the idea there was to move as much of the scheduler as possible into Haskell. It's still something we'd like to do, but getting even close to the performance of the current RTS was difficult, which is why the project is currently dormant. In order to get decent performance we'd probably have to sacrifice some of the nice abstractions, like transactions, but then the advantages become less clear. I'm hoping that someday hardware TM will help here. Also, it was only the scheduler, which is quite a small part of the RTS (probably 5% is an overestimate). Cheers, Simon