On 11/02/2010 21:55, Evan Laforge wrote:
> On Thu, Feb 11, 2010 at 1:49 PM, John Van Enk<vanenkj at gmail.com> 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