3 ms·
True, someone else pointed out that this could all be done as compile time checks, which would have no runtime/ABI impact. There are interesting stories from t
by syncsynchalt 11y ago
True, someone else pointed out that this could all be done as compile time checks, which would have no runtime/ABI impact.
There are interesting stories from the early days of C when it was first codified that say a lot about the whys and hows of the language that we have today. In particular I'm thinking of the fact that the compiler and what we now think of "compiler warnings" came from two different warnings (cc vs lint). This is because the C compiler was the largest C program and generally took every bit of memory available to do it, there was no room for any kind of sanity checking on that code. I've heard it said that to include a new feature "n" in the language, they generally had to rework at least some of the existing compiler code with feature "n-1" to simplify/shrink it enough to fit the new feature.
In that kind of environment you get a language with very little input checking, beyond the rules of the grammar itself (which was as small as possible).