public inbox for gdb-patches@sourceware.org
 help / color / mirror / Atom feed
* [PATCH 00/21] ui / interp cleansup
@ 2023-09-08 18:22 Simon Marchi
  2023-09-08 18:22 ` [PATCH 01/21] gdb: use intrusive_list for struct ui linked list Simon Marchi
                   ` (21 more replies)
  0 siblings, 22 replies; 43+ messages in thread
From: Simon Marchi @ 2023-09-08 18:22 UTC (permalink / raw)
  To: gdb-patches; +Cc: Simon Marchi

When trying to untangle things in the ui and interp area (notably,
trying to understand what happens when setting and restoring
interpreters, in the context of interpreter-exec), I came up with a few
cleanups.  Here is a first round.

One goal is to make some interp operations be methods of struct ui.
Interpreters are children of UIs, so I think it makes sense if the
process of looking up / creating interpreters is implemented in methods
of struct ui.  The concept of top level interpreter is also per UI, so I
made getting and setting the top level interpreter methods of struct ui.
I plan to do the same with the current and the command interpreter
later, but it wasn't as obvious.

Another goal is to try to reduce the number of references to current_ui
in the code that manages interpreters.  Such references are often behind
macros, which in my opinion makes it difficult to understand how things
work.  To this end, there is one patch that adds a backlink from
interpreters to their parent UI, so that interpreters know which UI they
belong to (and they should never need to touch current_ui).

Simon Marchi (21):
  gdb: use intrusive_list for struct ui linked list
  gdb: make interp_lookup_existing a method of struct ui
  gdb: make interp_add a method of struct ui
  gdb: make interp_lookup a method of struct ui
  gdb: remove ui:::add_interp and ui::lookup_existing_interp
  gdb: uncover some current_ui uses in interp_set
  gdb: add backlink to ui in interp
  gdb: pass ui down to gdb_setup_readline and gdb_disable_readline
  gdb/python: use m_ui instead of current_ui in dap_interp::init
  gdb/mi: use m_ui instead of current_ui in mi_interp::init
  gdb/cli: use m_ui instead of current_ui in cli_interp::resume
  gdb/tui: use m_ui instead of current_ui in tui_interp::resume
  gdb/mi: use m_ui instead of current_ui in mi_interp::resume
  gdb/cli: use m_ui instead of current_ui in cli_interp::suspend
  gdb/tui: use m_ui instead of current_ui in tui_interp::suspend
  gdb/mi: use m_ui instead of current_ui in mi_interp::suspend
  gdb: pass current_ui down to interp_set
  gdb: make interp_set a method of struct ui
  gdb: pass down current_ui to set_top_level_interpreter
  gdb: make set_top_level_interpreter a method of struct ui
  gdb: make top_level_interpreter a method of struct ui

 gdb/cli/cli-interp.c |  25 +++----
 gdb/cli/cli-interp.h |   2 +-
 gdb/cli/cli-script.c |   2 +-
 gdb/event-top.c      |  10 +--
 gdb/event-top.h      |   4 +-
 gdb/infrun.c         |   8 +--
 gdb/interps.c        | 159 ++++---------------------------------------
 gdb/interps.h        |  40 ++++++-----
 gdb/linespec.c       |   3 +-
 gdb/main.c           |   6 +-
 gdb/mi/mi-interp.c   |  23 +++----
 gdb/mi/mi-interp.h   |   4 +-
 gdb/python/py-dap.c  |  12 ++--
 gdb/python/python.c  |   2 +-
 gdb/solib.c          |   4 +-
 gdb/top.c            |   6 +-
 gdb/tui/tui-interp.c |  19 +++---
 gdb/tui/tui.c        |   2 +-
 gdb/ui.c             | 124 +++++++++++++++++++++++++--------
 gdb/ui.h             |  64 ++++++++++++-----
 gdb/utils.c          |   5 +-
 21 files changed, 243 insertions(+), 281 deletions(-)


base-commit: 15db2284f2f8259e46635ca6df3efc772d951fac
-- 
2.42.0


^ permalink raw reply	[flat|nested] 43+ messages in thread

end of thread, other threads:[~2023-09-12 18:06 UTC | newest]

