Hi Simon, Am Freitag, den 03.08.2012, 09:28 +0100 schrieb Simon Marlow: > > My question is: Has anybody worked in that direction? And are there any > > fundamental problems with the current RTS implementation and such > > closures? > > Long ago GHC used to have an "update analyser" which would detect some > thunks that would never be re-entered and omit the update frame on them. > I wrote a paper about this many years ago, and there were other people > working on similar ideas, some using types (e.g. linear types) - google > for "update avoidance". As I understand it you want to omit doing some > updates in order to avoid space leaks, which is slightly different.
Thanks for the pointers, I will have a look. Why was the update analyser removed from GHC? > The StgSyn abstract syntax has an UpdateFlag on each StgRhs which lets > you turn off the update, and I believe the code generator will respect > it although it isn't actually ever turned off at the moment. Indeed that works: I added a stg2stg transformation phase that removes the flag on some thunks (with hard-coded names for now :-)) and the generated code works as expected. I’m now thinking how I can allow the programmer to annotate thunks as non-updateable, and how to carry that information to the stg phase. Greetings, Joachim -- Dipl.-Math. Dipl.-Inform. Joachim Breitner Wissenschaftlicher Mitarbeiter http://pp.info.uni-karlsruhe.de/~breitner
signature.asc
Description: This is a digitally signed message part
_______________________________________________ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users