Now that go is available for Linux on z (i.e. s390x), I'd like to give everyone a heads-up that we hope in the next few months to have ready a port for z/OS. z/OS is the modern 64-bit mainframe operating system that has a lineage that goes back to MVS, first released in 1974. One of its biggest claims to fame is its stability. Some users haven't had any unplanned downtime in literally decades, which is probably why more than 90% of Fortune 500 companies run z/OS. It would be great to get go running on this robust and (for business at least) ubiquitous platform. We've had great support from the community in the porting to Linux on z, so I wanted to run this by everyone early in the process. It won't be ready in time for 1.8, but 1.9 could be a potential target. Comments appreciated.
--
You received this message because you are subscribed to the Google Groups "golang-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to golang-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
>>> email to golang-dev+unsubscribe@googlegroups.com.
>>> For more options, visit https://groups.google.com/d/optout.
>>
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "golang-dev" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to golang-dev+unsubscribe@googlegroups.com.
>> For more options, visit https://groups.google.com/d/optout.
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "golang-dev" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to golang-dev+unsubscribe@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "golang-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to golang-dev+unsubscribe@googlegroups.com.
The "os" is a stutter. GOOS=z.
--
Please. That naming was sooo last month.
It's macOS now. GOOS=mac.
--
Neat.On a scale from Windows to Solaris, how POSIX-y is z/OS?
What's the long-term binary compatibility story like? Is there a stable kernel and/or userland ABI we can/should rely on?
Does GCC run on z/OS? Is there anything that will make supporting cgo extra exciting?
On a scale from Windows to Solaris, how POSIX-y is z/OS?
What's the long-term binary compatibility story like? Is there a stable kernel and/or userland ABI we can/should rely on?
Does GCC run on z/OS? Is there anything that will make supporting cgo extra exciting?
Are you thinking GOOS=zos or something else?
To unsubscribe from this group and stop receiving emails from it, send an email to golang-dev+...@googlegroups.com.
Very long term :) LE provides a way to get at POSIX functions via a userland ABI, so we can use that for "system calls" and don't have to use cgo necessarily.
No GCC... The C compiler on z/OS is IBM's XL C.
The single biggest PITA is going to be the character set. The native IBM z/OS character set is EBCDIC. And not just one variant. Historic z/OS has used CP-037. z/OS UNIX uses IBM-1047. They are generally compatible, but with some different code points for things such as []{} and other "special" characters. This requires some adjustments if a person is using a 3270 emulator. The reason this is a PITA is that, from what I can tell, "go" is designed to use UNICODE only and likely won't work with EBCDIC. Many coding assumptions made in C with ASCII (UNICODE) are not true in EBCDIC. Case in point: The mappings of the Cntrl-<letter> in EBCDIC are not contiguous like they are in ASCII. And their code points don't collate in the same order. So you can't map from a <letter> to a Ctrl-<letter> using a simple formula such as <letter>&0x1f . Another weirdness is that there is a "gap" in the code points between I & J and R & S as well as "i" & "j" and "r" and "s". EBCDIC is a very weird encoding if you come from the ASCII world. It makes sense only if you come (as z/OS originally does) from the "Hollerith card" (aka "punched card") world. This was IBM original world. When they make the original S/360 (hardware progenitor of current z series), the decided to be compatible with the equipment their current customers had. Bad decision, at least in today's world.
--
You received this message because you are subscribed to the Google Groups "golang-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to golang-dev+unsubscribe@googlegroups.com.
On the upside, Brad already has a CL to implement trigraph support.
The Go spec says source files are UTF-8. How do we reconcile this on z/OS if the rest of the OS expects text files to be EBCDIC?
--
You received this message because you are subscribed to the Google Groups "golang-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to golang-dev+unsubscribe@googlegroups.com.
To unsubscribe from this group and stop receiving emails from it, send an email to golang-dev+...@googlegroups.com.
To unsubscribe from this group and stop receiving emails from it, send an email to golang-dev+unsubscribe@googlegroups.com.
I’ve had the privilege of mentorship from both Bo Evans and Fred Brooks. Feel great admiration for IBM’s hardware team and many aspects of the mainframe software groups—channel controllers, RACF, VM/370 and beyond, John Cocke, Hursley house, Mike Cowlishaw, RTP, Henry Rich, etc. All magical.
One comment on EBCDIC’s glyph arrangement…it never made sense to me until I got the fold-out pocket reference card that showed the character layout on a 16x16 grid. In that format you can see that all of the logical groupings of symbols are tightly packed rectangles separated by whitespace. Only on this “virtual {hex}x{hex} cross-product typewriter, did it have some sense…
…but even this structure is made invisible by typical columnar layouts. You can also understand here the great woes of EBCDIC:
The difficult to comprehend gap in rectangle structure before the ‘s’ and ‘S’.
The debris of punctuation strewn down the left column and into the gap before the esses.
The 118 characters that are arranged to occupy more than the seven low-order bits of the byte, which Fred Brooks of the S/360 & OS/360 team chose to be 8 bits long before.
The typical at the time but now quaint notion that every special control specification needed its own symbol (“in band signaling”) rather than an escape mechanism and then subsequent normal characters to describe the control. This made logic decoding simpler in devices of yore, but wastes symbols on uses that are abandoned before the assignment is standardized. The choice was not wrong for the times, but the lesson is one for the ages.
EBCDIC has the interesting property that you can go from lower case to upper case with a constant offset, but cannot get from one letter to the next with x+1 or test for alphabetical with ‘a’ <= x <= ‘z’ || ‘A’ <= x <= ‘Z’.
Michael
So that's easy, Go code on zOS is ASCII or maybe, one hopes, full UTF-8 and Unicode using some editor mode.
But as for programs themselves, they must work on EBCDIC
Sorry, to be clear: is it the kernel ABI or userland ABI that have long-term support, or both?
On Monday, September 12, 2016 at 2:00:52 PM UTC-6, Bill O'Farrell wrote:
A couple of clarifications. I don't think anybody thinks that go will be supplanting Cobol on z/OS. Rather it will be interacting with existing "systems of record." there are important applications written in go (ex: HyperLedger and Docker) that would require a robust, complete, go implementation on z/OS. In that sense Go will certainly not be a toy. With CGO it could interface with other major applications (DB2, CICS) and things written in HLASM.
Note that UTF8 isn't a problem on z/OS. Files can be tagged as UTF8, and, can be converted as necessary.