3 ms·
One major simplification you can make is that due to purity, older values _never_ point to newer values. This means when doing generational GC, you don’t have t
by lalaithion 3y ago
One major simplification you can make is that due to purity, older values _never_ point to newer values. This means when doing generational GC, you don’t have to check for pointers from older generations into newer generations.
- taeric 3y agoThis feels wrong. Specifically, doesn't laziness bite you in this scenario? If I make a stream that is realized over GC runs, I would expect that a node in an old generation could point to a realized data element from a newer generation. Why not?
- hayley-patton 3y agoIt does: "Nevertheless, implicit mutation of heap objects is rife at runtime, thanks to the implementation of lazy evaluation (which, we admit, is somewhat ironic)." says <https://www.microsoft.com/en-us/research/wp-content/uploads/2016/07/local-gc.pdf https://www.microsoft.com/en-us/research/wp-content/uploads/...>