Bring this back to TUHS relevance...
On Tue, Jan 3, 2023 at 2:43 PM Warner Losh <imp(a)bsdimp.com> wrote:
The one caveat here is that people must understand the
warning and that
any change makes things better. There is nothing worse than just tossing a
cast in to brute force it, only to later discover it's the wrong cast or
you needed a different semantic change.
Most certainly -- It's why I >>loved<< Gimpel's flex-e-lint
product and
as Paul pointed out, Judy Ward's messages from the DEC Gem compiler - both
were the two best I ever ran into in giving you real information about what
was happening.
I also tell a story from my DEC time. After the GEM compiler was released
and before most other vendors were 64-bits, the ISVs were first starting to
do their ports to Alpha. My complaining ensued. We would discover from
numerous ISVs that after the Alpha port was complete, their bug count
dropped - why because the ISV's code has been kinda nasty and the older
compilers had been silent about it they had assumed the ILP32 model.
Alphas, using LP64, could not be. Judy would find things and say -- what a
minute -- you want me to do what with that and issued a fairly detailed
warning (which was the key - she explained what the issue was). Often the
32 to 64-bit nature forced the programmers at the ISV's to rethink how there
were actually declaring things to make the code clearer, simpler, better,
*etc*. The classic rewrite never happens unless you are forced too.
I remember going to a Supercomputer conference and talking with the
developers at one the ISVs who I will not name. He thanks me. He said his
team has been arguing with their management for years to redo the UNIX
support library. The Tru64 port was what finally allowed them to do it.
But it took 9 months which pissed off his boss. But when it was completed,
and pass all the tests on the Alpha, it just recompiled on Solaris, AIX,
and HP-UX - which had never happened before. He could not believe what a
great compiler we had.
I've always said the Alpha was the greatest gift to Sun and Intel in the
commercial SW world because it forced the ISV to clean up their act before
they ever saw those processors and Sun/Intel ports were piece of cake. It
was not that porting to Alpha was difficult -- it was cleaning up your own
mess.
Remember we had already gone through this in the PDP-11 ILP16 to Vax ILP32
transition but it is funny how history repeated itself.
ᐧ