Andrew,

As for concrete suggestions... I've always thought we could do more to use static information about the program to aid runtime GC. It's no deep secret that destructive updates are essentially like a compile-time / coding-time GC operation. You determine before runtime that the old version of the data will never be needed again, and hence update it in-place. Making this kind of thing more automatic could be interesting theoretically and practically.

[Warning: shameless plug follows.]

Have you had a look at our 2008 PEPM paper?

Jurriaan Hage and Stefan Holdermans. Heap recyling for lazy languages. In John Hatcliff, Robert Glück, and Oege de Moor, editors, Proceedings of the 2008 ACM SIGPLAN Symposium on Partial Evaluation and Semantics- Based Program Manipulation, PEPM 2008, San Francisco, California, USA,
  January 7–8, 2008, pages 189–197. ACM Press, 2008.

  http://people.cs.uu.nl/stefan/pubs/hage08heap.html

As far as automatic detection of opportunities for in-place updates is concerned, the Clean compiler seems to do some interesting things.

  http://clean.cs.ru.nl/

I am not quite sure whether the details (a formal semantics, for example) have ever been published. I would be very much interested in such a description myself, actually, so if someone knows of any...

Cheers,

  Stefan_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to