Hello everyone. IBM (which I work for) has a long history with Go. It is our desire to upstream a current-level Go compiler port for z/OS in due course -- with community agreement, of course. In order to facilitate this, we'd like to start upstreaming some z/OS-specific changes to the "x" extended packages. If possible, it would be useful to get some z/OS-specific changes in x/sys/cpu and x/net in time for the upcoming freeze date. This should not disrupt other platforms. Note that having upstreamed z/OS support in the golang.org/x repos is very beneficial to users of our compiler port, independent of whether the z/OS compiler port itself is upstreamed.
z/OS is an operating system for s390x (a.k.a. "The Mainframe"), for which a Linux Go compiler has been upstreamed for a number of years. The ancestry of z/OS goes back many decades, rooted in business applications (e.g. today ~90 percent of all credit card transactions are processed on z/OS). More recently, IBM has stated that it intends to deliver containers and Kubernetes orchestration on z/OS, which drives a renewed focus on Go.
Here is IBM's statement regarding enabling Go on z/OS.
https://developer.ibm.com/mainframe/2020/04/24/ibm-intends-to-enable-go-on-z-os/
Those with a good memory may remember that IBM previously (i.e. before Kubernetes' explosive growth) produced a compiler at the Go 1.6 level for z/OS. That effort constitutes a basis for the current endeavour. A reminder of that previous work is that there is already an upstream runtime/internal/sys/zgoos_zos.go file and a zos build tag.
Thanks in advance for your understanding and assistance.
Bill O'Farrell
Go on z/OS Team Lead
> Hello everyone. IBM (which I work for) has a long history with Go. It is our desire to upstream a current-level Go compiler port for z/OS in due course -- with community agreement, of course. In order to facilitate this, we'd like to start upstreaming some z/OS-specific changes to the "x" extended packages. If possible, it would be useful to get some z/OS-specific changes in x/sys/cpu and x/net in time for the upcoming freeze date. This should not disrupt other platforms. Note that having upstreamed z/OS support in the golang.org/x repos is very beneficial to users of our compiler port, independent of whether the z/OS compiler port itself is upstreamed.
For the record, this certainly all seems fine.