Re: [PATCH 00/27] kconfig: refactor lexer and parser code

From: Masahiro Yamada
Date: Sat Feb 10 2024 - 18:48:12 EST


On Sat, Feb 3, 2024 at 12:58 AM Masahiro Yamada <masahiroy@xxxxxxxxxx> wrote:
>
> Random fixes, cleanups, etc.
>
> Masahiro Yamada (27):
> kconfig: fix infinite loop when expanding a macro at the end of file
> kconfig: fix off-by-one in zconf_error()
> kconfig: remove orphan lookup_file() declaration
> kconfig: remove compat_getline()
> kconfig: remove unneeded sym_find() call in conf_parse()
> kconfig: write Kconfig files to autoconf.cmd in order
> kconfig: call env_write_dep() right after yyparse()
> kconfig: split preprocessor prototypes into preprocess.h
> kconfig: replace current_pos with separate cur_{filename,lineno}
> kconfig: remove zconf_curname() and zconf_lineno()
> kconfig: associate struct menu with file name directly
> kconfig: associate struct property with file name directly
> kconfig: replace file->name with name in zconf_nextfile()
> kconfig: do not delay the cur_filename update
> kconfig: replace remaining current_file->name with cur_filename
> kconfig: move the file and lineno in struct file to struct buffer
> kconfig: make file::name a flexible array member
> kconfig: change file_lookup() to return the file name
> kconfig: split list_head into a separate header
> kconfig: resync list.h
> kconfig: import more list macros and inline functions
> kconfig: add macros useful for hashtable
> kconfig: move ARRAY_SIZE to a header
> kconfig: move strhash() to a header
> kconfig: convert linked list of files to hash table
> kconfig: use generic macros to implement symbol hashtable
> kconfig: do not imply the type of choice value


Applied except 26/27.


26/27 breaks 'make testconfig'.
I will do a respin for 26/27 later.





> scripts/kconfig/array_size.h | 11 ++
> scripts/kconfig/conf.c | 12 +-
> scripts/kconfig/confdata.c | 91 +++----------
> scripts/kconfig/expr.h | 24 +---
> scripts/kconfig/hashtable.h | 48 +++++++
> scripts/kconfig/internal.h | 12 ++
> scripts/kconfig/lexer.l | 100 +++++++-------
> scripts/kconfig/list.h | 254 ++++++++++++++++++++++++++---------
> scripts/kconfig/list_types.h | 17 +++
> scripts/kconfig/lkc.h | 5 +-
> scripts/kconfig/lkc_proto.h | 15 ---
> scripts/kconfig/mconf.c | 1 +
> scripts/kconfig/menu.c | 24 ++--
> scripts/kconfig/nconf.c | 1 +
> scripts/kconfig/parser.y | 92 +++++++------
> scripts/kconfig/preprocess.c | 23 ++--
> scripts/kconfig/preprocess.h | 19 +++
> scripts/kconfig/qconf.cc | 2 +-
> scripts/kconfig/symbol.c | 46 +++----
> scripts/kconfig/util.c | 38 ++++--
> scripts/kconfig/util.h | 15 +++
> 21 files changed, 511 insertions(+), 339 deletions(-)
> create mode 100644 scripts/kconfig/array_size.h
> create mode 100644 scripts/kconfig/hashtable.h
> create mode 100644 scripts/kconfig/list_types.h
> create mode 100644 scripts/kconfig/preprocess.h
> create mode 100644 scripts/kconfig/util.h
>
> --
> 2.40.1
>


--
Best Regards
Masahiro Yamada