3 ms·
I know earlier (pre-2000's) versions of VMS were written in BLISS-32: https://en.wikipedia.org/wiki/BLISS https://en.wikipedia.org/wiki/BLISS This would have b
by nl 4y ago
I know earlier (pre-2000's) versions of VMS were written in BLISS-32: https://en.wikipedia.org/wiki/BLISS https://en.wikipedia.org/wiki/BLISS
This would have been 1991 or 1992 so DEC was probably still a BLISS shop. Maybe they didn't ship C manuals or something.
- skissane 4y ago> I know earlier (pre-2000's) versions of VMS were written in BLISS-32: https://en.wikipedia.org/wiki/BLISS https://en.wikipedia.org/wiki/BLISS My understanding is that, even for the brand new x86-64 port, large parts of OpenVMS are still written in BLISS and MACRO, although I believe they prefer C for brand new code. A key component of the porting effort was modifying the existing BLISS and MACRO compilers to produce x86-64 binaries instead of Itanium ones. [0] > This would have been 1991 or 1992 so DEC was probably still a BLISS shop. Maybe they didn't ship C manuals or something. I suspect the actual reason – in 1993, DEC released a new C compiler for OpenVMS – DEC C, to replace their earlier VAX C compiler. [0] DEC C was designed to be a fully ANSI C compiler, VAX C was a pre-ANSI (K&R) compiler with various unusual proprietary extensions, along with some half-finished ANSI C compatibility tacked on the side. Probably, they were used to writing ANSI C on other platforms, and were given VAX C to use as a as a compiler, and were (quite understandably) frustrated by its inability to compile ANSI C code correctly. [0] https://vmssoftware.com/docs/2021-04-27-x86-Compiler-Update.pdf https://vmssoftware.com/docs/2021-04-27-x86-Compiler-Update.... [1] https://www.digiater.nl/openvms/freeware/v70/vmsfaq/vmsfaq_014.html#soft5 https://www.digiater.nl/openvms/freeware/v70/vmsfaq/vmsfaq_0...
- cdegroot 4y agoTiming-wise, that could be correct. However, the biggest issue to me was the inability to nicely interact with VMS system and library calls. Even with the best that DEC could do in their header files, setting up a complex $QIO was a headache, certainly compared to more “native” languages. I was a bit of a fan back then. Much more powerful and stable than pretty much anything I encountered in Unix-land. And once you tossed out the C compact libraries, very fast, too :)
- skissane 4y agoOpenVMS native IO code, in C, can certainly get rather hairy, from what I’ve seen. For example, the OpenVMS port of SQLite: https://github.com/endlesssoftware/sqlite3/blob/8004eeafeec9ac4bc0fbc7a3c0bb01eca55694a0/os_vms.c#L223 https://github.com/endlesssoftware/sqlite3/blob/8004eeafeec9... When you speak of “more ‘native’” languages, what do you mean? BLISS? MACRO? Pascal/BASIC/COBOL/FORTRAN? How do they make code like that simpler?