2018-01-14 14:12:22

by Ulf Magnusson

[permalink] [raw]
Subject: [PATCH] kconfig: Clarify choice dependency propagation

It's easy to miss that choices are special-cased to pass on their mode
as the parent dependency.

No functional changes. Only comments added.

Signed-off-by: Ulf Magnusson <[email protected]>
---
scripts/kconfig/menu.c | 7 +++++++
1 file changed, 7 insertions(+)

diff --git a/scripts/kconfig/menu.c b/scripts/kconfig/menu.c
index 92d3f06cd8a2..53964d911708 100644
--- a/scripts/kconfig/menu.c
+++ b/scripts/kconfig/menu.c
@@ -323,6 +323,13 @@ void menu_finalize(struct menu *parent)
if (menu->sym && menu->sym->type == S_UNKNOWN)
menu_set_type(sym->type);
}
+
+ /*
+ * Use the choice itself as the parent dependency of
+ * the contained items. This turns the mode of the
+ * choice into an upper bound on the visibility of the
+ * choice symbols.
+ */
parentdep = expr_alloc_symbol(sym);
} else if (parent->prompt)
parentdep = parent->prompt->visible.expr;
--
2.14.1


2018-01-18 16:48:40

by Masahiro Yamada

[permalink] [raw]
Subject: Re: [PATCH] kconfig: Clarify choice dependency propagation

2018-01-14 23:12 GMT+09:00 Ulf Magnusson <[email protected]>:
> It's easy to miss that choices are special-cased to pass on their mode
> as the parent dependency.
>
> No functional changes. Only comments added.
>
> Signed-off-by: Ulf Magnusson <[email protected]>
> ---
> scripts/kconfig/menu.c | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/scripts/kconfig/menu.c b/scripts/kconfig/menu.c
> index 92d3f06cd8a2..53964d911708 100644
> --- a/scripts/kconfig/menu.c
> +++ b/scripts/kconfig/menu.c
> @@ -323,6 +323,13 @@ void menu_finalize(struct menu *parent)
> if (menu->sym && menu->sym->type == S_UNKNOWN)
> menu_set_type(sym->type);
> }
> +
> + /*
> + * Use the choice itself as the parent dependency of
> + * the contained items. This turns the mode of the
> + * choice into an upper bound on the visibility of the
> + * choice symbols.
> + */

Does the last "choice symbols" mean "choice values"?
The "choice" itself is a symbol with NULL name,
so I'd like to clarify it.



--
Best Regards
Masahiro Yamada

2018-01-18 17:00:51

by Ulf Magnusson

[permalink] [raw]
Subject: Re: [PATCH] kconfig: Clarify choice dependency propagation

On Thu, Jan 18, 2018 at 5:47 PM, Masahiro Yamada
<[email protected]> wrote:
> 2018-01-14 23:12 GMT+09:00 Ulf Magnusson <[email protected]>:
>> It's easy to miss that choices are special-cased to pass on their mode
>> as the parent dependency.
>>
>> No functional changes. Only comments added.
>>
>> Signed-off-by: Ulf Magnusson <[email protected]>
>> ---
>> scripts/kconfig/menu.c | 7 +++++++
>> 1 file changed, 7 insertions(+)
>>
>> diff --git a/scripts/kconfig/menu.c b/scripts/kconfig/menu.c
>> index 92d3f06cd8a2..53964d911708 100644
>> --- a/scripts/kconfig/menu.c
>> +++ b/scripts/kconfig/menu.c
>> @@ -323,6 +323,13 @@ void menu_finalize(struct menu *parent)
>> if (menu->sym && menu->sym->type == S_UNKNOWN)
>> menu_set_type(sym->type);
>> }
>> +
>> + /*
>> + * Use the choice itself as the parent dependency of
>> + * the contained items. This turns the mode of the
>> + * choice into an upper bound on the visibility of the
>> + * choice symbols.
>> + */
>
> Does the last "choice symbols" mean "choice values"?
> The "choice" itself is a symbol with NULL name,
> so I'd like to clarify it.

Yep, means the choice values (which are symbols). "Choice values"
would probably be clearer, yeah, or maybe "choice value symbols".

Should I submit a new version? I'm fine with just a
's/symbols/values/' or 's/symbols/value symbols/' otherwise.

Cheers,
Ulf

2018-01-19 02:32:24

by Masahiro Yamada

[permalink] [raw]
Subject: Re: [PATCH] kconfig: Clarify choice dependency propagation

