From: Guinevere Larsen <guinevere@redhat.com>
To: Tom Tromey <tom@tromey.com>
Cc: Thiago Jung Bauermann <thiago.bauermann@linaro.org>,
gdb-patches@sourceware.org
Subject: Re: [PATCH v5 1/5] gdb: make gdbarch store a vector of frame unwinders
Date: Fri, 18 Oct 2024 14:40:10 -0300 [thread overview]
Message-ID: <a9cd919a-3afb-4f2a-85cf-789a6365ee3e@redhat.com> (raw)
In-Reply-To: <87zfn21gu6.fsf@tromey.com>
On 10/17/24 7:53 PM, Tom Tromey wrote:
> Guinevere> I am not a big fan of the registry subsystem, so I would prefer to
> Guinevere> keep it as a simple vector. However, if you are concerned about the
> Guinevere> opaqueness change, Tromey, I can try to make it more opaque. I just
> Guinevere> personally find that registry tends to make the code too opaque for
> Guinevere> programmers as well as the program itself :-)
>
> I think gdbarch is exposed to a lot of tdep code, and this code in
> particular to do questionable things. So, preserving some opacity makes
> sense to me.
Understandable. It didn't sound like you were that worried about it
previously, apologies for seemingly ignoring this feedback
>
> Guinevere> So if you want more separation, I would personally prefer to look into
> Guinevere> only receiving a copy of the unwinder list, and gdbarch is responsible
> Guinevere> for adding and removing things. Just let me know and I can give it a
> Guinevere> shot
>
> I think it would be more worthwhile to understand your objections to the
> registry. It seems to me that switching back to using it is just a
> couple of lines of code, so it makes me think there must be some pretty
> strong reason.
My main objection is in the form of "this feels like the type of magic
you don't want on the project". It feels like some very complicated
arcane code that causes things to seem much more complicated for new
contributors. I understand it is important in some cases, but in here it
seemed to me like making a registry that stores a standard library class
was just obfuscating the code for little gain.
I would propose that instead, the getter for the vector returns a const
reference (asserts if it is called before initialization). gdbarch would
then provide a "initialize_unwinders" method and a "add_unwinder"
method, but those should only be called by frame-unwind.c (and that
would be explicitly called out in the comments of those functions). This
follows a bit more the traditional object orientation route for handling
opaqueness, I believe, which would make it slightly easier to have new
contributors up to speed.
I know this isn't the strongets, so I understand if you want me to keep
the registry stuff.
--
Cheers,
Guinevere Larsen
She/Her/Hers
> Tom
>
next prev parent reply other threads:[~2024-10-18 17:40 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-01 18:42 [PATCH v5 0/5] Modernize frame unwinders and add disable feature Guinevere Larsen
2024-10-01 18:42 ` [PATCH v5 1/5] gdb: make gdbarch store a vector of frame unwinders Guinevere Larsen
2024-10-02 21:49 ` Thiago Jung Bauermann
2024-10-08 17:01 ` Guinevere Larsen
2024-10-03 18:33 ` Simon Marchi
2024-10-04 18:37 ` Tom Tromey
2024-10-12 1:34 ` Thiago Jung Bauermann
2024-10-14 18:18 ` Guinevere Larsen
2024-10-17 22:53 ` Tom Tromey
2024-10-18 17:40 ` Guinevere Larsen [this message]
2024-10-17 23:41 ` Tom Tromey
2024-10-01 18:42 ` [PATCH v5 2/5] gdb: add "unwinder class" to " Guinevere Larsen
2024-10-02 22:08 ` Thiago Jung Bauermann
2024-10-03 18:46 ` Simon Marchi
2024-10-08 18:22 ` Guinevere Larsen
2024-10-08 18:37 ` Simon Marchi
2024-10-01 18:42 ` [PATCH v5 3/5] gdb: Migrate frame unwinders to use C++ classes Guinevere Larsen
2024-10-03 0:23 ` Thiago Jung Bauermann
2024-10-09 18:16 ` Guinevere Larsen
2024-10-03 20:06 ` Simon Marchi
2024-10-04 5:21 ` Simon Marchi
2024-10-10 14:10 ` Guinevere Larsen
2024-10-10 16:28 ` Simon Marchi
2024-10-09 20:00 ` Guinevere Larsen
2024-10-01 18:42 ` [PATCH v5 4/5] gdb: introduce ability to disable frame unwinders Guinevere Larsen
2024-10-02 6:10 ` Eli Zaretskii
2024-10-04 17:57 ` Guinevere Larsen
2024-10-03 2:45 ` Thiago Jung Bauermann
2024-10-08 19:23 ` Guinevere Larsen
2024-10-06 2:51 ` Simon Marchi
2024-10-09 13:32 ` Guinevere Larsen
2024-10-09 15:38 ` Simon Marchi
2024-10-01 18:42 ` [PATCH v5 5/5] gdb/testsuite: Test for a backtrace through object without debuginfo Guinevere Larsen
2024-10-03 2:47 ` Thiago Jung Bauermann
2024-10-03 6:58 ` Gerlicher, Klaus
2024-10-09 14:56 ` Guinevere Larsen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=a9cd919a-3afb-4f2a-85cf-789a6365ee3e@redhat.com \
--to=guinevere@redhat.com \
--cc=gdb-patches@sourceware.org \
--cc=thiago.bauermann@linaro.org \
--cc=tom@tromey.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox