News for hackers. Stuff that matters.
Re:Millennials and Mainframes: How to Bridge the Gap by lovich on Thursday September 13, 2018 @04:45PM (#17982398)
Regulations seem to be one reason. The IBM mainframes use their own implementation of floating point math that appears to be legally required for some businesses as you can see under "Special Uses" here[1]

[1]https://en.m.wikipedia.org/wiki/IBM_hexadecimal_floating_poi...

Re:Millennials and Mainframes: How to Bridge the Gap by detaro on Thursday September 13, 2018 @05:13PM (#17982664)
Is that just required in storage formats (which on other platforms would just mean conversion when accessing files) or do calculations actually have be done in it (which would need to be simulated, more overhead and potentially harder to certify correctness)?
Re:Millennials and Mainframes: How to Bridge the Gap by lovich on Thursday September 13, 2018 @05:07PM (#17982604)
Was there a reason this was downvoted? I thought this was a factual statement, but I'm not very well versed in the mainframe world so I'd appreciate it if someone could point out what I said that was incorrect
Re:Millennials and Mainframes: How to Bridge the Gap by racingmars on Thursday September 13, 2018 @05:39PM (#17982881)
I don't know why the downvotes since it's an interesting tidbit of info... but looking at the Wikipedia page, it's not that you are legally required to do all of your processing using the IBM hex format in your floating point calculations, it's just that when you submit your data set to the FDA the file format they specify uses the IBM hex floating point format as the data type for one of the fields. So you can convert at submission time (and, indeed, it looks like the FDA even provides code to help you convert if the data isn't coming from a mainframe with native support for the format).

And the other examples under Special Uses... like the GRIB data, I have toyed with reading weather model data and I just write Go code that reads the files and does conversions as necessary on x86 without having to involve a mainframe. (Although that said, I have an odd fascination with mainframes despite never using them professionally, and maintain a system using the Hercules emulator and the MVS 3.8 operating system, which was the last freely-available version of what became today's z/OS.)

Re:Millennials and Mainframes: How to Bridge the Gap by mmt on Thursday September 13, 2018 @05:24PM (#17982742)
Although downvotes don't necessarily mean factual incorrectness (and I didn't downvote), that may have been the case here. It may also have been because the comment could be read as implying undue influence (and thereby indirect subsidy) by government regulation, injecting controversy/politics where there is none.

Regardless, I wasn't able to find in the WP entry adequate support of your assertion. (Oddly, the "[..]" were in the original WP text):

> As IBM is the only remaining provider of hardware (and only in their mainframes) using their non-standard floating-point format, no popular file format requires it; Except the FDA requires the SAS file format and "All floating-point numbers in the file are stored using the IBM mainframe representation. [..] Most platforms use the IEEE representation for floating-point numbers. [..] To assist you in reading and/or writing transport files, we are providing routines to convert from IEEE representation (either big endian or little endian) to transport representation and back again." Code for IBM's format is also available under LGPLv2.1

There's only a regulation for a file format (and a single, isolated one at that), not regulation of using/processing, and format conversion utilities are available, rendering it irrelevant.

Re:Millennials and Mainframes: How to Bridge the Gap by js8 on Friday September 14, 2018 @01:28AM (#17984901)
The CPUs in the zSeries mainframe actually support 3 floating point formats (in fact there is like 10 of them if you count all the sizes):

- IBM legacy hexadecimal floating point you mentioned

- IEEE 754 binary floating point

- IEEE 754 decimal floating point (they were a first implementation of it)

So perhaps you were downvoted because on the mainframe, you don't have to use the legacy format at all.