On 10/26/2016 01:17 PM, Will Hawkins wrote:
On Wed, Oct 26, 2016 at 1:15 PM, Ian Lance Taylor <i...@google.com> wrote:
On Wed, Oct 26, 2016 at 9:31 AM, Will Hawkins <wh...@virginia.edu> 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