[Info-vax] Future comparison of optimized VSI x86 compilers vs Linux compilers

Stephen Hoffman seaohveh at hoffmanlabs.invalid
Tue Aug 4 10:55:41 EDT 2020


On 2020-08-03 21:10:51 +0000, onewingedshark at gmail.com said:

> On Monday, August 3, 2020 at 12:40:31 PM UTC-6, Arne Vajhøj wrote:
>> On 8/3/2020 2:34 PM, onewingedshark wrote:
>>> 
>>> Here's a question: how hard would it be to simply [re]write the 
>>> code-generator for the GEM-compilers to do VMS x86? Yes, I realize 
>>> there's a lot of hype around LLVM, and it would be nice to get the 
>>> optimizations, but this should be weighted against what you have now.
>> 
>> I think VSI strategically wants to get on LLVM.
>> 
>> Modern compilers are very complex pieces of software. And for some 
>> languages they are relative fast evolving software.
> 
> This is madness.
> It's literally building in dependencies to things which are still 
> changing, much like the idiocy of "living standards" your full 
> implementation can be completely undermined by the "living standard" 
> making some sweeping change.

Welcome to modern computing.

We're doing less bespoke code and targeting that work where we can make 
the biggest differences, and we're doing far more software integration 
work, and the software projects are increasing in size and many are 
vastly larger than they once were.

Yes, VSI does get to try to reduce the associated UI churn to their 
developers and users, if the folks at VSI get the time to address the 
various UIs. I've previously mentioned networking UIs as an area that 
sees churn, whether it's DECnet or TCP or IPv6 or TLS or SCS or such. 
That could well be abstracted, and that can provide a path for folks 
using DECnet or non-TLS IP to move forward to secure and authenticated 
connections, whether that's TLS, maybe IPsec, or otherwise, and over 
IPv6.

But there will be some software churn and some API if there are to be 
fixes and updates, because whoever promised the OpenVMS folks 
compatibility neglected to mention the limitation and insecurity 
inherent in that approach. Software and networking and server designs 
evolve. The designs and implementations have to change and change 
incompatibly, as the tech and the scale and the expectations and the 
servers all change. And the apps get to contend with and adopt these 
changes. You cannot return 16 or 32 bytes of data into an 8-byte 
app-embedded buffer, you need dynamic sizing and/or objects.

> Also, VSI has access to some very good compiler technology, albeit 
> somewhat dated (GEM), and once world-respected implementations like DEC 
> Ada. -- IMO, They should play to these strengths first.

GEM is more than slightly dated, and the code generation you're focused 
on is just a rounding error in the entirety of the current expectations 
around tooling and IDEs.

And for this GEM "renaissance", you're suggesting a staffing and 
scheduling investment that's would require re-assigning a substantial 
part of the entire current VSI development team, if not outright 
doubling the size of the VSI development team for the added work, and 
these new folks for development tooling, and with probably a decade of 
effort and updates before reaching parity with what LLVM offers now. 
That includes code generation and debugging across a whole pile of 
x86-64 processors and generations, and adding the run-time support 
necessary for newer versions of the languages and tools, as the newest 
of the current GEM-based compilers are ~twenty years outdated. We 
*just* got most of C99 on OpenVMS. In 2019. I'm routinely bumping into 
source code that's dependent on C11. And in that same decade, LLVM 
features and capabilities and expectations will have moved forward. 
Probably more quickly.

>> Having VMS specific compilers will result on either compilersc falling 
>> behind or VSI bleed out of money to fund the work.
>> 
>> Hooking into an external toolchain like LLVM is the only way VSI can 
>> afford uptodate compilers long term.
> 
> No, it's really not.
> Look at the last option I gave; there's zero LVMM there. Granted, it 
> would force other compiler implementers to either do what they're doing 
> now [porting LLVM], or port their own architectures.

We're in an era when very few vendors can competitively differentiate 
based solely on compiler tooling. And the era of the 
edit-compile-link-run-debug loop is fading. OpenVMS folks tend to have 
less familiarity with IDE usage, but that's shifting. And emitting 
Bliss or C as an intermediate language is amusing as a proposed 
solution, but then I've worked with that approach.




-- 
Pure Personal Opinion | HoffmanLabs LLC 




More information about the Info-vax mailing list