3 ms·
Theoretically they (or whomever writes an OS in Go) could extend the runtime to add something like `makestack(Type, size IntegerType) Type` to mimic alloca or a
by barsonme 11y ago
Theoretically they (or whomever writes an OS in Go) could extend the runtime to add something like `makestack(Type, size IntegerType) Type` to mimic alloca or add in a guarantee that `var b [100]byte` will be allocated on the stack.
(Right now I think it is, but I know there's a Go issue dealing with a function like this, and one of the comments was about potentially creating `a` on the heap and returning an invisible pointer instead of the actual 1e9 bytes.)
func foo() (a [1e9]byte) { return a }
- pcwalton 11y agoThere's a lot more than that that you have to do. You can't even implement defer without allocation, just to name one example.
- pjmlp 11y agoTrue, the amount of Assembly in a bare metal runtime in Go vs a runtime free version of Rust will be higher. Still, there are quite a few scenarios that could be served by such implementation, instead of being implemented in C or C++. As I mentioned in another thread, any embedded board computer similar to a Raspberry PI could most likely be easily targeted by such cross-compiler.