From: sqlite-users [mailto:sqlite-users-boun...@mailinglists.sqlite.org] On Behalf Of James K. Lowden
>>>> Basing source on "ANSI C" (as much as possible) just gives you the >>>> biggest possible distribution / compatibility. >>> >>>Yes, but it also limits you to C as it stood 20 years ago. And counting. >>>Is there no point at which a more recent standard should be adopted? Among >>>features of C11 I use: This is the trade-off. As with many of us I've been living this for decades. This is the genesis of the 'breaking change', which is a killer for those of us supporting older software. >>>SQLite would benefit from all of those, plus UTF-8 string constants. >>> >>>I full well understand the workarounds for integer sizes and Booleans are >>>baked into SQLite, and there's no real need to adopt the new (er, >>>new-ish) forms. VLAs and designated initializers should not be >>>underestimated, though. There are many places in SQLite where VLAs could >>>replace local malloc/free pairs, and SQLite code is rife with structures >>>that can be more succintly initialized with the modern syntax. UTF-8 perhaps but I don't think VLA's are to be considered. Without going into the history, VLA's are (a) not part of C++ (b) not guaranteed to be supported by all compliant C compilers (c) optional in C11 (see _ _STDC_NO_VLA_ _) (d) not guaranteed to be required by future C standards. They're a lovely feature if you know exactly which compiler(s) you're working with. >>>Nowawdays, once again making a living writing C code and having the daily >>>opportunity to experiment the the new language features, I've come to like >>>them. C is a sharp-edged language, and has become a bit fussy as the >>>compilers writers have adopted, as we've discussed here, pedantic notions of >>>UB. OTOH, it's an improvement to relieve the language of some of its >>>ancient constraints, such as static array sizes and the prohibition on >>>type-punning in unions (which began as SOP, then was UB, and is now OK >>>again). I would never use C if C++ is available. If I have to, I choose a conservative feature set. There may be good reasons for Sqlite to move to C99 (the main one being that it's already a 15yo standard), but it's not a decision to be taken lightly or piecemeal. C11 has barely taken off its training wheels. Regards David M Bennett FACS Andl - A New Database Language - andl.org _______________________________________________ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users