From: John B. <joh...@gm...> - 2015-08-25 05:04:26
|
On Mon, Aug 24, 2015 at 7:19 PM, Robert Seacord <rcs...@gm...> wrote: > I would imagine porting to C99 would be advisable. Let's see, it is 2015 > - 1990 that makes 25 years. > Your point? 1.6 *requires *a C90 compiler, and has existed for some time. *C99 *dates from 1999/2000 (ISO C99, ANSI C00), so it's now almost 16 years old. My rule of thumb, which has proven consistently right over the last 20 years, is that it takes 10 years for a software engineering standard to obtain widespread acceptance and 15-20 years for the acceptance to be complete (there will still be outlying cases though.) Adoption of language standards takes longest and adoption *as requirements* by portable widely used libraries is at the very end of the timescale for, I hope, obvious reasons. > > The C Committee is very good about posting copies of the standard. For > example, C11 can be found here: > > http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf > That's a draft, from April 2012. Can you post a link to the ISO *C99* standard; the full text not a draft? Last time I looked the ISO C committee hadn't addressed this problem, but maybe I don't know where to look. I said: > At some point libpng will probably move to require C99 and I had always assumed that when >it did stdint.h would get used, however after this discussion I'm inclined to believe that the >result would not be portable code with completely defined behavior and that we are better >off sticking with what we already do in pngconf.h for the 32-bit types. You said: > I'm not sure I agree. > Take a look at this machine: http://docs.cray.com/books/004-2179-001/html-004-2179-001/rvc5mrwh.html I don't see any way of writing *png_save_uint_32 *with *uint32_t *arguments, however *png_uint_32 *arguments will work just fine. John Bowler |