On Wed, Mar 19, 2025 at 9:58 AM Luchian Mihai <luchiann.mi...@gmail.com> wrote:
> Hello all,
> First, a few conclusions I've drawn:
> * Keep indent checking fully decoupled, indent style may or may not change
> in future.
> * For the moment we'll keep gnu style. Code style change will have a big
> impact over the code base.
> * If it comes to change, Allman is the best candidate, this will not have
> an significant impact on my work, changing an constant for braces indent
> depth (this only applies for indent)

Maybe adhering to GNU will enable standard tools and bring minimal
change. But there is a big resistance, so probably updating
tools/nxstyle is the way to go.. using C as it is right now. NuttX is
quite conservative as you can see. Most of us can work with different
code styles while we care most about functionality and long-term
maintenance :-)

Luchian maybe you could focus on different area where currently
manpower is more desired.. like adding drivers to missing peripherals
in existing MCUs, updating documentation, or adding missing CMake
stuff if you prefer to support more modern tools?

> Second, some would avoid python, let's discuss programming language:
> I'll add a few key points for this discussion:
> * Zephyr is using python for its meta-tool, west.
> * Mynewt is using go for its meta-tool, newt
> * Do nuttx need/want a similar meta-tool
> * There are already python scripts in our tooling, maybe worth
> standardizing them.
> * If it comes to not using python i'll insist on using rust, personal take,
> I do not want to handle strings using c.

There were discussions like this before. We do not want this kind of
meta-tool. No additional programming languages frameworks and
dependencies to setup things. We want to keep things absolutely
minimal and Unix aligned with independent but cooperating building
blocks as it is right now. Including CMake and Python was exception
here rather than a rule :-)

How would you like to standardize python scripts? Right now these are
independent tools, so if anything that uses them updates then a tool
update goes along together. If you standardize them into a meta-tool
then this meta-tool will require additional work for maintenance and
updating one thing may break other things and we want to avoid that. I
guess small building blocks are here by design :-)

Rust is supported by nuttx-apps but only as option for users
interested in it. It is their burden to have all dependencies built
and installed. No one else is impacted. But having rust as basic
dependency just to setup things is a strong no-go here. Imagine
building whole rust ecosystem on a small embedded system with limited
resources where packages are not provided (i.e. rPI0). I had this
problem with pyOCD+CMSIS-Pack-Manager, other folks too, so the
dependency was removed as default after feedback of the community. We
recently did tests of automated distributed testing on rPI0 and it was
working fine. Introducing Rust as basic setup dependency would make
things a lot more complicated and time consuming, maybe even a blocker
on some platforms, we want to avoid that.

I was recently on a hands-on STM workshop. I did quick port NuttX to a
new MCU under 10 minutes. While the workshop was aimed at Zephyr and
(~30) people could not even git clone the repository to start working.
It was too big to fetch at once by that many people. Minimalistic
approach of NuttX has its benefits :-)


> Let's hear the community take on this subject.

Always good to discuss :-)

Have a good day folks :-)
Tomek


ps/2: Is this a some sort of global race where winner changes as many
lines of code without actual change of the functionality / without
adding new functionality / breaking existing functionality? Are people
paid per changed line of code right now? Maybe "progress" is measured
by changed lines of code or PR amount? :-P

-- 
CeDeROM, SQ7MHZ, http://www.tomek.cedro.info

Reply via email to