This is why compilers for e.g. c++ should just halt after the first error, instead of spewing pages of template failures because of a typo elsewhere
They used to, but I wouldn't want to go back to that. Believe me, compilers that continue and try their best are a massive improvement in many cases, allowing you to fix more issues between compilation attempts.
98% of the time those lengthy messages are useless, but the other 2% of the time they're critical to tracking down the problem.
A year or two ago Visual Studio added a pop-up that parses such lengthy compiler messages into a clickable tree list. I found it annoying at first, until I discovered I could dock it to the side, ignore it 98% of the time, but still go look at the details when relevant. This is an idea other compilers should copy.
Maybe ships should copy this approach too: issue fewer warnings, but provide a list of warning details for review when necessary.