public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
* Re: Reenabling Ada by default
@ 2004-09-09 20:37 Richard Kenner
  2004-09-09 20:56 ` Robert Dewar
                   ` (4 more replies)
  0 siblings, 5 replies; 51+ messages in thread
From: Richard Kenner @ 2004-09-09 20:37 UTC (permalink / raw)
  To: ghazi; +Cc: gcc

    Grr, it's really frustrating that you use lack of expertise as an
    argument for maintaining your behavior.  

    So your argument doesn't wash and I see no reason you should feel
    entitled to behave differently than the rest of the community.

Just to be clear here that the "you" above does not apply to me personally
since I'm not one of the people making patches to the Ada front-end.  I do
work on the C part of the front end and the only reason why I don't check
them in directly is that it makes Arno's job harder when some changes from
the local tree are checked in and some aren't.

    One of the powerful ways people learn is by reading the patch list,
    *if* the patches follow our rules.  A self-contained patch with an
    explanation (and testcase if appropriate) is much easier to grok than
    a sterile jumbo batch.  You merely help maintain Ada's marginal status
    by keeping everything cloistered and the expertise all within ACT.

"Self-contained" is not nearly as easy as you think.  Ada is a quite large
language.  GNAT has been around for over a decade.  Although there are still
the occaisional "how did *that* ever work?" sort of bugs, most bugs found are
quite subtle and the amount of information needed to make their explanation
"self-contained" and understandable to people who aren't Ada experts is
large.

Neither Robert, Arno, or myself are saying this is impossible.  What I'm
saying is that the cost-benefit analysis of this is different from the
other front ends on both sides.  On the one side, the benefit of doing
it is far less because there isn't a set of people out there who are
eager to learn all about Ada (it would be nice if there *were*, but let's
be realistic!).  On the other, the cost is higher for the reasons
I've outlined.

    Also, "review" doesn't necessarily mean approve or reject.  Someone
    completely ignorant of Ada might simply catch a spelling mistake in a
    comment.  

Sure, but that can be done irrespective of whether they are one patch
or multiple in a message.

    Having the proper patch submission helps for posterity in case anyone
    needs to go back and examine it later.  The fact that ACT may have
    this information internally fails to help the rest of the world.

But the question, from a practical and realistic perspective, is whether this
information is really *useful* to the "rest of the world".  Who would want to
use it and for what purpose?  Before deciding to commit resources to
*produce* information, it's important to be sure there will be *consumers* of
that information.  And I don't see that.  The argument "if you make it, they
will come" doesn't seem that convincing to me in this case.

    Lot's of contributors work for companies that have customers, none of
    these customers use GCC head either.  When their customers report bugs
    against older versions of GCC, the patches are submitted correctly
    according to our rules and tested on every branch they are installed.

Arno tests patches with the latest branch. And I test my patches to the C
part of the front end with the latest branch as well.  The issue is the cost
of having *everybody* who develops front-end patches doing that as well.
You're talking about a dozen people here.

^ permalink raw reply	[flat|nested] 51+ messages in thread
* Re: Reenabling Ada by default
@ 2004-09-10 17:55 Richard Kenner
  2004-09-10 22:07 ` Phil Edwards
  0 siblings, 1 reply; 51+ messages in thread
From: Richard Kenner @ 2004-09-10 17:55 UTC (permalink / raw)
  To: gdr; +Cc: gcc

    | However, the front-end folks are continually 100% busy.

    Do you believe the GCC C, C++, Java and Fortran front-ends guys are
    not 100% busy?

There is a difference between being 100% busy while *already* doing something
and being 100% busy and *not* already doing it!  In the second case,
something else has to not be done while in the first that's not an issue.

^ permalink raw reply	[flat|nested] 51+ messages in thread
* Re: Reenabling Ada by default
@ 2004-09-10 11:58 Richard Kenner
  2004-09-10 14:11 ` Gabriel Dos Reis
  0 siblings, 1 reply; 51+ messages in thread
From: Richard Kenner @ 2004-09-10 11:58 UTC (permalink / raw)
  To: phil; +Cc: gcc

    I'm looking over the checkin rules, and I see a remarkable lack of
    "exceptions to the requirement of explainations are made because bugs were
    found using proprietary data".

    We all fix bugs using customer data.  We all manage to say what's going
    on without spilling their secrets.  So can you.

I was addressing *what* Arno is doing now and what the front end folks
are doing at this point.

Of course, it's possible to "manage" to construct sanitized test cases, but
as somebody else in this thread said, that can often take "great effort".
Nobody disagrees that in an ideal world, that would be a good thing to do.
Please don't create a strawman argument where somebody is claiming that
wouldn't be a good idea.

