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

Message ID 20240202155825.314567-1-masahiroy@kernel.org
Headers
Series kconfig: refactor lexer and parser code |

Message

Masahiro Yamada Feb. 2, 2024, 3:57 p.m. UTC
  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

 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
  

Comments

Masahiro Yamada Feb. 10, 2024, 11:47 p.m. UTC | #1
On Sat, Feb 3, 2024 at 12:58 AM Masahiro Yamada <masahiroy@kernel.org> 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
>