On 01/15/13 00:37, bearophile wrote: > Walter Bright: > >> http://kotaku.com/5975610/the-exceptional-beauty-of-doom-3s-source-code?post=56177550 > > From the article: > >> [Side note: John Carmack has stated that static analysis tools >> revealed that their common bug was incorrect parameter matching >> in printf(). I wonder if they've changed to stringstreams in >> Rage because of this. GCC and clang both find printf() >> parameter matching errors with -Wall, so you don't need >> expensive static analysis tools to find these errors.] > > I'd like the D front-end to statically detect wrong parameter matching errors > for the write*()/format() functions. (In D I don't use "%s" all the time).
Library territory. There's no need to put this in a D compiler. Except if you'd like to have 'printf("%.2g", d)' instead of 'printf!"%.2g"(d)' syntax. Which could be done via a 'printf(enum string, ...);' overload [1] - still no need for placing the format string verification logic inside the front end. artur [1] 'enum' is a better fit for current D, 'static' would be better if 'static' would be defined saner. For this case the name of the storage class does not really matter.