However, the front-end folks are continually 100% busy.  If that "great
effort" is to take place, it means they will have to do it instead of
something else they are currenty doing.  The question is, what is that?

^ permalink raw reply	[flat|nested] 51+ messages in thread
* Re: Reenabling Ada by default
@ 2004-09-10  5:39 Richard Kenner
  2004-09-10  6:14 ` Phil Edwards
  0 siblings, 1 reply; 51+ messages in thread
From: Richard Kenner @ 2004-09-10  5:39 UTC (permalink / raw)
  To: ghazi; +Cc: gcc

    Pointing out one small facet of compliance is irrelevant, there are
    *additional* requirements which are not being met.

Yes, I understand there are some things missing in Arno's procedure.
What I was trying to point out was that it was not as many things
as had been claimed.

    You are also required to explain IN PROSE what you are doing and WHY.

The WHY gets deleted by Arno's procedure because it references
customer data.

^ permalink raw reply	[flat|nested] 51+ messages in thread
* Re: Reenabling Ada by default
@ 2004-09-10  4:38 Richard Kenner
  2004-09-10  4:55 ` Kaveh R. Ghazi
  0 siblings, 1 reply; 51+ messages in thread
From: Richard Kenner @ 2004-09-10  4:38 UTC (permalink / raw)
  To: ghazi; +Cc: gcc

    Easy.  These are the last four patches sibmitted by Arno submitted
    over the last month.  Note they don't occur on a daily basis as
    previously claimed.

The claim was that they are submitted on a daily basis *when the tree
isn't broken for Ada*.  There were not that many such days in the last month!

    They are all just ChangeLogs and attached gzip files.  There is no
    explanation of what's being changed or why.  This is entirely opaque.

The ChangeLog says what's being changed, as required.

^ permalink raw reply	[flat|nested] 51+ messages in thread
* Re: Reenabling Ada by default
@ 2004-09-10  3:12 Richard Kenner
  0 siblings, 0 replies; 51+ messages in thread
From: Richard Kenner @ 2004-09-10  3:12 UTC (permalink / raw)
  To: paul; +Cc: gcc

    It shouldn't make any difference if the patch submitter has maintainer 
    privileges or not. IMHO patches should always submitted as if someone else 
    was going to review them.

Sure, but that's not what I meant.  What I meant is that there is no prior
"discussion" of those patches, so there is no issue of whether such
non-discussion is "secret" or not.

^ permalink raw reply	[flat|nested] 51+ messages in thread
* Re: Reenabling Ada by default
@ 2004-09-10  2:18 Richard Kenner
  2004-09-10  5:19 ` Phil Edwards
  0 siblings, 1 reply; 51+ messages in thread
From: Richard Kenner @ 2004-09-10  2:18 UTC (permalink / raw)
  To: giovannibajo; +Cc: gcc

    For sure, the *only* reason why I learnt GCC enough to submit patches
    and have them approved is because there was a public gcc-patches list.

I'm missing your point.  Nobody has suggested taking the Ada patches off
the gcc-patches list.

^ permalink raw reply	[flat|nested] 51+ messages in thread
* Re: Reenabling Ada by default
@ 2004-09-10  1:52 Richard Kenner
  2004-09-10  2:18 ` Paul Brook
  2004-09-10  5:08 ` Richard Henderson
  0 siblings, 2 replies; 51+ messages in thread
From: Richard Kenner @ 2004-09-10  1:52 UTC (permalink / raw)
  To: rth; +Cc: gcc

    The internet is a large enough place that I expect at least copies
    of gcc and its mail archives to exist until the global apocalypse.
    I do not expect the same to be true for any given corporation.

Sure, but I don't understand what data you are talking about losing.
There are three potential types of data:

(1) patches
(2) test cases
(3) discussions of patches

Patches are available via either CVS or the gcc-patches list whether they
are batched or not.

We've spoken about test cases before.

#3 is the trickier one.  But what's important to realize is that for the vast
majority of patches, there's no data of that kind anywhere.  Most of the
patches you do are in the same category: the only "discussion" is within your
own skull.

For the small fraction where that's not the case, there is usually an
additional difficulty in publicizing that discussion that hasn't been
addressed here yet and it's not just a resource issue.

A discussion of a bug will, by its nature, refer to the customer test case,
which cannot be made public.  Sure, it's possible to "sanitize" that test
case, but usually not until the bug has been understood, which is *after*
those discussions.  Even when it can be sanitized earlier, requiring it be
done before the discussions take place in order to allow them to occur in
public will put an additional item on the critical path for the customer to
have their bug fixed.  That's a serious problem.

So can you be a little more specific about what data you are concerned about
being preserved?

    The policy of the gcc community is that patch discussion, approval,
    and application happens in a particular manner.  

Sure, but that "manner" is significantly different when somebody with
maintainer privilege on a part of the compiler is doing the patch, as would
be the case with all ACT folks patching the front end, vs. somebody who
doesn't have such a privilege.  And what Arno is doing is really not all
that much different than that procedure: basically all that's happening is
that he's acting as a surrogate for the other people.

^ permalink raw reply	[flat|nested] 51+ messages in thread
* Re: Reenabling Ada by default
@ 2004-09-09 22:17 Richard Kenner
  0 siblings, 0 replies; 51+ messages in thread
From: Richard Kenner @ 2004-09-09 22:17 UTC (permalink / raw)
  To: gdr; +Cc: gcc

    Form experience and the cases I know of, huge efforts are made to
    identify freely accessible data that could be the base of patch
    reviews or testcases or benchmarcks.  After that, the rest of the
    review process is made public on GCC list.

But that "huge effort" is exactly the point.  The amount of time that
can be justified to put into that effort is a strong function of the
number of people that would benefit from that effort.  And that relates
to the fraction of developers of that part of the compiler who are not
from the organization that developed that patch.  The larger that fraction,
the more work one can justify on making testcases accessible.  And that
fraction is very different for the Ada front end than the rest of GCC.

^ permalink raw reply	[flat|nested] 51+ messages in thread
* Re: Reenabling Ada by default
@ 2004-09-09 22:12 Wolfgang Bangerth
  0 siblings, 0 replies; 51+ messages in thread
From: Wolfgang Bangerth @ 2004-09-09 22:12 UTC (permalink / raw)
  To: gcc, kenner


Richard Kenner wrote:
> Kaveh Ghazi wrote:
>>    One of the powerful ways people learn is by reading the patch list,
>>    *if* the patches follow our rules.  A self-contained patch with an
>>    explanation (and testcase if appropriate) is much easier to grok than
>>    a sterile jumbo batch.  You merely help maintain Ada's marginal status
>>    by keeping everything cloistered and the expertise all within ACT.
>
> "Self-contained" is not nearly as easy as you think.  Ada is a quite large
> language.  GNAT has been around for over a decade.  Although there are still
> the occaisional "how did *that* ever work?" sort of bugs, most bugs found
> are quite subtle and the amount of information needed to make their
> explanation "self-contained" and understandable to people who aren't Ada
> experts is large.

The argument about the size of the language can also be made for C++. 
Nevertheless, we have a good number of people who know it.


> Neither Robert, Arno, or myself are saying this is impossible.  What I'm
> saying is that the cost-benefit analysis of this is different from the
> other front ends on both sides.  On the one side, the benefit of doing
> it is far less because there isn't a set of people out there who are
> eager to learn all about Ada (it would be nice if there *were*, but let's
> be realistic!).  On the other, the cost is higher for the reasons
> I've outlined.

I think the case Kaveh was making is actually quite powerful: when gcc became 
egcs, with its open development model, it drew in a surprising number of 
people. The possibility to read patches and participate in the development 
seems to be so attractive that the project as a whole benefits. From my own 
experience in the last two years, almost all my co-bugmasters except for me 
have eventually ventured into writing first small patches for small problems, 
but at least two (Giovanni and Andrew) have gone on to tackle larger 
projects. There are also likely people in the gcc project who are not users 
of C++, but over time have acquired enough knowledge of the C++ front end to 
make the occasional change. On the other hand, some of us probably still 
remember that the development model pre-egcs eventually broke down due to 
lack of manpower.

This historical precedent seems to indicate that a more open approach can draw 
in developers. Assume Ada development was more transparent, with smaller and 
more easily understandable patches being sent, and a lively discussion about 
them. Even occasional readers of these messages would gain some knowledge of 
the way the Ada front end works, and they may try to accasionally run the Ada 
testsuite and fix something in it.

Most would agree that Ada is a good language, and I could imagine many would 
play around with it a little if you could get them more interested in it. 
Offer them pieces of information to get hooked, in the form of small patches. 
It may increase the number of people who care about Ada and help out in its 
development. Big bulk patches, on the other hand, are certainly not what gets 
Ada front end beginners drawn in.

W.

-------------------------------------------------------------------------
Wolfgang Bangerth              email:            bangerth@ices.utexas.edu
                               www: http://www.ices.utexas.edu/~bangerth/

^ permalink raw reply	[flat|nested] 51+ messages in thread
* Re: Reenabling Ada by default
@ 2004-09-09 21:36 Richard Kenner
  2004-09-09 22:06 ` Duncan Sands
  0 siblings, 1 reply; 51+ messages in thread
From: Richard Kenner @ 2004-09-09 21:36 UTC (permalink / raw)
  To: baldrick; +Cc: gcc

    There are also bugs in the run-time library.  They are often easier to
    understand than those in the compiler proper: no great expertise is
    needed.

Actually, from my own experience I find it quite the opposite!  The
RTS implements the trickiest parts of the language.

^ permalink raw reply	[flat|nested] 51+ messages in thread
* Re: Reenabling Ada by default
@ 2004-09-09 19:01 Richard Kenner
  2004-09-09 19:17 ` Zack Weinberg
  2004-09-09 19:40 ` Kaveh R. Ghazi
  0 siblings, 2 replies; 51+ messages in thread
From: Richard Kenner @ 2004-09-09 19:01 UTC (permalink / raw)
  To: zack; +Cc: gcc

[Moved to GCC from gcc-patches.]

    ANY kind of batching is unacceptable.  Each individual patch needs to
    be submitted for review by its original author, reviewed in public,
    and checked in by itself.  This is the commit policy which every other
    contributor to GCC adheres to.  I do not see why the Ada front end
    should be a special case.

It has very different properties in terms of the way work is done on it
than any other part of GCC.  There are two major differences (and a
bunch of minor ones):

(1) The set of people who modify it is very localized.  There are extremely
few (perhaps no) people on this list outside of ACT/ACTE who are knowlegable
enough to make Ada front-end modifications (I'm talking here about the Ada
part and not including myself in that set despite being part of ACT).  There
would be nothing gained by making patches available for "review" on this
list, since there are few, if any, people on the list that could review them.
That's also somewhat true for front ends such as Java and Fortran, but the
number of people working on them is far smaller.

(2) Because Ada users are very conservative, they are not using recent
versions of GCC and the front-end developers must do their testing on the GCC
versions being used by the people who report the bugs.  Since committing the
patch to the FSF tree requires testing using the latest version of GCC, that
doubles the testing time.  For the other front-ends, developers mostly use the
head version of GCC.

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

end of thread, other threads:[~2004-09-12 22:12 UTC | newest]

Thread overview: 51+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-09-09 20:37 Reenabling Ada by default Richard Kenner
2004-09-09 20:56 ` Robert Dewar
2004-09-09 20:57   ` Florian Weimer
2004-09-09 21:04     ` Robert Dewar
2004-09-12  2:46     ` Per Bothner
2004-09-12 12:29       ` Andrew Haley
2004-09-12 14:15       ` Florian Weimer
2004-09-12 14:41         ` Robert Dewar
2004-09-12 17:48         ` Tom Tromey
2004-09-12 23:39         ` Per Bothner
2004-09-09 21:19   ` Eric Christopher
2004-09-09 21:45     ` Robert Dewar
2004-09-09 22:25       ` Gabriel Dos Reis
2004-09-10  0:29       ` Giovanni Bajo
2004-09-09 21:26 ` Duncan Sands
2004-09-09 21:57   ` Robert Dewar
2004-09-10  3:50     ` Kaveh R. Ghazi
2004-09-09 22:50 ` James A. Morrison
2004-09-09 22:54   ` Joseph S. Myers
2004-09-09 23:08   ` Robert Dewar
2004-09-09 23:29     ` Daniel Jacobowitz
2004-09-10 16:17     ` James A. Morrison
2004-09-09 23:07 ` Richard Henderson
2004-09-09 23:23 ` Kaveh R. Ghazi
  -- strict thread matches above, loose matches on Subject: below --
2004-09-10 17:55 Richard Kenner
2004-09-10 22:07 ` Phil Edwards
2004-09-10 11:58 Richard Kenner
2004-09-10 14:11 ` Gabriel Dos Reis
2004-09-10  5:39 Richard Kenner
2004-09-10  6:14 ` Phil Edwards
2004-09-10  4:38 Richard Kenner
2004-09-10  4:55 ` Kaveh R. Ghazi
2004-09-10  3:12 Richard Kenner
2004-09-10  2:18 Richard Kenner
2004-09-10  5:19 ` Phil Edwards
2004-09-10  1:52 Richard Kenner
2004-09-10  2:18 ` Paul Brook
2004-09-10  5:08 ` Richard Henderson
2004-09-09 22:17 Richard Kenner
2004-09-09 22:12 Wolfgang Bangerth
2004-09-09 21:36 Richard Kenner
2004-09-09 22:06 ` Duncan Sands
2004-09-09 19:01 Richard Kenner
2004-09-09 19:17 ` Zack Weinberg
2004-09-09 19:22   ` Robert Dewar
2004-09-09 19:40     ` Zack Weinberg
2004-09-09 19:41       ` Robert Dewar
2004-09-09 19:56     ` Diego Novillo
2004-09-09 20:04     ` Andrew Haley
2004-09-09 22:10     ` Gabriel Dos Reis
2004-09-09 19:40 ` Kaveh R. Ghazi

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).