Thread overview: 43+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-09-08 18:22 [PATCH 00/21] ui / interp cleansup Simon Marchi
2023-09-08 18:22 ` [PATCH 01/21] gdb: use intrusive_list for struct ui linked list Simon Marchi
2023-09-08 18:22 ` [PATCH 02/21] gdb: make interp_lookup_existing a method of struct ui Simon Marchi
2023-09-08 18:22 ` [PATCH 03/21] gdb: make interp_add " Simon Marchi
2023-09-08 18:22 ` [PATCH 04/21] gdb: make interp_lookup " Simon Marchi
2023-09-12  9:15   ` Andrew Burgess
2023-09-12 14:38     ` Simon Marchi
2023-09-08 18:22 ` [PATCH 05/21] gdb: remove ui:::add_interp and ui::lookup_existing_interp Simon Marchi
2023-09-08 18:23 ` [PATCH 06/21] gdb: uncover some current_ui uses in interp_set Simon Marchi
2023-09-08 18:23 ` [PATCH 07/21] gdb: add backlink to ui in interp Simon Marchi
2023-09-08 18:23 ` [PATCH 08/21] gdb: pass ui down to gdb_setup_readline and gdb_disable_readline Simon Marchi
2023-09-08 18:23 ` [PATCH 09/21] gdb/python: use m_ui instead of current_ui in dap_interp::init Simon Marchi
2023-09-08 18:23 ` [PATCH 10/21] gdb/mi: use m_ui instead of current_ui in mi_interp::init Simon Marchi
2023-09-08 18:23 ` [PATCH 11/21] gdb/cli: use m_ui instead of current_ui in cli_interp::resume Simon Marchi
2023-09-12 10:40   ` Andrew Burgess
2023-09-12 15:42     ` Simon Marchi
2023-09-08 18:23 ` [PATCH 12/21] gdb/tui: use m_ui instead of current_ui in tui_interp::resume Simon Marchi
2023-09-12 10:41   ` Andrew Burgess
2023-09-08 18:23 ` [PATCH 13/21] gdb/mi: use m_ui instead of current_ui in mi_interp::resume Simon Marchi
2023-09-12 10:44   ` Andrew Burgess
2023-09-12 16:36     ` Simon Marchi
2023-09-08 18:23 ` [PATCH 14/21] gdb/cli: use m_ui instead of current_ui in cli_interp::suspend Simon Marchi
2023-09-08 18:23 ` [PATCH 15/21] gdb/tui: use m_ui instead of current_ui in tui_interp::suspend Simon Marchi
2023-09-08 18:23 ` [PATCH 16/21] gdb/mi: use m_ui instead of current_ui in mi_interp::suspend Simon Marchi
2023-09-08 18:23 ` [PATCH 17/21] gdb: pass current_ui down to interp_set Simon Marchi
2023-09-12 10:54   ` Andrew Burgess
2023-09-12 17:17     ` Simon Marchi
2023-09-08 18:23 ` [PATCH 18/21] gdb: make interp_set a method of struct ui Simon Marchi
2023-09-12 10:58   ` Andrew Burgess
2023-09-12 17:23     ` Simon Marchi
2023-09-12 13:41   ` Tom Tromey
2023-09-12 17:32     ` Simon Marchi
2023-09-08 18:23 ` [PATCH 19/21] gdb: pass down current_ui to set_top_level_interpreter Simon Marchi
2023-09-11 15:15   ` Simon Marchi
2023-09-08 18:23 ` [PATCH 20/21] gdb: make set_top_level_interpreter a method of struct ui Simon Marchi
2023-09-12 11:20   ` Andrew Burgess
2023-09-12 17:41     ` Simon Marchi
2023-09-08 18:23 ` [PATCH 21/21] gdb: make top_level_interpreter " Simon Marchi
2023-09-12 11:35   ` Andrew Burgess
2023-09-12 17:54     ` Simon Marchi
2023-09-12 11:38 ` [PATCH 00/21] ui / interp cleansup Andrew Burgess
2023-09-12 17:51   ` Simon Marchi
2023-09-12 18:06   ` Tom Tromey

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).