Re: GCC 7.0.0 Status Report (2016-10-21)

2016-10-26 Thread Richard Biener
On Tue, Oct 25, 2016 at 9:41 PM, Toon Moene  wrote:
> On 10/25/2016 10:16 AM, Richard Biener wrote:
>
>> On Mon, Oct 24, 2016 at 10:20 PM, Toon Moene  wrote:
>
>
>>> Note that I haven't found the time to implement the vectorization of
>>> log/exp/sin/cos/tan functions that I described here:
>>>
>>> https://gcc.gnu.org/ml/gcc/2016-01/msg00039.html
>>
>>
>> It works transparently already if you have recent glibc which adds
>> the appropriate attribute to the math function prototypes (basically
>> one release after the release that first implemented the routines
>> though the required patch is trivial to backport as well).
>
>
> But that is for code that read math function prototypes in C style .h files
> - so not for Fortran or Ada.
>
> That was the purpose of my proposal: to treat glibc vectorized
> log/exp/sin/cos/tan functions like the vendor specific once
> (-mveclibabi=svml and -mveclibabi=acml), which is front end language
> agnostic.

Ah, indeed.  Not sure if I would go the -mveclibabi route though as
the glibc implementation is basically OpenMP-SIMD.  The list of
"vectorized" functions may also depend on glibc version and target
so maybe glibc can ship something like a fortran math module
which gfortran can include transparently?  Like we have the predefs
header in C?  That is, glibc needs a way to communicate its
configuration to fortran... (not sure if a GCC configure time config
would be good enough)

Richard.


Re: History of GCC

