News for hackers. Stuff that matters.
Re:Rust vs. Go by tomp on Wednesday January 18, 2017 @05:06PM (#13430776)
AFAIK Azul is pauseless - it never "stops the world". Sure, it stops each thread (that's pretty much required for any synchronization mechanism, especially if you also need to determine the thread's roots), but it never stops all threads at once ("the world").
Re:Rust vs. Go by nickik on Wednesday January 18, 2017 @06:16PM (#13431412)
It never stops the world for full heap collection, but there is a synchronization point where all threads have to check in. This is the only thing required, so you have GC pauses, just really, really small ones. That's why I said, that practically, GC pauses are no longer relevant.
Re:Rust vs. Go by mike_hearn on Wednesday January 18, 2017 @05:15PM (#13430863)
That's not correct. Unless it changed recently, Zing still has safe points as it's basically a fork of HotSpot and HotSpot pauses programs for all kinds of reasons beyond GC.

There's a talk on YouTube where they discuss their work to drive down safe point pause times. They eventually made the pauses so fast it hardly matters, but it wasn't technically completely pauseless.

Re:Rust vs. Go by tomp on Wednesday January 18, 2017 @07:01PM (#13431694)
Yes, Azul's C4 paper states that they do use some "synchronisation" stop-the-world phases (although their previous GCs that had hardware/kernel read barriers might not have), but IIRC Doligez-Leroy GC doesn't (although I'm not sure it was ever properly implemented).

On the other hand, Shenandoah has an explicit synchronisation phase in its algorithm (not sure if that's a fundamental property of the algorithm or just a JVM limitation though). From [0] (that was 2 years ago, things might have improved since, but I can't find a more recent version).

> Pauses only long enough to scan root set

[0]: https://rkennke.files.wordpress.com/2014/02/shenandoahtake4....

Re:Rust vs. Go by nickik on Thursday January 19, 2017 @09:59AM (#13436249)
They had synchronization points on the hardware platform as well. The difference is that they had some amount of hardware support that made the thread check-in extremely fast.
Re:Rust vs. Go by mike_hearn on Thursday January 19, 2017 @04:02AM (#13434241)
I think Zing has always had safe points.