On Monday, 22 October 2012 at 21:19:53 UTC, deadalnix wrote:
Funny thing, immutable was supposed to make it easier to do
concurrency programming.
But not garbage collection.
OCmal's GC is one of the fastest GC ever made. And it is the
case because it uses immutability to great benefice.
OCaml, I suppose. It is single threaded (there is no thread-level
parallelism in OCaml) and there is nothing in its GC that uses
immutability really. It's so fast because of the memory model: to
tell if a word is a pointer one just needs to look at its least
significant bit, if it's 0 it's a pointer, if it's 1 it's not.
That's why native ints are 31-bit in OCaml. With this scheme they
don't need to store type layout info and pointer bitmaps. And it
is generational (2 gens), which also adds much speed.
A GC which really relies on immutability you can find in Erlang.