2016-10-26 Thread Ian Lance Taylor
On Tue, Oct 25, 2016 at 10:53 PM, Will Hawkins  wrote:
>
> My name is Will Hawkins and I am a longtime user of gcc and admirer of
> the project. I hope that this is the proper forum for the question I
> am going to ask. If it isn't, please accept my apology and ignore me.
>
> I am a real geek and I love the history behind open source projects.
> I've found several good resources about the history of "famous" open
> source projects and organizations (including, but definitely not
> limited to, the very interesting Free as in Freedom 2.0).
>
> Unfortunately there does not appear to be a good history of the
> awesome and fundamental GCC project. I know that there is a page on
> the wiki (https://gcc.gnu.org/wiki/History) but that is really the
> best that I can find.
>
> Am I missing something? Are there good anecdotes about the history of
> the development of GCC that you think I might find interesting? Any
> pointers would be really great!
>
> Thanks for taking the time to read my questions. Thanks in advance for
> any information that you have to offer. I really appreciate everyone's
> effort to make such a great compiler suite. It's only with such a
> great compiler that all our other open source projects are able to
> succeed!

There is some history and links at
https://en.wikipedia.org/wiki/GNU_Compiler_Collection .

In my opinion, the history of GCC is not really one of drama or even
anecdotes, except for the EGCS split.  There are plenty of people who
work on GCC out of personal interest, but for decades now the majority
of work on GCC has been by people paid to work on it.  I expect that
the result is less interesting as history and more interesting as
software.

Ian


Re: History of GCC

2016-10-26 Thread Joel Sherrill


On October 26, 2016 9:07:16 AM EDT, Ian Lance Taylor  wrote:
>On Tue, Oct 25, 2016 at 10:53 PM, Will Hawkins 
>wrote:
>>
>> My name is Will Hawkins and I am a longtime user of gcc and admirer
>of
>> the project. I hope that this is the proper forum for the question I
>> am going to ask. If it isn't, please accept my apology and ignore me.
>>
>> I am a real geek and I love the history behind open source projects.
>> I've found several good resources about the history of "famous" open
>> source projects and organizations (including, but definitely not
>> limited to, the very interesting Free as in Freedom 2.0).
>>
>> Unfortunately there does not appear to be a good history of the
>> awesome and fundamental GCC project. I know that there is a page on
>> the wiki (https://gcc.gnu.org/wiki/History) but that is really the
>> best that I can find.
>>
>> Am I missing something? Are there good anecdotes about the history of
>> the development of GCC that you think I might find interesting? Any
>> pointers would be really great!
>>
>> Thanks for taking the time to read my questions. Thanks in advance
>for
>> any information that you have to offer. I really appreciate
>everyone's
>> effort to make such a great compiler suite. It's only with such a
>> great compiler that all our other open source projects are able to
>> succeed!
>
>There is some history and links at
>https://en.wikipedia.org/wiki/GNU_Compiler_Collection .
>
>In my opinion, the history of GCC is not really one of drama or even
>anecdotes, except for the EGCS split.  

I am not even sure that is interesting except as an example of an experiment to 
change the development model that worked. But that should all be covered 
somewhere online.

--joel

>There are plenty of people who
>work on GCC out of personal interest, but for decades now the majority
>of work on GCC has been by people paid to work on it.  I expect that
>the result is less interesting as history and more interesting as
>software.
>
>Ian

--joel


Re: History of GCC

2016-10-26 Thread Jeff Law

On 10/26/2016 07:07 AM, Ian Lance Taylor wrote:

On Tue, Oct 25, 2016 at 10:53 PM, Will Hawkins  wrote:


My name is Will Hawkins and I am a longtime user of gcc and admirer of
the project. I hope that this is the proper forum for the question I
am going to ask. If it isn't, please accept my apology and ignore me.

I am a real geek and I love the history behind open source projects.
I've found several good resources about the history of "famous" open
source projects and organizations (including, but definitely not
limited to, the very interesting Free as in Freedom 2.0).

Unfortunately there does not appear to be a good history of the
awesome and fundamental GCC project. I know that there is a page on
the wiki (https://gcc.gnu.org/wiki/History) but that is really the
best that I can find.

Am I missing something? Are there good anecdotes about the history of
the development of GCC that you think I might find interesting? Any
pointers would be really great!

Thanks for taking the time to read my questions. Thanks in advance for
any information that you have to offer. I really appreciate everyone's
effort to make such a great compiler suite. It's only with such a
great compiler that all our other open source projects are able to
succeed!


There is some history and links at
https://en.wikipedia.org/wiki/GNU_Compiler_Collection .

In my opinion, the history of GCC is not really one of drama or even
anecdotes, except for the EGCS split.  There are plenty of people who
work on GCC out of personal interest, but for decades now the majority
of work on GCC has been by people paid to work on it.  I expect that
the result is less interesting as history and more interesting as
software.
Agreed.  Speaking for myself, I got interested in GCC to solve a 
problem,  then another, then another...  Hacking GCC made for an 
interesting hobby for a few years.  I never imagined it would turn into 
a career, but 20 years later, here I am.  I wouldn't be surprised if 
others have followed a similar path.


jeff


Re: History of GCC

2016-10-26 Thread Will Hawkins
On Wed, Oct 26, 2016 at 9:07 AM, Ian Lance Taylor  wrote:
> On Tue, Oct 25, 2016 at 10:53 PM, Will Hawkins  wrote:
>>
>> My name is Will Hawkins and I am a longtime user of gcc and admirer of
>> the project. I hope that this is the proper forum for the question I
>> am going to ask. If it isn't, please accept my apology and ignore me.
>>
>> I am a real geek and I love the history behind open source projects.
>> I've found several good resources about the history of "famous" open
>> source projects and organizations (including, but definitely not
>> limited to, the very interesting Free as in Freedom 2.0).
>>
>> Unfortunately there does not appear to be a good history of the
>> awesome and fundamental GCC project. I know that there is a page on
>> the wiki (https://gcc.gnu.org/wiki/History) but that is really the
>> best that I can find.
>>
>> Am I missing something? Are there good anecdotes about the history of
>> the development of GCC that you think I might find interesting? Any
>> pointers would be really great!
>>
>> Thanks for taking the time to read my questions. Thanks in advance for
>> any information that you have to offer. I really appreciate everyone's
>> effort to make such a great compiler suite. It's only with such a
>> great compiler that all our other open source projects are able to
>> succeed!
>
> There is some history and links at
> https://en.wikipedia.org/wiki/GNU_Compiler_Collection .
>
> In my opinion, the history of GCC is not really one of drama or even
> anecdotes, except for the EGCS split.  There are plenty of people who
> work on GCC out of personal interest, but for decades now the majority
> of work on GCC has been by people paid to work on it.  I expect that
> the result is less interesting as history and more interesting as
> software.
>
> Ian

Ian,

Thank you for your response! I don't think that there has to be
controversy to be interesting. Obviously that split/reunification was
important, but I think that there might even be some value in
documenting the minutia of the project's growth. In other words, what
was the process for incorporating each new version of the C++
standard? Who and why did GCC start a frontend for X language? Things
like that.

Thanks again for your response!

Will


Re: History of GCC

2016-10-26 Thread Will Hawkins
On Wed, Oct 26, 2016 at 11:55 AM, Jeff Law  wrote:
> On 10/26/2016 07:07 AM, Ian Lance Taylor wrote:
>>
>> On Tue, Oct 25, 2016 at 10:53 PM, Will Hawkins  wrote:
>>>
>>>
>>> My name is Will Hawkins and I am a longtime user of gcc and admirer of
>>> the project. I hope that this is the proper forum for the question I
>>> am going to ask. If it isn't, please accept my apology and ignore me.
>>>
>>> I am a real geek and I love the history behind open source projects.
>>> I've found several good resources about the history of "famous" open
>>> source projects and organizations (including, but definitely not
>>> limited to, the very interesting Free as in Freedom 2.0).
>>>
>>> Unfortunately there does not appear to be a good history of the
>>> awesome and fundamental GCC project. I know that there is a page on
>>> the wiki (https://gcc.gnu.org/wiki/History) but that is really the
>>> best that I can find.
>>>
>>> Am I missing something? Are there good anecdotes about the history of
>>> the development of GCC that you think I might find interesting? Any
>>> pointers would be really great!
>>>
>>> Thanks for taking the time to read my questions. Thanks in advance for
>>> any information that you have to offer. I really appreciate everyone's
>>> effort to make such a great compiler suite. It's only with such a
>>> great compiler that all our other open source projects are able to
>>> succeed!
>>
>>
>> There is some history and links at
>> https://en.wikipedia.org/wiki/GNU_Compiler_Collection .
>>
>> In my opinion, the history of GCC is not really one of drama or even
>> anecdotes, except for the EGCS split.  There are plenty of people who
>> work on GCC out of personal interest, but for decades now the majority
>> of work on GCC has been by people paid to work on it.  I expect that
>> the result is less interesting as history and more interesting as
>> software.
>
> Agreed.  Speaking for myself, I got interested in GCC to solve a problem,
> then another, then another...  Hacking GCC made for an interesting hobby for
> a few years.  I never imagined it would turn into a career, but 20 years
> later, here I am.  I wouldn't be surprised if others have followed a similar
> path.
>
> jeff

Thank you Ian, Joel and Jeff for your responses!

I really appreciate it. As I said in my first message, I am a real
geek and I certainly did not mean to imply that I thought many people
would find the history interesting. That said, I think that there
might be some people who do find it so.

As an example of the type of software history that I find interesting,
consider these:

https://www.youtube.com/watch?v=TMjgShRuYbg
or
https://www.youtube.com/watch?v=2kEJoWfobpA
or
https://www.usenix.org/system/files/login/articles/03_lu_010-017_final.pdf
or as a final example
https://www.youtube.com/watch?v=69edOm889V4

To answer the question you are probably asking, "No, I have no idea
why I enjoy this type of stuff as much as I do!"

Can any of you recall a turning point where development went from
being driven by hobbyists to being driven by career developers? As a
result of that shift, has there been a change in the project's
priorities? Have there been conflicts between the employer's interests
and those of the project (in terms of project goals, licensing issues,
code quality, etc)?

In any event, I really appreciate your answers. If you have any
information that you think I might find interesting, please feel free
to pass it along. Thanks again!

Will


Re: History of GCC

2016-10-26 Thread Marek Polacek
I think you can learn a lot if you follow the Changes pages, so e.g.
, and go back down the history until
you reach the ancient .

Marek


Re: History of GCC

2016-10-26 Thread Jakub Jelinek
On Wed, Oct 26, 2016 at 06:57:31PM +0200, Marek Polacek wrote:
> I think you can learn a lot if you follow the Changes pages, so e.g.
> , and go back down the history until
> you reach the ancient .

Even older releases, while they don't have changes.html, have changes/news
etc. written in the pages referenced from
https://gcc.gnu.org/releases.html#timeline
Also see https://gcc.gnu.org/develop.html#timeline
For questions like who has added feature XYZ, the best source is just the
source repository's history or ChangeLog files.

Jakub


Re: History of GCC

2016-10-26 Thread Ian Lance Taylor
On Wed, Oct 26, 2016 at 9:31 AM, Will Hawkins  wrote:
>
> Thank you for your response! I don't think that there has to be
> controversy to be interesting. Obviously that split/reunification was
> important, but I think that there might even be some value in
> documenting the minutia of the project's growth. In other words, what
> was the process for incorporating each new version of the C++
> standard? Who and why did GCC start a frontend for X language? Things
> like that.

It is easier to answer specific questions.

There have always been GCC developers that have tracked the evolution
of C++.  The first C++ standard was of course in 1998, at which point
the language was over 10 years old, so there were a lot of C++
language changes before then.  GCC has generally acquired new language
features as they were being adopted into the standard, usually
controlled by options like the current -std=c++1z.  This of course
means that the new features have shifted as the standard has shifted,
but as far as I know that hasn't happened too often.

GCC started as a C compiler.  The C++ frontend was started by Michael
Tiemann around 1987 or so.  It started as a patch and was later
incorporated into the mainline.

The Objective C frontend was started at NeXT.  They originally
intended to keep it proprietary, but when they understood that the GPL
made that impossible they contributed it back.  I forget when the
Objective C++ frontend came in.

Cygnus Support developed the Chill and, later, Java frontends.  The
Chill frontend was removed later, and in fact the Java frontend was
removed just recently.

As I recall Fortran was a hobbyist project that eventually made it in.
There were two competing forks, I think.  I don't remember too much
about that off the top of my head.

The Ada frontend was developed at AdaCore.

The Go frontend was written by me, mostly because I like Go and I've
been working on GCC for a long time.  I work at Google, and Go was
developed at Google, but there wouldn't be a GCC Go frontend if I
hadn't decided to write one.

There is a Modula frontend that is always close to getting in.  I
think there is a Pascal frontend out there too, somewhere.  And a D
frontend.

Ian


Re: History of GCC

2016-10-26 Thread Will Hawkins
On Wed, Oct 26, 2016 at 1:06 PM, Jakub Jelinek  wrote:
> On Wed, Oct 26, 2016 at 06:57:31PM +0200, Marek Polacek wrote:
>> I think you can learn a lot if you follow the Changes pages, so e.g.
>> , and go back down the history until
>> you reach the ancient .
>
> Even older releases, while they don't have changes.html, have changes/news
> etc. written in the pages referenced from
> https://gcc.gnu.org/releases.html#timeline
> Also see https://gcc.gnu.org/develop.html#timeline
> For questions like who has added feature XYZ, the best source is just the
> source repository's history or ChangeLog files.
>
> Jakub

Jakub, Marek,

Great suggestions! In fact, I had just thought of the same thing!

Thanks for your response!
Will


Re: History of GCC

2016-10-26 Thread Will Hawkins
On Wed, Oct 26, 2016 at 1:15 PM, Ian Lance Taylor  wrote:
> On Wed, Oct 26, 2016 at 9:31 AM, Will Hawkins  wrote:
>>
>> Thank you for your response! I don't think that there has to be
>> controversy to be interesting. Obviously that split/reunification was
>> important, but I think that there might even be some value in
>> documenting the minutia of the project's growth. In other words, what
>> was the process for incorporating each new version of the C++
>> standard? Who and why did GCC start a frontend for X language? Things
>> like that.
>
> It is easier to answer specific questions.
>
> There have always been GCC developers that have tracked the evolution
> of C++.  The first C++ standard was of course in 1998, at which point
> the language was over 10 years old, so there were a lot of C++
> language changes before then.  GCC has generally acquired new language
> features as they were being adopted into the standard, usually
> controlled by options like the current -std=c++1z.  This of course
> means that the new features have shifted as the standard has shifted,
> but as far as I know that hasn't happened too often.
>
> GCC started as a C compiler.  The C++ frontend was started by Michael
> Tiemann around 1987 or so.  It started as a patch and was later
> incorporated into the mainline.
>
> The Objective C frontend was started at NeXT.  They originally
> intended to keep it proprietary, but when they understood that the GPL
> made that impossible they contributed it back.  I forget when the
> Objective C++ frontend came in.
>
> Cygnus Support developed the Chill and, later, Java frontends.  The
> Chill frontend was removed later, and in fact the Java frontend was
> removed just recently.
>
> As I recall Fortran was a hobbyist project that eventually made it in.
> There were two competing forks, I think.  I don't remember too much
> about that off the top of my head.
>
> The Ada frontend was developed at AdaCore.
>
> The Go frontend was written by me, mostly because I like Go and I've
> been working on GCC for a long time.  I work at Google, and Go was
> developed at Google, but there wouldn't be a GCC Go frontend if I
> hadn't decided to write one.
>
> There is a Modula frontend that is always close to getting in.  I
> think there is a Pascal frontend out there too, somewhere.  And a D
> frontend.
>
> Ian

Wow, thanks Ian! This is awesome stuff! As I read through it, I may
have some additional questions. If I do, would you mind if I emailed
you directly? Thanks again for taking the time to write all this down!
Fascinating!

Will


Re: History of GCC

2016-10-26 Thread Ian Lance Taylor
On Wed, Oct 26, 2016 at 9:35 AM, Will Hawkins  wrote:
>
> Can any of you recall a turning point where development went from
> being driven by hobbyists to being driven by career developers? As a
> result of that shift, has there been a change in the project's
> priorities? Have there been conflicts between the employer's interests
> and those of the project (in terms of project goals, licensing issues,
> code quality, etc)?

Development changed to being driven by professional programmers as
Cygnus Support started hiring more and more GCC developers.

I wouldn't say that that caused a significant shift in the project's
priorities.  Cygnus had a clear interest in supporting an increasing
number of microprocessors, and in particular improving the support of
RISC processors.  But those were always project priorities anyhow.

I don't think that employer interests have led to any significant
conflicts between employer interests and project interests.  It's sort
of hard to say, though, because in effect employer interests have
become project interests.  I would say that there have been some
conflicts between GCC project interests and FSF interests, as when GCC
wanted to develop techniques like LTO and plugins that required
licensing adjustments like the GCC Runtime Library Exception.  I
believe those have been resolved, but it took a while.

That said, from a certain perspective it would be reasonable to call
the EGCS split a conflict between employer interests and project
interests.  Although many people supported the EGCS split, it was
driven initially by Cygnus.

Ian


Re: History of GCC

2016-10-26 Thread Ian Lance Taylor
On Wed, Oct 26, 2016 at 10:17 AM, Will Hawkins  wrote:
>
> Wow, thanks Ian! This is awesome stuff! As I read through it, I may
> have some additional questions. If I do, would you mind if I emailed
> you directly? Thanks again for taking the time to write all this down!
> Fascinating!

I would prefer to keep my answers on the public list in case they help
someone else's curiosity.  And in case other people disagree, it's not
like my recollections of GCC are the only true ones.

Ian


Re: History of GCC

2016-10-26 Thread Richard Kenner
> The Ada frontend was developed at AdaCore.

The Ada frontend was developed at NYU, as an Air Force-funded project
to show that Ada95 (then called Ada9X) was implementable.  AdaCore was
later formed once that was complete to provide commercial support for
the Ada compiler.  The members of that NYU project were the initial
team at AdaCore.


Re: History of GCC

2016-10-26 Thread Will Hawkins
On Wed, Oct 26, 2016 at 1:28 PM, Richard Kenner
 wrote:
>> The Ada frontend was developed at AdaCore.
>
> The Ada frontend was developed at NYU, as an Air Force-funded project
> to show that Ada95 (then called Ada9X) was implementable.  AdaCore was
> later formed once that was complete to provide commercial support for
> the Ada compiler.  The members of that NYU project were the initial
> team at AdaCore.

Such great information, Richard! Thanks so much!
Will


Re: History of GCC

2016-10-26 Thread Richard Kenner
> I don't think that employer interests have led to any significant
> conflicts between employer interests and project interests.  It's sort
> of hard to say, though, because in effect employer interests have
> become project interests.  

And indeed many people who've been working on GCC for a long time
(including you and me) have moved from one organization to another
during that time (sometimes more than once).

> That said, from a certain perspective it would be reasonable to call
> the EGCS split a conflict between employer interests and project
> interests.  Although many people supported the EGCS split, it was
> driven initially by Cygnus.

But that could also have been viewed as a conflict between FSF interests
and GCC project interests.  As you say, it's hard to point to a specific
conflict because, for the most part, all the interests aligned: everybody
wanted the best compiler we could product.


Re: History of GCC

2016-10-26 Thread Prathamesh Kulkarni
On 26 October 2016 at 11:23, Will Hawkins  wrote:
> Hello everyone!
>
> My name is Will Hawkins and I am a longtime user of gcc and admirer of
> the project. I hope that this is the proper forum for the question I
> am going to ask. If it isn't, please accept my apology and ignore me.
>
> I am a real geek and I love the history behind open source projects.
> I've found several good resources about the history of "famous" open
> source projects and organizations (including, but definitely not
> limited to, the very interesting Free as in Freedom 2.0).
>
> Unfortunately there does not appear to be a good history of the
> awesome and fundamental GCC project. I know that there is a page on
> the wiki (https://gcc.gnu.org/wiki/History) but that is really the
> best that I can find.
>
> Am I missing something? Are there good anecdotes about the history of
> the development of GCC that you think I might find interesting? Any
> pointers would be really great!
>
> Thanks for taking the time to read my questions. Thanks in advance for
> any information that you have to offer. I really appreciate everyone's
> effort to make such a great compiler suite. It's only with such a
> great compiler that all our other open source projects are able to
> succeed!
This is an excellent blog post written by Honza on evolution of
Link-time optimization in GCC:
http://hubicka.blogspot.in/2014/04/linktime-optimization-in-gcc-1-brief.html

Thanks,
Prathamesh
>
> Thank you!
> Will


Re: History of GCC

2016-10-26 Thread Ed Smith-Rowland

On 10/26/2016 01:17 PM, Will Hawkins wrote:

On Wed, Oct 26, 2016 at 1:15 PM, Ian Lance Taylor  wrote:

On Wed, Oct 26, 2016 at 9:31 AM, Will Hawkins  wrote:

Thank you for your response! I don't think that there has to be
controversy to be interesting. Obviously that split/reunification was
important, but I think that there might even be some value in
documenting the minutia of the project's growth. In other words, what
was the process for incorporating each new version of the C++
standard? Who and why did GCC start a frontend for X language? Things
like that.

It is easier to answer specific questions.

There have always been GCC developers that have tracked the evolution
of C++.  The first C++ standard was of course in 1998, at which point
the language was over 10 years old, so there were a lot of C++
language changes before then.  GCC has generally acquired new language
features as they were being adopted into the standard, usually
controlled by options like the current -std=c++1z.  This of course
means that the new features have shifted as the standard has shifted,
but as far as I know that hasn't happened too often.

GCC started as a C compiler.  The C++ frontend was started by Michael
Tiemann around 1987 or so.  It started as a patch and was later
incorporated into the mainline.

The Objective C frontend was started at NeXT.  They originally
intended to keep it proprietary, but when they understood that the GPL
made that impossible they contributed it back.  I forget when the
Objective C++ frontend came in.

Cygnus Support developed the Chill and, later, Java frontends.  The
Chill frontend was removed later, and in fact the Java frontend was
removed just recently.

As I recall Fortran was a hobbyist project that eventually made it in.
There were two competing forks, I think.  I don't remember too much
about that off the top of my head.
There was a split between what would become gfortran and what I still 
think is g95 (www.g95.org).
gfortran was stood up at gcc-4.0 I think.  The earlier g77 front end was 
just too difficult to repair.
Also, Fortran-90, 95 were out with many useful changes and people wanted 
to add them to a new codebase.
The author of g95 developed a pure GPL (not library LGPL version of the 
Fortran runtime.)  This was the split.

This was in mid 2000 or so.

I am a numerics geek.  The fact that gcc has both C++ and Fortran in a 
single kit is very important to me.
I think it maybe one of the last systems that has both.  Certainly it is 
the only Free suite that does.


The Fortran developers* have kept up rather aggressively with 
Fortran-95, 2000, 2008 and TRs.

* my contributions are exclusively to C++, and the C++ linrary.


The Ada frontend was developed at AdaCore.

The Go frontend was written by me, mostly because I like Go and I've
been working on GCC for a long time.  I work at Google, and Go was
developed at Google, but there wouldn't be a GCC Go frontend if I
hadn't decided to write one.

There is a Modula frontend that is always close to getting in.  I
think there is a Pascal frontend out there too, somewhere.  And a D
frontend.

Ian

Wow, thanks Ian! This is awesome stuff! As I read through it, I may
have some additional questions. If I do, would you mind if I emailed
you directly? Thanks again for taking the time to write all this down!
Fascinating!

Will





Re: History of GCC

2016-10-26 Thread Ian Lance Taylor
On Wed, Oct 26, 2016 at 10:28 AM, Richard Kenner
 wrote:
>> The Ada frontend was developed at AdaCore.
>
> The Ada frontend was developed at NYU, as an Air Force-funded project
> to show that Ada95 (then called Ada9X) was implementable.  AdaCore was
> later formed once that was complete to provide commercial support for
> the Ada compiler.  The members of that NYU project were the initial
> team at AdaCore.

Thanks for the correction.  I forgot about that.

Ian


Re: History of GCC

2016-10-26 Thread Ed Smith-Rowland

On 10/26/2016 12:31 PM, Will Hawkins wrote:

On Wed, Oct 26, 2016 at 9:07 AM, Ian Lance Taylor  wrote:

On Tue, Oct 25, 2016 at 10:53 PM, Will Hawkins  wrote:

My name is Will Hawkins and I am a longtime user of gcc and admirer of
the project. I hope that this is the proper forum for the question I
am going to ask. If it isn't, please accept my apology and ignore me.

I am a real geek and I love the history behind open source projects.
I've found several good resources about the history of "famous" open
source projects and organizations (including, but definitely not
limited to, the very interesting Free as in Freedom 2.0).

Unfortunately there does not appear to be a good history of the
awesome and fundamental GCC project. I know that there is a page on
the wiki (https://gcc.gnu.org/wiki/History) but that is really the
best that I can find.

Am I missing something? Are there good anecdotes about the history of
the development of GCC that you think I might find interesting? Any
pointers would be really great!

Thanks for taking the time to read my questions. Thanks in advance for
any information that you have to offer. I really appreciate everyone's
effort to make such a great compiler suite. It's only with such a
great compiler that all our other open source projects are able to
succeed!

There is some history and links at
https://en.wikipedia.org/wiki/GNU_Compiler_Collection .

In my opinion, the history of GCC is not really one of drama or even
anecdotes, except for the EGCS split.  There are plenty of people who
work on GCC out of personal interest, but for decades now the majority
of work on GCC has been by people paid to work on it.  I expect that
the result is less interesting as history and more interesting as
software.

Ian

Ian,

Thank you for your response! I don't think that there has to be
controversy to be interesting. Obviously that split/reunification was
important, but I think that there might even be some value in
documenting the minutia of the project's growth. In other words, what
was the process for incorporating each new version of the C++
standard? Who and why did GCC start a frontend for X language? Things
like that.
The C++ standards committee requires that each feature added be tried in 
at least one existing implementation before ratification.
There are experimental "standards" starting with TR1 back in 2005 or so 
and continuing up through today. gcc developers are very quick to read 
the papers and start developing (assuming the idea didn't already come 
from us in the first place).  This implementation experience feeds into 
the standards process.  Basically, g++ and libstdc++ have been very 
important testing ground for the C++ standard ideas.


Speaking for myself, I got sucked in in 2005 after seeing Pete Becker's 
book on Standard Library Extensions (TR1).  I love numerics and there 
was a set of mathematical functions that I had implemented for myself 
for school and other projects.  I decided to put that into libstdc++ and 
I've been hooked ever since.  I have added some containers 
(forward_list).  I even have delved into the front end such as adding 
user-defined literals.


I am a crazy hobbyist.  Possibly one of the few.

Ed

Thanks again for your response!

Will





Re: History of GCC

2016-10-26 Thread David Edelsohn
On Wed, Oct 26, 2016 at 1:49 PM, Ed Smith-Rowland <3dw...@verizon.net> wrote:
> On 10/26/2016 01:17 PM, Will Hawkins wrote:
>>
>> On Wed, Oct 26, 2016 at 1:15 PM, Ian Lance Taylor  wrote:
>>>
>>> On Wed, Oct 26, 2016 at 9:31 AM, Will Hawkins  wrote:

 Thank you for your response! I don't think that there has to be
 controversy to be interesting. Obviously that split/reunification was
 important, but I think that there might even be some value in
 documenting the minutia of the project's growth. In other words, what
 was the process for incorporating each new version of the C++
 standard? Who and why did GCC start a frontend for X language? Things
 like that.
>>>
>>> It is easier to answer specific questions.
>>>
>>> There have always been GCC developers that have tracked the evolution
>>> of C++.  The first C++ standard was of course in 1998, at which point
>>> the language was over 10 years old, so there were a lot of C++
>>> language changes before then.  GCC has generally acquired new language
>>> features as they were being adopted into the standard, usually
>>> controlled by options like the current -std=c++1z.  This of course
>>> means that the new features have shifted as the standard has shifted,
>>> but as far as I know that hasn't happened too often.
>>>
>>> GCC started as a C compiler.  The C++ frontend was started by Michael
>>> Tiemann around 1987 or so.  It started as a patch and was later
>>> incorporated into the mainline.
>>>
>>> The Objective C frontend was started at NeXT.  They originally
>>> intended to keep it proprietary, but when they understood that the GPL
>>> made that impossible they contributed it back.  I forget when the
>>> Objective C++ frontend came in.
>>>
>>> Cygnus Support developed the Chill and, later, Java frontends.  The
>>> Chill frontend was removed later, and in fact the Java frontend was
>>> removed just recently.
>>>
>>> As I recall Fortran was a hobbyist project that eventually made it in.
>>> There were two competing forks, I think.  I don't remember too much
>>> about that off the top of my head.
>
> There was a split between what would become gfortran and what I still think
> is g95 (www.g95.org).
> gfortran was stood up at gcc-4.0 I think.  The earlier g77 front end was
> just too difficult to repair.
> Also, Fortran-90, 95 were out with many useful changes and people wanted to
> add them to a new codebase.
> The author of g95 developed a pure GPL (not library LGPL version of the
> Fortran runtime.)  This was the split.
> This was in mid 2000 or so.
>
> I am a numerics geek.  The fact that gcc has both C++ and Fortran in a
> single kit is very important to me.
> I think it maybe one of the last systems that has both.  Certainly it is the
> only Free suite that does.
>
> The Fortran developers* have kept up rather aggressively with Fortran-95,
> 2000, 2008 and TRs.
> * my contributions are exclusively to C++, and the C++ linrary.

Craig Burley has a website with some history about the G77 project:

http://www.kilmnj.com/g77/

I believe that he initially asked for feedback at the beginning of the
Fortran project if he should focus on Fortran 77 or the early Fortran
90/95 standard.  At the time, there was little adoption of /
conversion to Fortran 90, so the overwhelming response was Fortran 77,
with the implicit assumption that a fully conformant compiler would
appear the next month. By the time g77 was generally usable, Fortran
90/95 was gaining a lot of traction.

- David


Re: History of GCC

2016-10-26 Thread Eric Gallager
On 10/26/16, Ian Lance Taylor  wrote:
> On Wed, Oct 26, 2016 at 9:31 AM, Will Hawkins  wrote:
>>
>> Thank you for your response! I don't think that there has to be
>> controversy to be interesting. Obviously that split/reunification was
>> important, but I think that there might even be some value in
>> documenting the minutia of the project's growth. In other words, what
>> was the process for incorporating each new version of the C++
>> standard? Who and why did GCC start a frontend for X language? Things
>> like that.
>
> It is easier to answer specific questions.
>
> There have always been GCC developers that have tracked the evolution
> of C++.  The first C++ standard was of course in 1998, at which point
> the language was over 10 years old, so there were a lot of C++
> language changes before then.  GCC has generally acquired new language
> features as they were being adopted into the standard, usually
> controlled by options like the current -std=c++1z.  This of course
> means that the new features have shifted as the standard has shifted,
> but as far as I know that hasn't happened too often.
>
> GCC started as a C compiler.  The C++ frontend was started by Michael
> Tiemann around 1987 or so.  It started as a patch and was later
> incorporated into the mainline.
>
> The Objective C frontend was started at NeXT.  They originally
> intended to keep it proprietary, but when they understood that the GPL
> made that impossible they contributed it back.  I forget when the
> Objective C++ frontend came in.


The Objective C++ frontend was contribute by Apple. The earliest
proposal I can find for adding it was in 2001 for GCC 3.x:
https://gcc.gnu.org/ml/gcc/2001-11/msg00609.html
However, it didn't actually make it in to the FSF version until 4.1:
https://gcc.gnu.org/ml/gcc-patches/2005-05/msg01781.html
https://gcc.gnu.org/ml/gcc-patches/2005-12/msg01812.html
Personally, I think one of the interesting stories of GCC history is
how Apple used to be really involved in GCC development until 2007, at
which point the GPL3 and iPhone came out, and Apple abandoned GCC for
llvm/clang. If you read through the mailing list archives on
gcc.gnu.org, you can find all sorts of emails from people with "at
apple dot com" email addresses in the early 2000s, until they just
sort of stopped later that decade. Even llvm/clang was originally just
another branch of gcc, and Chris Lattner was even going to contribute
it and keep it part of gcc, but then he never got around to getting
his copyright assignment paperwork filed, and then Apple turned it
into a separate project:
https://gcc.gnu.org/ml/gcc/2005-11/msg00888.html
https://gcc.gnu.org/ml/gcc/2006-03/msg00706.html


>
> Cygnus Support developed the Chill and, later, Java frontends.  The
> Chill frontend was removed later, and in fact the Java frontend was
> removed just recently.
>
> As I recall Fortran was a hobbyist project that eventually made it in.
> There were two competing forks, I think.  I don't remember too much
> about that off the top of my head.
>
> The Ada frontend was developed at AdaCore.
>
> The Go frontend was written by me, mostly because I like Go and I've
> been working on GCC for a long time.  I work at Google, and Go was
> developed at Google, but there wouldn't be a GCC Go frontend if I
> hadn't decided to write one.
>
> There is a Modula frontend that is always close to getting in.  I
> think there is a Pascal frontend out there too, somewhere.  And a D
> frontend.
>
> Ian
>


Re: History of GCC

2016-10-26 Thread Will Hawkins
On Wed, Oct 26, 2016 at 2:23 PM, Eric Gallager  wrote:
> On 10/26/16, Ian Lance Taylor  wrote:
>> On Wed, Oct 26, 2016 at 9:31 AM, Will Hawkins  wrote:
>>>
>>> Thank you for your response! I don't think that there has to be
>>> controversy to be interesting. Obviously that split/reunification was
>>> important, but I think that there might even be some value in
>>> documenting the minutia of the project's growth. In other words, what
>>> was the process for incorporating each new version of the C++
>>> standard? Who and why did GCC start a frontend for X language? Things
>>> like that.
>>
>> It is easier to answer specific questions.
>>
>> There have always been GCC developers that have tracked the evolution
>> of C++.  The first C++ standard was of course in 1998, at which point
>> the language was over 10 years old, so there were a lot of C++
>> language changes before then.  GCC has generally acquired new language
>> features as they were being adopted into the standard, usually
>> controlled by options like the current -std=c++1z.  This of course
>> means that the new features have shifted as the standard has shifted,
>> but as far as I know that hasn't happened too often.
>>
>> GCC started as a C compiler.  The C++ frontend was started by Michael
>> Tiemann around 1987 or so.  It started as a patch and was later
>> incorporated into the mainline.
>>
>> The Objective C frontend was started at NeXT.  They originally
>> intended to keep it proprietary, but when they understood that the GPL
>> made that impossible they contributed it back.  I forget when the
>> Objective C++ frontend came in.
>
>
> The Objective C++ frontend was contribute by Apple. The earliest
> proposal I can find for adding it was in 2001 for GCC 3.x:
> https://gcc.gnu.org/ml/gcc/2001-11/msg00609.html
> However, it didn't actually make it in to the FSF version until 4.1:
> https://gcc.gnu.org/ml/gcc-patches/2005-05/msg01781.html
> https://gcc.gnu.org/ml/gcc-patches/2005-12/msg01812.html
> Personally, I think one of the interesting stories of GCC history is
> how Apple used to be really involved in GCC development until 2007, at
> which point the GPL3 and iPhone came out, and Apple abandoned GCC for
> llvm/clang. If you read through the mailing list archives on
> gcc.gnu.org, you can find all sorts of emails from people with "at
> apple dot com" email addresses in the early 2000s, until they just
> sort of stopped later that decade. Even llvm/clang was originally just
> another branch of gcc, and Chris Lattner was even going to contribute
> it and keep it part of gcc, but then he never got around to getting
> his copyright assignment paperwork filed, and then Apple turned it
> into a separate project:
> https://gcc.gnu.org/ml/gcc/2005-11/msg00888.html
> https://gcc.gnu.org/ml/gcc/2006-03/msg00706.html
>
>
>>
>> Cygnus Support developed the Chill and, later, Java frontends.  The
>> Chill frontend was removed later, and in fact the Java frontend was
>> removed just recently.
>>
>> As I recall Fortran was a hobbyist project that eventually made it in.
>> There were two competing forks, I think.  I don't remember too much
>> about that off the top of my head.
>>
>> The Ada frontend was developed at AdaCore.
>>
>> The Go frontend was written by me, mostly because I like Go and I've
>> been working on GCC for a long time.  I work at Google, and Go was
>> developed at Google, but there wouldn't be a GCC Go frontend if I
>> hadn't decided to write one.
>>
>> There is a Modula frontend that is always close to getting in.  I
>> think there is a Pascal frontend out there too, somewhere.  And a D
>> frontend.
>>
>> Ian
>>

I want to thank each individual for his/her reply, but I don't want to
SPAM the list. So, I will do it in one email!

Thanks! This is so much more information than I expected to get and
it's just amazing. Thanks again!

Will