public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
* Re: source mgt. requirements solicitation
@ 2002-12-18  9:07 Robert Dewar
  2002-12-18  9:48 ` Linus Torvalds
  0 siblings, 1 reply; 67+ messages in thread
From: Robert Dewar @ 2002-12-18  9:07 UTC (permalink / raw)
  To: pop, torvalds; +Cc: gcc, velco, zack

> I think parsing is underrated

Just for interest, do you include static semantic analysis in your
definition of parsing (it is very unusual to do so, but I have noticed
a tendency to this unusual usage in the gcc world).

^ permalink raw reply	[flat|nested] 67+ messages in thread
* Re: source mgt. requirements solicitation
@ 2002-12-18 17:33 Robert Dewar
  0 siblings, 0 replies; 67+ messages in thread
From: Robert Dewar @ 2002-12-18 17:33 UTC (permalink / raw)
  To: torvalds, velco; +Cc: gcc, zack

> To paraphrase, programming is often 1% inspiration and 99% perspiration.
> 
> In short, your argument is elitist and simply _wrong_.  It's true that to
> create a whole compiler you need a whole lot of knowledge, but that's true
> of any project - including operating systems. But that doesn't matter,
> because there isn't "one" person who needs to know everything.

I must disagree here. In the case of compilers 1% inspiration and
99% perspiration is simply not enough. You need in addition a good
understanding of complex data structures and algorithms, as well as
a level of knowledge of the languages involved that goes far beyond
what most programmers have, as well as a knowledge of specific compiler
issues.

> Blaah. I _bet_ that is not true.

Remember just what (in your inimitable style :-) you are saying is not
true. You are saying that it is not necessary that working on a compiler
requires knowledge. I find that a pretty extreme (and definitely incorrect
viewpoint).

> I didn't understand the whole compiler, BUT THAT DID NOT MATTER. The same
> way that most Linux kernel developers don't understand the whole kernel,
> and do not even need to.  Sure, you need people with specialized knowledge
> for specialized areas (designing the big picture etc), but that's a small
> small part of it.

Sure there are parts of any code that can be attacked and modified using
a kind of pattern matching approach (well look here, this built in was
done that way, so presumably I can add another built in this way), but
I certainly hope you do not try to attack complex optimization circuits
this way.

If you tell me that working on the kernel requires no knowledge, fine, I
accept your extensive experience here, but I don't think you begin to have
the perspective to extend this judgment to the realm of compilers :-)

^ permalink raw reply	[flat|nested] 67+ messages in thread
* Re: source mgt. requirements solicitation
@ 2002-12-18  9:58 Robert Dewar
  0 siblings, 0 replies; 67+ messages in thread
From: Robert Dewar @ 2002-12-18  9:58 UTC (permalink / raw)
  To: dewar, torvalds; +Cc: gcc, pop, velco, zack

> The fact is, the "big" things get a lot of mental attention, because they
> are sexy from a development standpoint, so people tend to think about hard
> problems like register allocation when they think about "compiler
> development". But I don't really think the big things are even as
> important as getting all the little things right.

I absolutely agree with this, and indeed if you are involved in a commercial
compiler company as I am, you know this from every day experience. We do not
get many customers complaining about register allocation :-)

> Don't get me wrong - gcc has made _major_ strides in things like C++ and
> Ada support, but maybe one source management approach would be to actually
> split off the languages somewhat, and make development easier by having
> fewer dependencies (not worrying about breaking C++ when doing Java,
> making bootstraps faster etc).

I also agree with this point.

^ permalink raw reply	[flat|nested] 67+ messages in thread
* Re: source mgt. requirements solicitation
@ 2002-12-18  9:35 Robert Dewar
  0 siblings, 0 replies; 67+ messages in thread
From: Robert Dewar @ 2002-12-18  9:35 UTC (permalink / raw)
  To: shebs, torvalds; +Cc: gcc, velco, zack

>But gcc development not only has the "CVS mentality", it has
>the "FSF disease" with the paperwork crap and copyright assignment crap.
>

Gosh, let's hope that this is indeed correct (and that taking care to get
IPR in good shape is crap) but I must say I worry a lot about projects
that do not follow this mentality, I think the possible exposures are
severe. Still, off topic for this list I suppose.

^ permalink raw reply	[flat|nested] 67+ messages in thread
* Re: source mgt. requirements solicitation
@ 2002-12-18  9:22 Robert Dewar
  0 siblings, 0 replies; 67+ messages in thread
From: Robert Dewar @ 2002-12-18  9:22 UTC (permalink / raw)
  To: pop, torvalds; +Cc: gcc, velco, zack

> Compilers are complicated, no doubt about that, but the complicated stuff
> tends to be mostly of the same type (ie largely fairly algorithmic
> transformations for the different optimization passes). In kernels, you
> have many _different_ kinds of issues, and as a result you'll find more
> people who are interested in one of them. So you'll find people who care
> about filesystems, or people who care about memory management, or people
> who find it interesting to do concurrency work or IO paths.

Right, and the interesting things is that, by careful design, these
kinds of issues are almost completely orthogonal, so that for example,
it is fine to work on a file system knowing nothing about process
management at the low level (well not 100% fine, but close to it).

My experience is that in compilers, things tend to be much more interlinked,
especially when dealing with complex languages, so local changes without
a full understanding of the semantic environment often have unexpected
consequences. Nevertheless there are still some well defined break downs
(e.g. front end vs back end vs run time library).

^ permalink raw reply	[flat|nested] 67+ messages in thread
* Re: source mgt. requirements solicitation
@ 2002-12-18  9:06 Robert Dewar
  0 siblings, 0 replies; 67+ messages in thread
From: Robert Dewar @ 2002-12-18  9:06 UTC (permalink / raw)
  To: pop, velco; +Cc: gcc, torvalds, zack

> Maybe it's true because for writing compiler optimizations one 
> should have some knowledge in mathematics.  Most of the new techniques 
> developped for optimizing compilers use abstract representations 
> based on mathematical objects (such as graphs, lattices, vectorial spaces, 
> polyhedras, ...)

Indeed, and the model of miscelleaneous local tinkering with a compiler
by people who do not know the entire environment is a risky one.

^ permalink raw reply	[flat|nested] 67+ messages in thread
* Re: source mgt. requirements solicitation
@ 2002-12-15 18:29 Nathanael Nerode
  0 siblings, 0 replies; 67+ messages in thread
From: Nathanael Nerode @ 2002-12-15 18:29 UTC (permalink / raw)
  To: gcc

Linus said:
>Naah. It's simple - kernels are just sexier.
That I believe. :-)

>Seriously, I think it's just that a kernel tends to have more different
>_kinds_ of problems, and thus tend to attract different kinds of 
>people, and more of them.
I really don't think so.  A kernel has more easy problems, in a 
certain sense: more problems that can be started by people with little 
background.  A compiler has *lots* of different types of problems, but 
they're almost all rather complicated and hard to start on, for a reason 
I mention at the end of this.

>people who are interested in one of them. So you'll find people who 
>care about filesystems, 
We got that in compilers...

>or people who care about memory management, or 
We got that...

>people who find it interesting to do concurrency work
We got that...

>or IO paths.
We got that...

Heh.  I think the real reason why fewer people work on compilers is 
one of abstraction.  To oversimplify, a kernel just *does* things.  
A compiler is one level more abstract; it takes input and converts it 
into code which does things.  It takes some practice to get comfortable 
with, and good at, that style of coding, and it's significantly harder 
to debug.  While I'm sure there's some kernel code like that, *most* 
compiler code is like this.  Given GCC's design, we even have two 
levels of abstraction: the build system compiles and runs programs 
to generate a compiler for a specific host-target pair.  This is code 
to generate code to generate code.

--Nathanael

^ permalink raw reply	[flat|nested] 67+ messages in thread
* Re: source mgt. requirements solicitation
@ 2002-12-14 20:16 Nathanael Nerode
  2002-12-14 21:34 ` Linus Torvalds
  0 siblings, 1 reply; 67+ messages in thread
