that code duplication is the way I was thinking if we want to be able to
use both compilers and keep all platforms
Best Regards
Alin

On Sat, 8 Jan 2022, 14:42 Alan Carvalho de Assis, <acas...@gmail.com> wrote:

> 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
> >> > > >>>
> >> > > >>>
> >> > >
> >> >
> >>
> >
>

Reply via email to