Re: [RFC/RFA] add struct parse_context to all command functions

Thiago Jung Bauermann
2008-10-20T19:03:20Z

El lun, 20-10-2008 a las 09:16 -0700, Joel Brobecker escribiÃ³:
> Har har har, I should be able to be active again soon :-)

Hooray. :-)

> So we have 3 alternatives:
>
> 1. All command functions receive the parse_context structure.
> Do the transition all at once.
>
> 2. All command functions should receive the parse_context structure.
> Do the transition gradually by introducing a set of "old_add_..."
> functions that allow to hook command functions that have the old
> profile.
>
> 3. Only the command functions that needed it would be passed
> the parse_context. Add a second set of add_... routines
> to hook these command functions.
>
> I am 50/50 on (1) and (3). I like (2) a little less. Long term,
> I think I prefer (1), but it's more painful in the short term.
> I don't mind taking the initial hit, but other's opinion welcome.

Is there any difference between (2) and (3) other than having the second
set of ad__... routines have a prettier name in (3) than they'd have in
(2)?

You could do (3) first and then stop there, or use it as an intermediate
step to get to (1).

THe problem with (3) is that you make the code slightly more complex by
adding an additional add_*_cmd that the GDB hacker will have to learn
about.

The advantage is that you can avoid writing functions with argument
they'll never use. I mention this because the ProjectIdeas wiki page
mentions that it's desirable to have GDB compile with -Wunused.

IMHO I prefer to use (3) and have the option of using the -Wunused later
(not that I'm stepping up to the task! :-) ).

> Perhaps it's another bikeshed discussion, in which case let me know,
> and I'll just decide on my own.

Perhaps it is. It took me a while to decide which I thought was better,
and then again I don't feel strong about either option.

> It's just that it's such a large change
> that I want to make sure I won't screw anyone up.

Right, I'd also want input and some assurance before doing all this
work...
--
[]'s
Thiago Jung Bauermann
IBM Linux Technology Center