Re: [patch/rfc] Simplify target stack

Daniel Jacobowitz
2003-10-23T03:58:46Z

On Thu, Oct 16, 2003 at 08:21:36PM -0400, Andrew Cagney wrote:
> >I believe that the objectives here are:
> >>
> >>1. being able to directly walk the target chain
> >>Makes it possible to eliminate the INHERIT mess. Lets targets
> >>efficiently/directly interact with target-beneath.
> >>
> >>2. allow multiple instances of a specific target
> >>So that more than one target stack is possible.
> >>
> >>3. strict separation of target instance and target ops
> >>See below.
> >>
> >>In terms of priority, I rank them as above.
> >
> >
> >But we already _have_ a separation of target instance and target ops.
> >It's struct target_stack_item. It's your cleanup right there, waiting
> >to happen. Removing it is not a step forwards; you can just change to
> >passing that item around instead of struct target_ops. If you want a
> >different name, rename it. Not everywhere will need to be converted,
> >obviously - only things which want the new data.
>
> What you're casually dismissing as trivial: "Not everywhere will need to
> be converted" and "Eventually, with low urgency, the non-ops should be
> moved out of it" are exactly the things I also need *now*.
>
> Given this, folding the two structures into-one provides me with the
> shortest path to this objective.
>
> >Just because you can avoid doing it now doesn't mean that's OK. You
> >tell that to other developers at every opportunity.
>
> And given a set of alternatives I'll take the one with the greatest bang
> for the buck.

Please don't pretend I'm the only one on this list who has asked for a
contributor to take the longer way to a goal, in light of later
cleanups. This is standard practice for keeping the code maintainable,
and evolving towards improved organization.

I see that you've checked this patch in despite my objections. Please
let me know when you're done with modifying the target vector for a few
days and I'll just separate instance and ops myself, including moving
the new to_beneath and to_data fields out of struct target_ops.

--
Daniel Jacobowitz
MontaVista Software Debian GNU/Linux Developer