I don't think a GC excludes a programming language from being considered a "systems programming language".
I don't think a GC excludes a programming language from being considered a "systems programming language".
(JavaChips were interesting, thought iirc it only ran a certain subset of Java?)
At that point you'd better off using C or C++ directly. Go gives you absolutely no advantage, only costly abstractions.
advantages of writing the Go runtime in Go might include, just spitballing here, avoiding ffi cost for runtime calls, enabling better optimizations around/into runtime calls, simplifying the build process, or even just enabling Go enthusiasts to contribute to the runtime without learning C. talking about actual language features, i think I'd almost be tempted over just by Go having a module system, but there's probaby a few other subjective ergonomic benefits that you can use without falling into the GC requirement. I'm not sure what exactly decided it for them, maybe i should look that up.
there's probably gonna be some OS-level non-Go shims written in either C or assembly or the weird Go way to write assembly but i feel that's fair as C-written runtimes probably need to have at least some inline asm somewhere as well.
High-level blog post: http://dylanmckay.io/blog/rust/avr/llvm/2017/02/09/safer-mic...
Tracking bug on GitHub: https://github.com/rust-lang/rust/issues/42450