Hacker News new | ask | show | jobs
by chrisss395 56 days ago
Reminds me of the time developing the 747-8 avionics and the systems engineers started observing a bug where the entire box would just stop randomly, all output stopped, including HW traces...the thing would just halt.

About a month later an engineer decided to turn on all warnings for gcc...and behold a message stating something to the effect of "WARNING: execution will halt upon reaching this statement." The compiled code basically just halted and never returned from the function call (can't remember the specifics).

And that is how we learned not to hide compiler messages.

1 comments

`-Wall` is your friend and boy it is a major irritant using third party sloppy libraries when statically compiling it all.
There are even more options you might also want to consider: https://stackoverflow.com/questions/73310403/whats-the-diffe...
I'm actually a little horrified to learn that warnings were suppressed while developing code to control a 747.
Right out of college, one of my first job offers was to work on the compiler for the computer for the Space Shuttle. Apparently because I had once taken a compiler course. Even young, naive, optimistic me thought to question the wisdom of that offer.

I ended up not taking it because the pay wasn’t great (and at the time it wasn’t really what I wanted to do), but part of me is still curious about what that would have been like.

And it took them a month to figure this out.
This is one of those things that is hard to do, but great to have done. It's hard to do with a codebase in flight with lots of people working on it.

What I remember implementing this on projects was the messiness of:

- incrementally getting the Makefiles to turn on -Wall file-by-file as they were scrubbed. I think it was something similar to "<list-of-files>: CFLAGS+=-Wall" and then add to the list.

- suppressing warnings that were "ok" on a case-by-case basis. different languages had different ways of saying "ignore error 123 here" if at all.

- I remember lint had things like this too, like /NOTREACHED/

maybe things have gotten better/cleaner.

Better to turn every warning into an error.
For releases! But have a flag to disable it: don't make people edit -Werror out while hacking, that's really annoying.