Hi again,

I checked meaning of GCC versions.

GCC development time lines:
   https://gcc.gnu.org/develop.html#timeline

As for ISO C99 conformance:
   https://gcc.gnu.org/c99status.html

The last mentioned version was GCC 5 for "extended identifiers".  So GCC
5 as supported by the vendor (microchip) isn't bad choice for C programs
mostly used by embedded programs.

Since Arduino sketches are in-essence C++ program(*), let's see C++
conformance:
   https://gcc.gnu.org/projects/cxx-status.html

For C++14, GCC 5 is good enough.
For C++17, GCC 7 is needed and is good enough.
For C++2a, GCC 8-10 are addressing some features.

Unicode UTF-8 support is important. This u8 character literals support
is made available at GCC 6 as a part of C++17 feature:
   http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4267.html
   https://gcc.gnu.org/gcc-6/changes.html#cxx

This kind of explains why Arduino is updating GCC 7.

Osamu

(*) https://github.com/arduino/arduino-preprocessor
    https://github.com/arduino/arduino-builder
    
https://github.com/arduino/Arduino/wiki/Arduino-IDE-1.5-3rd-party-Hardware-specification

Reply via email to