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