Re: [ANNOUNCE] Kconfiglib menuconfig implementation

From: Randy Dunlap
Date: Sun May 20 2018 - 22:52:14 EST


On 05/20/2018 08:33 PM, Ulf Magnusson wrote:
> On Mon, May 21, 2018 at 4:45 AM, Randy Dunlap <rdunlap@xxxxxxxxxxxxx> wrote:
>> On 05/19/2018 09:47 PM, Ulf Magnusson wrote:
>>> On Sun, May 20, 2018 at 6:03 AM, Randy Dunlap <rdunlap@xxxxxxxxxxxxx> wrote:
>>>> On 05/19/2018 08:45 PM, Randy Dunlap wrote:
>>>>> On 05/08/2018 09:59 AM, Ulf Magnusson wrote:
>>>>>> Hello,
>>>>>>
>>>>>> I've added incremental search for jumping directly to a symbol now.
>>>>>> Regular expressions are supported as well.
>>>>>>
>>>>>> Some screenshots below:
>>>>>>
>>>>>> https://raw.githubusercontent.com/ulfalizer/Kconfiglib/screenshots/screenshots/ss10.png
>>>>>> https://raw.githubusercontent.com/ulfalizer/Kconfiglib/screenshots/screenshots/ss11.png
>>>>>> https://raw.githubusercontent.com/ulfalizer/Kconfiglib/screenshots/screenshots/ss13.png
>>>>>>
>>>>>> The last screenshot shows how things might look after you jump to a
>>>>>> symbol. The jumped-to symbol wasn't visible in this case, so show-all
>>>>>> mode was turned on automatically.
>>>>>
>>>>> Hi Ulf,
>>>>>
>>>>>
>>>>>
>>>>> Hm, OK, I used the trick that you supplied a few weeks ago and I have the UI now.
>>>>>
>>>>> ARCH=x86 SRCARCH=x86 KERNELVERSION=`make kernelversion` \
>>>>> Kconfiglib/menuconfig.py
>>>>>
>>>>> so yes, a real Makefile target would be nice. :)
>>>>
>>>> I want to see all kconfig symbols that end with "_DEBUG" (so excluding
>>>> _DEBUGFS). Using:
>>>>
>>>> /.*_DEBUG$
>>>>
>>>> shows me 6 symbols:
>>>> ATH9K_COMMON_DEBUG
>>>> DVB_B2C2_FLEXCOP_DEBUG
>>>> HAVE_DMA_API_DEBUG
>>>> IP_DCCP_TFRC_DEBUG
>>>> NFS_DEBUG
>>>> PM_SLEEP_DEBUG
>>>>
>>>> so where are the other (approx.) 176?
>>>> see:
>>>> $ find . -name Kconfig\* | xargs grep "config.*_DEBUG$" | grep -v \.orig | wc
>>>> 182 364 9179
>>>>
>>>>
>>>> Anyway, something for you to look at. :)
>>>>
>>>> --
>>>> ~Randy
>>>
>>> It's related to how the search is done. Searching for "DEBUG\b" (word
>>> boundary) instead will find all of them.
>>>
>>> A string is generated for each symbol. For symbols with prompts, this
>>> string includes the prompt as well, so you get e.g.
>>>
>>> AB8500_DEBUG "Enable debug info via debugfs"
>>>
>>> Those strings are then searched/displayed.
>>>
>>> What you got with your search was all symbols whose names end in
>>> "_DEBUG" that don't have a prompt.
>>>
>>> The nice thing about searching both the name and the prompt is that
>>> e.g. "debugfs ab8500" will find the symbol above. I'm also planning to
>>> add menus to the search, by generating 'menu: "menu title"' strings
>>> for them.
>>>
>>> It's a bit awkward/unintuitive that what you tried doesn't work
>>> though. Maybe the symbol name could be searched separately from the
>>> prompt, though I'd be a bit sad to abandon the super simple
>>> single-string-per-entry implementation approach. :)
>>
>> Hi Ulf,
>>
>> What else are you planning to do with /(search)?
>
> Here's the stuff I've thought of so far:
>
> - Display invisible symbols in red (to match show-all mode)
>
> - Search prompts of menus and comments as well
>
> - Have [F1] show the help display without canceling the search,
> so you can quickly scan through a bunch of symbols
>
> Maybe you could get fancy with stuff like finding symbols that are
> related to other symbols in particular ways too...
>
>> /syscall lists 20 or so symbols. It would be nice if each one of those
>> showed its current setting [y,n,maybe^Wm].
>
> Nice idea. I added it:
> https://github.com/ulfalizer/Kconfiglib/commit/3161affaa5bb8350a39bfd305c56171a25b02151
>
> Works for strings/int/hex too.

Thanks.

>> I like Toggle show-all mode. When I use xconfig, I usually turn on most
>> of its options, including one like that.
>
> IIRC, xconfig doesn't make it very clear which symbols are invisible
> in show-all mode. That's why I made them red.

Yes, that's helpful.


--
~Randy