Talk:GNU Compiler Collection

From Wikipedia, the free encyclopedia
Jump to: navigation, search
          This article is of interest to the following WikiProjects:
WikiProject Free Software / Software / Computing  (Rated B-class, High-importance)
WikiProject icon This article is within the scope of WikiProject Free Software, a collaborative effort to improve the coverage of free software on Wikipedia. If you would like to participate, please visit the project page, where you can join the discussion and see a list of open tasks.
B-Class article B  This article has been rated as B-Class on the project's quality scale.
 High  This article has been rated as High-importance on the project's importance scale.
Taskforce icon
This article is supported by WikiProject Software (marked as High-importance).
Taskforce icon
This article is supported by WikiProject Computing (marked as Mid-importance).
 
WikiProject C/C++ (Rated C-class, High-importance)
WikiProject icon This article is within the scope of WikiProject C/C++, a collaborative effort to improve the coverage of C/C++ on Wikipedia. If you would like to participate, please visit the project page, where you can join the discussion and see a list of open tasks.
C-Class article C  This article has been rated as C-Class on the quality scale.
 High  This article has been rated as High-importance on the importance scale.
Taskforce icon
This article falls within the scope of C.
This article falls within the scope of C++.
 
WikiProject Java (Rated B-class, High-importance)
WikiProject icon This article is within the scope of WikiProject Java, a collaborative effort to improve the coverage of Java on Wikipedia. If you would like to participate, please visit the project page, where you can join the discussion and see a list of open tasks.
B-Class article B  This article has been rated as B-Class on the project's quality scale.
 High  This article has been rated as High-importance on the project's importance scale.
 
Note icon
This article has been automatically rated by a bot or other tool because one or more other projects use this class. Please ensure the assessment is correct before removing the |auto= parameter.

C++ use now approved for developing gcc proper[edit]

As of June 2010 there are plans being discussed to use C++ as the implementation language for certain upcoming features in gcc:

This should probably be mentioned in the main article, given that gcc has traditionally been required to be written in C for bootstrapping purposes? —Preceding unsigned comment added by Parallelized (talkcontribs) 20:08, 6 June 2010 (UTC)

Good point. I've added a short para to the "Structure" section, as an interim solution. It will be interesting to see how this change works out. Cheers, CWC 10:51, 9 June 2010 (UTC)

Missing fact:GCC development is largely controlled by a steering committee[edit]

The fact that major gcc development decisions are handled by a steering committee should probably be also mentioned in the article?

--Parallelized (talk) 11:51, 11 June 2010 (UTC)

You're right (again!). I added a short mention in the EGCS fork subsection. Corrections and improvements welcome, as always. Cheers, CWC 15:09, 11 June 2010 (UTC)

BSD complaints exaggerated[edit]

The #Criticism section kinda exaggerates an "anti-GCC" position among BSDs. There's one link to a developer calling GCC slow/bad, but that sort of talk is normal for developers. (Plus a broken link to the Jem Report.) Even GCC devs complain about things in GCC being broken, but that's just how devs talk. It doesn't mean they hate their own project.

As for replacing GCC, yeh, there are individuals or subgroups working on possible replacements, but they've been looking into these alternatives for years and no one has even a working proof-of-concept.

I'm not saying these projects are doomed. (That would be speculation, suitable for a forum, not for an encyclopedia) I'm just saying we should document the current situation faithfully. Gronky (talk) 12:39, 29 July 2010 (UTC)

I don't follow the BSDs closely enough to know what's happening here, but I do know that the Criticism section is pretty rotten. I took a close look while making this edit, and I do not like what I saw.
It would be great if someone could find a good secondary source on this topic. Failing that, could someone with some clue in the area do a WP:BOLD rewrite? Failing that, I may have a go myself, despite my lack of clue here. Cheers, CWC 06:23, 14 August 2010 (UTC)

Not to mention the whole GPLv3 discussion should not be here but rather in the GPLv3 page. And the clang/llvm page should mention that Apple is the major contributor to those projects. And Apple/NeXT has in the past not be been a good citizen in FOSS communities including GCC. With a mention of how the Objective-C front-end got contributed to GCC in the end. -- Andrew Pinski —Preceding unsigned comment added by 12.108.191.226 (talk) 01:41, 14 August 2010 (UTC)

