GCC Gets Its Own News Site
Marcel Cox writes "In an effort to promote the development of GCC, Mathieu Lacage created a GCC news page similar to the idea of Kernel Traffic.
While we are on the topic of GCC, it might be worthwhile recalling two major events that occured during the last month:
1. The tree-ssa
branch has been merged into
mainline, which among others means the end of G77 and the addition of GFORTRAN, the new GNU Fortran 95 compiler.
2. The second annual GCC Developer's summit took place some 10 days ago in Ottawa."
I wonder if they are going to get Gary Gnu (sorry, best example I could find) to as the lead gnews anchor?
...that I can't figure out based on what I found on the websites.
I could poke around, but I'm too lazy.
Is the Fortran 95 compiler in any of the stable gcc releases (e.g., 3.4)? If not, when will it appear as a standard part of the suite?
I suspect this is not so serious and more like a troll. But nonetheless.
...) for the basis of linux kernel and application development even if they wanted to.
Before any technical arguments, realise that a key difference between gcc and vc.net is that the former is copyleft and the latter is not. gcc runs on a large number of operating systems, and compiles a number of different languages (eg ada, fortran, c, objective c, c++).
As regards standards compliance, vc.net is not a c99 compiler; using c99 constructs which are not c++-ish will just fail under vc.net. vc.net is not an ada, fortran or objective-c compiler either.
Regarding news, the long sought-after fortran 95 compiler replacing the fortran 77 compiler is certainly newsworthy. In addition, a major architectural change -- the integreation of the tree-ssa branch -- heralds significant future optimization possibilities and is the culmination of two years (or more?) work. It's hard to think what would be more relevant to report.
Why would people care about gcc reports? Given that it is the standard compiler on a number of very popular operating systems, and that the quality of gcc is fundamental to the quality of compiled software on these platforms, and that similarly limitations of gcc in turn limit software on these platforms, it is obvious that gcc is a very important project. People couldn't turn to vc.net (or icc, or
Summary: gcc news is relevant to almost all free operating system developers and (indirectly) users, and this news is definitely gcc news.
So you're saying that because people use non-standard extensions of gcc, that it is important that these non-standard extensions be maintained rather than being deprecated in favor of adhering to the C++ standards? I don't think you would agree to that, but it's essentially what you wrote.
As for other language support, VC.Net is at its heart very similar in construction to gcc. The frontend engine parses the source code, a second engine optimizes the code, and the final code generation turns the optimized code into machine code. VC.Net can support as many languages as gcc does (and it does, though using separate front ends to be purchased separately). Not only that, VC does all this faster and better than gcc.
Source code ought to stick with the language spec, not rely on compiler hacks. That Linux relies heavily on those hacks, so much so that it refuses to compile using other, more standards-compliant compilers is a sign that Linux needs it's source code audited and fixed for these dependencies.
Wouldn't you like to have an icc or VC optimized Linux kernel? 10-15% speed increase across the board? Why, then, do you support the continued standards-breaking of gcc, just because it is considered a "standard build environment" for many platforms?
There is no serious question here. You are just trying to shit on the hard work of other people.
You claim that you want to see news items about how the quality of GCC is "catching up" to that of commercial compilers. Practically everything on the page is about work being done to improve the quality of GCC though. Nevertheless you also claim that there is an "obvious lack of substantive news items".
It's a nice idea, but I imagine the audience for this will be much smaller than that for kernel traffic and it's ilk. Compilers are complicated beasts. I'd say even more complicated than an operating system kernel. While I can understand a good deal of what goes on with lkml, with GCC I'm pretty much lost.
I used up all my sick days, so I'm calling in dead.
So I guess if anything ought to be posted on the new gcc news site, it ought to be how gcc is catching up to commerical alternatives (which, though not Free, are free for download).
The last time I checked, the free version of VC had optimization disabled. Has this situation changed?
They have it for download, but I use a Mac so it is GCC for me (well, maybe IBM - later).
Think: linux is not just x86; free operating systems could not be based on/ship with a non-free compiler. Then all will become clear.
First off, thanks to all the people who contributed to GCC.
/ MasterGCC -2side.pdf
I think that version 3.4 for C++ was a very important release. It's great that there are now a series of compilers for Windows and Linux that are highly standards compliant and reasonably compatible with each other. I am referring to GCC and VC71 on Windows, and GCC and Intel on Linux.
The decision of the GCC people to focus on correctness and standards compliance before optimization was correct in my opinion.
On the other hand, I'm concerned that the most exciting ideas from last years GCC conference do not appear to be on the GCC roadmap, and are not mentioned in the proceedings of this years conference (pls correct me if I'm wrong).
http://people.redhat.com/lockhart/.gcc04
The ideas I'm referring to are LLVM and the compile server. I know that development on LLVM is progressing well, but I haven't heard anymore about it becoming part of GCC. The 'compile server' idea involved starting a single process that managed the compilation of all the translation units in a module, rather than running GCC once for each TU.
I realize these are big changes - are they on the horizon for 4.0?
I thought that's what developers.slashdot.org was. :-P
Since GCC 3, the GCC developers have a very strong tendancy to strictly adhere to standards and even to deprecate or remove non standard GCC extensions, especially those that become problematic because they syntactically interfere with newer C99 features. What makes the kernel non portable accross compilers is more the stuff like inline assembly or directives that control where some pieces of code are located in memory. This kind of stuff is inherently non portable, but there is little one can do about it. Note that given GCC is the standard compiler for the Linux platform, Intel has gone so far as to add those GCC extensions that are necessary to compile the kernel. With just a minimum number of patches, icc thus manages to compile the linux kernel.
This changed quite recently and Microsoft has now made the non crippled version of VC available for free download (command line online, not full IDE).
It's not _that_ difficult. Learn a bit of compilier theory, it's not that bad, and very interesting.
It's mostly just colouring in pretty graphs. *grin*.
Unfortunately, the FSF currently has a rather strict policy regarding GCC development which does not permit implementing features like LLVM. I hope this policy will change some time as currently it seems to be a bit blocking for certain interresting features that could be implemented. See the following discussion for this policy:
http://gcc.gnu.org/ml/gcc/2003-11/msg00402.html
As I see it, they just won't export the gcc internal structure.
So fork gcc, or contribute patches to them that does what one wants.
See also http://llvm.cs.uiuc.edu/
You can easily fork GCC, but the problem is maintaining it after the fork, especially if you want to include changes of the mainline GCC after your fork. Beside, it would still be the main GCC that would continue to be used by 99% of the people and so all your efforts are kind of wasted.
A far more productive approach on the long run would be to try to make the FSF realize how much their policy is currently blocking GCC development and relax their rules.
Maybe http://gcc.gnu.org/ml/gcc/2004-05/msg00679.html ?
"GCC can dump its internal representation in a C-like syntax using the
new -fdump-tree-... switches."
...what are SSA trees? A little googling reveals they are:
I'm not a compiler writer (duh), I'm just curious.
The GCC web site has a documentation here
This is a one way dump for debugging purposes. You cannot dump the tree, do some transformations on it, and then reimport it again into GCC. That would be the kind of thing that the policy wants to forbid.
read this and this.
SSA stands for Static Single Assignment.
Partly the work is about unifying parse-tree data structures throughout the compiler. "There is no single tree representation in GCC."
Posters recognized by their sig,
You can easily fork GCC, but the problem is maintaining it after the fork, especially if you want to include changes of the mainline GCC after your fork.
The egcs project who did just that was very successful.
The egcs project who did just that was very successful.
Yes, but it was the major developers that did the fork, not just someone who came along. Also, the fork was not to bypass political rules, but rather to make major changes to the compiler that people thought were to invasive for the production version of GCC.
Of course, the LLVM project mentioned here is more in the direction you suggest. The initial compiler is GCC based, but the way LLVM works would not be permitted in GCC according to the current policies.
the long sought-after fortran 95 compiler replacing the fortran 77 compiler is certainly newsworthy.
Indeed, it is.
While much of the scientific community has moved to develop code in C and C++, there was substantial momentum and a great deal of previosuly-developed code in FORTRAN 77.
Though I took the C and C++ path and am grateful for the freely-available gcc, colleagues have written code in FORTRAN 90 that sorely needs a working free compiler.
"Provided by the management for your protection."
I really am impressed that the Fortran 95 compiler is done, so to speak. I wasn't expecting it that fast. It's a important gift to the community.
> the audience for this will be
> much smaller than that for kernel traffic
I think that's mostly true... but I also think that there are plenty of folks interested in compiler-ish development notes.
For example, I work on the open source utility PMD, which does static analysis of Java code. So there are all sorts of things it can check for - dead code, algebraic simplifications, unused assignments, and so on. It's almost like working on the front end of a compiler - i.e., parsing, tokenizing, symbol table - without having to do the code generation backend. Looking at the current GCC news issue, there's at least one thing there that seems useful to me - the improvements to the constant propagation techniques.
So, anyhow, I agree that there will be a smaller audience - but perhaps the people reading it will be from diverse backgrounds and very focused on the topics that arise.
The Army reading list
did they change the annoyingly bug that said
for (int i=0;isomenumber;i++)
was illegal?
(declaring the i var within the for statement)
Linux needs it's source code audited
"its".
No apostrophe.
for (int i=0;isomenumber;i++)
was illegal?
Declaring a variable in a for loop is allowed in the 99 standard but not in the 89 standard. By default GCC works in C89 mode. To compile your code, you need to use the option -std=c99
Since it is run by Mathieu Lacage, he can call it "Lacage a folles"
Here is a brief article.
Take a look at this article at Linux Weekly News
-jim
An update as of June 21st has been posted. The newsletter is also now accessible via http://gccnews.chatta.us.