[Haskell-cafe] Something like optimistic evaluation
daniil.elovkov at googlemail.com
Mon Apr 28 18:09:42 EDT 2008
Somewhat on the topic of optimistic evaluation, I've just thought of
another way to evaluate thunks.
When the program is about to block on some IO, what if we start a thread
to evaluate (any) unevaluated thunks. We'll have additional system
thread, but the blocked one will not actually consume any processor time.
This would take place only when the program is compiled as threaded and
run with -N k, k>1.
The RTS knows at least about some operations that will block, those
which IO operations are implemented with. for example. It could merely
start a process of evaluating any (or something more clever) outstanding
thunks right before going into one of those operations and stop it when
Of course, it's not like optimistic evaluation because we don't avoid
creating thunks. But in a sense it's similar. It could also be compared
with incremental garbage collection :)
Has something like that been done, discussed?
More information about the Haskell-Cafe