Hi Ulf,


2018-01-19 1:58 GMT+09:00 Ulf Magnusson <[email protected]>:
> On Thu, Jan 18, 2018 at 5:47 PM, Masahiro Yamada
> <[email protected]> wrote:
>> 2018-01-14 23:12 GMT+09:00 Ulf Magnusson <[email protected]>:
>>> It's easy to miss that choices are special-cased to pass on their mode
>>> as the parent dependency.
>>>
>>> No functional changes. Only comments added.
>>>
>>> Signed-off-by: Ulf Magnusson <[email protected]>
>>> ---
>>> scripts/kconfig/menu.c | 7 +++++++
>>> 1 file changed, 7 insertions(+)
>>>
>>> diff --git a/scripts/kconfig/menu.c b/scripts/kconfig/menu.c
>>> index 92d3f06cd8a2..53964d911708 100644
>>> --- a/scripts/kconfig/menu.c
>>> +++ b/scripts/kconfig/menu.c
>>> @@ -323,6 +323,13 @@ void menu_finalize(struct menu *parent)
>>> if (menu->sym && menu->sym->type == S_UNKNOWN)
>>> menu_set_type(sym->type);
>>> }
>>> +
>>> + /*
>>> + * Use the choice itself as the parent dependency of
>>> + * the contained items. This turns the mode of the
>>> + * choice into an upper bound on the visibility of the
>>> + * choice symbols.
>>> + */
>>
>> Does the last "choice symbols" mean "choice values"?
>> The "choice" itself is a symbol with NULL name,
>> so I'd like to clarify it.
>
> Yep, means the choice values (which are symbols). "Choice values"
> would probably be clearer, yeah, or maybe "choice value symbols".
>
> Should I submit a new version? I'm fine with just a
> 's/symbols/values/' or 's/symbols/value symbols/' otherwise.
>
> Cheers,
> Ulf


It is trivial, so I will locally fix it up.

s/symbols/value symbols/

Thanks!




--
Best Regards
Masahiro Yamada

2018-01-21 16:46:41

by Masahiro Yamada

[permalink] [raw]
Subject: Re: [PATCH] kconfig: Clarify choice dependency propagation

2018-01-19 11:29 GMT+09:00 Masahiro Yamada <[email protected]>:
> Hi Ulf,
>
>
> 2018-01-19 1:58 GMT+09:00 Ulf Magnusson <[email protected]>:
>> On Thu, Jan 18, 2018 at 5:47 PM, Masahiro Yamada
>> <[email protected]> wrote:
>>> 2018-01-14 23:12 GMT+09:00 Ulf Magnusson <[email protected]>:
>>>> It's easy to miss that choices are special-cased to pass on their mode
>>>> as the parent dependency.
>>>>
>>>> No functional changes. Only comments added.
>>>>
>>>> Signed-off-by: Ulf Magnusson <[email protected]>
>>>> ---
>>>> scripts/kconfig/menu.c | 7 +++++++
>>>> 1 file changed, 7 insertions(+)
>>>>
>>>> diff --git a/scripts/kconfig/menu.c b/scripts/kconfig/menu.c
>>>> index 92d3f06cd8a2..53964d911708 100644
>>>> --- a/scripts/kconfig/menu.c
>>>> +++ b/scripts/kconfig/menu.c
>>>> @@ -323,6 +323,13 @@ void menu_finalize(struct menu *parent)
>>>> if (menu->sym && menu->sym->type == S_UNKNOWN)
>>>> menu_set_type(sym->type);
>>>> }
>>>> +
>>>> + /*
>>>> + * Use the choice itself as the parent dependency of
>>>> + * the contained items. This turns the mode of the
>>>> + * choice into an upper bound on the visibility of the
>>>> + * choice symbols.
>>>> + */
>>>
>>> Does the last "choice symbols" mean "choice values"?
>>> The "choice" itself is a symbol with NULL name,
>>> so I'd like to clarify it.
>>
>> Yep, means the choice values (which are symbols). "Choice values"
>> would probably be clearer, yeah, or maybe "choice value symbols".
>>
>> Should I submit a new version? I'm fine with just a
>> 's/symbols/values/' or 's/symbols/value symbols/' otherwise.
>>
>> Cheers,
>> Ulf
>
>
> It is trivial, so I will locally fix it up.
>
> s/symbols/value symbols/
>

Applied to linux-kbuild/kconfig
with s/symbols/value symbols/.

Thanks!


--
Best Regards
Masahiro Yamada