The concurrent GC is a great idea. A few interrogations. - How "stoppy" would a stop-the-world parallel GC be in practice? The more parallelism you have, the more work is done, the higher the frequency of a major collection. - Would major allocations be serialized? What about other serialization points? - I'm afraid true concurrency will introduce an awful lot of bugs in native bindings. Thread-unsafe libraries will have to be replaced (Str, etc.) Also what would be the CPU and memory costs? Don't concurrent GCs require extra colors? - In case of performance impacts, will the old single-threaded mode still be available? The argument that "you'll get the same old perfomance if you run it in single-threaded mode" is not valid IMHO. Many people will use a thread here or there and then you won't realistically be able to run in single-threaded mode. But then we can't pretend multi-core doesn't exist. A suggestion: making the parallel GC available only on 64-bit seems a reasonable restriction (if that's ever needed.) Also Damien Doligez (in addition to Xavier Leroy) certainly have nice things to say about all this. -- Berke Durak