Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Andrew Cagney <ac131313@ges.redhat.com>
To: Daniel Jacobowitz <drow@mvista.com>
Cc: David Carlton <carlton@math.stanford.edu>,
	gdb-patches@sources.redhat.com
Subject: Re: [RFA] convert blocks to dictionaries, phase 1, main part
Date: Tue, 17 Sep 2002 11:44:00 -0000	[thread overview]
Message-ID: <3D877828.2050607@ges.redhat.com> (raw)
In-Reply-To: <20020917174928.GA23058@nevyn.them.org>


> Basically, at any point when you don't have a lot of temporary gunk.  I
> confess, I'm of two minds about working on a branch for this sort of thing:
> I consider it very impractical for things which don't break up into
> pieces easily afterwards.  GCC has been using an interesting approach,
> which I think we could adapt and extend here.

GCC's approach relies on GCC's development cycle: break, fix, release. 
You can only pull stuff in from those branches during the ``break'' 
phase.  And during that phase, things, from what I've seen, really are 
broken (I got stuck trying to commit a patch because I couldn't 
build/test GCC for several weeks).

I also, to be honest, think that GCC has bigger problems than GDB.  With 
GDB, the basic architecture is fine (if you look at the relationships 
and ignore all the globals and messed up interfaces :-).  GCC, on the 
other hand, needs some of its fundamental data structures and algorithms 
completly replaced.

> How about a branch which require approval just like the mainline for
> large patches, although giving David a little more freedom to play
> around.  Then, we'd allow large merges from the branch back to the
> trunk when they were ready and tested - larger patches than we'd
> normally accept all at once, because they'd already been approved.
> 
> Andrew - thoughts?  Does it have any interesting possibilities?

Let me put it this way, I'm scared shitless of another HP jumbo patch.

For GDB, I think change comes in two forms:

- external / structural / interface
- internal

Internal interfaces are the ones that can easily be broken down.  Since 
everything is hidden behind an interface nothing needs to know what 
happend (just as long as it still works :-).

External / structural / interface changes are harder.  For these, I 
think (based on regcache and reggroup) there can be several changes:

- proof of concept using a branch

I think each branch should be for a single experiment -> no approval 
required but all patches should be posted so everyone can see what is 
going down (and if they like point out problems).  The purpose being to 
explore the idea and figure out exactly what the interfaces should look 
like.  (See regcache branch where I changed the interface several times 
and now that its on the mainline, the interface is still evolving.)

While playing, you'll always identify stuff that can be immediatly 
pushed into the trunk.  The MIPS generic dummy frames pulled out a 
number of things that needed fixing.

- interface changes

Using the knowledge gained, implement a new interface, possibly 
implemented using existing structures.  This is often just big and 
mechanical.

Here, for instance, I think all the existing queries are based around 
``struct block''.  Abstract them and then, behind the scenes 
re-implement the underlying structure so that it does what it is really 
ment to do -- return the correct symbol given a block.

- change internals

Which would fill in the missing bits.  This and the interface changes 
often alternate (and occasionally there is a very large lumpy patch :-)

.

Branches, however, do also involve great risk.  Since there isn't that 
pressure to get things into the trunk, it is too easy to become 
defocused and change everything else and ignore the objective.

enjoy,
Andrew



  parent reply	other threads:[~2002-09-17 18:44 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-09-16 15:26 David Carlton
2002-09-16 15:30 ` David Carlton
2002-09-17  7:35 ` Daniel Jacobowitz
2002-09-17  9:03   ` Andrew Cagney
2002-09-17 10:43   ` David Carlton
2002-09-17 10:49     ` Daniel Jacobowitz
2002-09-17 11:34       ` David Carlton
2002-09-17 12:24         ` Andrew Cagney
2002-09-17 11:44       ` Andrew Cagney [this message]
2002-09-17 12:30         ` Daniel Jacobowitz
2002-09-17 12:49           ` Andrew Cagney
2002-09-17 13:32             ` Daniel Jacobowitz
2002-09-17 21:48             ` Daniel Berlin
2002-09-18  7:26               ` Andrew Cagney
2002-09-20  9:13             ` Jim Blandy
2002-09-17 12:59         ` Daniel Berlin
2002-09-17 13:13           ` Andrew Cagney
2002-09-17  9:29 ` Andrew Cagney
2002-09-17 11:04   ` David Carlton
2002-09-17 12:16     ` Andrew Cagney
2002-09-17 12:35       ` Daniel Jacobowitz
2002-09-17 12:46       ` David Carlton
2002-09-17 12:57         ` Andrew Cagney
2002-09-22 14:51           ` Jim Blandy
2002-09-17 12:54       ` Michael Snyder
2002-09-17 12:59       ` Daniel Berlin
2002-09-18  2:56       ` Richard Earnshaw
2002-09-18 14:07         ` Andrew Cagney
2002-09-19  3:14           ` Richard Earnshaw
2002-09-19  6:18             ` Elena Zannoni
2002-09-19  7:52               ` Richard Earnshaw
2002-09-19  7:51             ` Andrew Cagney
2002-09-22 14:41       ` Jim Blandy

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=3D877828.2050607@ges.redhat.com \
    --to=ac131313@ges.redhat.com \
    --cc=carlton@math.stanford.edu \
    --cc=drow@mvista.com \
    --cc=gdb-patches@sources.redhat.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