Hi Alin, using a menu option in this case will not work because the point is not passing a std c99 flag to the compiler, but using some C99 features in the source code to simplify it.
For example: the designated initializer list: struct test_s test = { .second = 2, .first = 1 }; It is not supported by C89 and adding an entry in the menuconfig will require duplication in the source code to support both standards (C89 and C99). BR, Alan On 1/8/22, Alin Jerpelea <jerpe...@gmail.com> wrote: > In my opinion we should try to keep all platforms and avoid breaking them > by adopting new standards > > An option would be to add the C99 as a menu option while keeping the > current compilers compatibility > > Best Regards > Alin > > > On Sat, 8 Jan 2022, 13:53 Gregory Nutt, <spudan...@gmail.com> wrote: > >> z80 holds all 8-bit ZiLOG architectures. That means >> >> z80 using the SDCC compiler >> z180 using the SDCC compiler >> ez80 which normally uses the ZiLOG compiler, but there is an experimental >> version of GCC for the ez80 >> >> z16 uses only ZiLOG compiler >> >> Also consider SH1 >> >> This will also require changes to INVIOLABLES.md and the coding standard. >> I would also recommend a formal vote to assure that you are following the >> will of the user base and not a personal agenda. There used to be a >> small >> but important group of retro computer folk using NuttX; this eliminates >> support for them. There is language in the INVIOLABLES that is there >> specifically to protect them from actions like this. >> >> I have not heard of anyone using these architectures recently. I would >> say >> that only ez80 is active with active development boards. There are >> occasional developments with z180-like hardware. >> >> On Fri, Jan 7, 2022 at 11:40 PM Xiang Xiao <xiaoxiang781...@gmail.com> >> wrote: >> >> > Ceva we just added this week also supports C99, so we just need to >> > check >> > avr, misoc, or1k, z16 and z80. >> > >> > On Sat, Jan 8, 2022 at 1:35 PM Petro Karashchenko < >> > petro.karashche...@gmail.com> wrote: >> > >> > > In addition I just checked latest GCC with HC12 support is 3.0.4 >> version. >> > > It have C99 integrated. Will check with AVR32, but will probably need >> > some >> > > help with others. >> > > >> > > Best regards, >> > > Petro >> > > >> > > On Sat, Jan 8, 2022, 7:15 AM Petro Karashchenko < >> > > petro.karashche...@gmail.com> wrote: >> > > >> > > > Hi, >> > > > >> > > > What about inline functions? Those are also a part on C99. >> > > > >> > > > Are those old architectures checked by the CI? I mean do we have a >> > proof >> > > > that those are still compilable with the latest release? >> > > > >> > > > Best regards, >> > > > Petro >> > > > >> > > > On Sat, Jan 8, 2022, 6:37 AM Xiang Xiao <xiaoxiang781...@gmail.com> >> > > wrote: >> > > > >> > > >> >> > > >> >> > > >> On Sat, Jan 8, 2022 at 6:29 AM Petro Karashchenko < >> > > >> petro.karashche...@gmail.com> wrote: >> > > >> >> > > >>> Hello team, >> > > >>> >> > > >>> Recently I mr. @Xiang Xiao <xiaoxiang781...@gmail.com> had a >> > > discussion >> > > >>> in one of the PR's related to C89 code compliance. Particularly >> > > related to >> > > >>> initializing a structure by field names (designated >> > > >>> initializers). >> > Mr. >> > > @Xiang >> > > >>> Xiao <xiaoxiang781...@gmail.com> pointed out that "for the common >> > code >> > > >>> it is better to avoid C99 only features". >> > > >>> I examined the current NuttX code and see that currently common >> code >> > is >> > > >>> far away from C89 already and things like "<stdbool.h>", >> > > "<inttypes.h>", >> > > >>> "snprintf", "designated initializers", "__VA_ARGS__" (variadic >> macro) >> > > are >> > > >>> deeply embedded into the code. >> > > >>> >> > > >>> >> > > >> We need separate the features that come from the compiler and the >> > > >> standard library. Since the libc is provided by NuttX self: >> > > >> >> > > >> 1. The header files(e.g.stdbool.h, intttyes.h) and >> > > >> function(e.g. >> > > >> snprintf) can be used in common code since NuttX can provide >> > > >> the >> > > >> implementation for all arch even the arch use a very old >> > > >> compiler >> > > >> 2. The preprocessor (e.g. __VA_ARGS__) or language( designated >> > > >> initializers) feature need to avoid or incorporate into the >> > > conditional >> > > >> macro >> > > >> >> > > >> . >> > > >> >> > > >>> I would like to come up with the suggestion to make C99 as a >> > > >>> prerequisite for the compiler that is used to build NuttX code. >> > > >>> >> > > >> >> > > >> As Greg said, if compilers used on all arch supported by NuttX >> support >> > > >> C99, there is no reason to limit us to C89. The compiler status is >> > > >> a >> > > >> keypoint. >> > > >> >> > > >> >> > > >>> >> > > >>> Best regards, >> > > >>> Petro >> > > >>> >> > > >>> >> > > >> > >> >