Hi, Andrew. I've left a welcome message on user talk:12.108.191.226. Did I get the bit about Cavium Networks right? If I stuffed up (always a possibility), feel free to fix it or contact me.
If we follow Wikipedia's rules (sadly, that's a big "if"), we would need a good source about Apple and GCC before mentioning Apple's bad record with FOSS (preferably a secondary source, otherwise a primary source; tertiary sources are right out). I don't think we'll find such a source. LLVM and related projects have a BSDish license dating back to LLVM's start as at a university, they are committed to that license, and they have lots of non-Apple developers (even if most of the development is funded by Apple). Which is why I undid your recent edit to the article. I hope you don't mind ... and keep contributing to Wikipedia. Cheers, CWC 07:14, 14 August 2010 (UTC)

Posting a bug report as "criticism"[edit]

I just removed four paragraphs, plus three lines of c pointer arithmetic(!). GCC has a bug, and it's in the bug tracker, and it's been discussed. Actually, GCC has hundreds of bugs, and they're in the bug tracker too. No one expects a compiler to be bug-free, so GCC developers acknowledging a bug does not mean that GCC is regularly criticised for this particular bug.

We should be developing the content of this article toward not having a "criticism" section. Info about memory and pointers should be in a section of the article about GCC internals and techy attributes. Gronky (talk) 22:23, 14 August 2010 (UTC)

Problem Solved[edit]

Well, one does not have to have a criticism section for the sake of it (as this one originated back in 2008), and the content as it stood was not critic of the actual software but rather a discussion on the different goals and philosophies of GNU and BSD--the parts that could be substantiated by references, that is.

If anyone is willing to find proper sources where actual characteristics of the software compare unfavourably to alternatives or are otherwise deemed questionable, you're more than welcome to reinstate this section, but in the meanwhile I've shitcanned it as I didn't think it was salvagable as it stood. —Preceding unsigned comment added by 88.27.135.125 (talk) 05:09, 19 August 2010 (UTC)

Useful article in The H[edit]

The H recently published a good history of GCC by Richard Hillesley. It is reasonably short but gives a lot of detail. It may be of use in the article (I don't have time to check, sorry); if not, we could consider adding it as an External link. Cheers, CWC 06:51, 28 August 2010 (UTC)

Competing compilers in the 80s[edit]

It would be interesting to note what else was available in the 80s when GCC was being written. Why was GCC necessary? What other projects could have been used as starting points but were rejected? Why did so many developers start using GCC? Was it the best quality around? The best of the zero cost compilers??

A developer from that epoch told me that in 1991 Johnson PCC and dbx/adb were perfectly viable alternatives to GCC and GDB. Not nearly *as* good, mind you ... Johnson PCC was probably never "open source".

A possible starting point. Gronky (talk) 11:02, 5 June 2011 (UTC)

I'm not sure that people were really swarming to it in the 1980s, but in my case I started using it for a research project at Apple because I needed to retarget to a novel VM, and I didn't want to spend months negotiating for access to sources of unknown retargetability, plus as a small project there wasn't budget to pay hefty licensing fees. It did turn out to be better quality, once I got it working. My experience is unpublished so far as I know, but you can find relevant quotes in Linus' comments on Linux early days, and in Tiemann's Open Sources chapter. It should be kept in mind that open source projects were very few in number in those days, full C compilers even fewer, and there wasn't anything like handy web pages to list the options. :-) Stan (talk) 13:05, 5 June 2011 (UTC)

A license from AT&T (and the successor holders of the IP rights to UNIX) was required for use of PCC, at least to 1997, which I moved on from the GNU Project.

I remember the USENIX where Steve Johnson told me that he was glad that a better alternative to PCC was finally available (we talked for a long time, and it was clear he had read the source code of the compiler). A professional judgment we heard from many others. Also about GDB being better than dbx/adb. GCC was what got the USENIX and UNIX communities to really believe that the GNU development model worked, and would produce major software of use to the UNIX community.

Of course, the trade journals weren't interested in covering a non-commercial project, and we at the GNU Project published community-reviewed/improved software, not peer-reviewed journal articles. Over that decade many of the software firms that specialized in compilers closed. Most due to being out-"competed" by GCC. Which mirrored what happened with software firms, a few years earlier, that sold versions of Emacs. I don't have citations at hand. A lot of this was noted in gnUSENET, but that doesn't really meet WP standards.

It would be a great add to this WP article, if it can meet WP standards. I suspect the switch of BSD from PCC to GCC can be adequately cited. Lentower (talk) 04:49, 6 June 2011 (UTC)