From: Nathanael Nerode @ 2002-12-14 20:16 UTC (permalink / raw)
  To: gcc

Linus said:
>But the point is, the "CVS mentality" means that a fork is harder to 
>merge than a branch, and you often lose all development history when 
>you merge a
>fork as a result of this (yeah, you can do a _lot_ of work, and try to
>also merge the SCM information on a fork merge, but it's almost never 
>done because it is so painful).
In GCC, we've been known to lose development history when we merge a 
branch, and merging branches has been incredibly painful.  So I'm not
sure merging forks is actually harder; merging branches may be. ;-)  

Fork merges get submitted as a series of patches (which then need to get 
approved), and associated ChangeLog entries.  They go in pretty cleanly.  
The fork developer can track his/her own internal change history however 
he or she likes, but generally will submit an 'expurgated' history for 
merging, devoid of the false starts, which makes the patches a lot easier 
to review.  This is in fact an argument in favor of losing 
development history.  ;-D

>And the "CVS mentality" totally makes that impossible. Subversion seems 
>to be only a "better CVS", and hasn't gotten away from that mentality, 
>which is sad.
Well, Subversion aims only to be a "better CVS", according to its 
mission statement.  Frankly, a 'better CVS' would help a lot, for GCC.
The GCC development plan actively encourges the use of branches for most 
development (as opposed to bug fixes).  But CVS makes it less than easy 
and less than fast.

