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
next prev 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