4 ms·
Go solved the main downside the article cites with M:N threading- it replaced split stacks with growable stacks, via a precise garbage collector.
by Rusky 8y ago
Go solved the main downside the article cites with M:N threading- it replaced split stacks with growable stacks, via a precise garbage collector.
- kibwen 8y agoThat solved the hot split problem, but that was more of a once-in-a-while gotcha. The main downside for Rust specifically was the complications that arise when doing any sort of C interop in the presence of growable stacks. This mattered more for Rust than Go, since Rust is relatively more intended to freely intermingle with C code (and other languages via, C FFI), whereas the happy path for Go tends to involve exclusively Go code in a given process (even going so far as to reimplement their own libc in Go), and use of cgo is discouraged by the community (https://dave.cheney.net/2016/01/18/cgo-is-not-go https://dave.cheney.net/2016/01/18/cgo-is-not-go).