In addition, CVS makes setting up an anonymously accessible repository 
into a pain in the neck; in this case 'forking' to your own repos has a 
stupid and unnecessary overhead.  Theoretically this should be easier 
with Subversion, so there should be more private repositories floating 
around.

I think that there are a few very small features which would make 
Subversion fairly effective for the typical use case of "I have a 
branch, I track a particular 'mainline', and intermittently I merge into 
the mainline", even if the 'branch' is in a different repos from the 
'mainline', and the 'mainline' is a branch.  But I said that on the svn 
list...

>Yet it is the _cheap_ branches that should be the true first-class
>citizen. Potentially throw-away code that may end up being really 
>really useful, but might just be a crazy pipe-dream. The experimental 
>stuff that would _really_ want to have nice source control.

Interestingly, I tend to find that this sort of stuff is exactly what
*doesn't* need source control; source control simply obscures the 
process by exposing too much development history, much of which has no 
relevance to the current version.  Or did you mean code that already 
works, and is being refined, rather than code in the 'rewrite from 
scratch every two weeks' stage?

--Nathanael

^ permalink raw reply	[flat|nested] 67+ messages in thread
* Re: source mgt. requirements solicitation
@ 2002-12-12  6:43 Robert Dewar
  0 siblings, 0 replies; 67+ messages in thread
From: Robert Dewar @ 2002-12-12  6:43 UTC (permalink / raw)
  To: phil, zack; +Cc: gcc, jsm28, wlandry

> Heh.  I never thought I'd hear that term applied to software development.
> I like it.
> 

(term = centripetal)

Perhaps that's because the image/allusion is entirely unclear :-)