History[edit]

This section contained what appear to be some self-serving WP:COI misstatements [1] and [2] of the historical record which I have corrected, with citations. None of the code in the Lawrence Livermore compiler that Tower worked on made it into GCC. Also, Tower did contribute but he was certainly not the senior author; the author was Stallman. Msnicki (talk) 00:22, 10 October 2011 (UTC)

The "unfinished GNU operating system"[edit]

In the first paragraph of the article, we find a passage that reads, "As well as being the official compiler of the unfinished GNU operating system, GCC has been adopted as the standard compiler by most other modern Unix-like computer operating systems, including Linux, the BSD family and Mac OS X." When reading this, I tripped over the claim that the GNU operating system is not finished. This is unclear, what in the GNU operating system is 'unfinished'? Is it unfinished because the original kernel written for GNU isn't used? If that's the case I don't see why 'unfinished' should be mentioned right at the top of the article without an explanation to the 'unfinished' state. This can lead a reader to think GNU is broken and unusable or something down that line.

I recommend removing the claim of 'unfinished' for the GNU operating system since:

A) It's ambiguous
B) This is an article for GCC not the GNU operating system. Let's not make claims that we can't go into details about due to it being outside of the article's scope.
C) The claim has no citation.

It should read as the following:

"As well as being the official compiler of the GNU operating system, GCC has been adopted as the standard compiler by most other modern Unix-like computer operating systems, including Linux, the BSD family and Mac OS X."

Regards, -- Joel M.Chat ✐ 17:05, 6 January 2012 (UTC)

Would you prefer we refer to it as the "non-existant GNU operating system"? So far as I know, the FSF never got around to even starting the actual OS, only the tools that might go with one, and an actual GNU operating system certainly doesn't exist in any sort of finished form today. So what's wrong with referring to it as unfinished? At best, that's what it is, isn't it? Msnicki (talk) 17:42, 6 January 2012 (UTC)
You seem to be confusing operating system with kernel. They built most of the operating system, the kernel they made is still not ready for the primetime though (GNU Hurd). IRWolfie- (talk) 11:41, 3 February 2012 (UTC)
You seem confused about what an operating system is: "An operating system (OS) is a set of programs that manage computer hardware resources and provide common services for application software." The operating system is the part that runs in kernel mode. What GNU contributed were things that run in user mode. Those are applications, even if they are things like gcc, bash and grep. They may be bundled with a distribution, but they are not part of the OS. Msnicki (talk) 16:46, 3 February 2012 (UTC)

Quotes[edit]

The Theo quote is totally misleading in the optimizations section. GCC does *less* optimization than well-known proprietary compilers like ICC, and back when GCC optimization was poor, all I ever heard was "GCC produces bad code" over and over and over again. (I sat in many customer meetings.) One random quote doesn't prove or disprove anything, except that one person has a contrary opinion. At the very least it should go the random criticisms section. The Linus quote is also problematic - if you think about it, what he's really saying is that he wants GCC to accept his idea of the language rather than an ISO standard. Linus should complain to the ISO rather than claiming "total disregard", which is just a gross exaggeration of the sort that he's prone to express. Without further explanation/context, I think these two quotes are a subtle way of sneaking POV in where it doesn't belong. Stan (talk) 17:53, 3 February 2012 (UTC)

I don't have the personal knowledge to evaluate the claims (I don't presently use gcc and never got enough experience with new code when I did use it) but I have the same concern you do. I'm suspicious of a non-WP:NPOV agenda as well. Presently, the take-away for most readers is probably that these complaints represent a consensus in the user communities, even among the most respected individuals. I have no idea if that's actually true (but I'm skeptical.) Msnicki (talk) 18:04, 3 February 2012 (UTC)

Mac OS X's standard compiler[edit]

Mac OS X's standard compiler is now llvm. I'm not sure how it would be best to update the lead here; should mention of Mac OS X just be stripped from the lead, or it important to note that Mac OS X *was* using gcc and is now using something else? --Steven Fisher (talk) 00:40, 1 May 2012 (UTC)

Drop from the lede, mention OS X in the second para as one of the notable GCC ports, which is true irrespective of what Apple does with GCC now or in the future. Specific version usage is probably too minute for this article, but maybe a mention of standard-ness in history section. Stan (talk) 19:41, 1 May 2012 (UTC)