On Wednesday, 30 January 2013 at 09:01:53 UTC, Paulo Pinto wrote:
On Tuesday, 29 January 2013 at 21:26:11 UTC, Walter Bright wrote:
On 1/29/2013 1:15 PM, David Nadlinger wrote:
On Tuesday, 29 January 2013 at 19:21:34 UTC, Walter Bright wrote:
One real issue is order of evaluation bugs, but I didn't see a note about that
in the Clang list.

Why would you need runtime checking for that?

I didn't say you did!


Besides the AddressSanatizer and MemorySanatizer features which are obviously real-world oriented (cf. Valgrind), I also find quite a few of the ubsan features to be actually useful in practice - integer overflow detection is only
a small part of it.

valgrind is immensely useful for C, but a lot less so for D as D guarantees initialization and a GC takes care of much of the rest.

Many have jokes about Java being a language that requires an IDE to be usable.

Usually I joke that C is a language for tool vendors. How many vendors can take their business to C undefined behaviors and pointer abuse.

No one on their senses does use C today without an endless list of tools that validate their code is not going to explode.

--
Paulo

My wishlist for a real revision of C would be:
- removes anachronisms like those discussed in this thread,
- add slightly better safety in the use of const (like in C++),
- add C++ style referencess,
- and finally add alternative to includes and the preprocessor by the use of modules.

And nothing more.

Oh, and provide a better/safer standard library:
- add {sz, char *} strings to null terminated strings,
- add standard structures like vectors, linked list, hashmap, etc,
- add abstractions for multithreading

Such a revised C could be backward compatible with standard C (with the restriction of said anachronisms) and show exactly the same performance characteristics, while being much more clean.

AFAIK, there exists at least one attempt at a compiler which replaces includes by modules.

Reply via email to