^ permalink raw reply	[flat|nested] 67+ messages in thread
* Re: on reputation and lines and putting things places (Re: gcc branches?)
@ 2002-12-08  7:13 Robert Dewar
  2002-12-08 14:18 ` source mgt. requirements solicitation Tom Lord
  0 siblings, 1 reply; 67+ messages in thread
From: Robert Dewar @ 2002-12-08  7:13 UTC (permalink / raw)
  To: dewar, lord; +Cc: gcc

> That's pretty much what I'd guessed.  I'll reiterate: you go girl!
> That's cool.  I admire you.  Human scaled, competent, successful:
> neat!  Sheesh.  Are you just flipping out over my use of the word
> "dinky"?

No, it is just the entire style of your presentation.

> I've started to believe that there is no variation on advocacy that
> could possibly succeed given presumptions such as you have exhibited.
> It is interesting to try to trace those presumptions back to their
> origins (*cough*cygnus).  Yet another "bash on Tom" day, I guess.

I would tend to agree if it is you doing the advocacy. My best advice,
find someone who knows how to approach other people successfully.

> I don't know much at all about ACT

So I see :-)

> I'm "not talking to" ACT because, at your scale, my R&D funding needs
> are too big for you and not central enough to your mission.

Well how do you know? Given the previous quote?
In fact CM and revision control systems are quite critical to many of our
customers. We have several customers managing systems with tens of thousands
of files and millions of lines of code. Remember that the niche Ada occupies
is large scale mission critical systems.

Perhaps you are missing an opportunity here, though I must say the phrase
"my R&D" funding needs is worryingly personal, and as I said earlier, if
the intent of this thread was to encourage people to look at arch, it
has not worked with me.

^ permalink raw reply	[flat|nested] 67+ messages in thread

end of thread, other threads:[~2002-12-19  0:46 UTC | newest]

Thread overview: 67+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-12-18  9:07 source mgt. requirements solicitation Robert Dewar
2002-12-18  9:48 ` Linus Torvalds
2002-12-18 10:11   ` Phil Edwards
  -- strict thread matches above, loose matches on Subject: below --
2002-12-18 17:33 Robert Dewar
2002-12-18  9:58 Robert Dewar
2002-12-18  9:35 Robert Dewar
2002-12-18  9:22 Robert Dewar
2002-12-18  9:06 Robert Dewar
2002-12-15 18:29 Nathanael Nerode
2002-12-14 20:16 Nathanael Nerode
2002-12-14 21:34 ` Linus Torvalds
2002-12-12  6:43 Robert Dewar
2002-12-08  7:13 on reputation and lines and putting things places (Re: gcc branches?) Robert Dewar
2002-12-08 14:18 ` source mgt. requirements solicitation Tom Lord
2002-12-08 14:56   ` DJ Delorie
2002-12-08 15:02     ` David S. Miller
2002-12-08 15:45       ` Bruce Stephens
2002-12-08 16:52         ` David S. Miller
2002-12-08 15:11     ` Bruce Stephens
2002-12-08 16:24       ` Joseph S. Myers
2002-12-08 16:47         ` Tom Lord
2002-12-08 22:20           ` Craig Rodrigues
2002-12-08 16:09   ` Phil Edwards
2002-12-08 19:13     ` Zack Weinberg
2002-12-09 10:33       ` Phil Edwards
2002-12-09 11:06       ` Joseph S. Myers
2002-12-09  9:42         ` Zack Weinberg
2002-12-09 11:00           ` Jack Lloyd
2002-12-09 15:10     ` Walter Landry
2002-12-09 15:27       ` Joseph S. Myers
2002-12-09 17:05         ` Walter Landry
2002-12-09 17:10           ` Joseph S. Myers
2002-12-09 18:27             ` Walter Landry
2002-12-09 19:16               ` Joseph S. Myers
2002-12-10  0:27                 ` Zack Weinberg
2002-12-10  0:41                   ` Tom Lord
2002-12-10 12:05                   ` Phil Edwards
2002-12-10 19:44                   ` Mark Mielke
2002-12-10 19:57                     ` David S. Miller
2002-12-10 20:02                       ` Phil Edwards
2002-12-10 23:07                         ` David S. Miller
2002-12-11  6:31                           ` Phil Edwards
2002-12-14 13:43                   ` Linus Torvalds
2002-12-14 14:06                     ` Tom Lord
2002-12-14 17:44                       ` Linus Torvalds
2002-12-14 19:45                         ` Tom Lord
2002-12-14 14:41                     ` Neil Booth
2002-12-14 15:47                       ` Zack Weinberg
2002-12-14 15:33                     ` Momchil Velikov
2002-12-14 16:06                       ` Linus Torvalds
2002-12-15  3:59                         ` Momchil Velikov
2002-12-15  8:26                         ` Momchil Velikov
2002-12-15 12:02                           ` Linus Torvalds
2002-12-15 14:16                             ` Momchil Velikov
2002-12-15 15:20                               ` Pop Sébastian
2002-12-15 16:09                                 ` Linus Torvalds
2002-12-15 16:49                                   ` Bruce Stephens
2002-12-15 16:59                                     ` Linus Torvalds
2002-12-15 18:10                                       ` Bruce Stephens
2002-12-16  8:32                                       ` Diego Novillo
2002-12-17  3:36                                         ` Pop Sébastian
2002-12-17 13:14                                           ` Tom Lord
2002-12-16 17:22                                   ` Mike Stump
2002-12-15 17:09                         ` Stan Shebs
2002-12-09 17:50           ` Zack Weinberg
2002-12-11  1:11         ` Branko Čibej
2002-12-08 18:32   ` Joseph S. Myers
2002-12-11  2:48     ` Branko Čibej

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).