acassis commented on PR #2239: URL: https://github.com/apache/nuttx-apps/pull/2239#issuecomment-1868519618
> > @xiaoxiang781216 but popen is not used by default by the project, so there is not possibility to it be disabled and break the relation. > > user may call both pipes and popen initially, and remove popen call later, and will surprise that linker complain pipes function can't be found after he remove CONFIG_SYSTEM_POPEN from defconfig. > Xiang, if the user enable both features (not matter which order) and if later he/she disables popen, pipes still enabled. If his/her defconfig had popen enabled and later on popen feature was removed from menuconfig, I understand that pipes will not be found, unless other feature also selects it. I think in general "select" and "depends on" are similar, but although "depends on" is safer, it has a drawback because it "hides" that feature from newcomer users. But I agree with you, users should learn how Kconfig works and how to search and fix symbols dependence. > > I think "depends on" doesn't protect the feature as we are thinking, because the user could go there and enable manually the feature in the .config. > > The user will find that the feature doesn't enable actually because the dependence doesn't match, instead linker error. Why do you think `depends on` doesn't protect the feature? > Because a beginner user could bypass the menuconfig enabling the feature directly editing the .config and then complain in the mailing list that NuttX functions are broken :-) > > And even worst, "depends on" hides the feature in menuconfig. > > The user will search for it, will find it, but when he goes there the option is not there. I think this is a case where "select" is better than "depends on" > > The user need understand the basic Kconfig concept, I don't believe that they can work with NuttX or Zephyr/Linux efficiently if they don't understand `depends on` and `select`. > Agree! > BTW, user still encounter the similar problem unless you change ALL `depends on` to `select`. Not in this case, because the user just need to use popen, so if he enable the popen examble it could automatically select the system open and the pipe. In the other hand I think "depends on" is safe if user doesn't see the example popen in the menuconfig. If we don't have a documentation saying that examples exists, it will become a hidden feature. If you agree I can change the popen example to also select system popen, so the problem will not exist for end users -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: commits-unsubscr...@nuttx.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org