While browsing the golang.org website, I was unable to find a satisfactory documentation
of the run-time requirements of Go programs.
I did explore the "tiny" toy OS kernel example of the Go source tree, but it
is now deprecated. The "How is the run-time support implemented?" FAQ entry,
on its side, only provides compiler-specific data, and with no guarantee that it will
remain valid in the future.
I believe that documenting these in the spec (the "System considerations"
section comes to mind) is important if Go is to be used for system programming tasks. As
of now, there is no way to clearly draw the line between what can be implemented in Go
and what must be implemented in a lower-level language like C or C++, in a manner that
won't change in the future. There is also no way to guarantee that switching or
upgrading compilers won't break existing Go system software by suddenly adding more
run-time requirements.
by hadrien.grasland: