GCC 2.95 Released 206
sparky writes "The GNU Compiler Collection (GCC) 2.95 is available ."> here [Ed: Please use a mirror]. This is the first release of GCC since the EGCS steering committee took over, and a major step on the way to GCC 3.0. " Interesting to see we have a new ANC (acronym name change).
Re:pgcc -> gcc? (Score:2)
Re:Kernel and GCC 2.95 (Score:2)
That is a common question on linux-kernel. Yes, the code was cleaned up in this respect. But nevertheless, noone guarantees you that an egcs compiled kernel will work. I still use gcc 2.7.2.3 on production boxes for kernel compiles.
The difference between egcs and gcc 2.95 is that Mark's aliasing framework is turned on by default. There have been some heavy debates about this on the kernel mailing list and apparently the communication between the egcs team and Linus was not very successful
Re:pgcc -> gcc? (Score:2)
Why not use this for Stampede Linux? (Score:1)
'Course, they couldn't distribute Code Fusion itself, but if it is fully compatible with gcc-2.95, that wouldn't seem to be much of a problem. Just that binaries the user compiles themself won't be as fast.
-Tom
Re:Hm... (Score:1)
On the other hand, it IS true that there is a learning curve to STL, and once you get to the top of that curve, it becomes quite a bit easier to use STL than to make your own versions of everything, because it is really likely that the STL list class, for instance, is more flexible, more robust, and more efficient than the list that you would write in 30 minutes or an hour. While it probably won't be as intuitive for you at first, a little perserverence is all it takes. For a good STL starting point, check out SGI's documentation [sgi.com]. It's pretty good.
To keep this at least somewhat relevant, I think that despite all of the language-theory arguments against C++, STL and the extremely wide support of C++ practically everywhere make it really useful to know. Is it the best language possible? No. Is it the best language right now? Depends on who you are and what you want to do.
<ASIDE>
Someone in this thread mentioned hash maps losing data- sounds very much like a comparator problem. Whoever had that problem should make SURE that the hash map has a working comparator. In my experience, 95% of hash map problems turn out to be a broken comparator.
To see if that's the case, you can check to see what's in your hash map with a simple snip of code. Assuming you've typedef'ed your hash map's type as "hash_type":
hash_type::iterator i = hash.begin();
while (i != hash.end())
{
cout << "Key: " << *i.first() << endl;
cout << "Value: " << *i.second() << endl;
i++;
}
</ASIDE>
Re:STL is one of C++'s pluses (Score:1)
On the other hand- STL is STILL easier than the alternative, writing your own hash table for every new data type you need to keep in a hash and every possible key you could store that data with. Digging through levels of templates is bad, but you probably don't have to if you want to debug an STL class: in all of my experience with STL, I have never found a serious bug that didn't ultimately turn out to be my own fault. For example, I have certainly had my fair share of data-losing hash maps, and I've learned that you should always look extremely closely at your comparator before you start scouring the STL code and cursing about the library programmers and how they somehow released a hash table that randomly loses data (though I freely admit to jumping directly to step 2 myself- it makes it all the more humiliating later when somebody points out that I'm using '=' instead of '==' or something =]).
Re:AMD K6? (Score:1)
Re:Kernel and GCC 2.95 (Score:3)
Linus is a great guy and all that. But he has some blind spots. Among them are Quality and Engineering issues. He just does not have the background or experience to make good judgements in these areas. He lacks a humility which would tell him that he is not an expert in all areas of computer science. What we are starting to see is that his lack of expertise in some areas has hindered Linux's ability to scale well across architectural and performance bounderies. In other words, the kernel is becoming more and more complex and Linus is unfamiliar with the technologies which could address these issues. And worst of all, he appears to be unwilling to learn.
Re:Sterring. Rhymes with herring. (Score:3)
such editor to edit text inputs. It's all very sweet because using an
external editor makes it so much easier to run ispell.
Re:Huray! Now, more people use C++!! (Score:1)
The other thing about C++ is the STL. Don't even make me talk about the STL, I just tried to use it in a program and I'm now trying to remove all references to it..it's baroque, buggy, and poorly defined. For starters. (among other things -- my hash tables keep 'forgetting' about entries. I insert an entry with key "foo" into the table. Shortly afterward, I try to extract the entry from the table. Surprise! It's not there! Argh... Oh, and the default hash function knows about char *s, but the default hash EQUALITY routine just compares addresses!!)
Daniel
GCC and Ritchie's compilers (Score:4)
Currently, as far as I am aware, this is the finest compiler on the face of the Earth, and I dare someone to prove it wrong. There are compilers that produce faster code for a specific platform, and there are compilers for languages that GCC has never heard of, but GCC wins the all-around best technology (IMHO) for producing native instructions from your pet language. It's the one tool which I feel justifies all of Stallman's quirkiness, and gives me faith in the future of Open Source.
Re:Sterring. Rhymes with herring. (Score:2)
Microsoft decline (Score:1)
Re:Ada kernel (Score:3)
I applaud the fact that you didn't just blindly flame what you do not know. I would suggest that you learn a bit about it--who knows, you might like it!
To bad I can't get it to build on Linuxppc 99 (Score:1)
Re:Huray! Now, more people use C++!! (Score:1)
Windows NT is a very nice OS too, if you avoid the standard pit-traps (which are many).
Backward compatibility? (Score:1)
David
Re:Kernel and GCC 2.95 (Score:2)
Re:GCC and Ritchie's compilers (Score:2)
Mirrors? HAH! (Score:1)
Re:Kernel and GCC 2.95 (Score:2)
egcs homepage. There is a long, long collection
of threads about this problem, dealing especially
with the Linux kernel. Linus Himself[tm] gets
heavily involved.
Parts of it turn into a flamefest, but there
/is/ a good deal of information down in there as
well.
In any case, it's not a showstopping bug; you
just have to use a flag.
Re:Glacial compile times and huge dwarf builds (Score:1)
+ precompiled headers. Much of the source
+ includes the headers to libs and system stuff.
Most probably. Without optimization, by far the
bulk of a compiler's time is spent parsing.
Without meaning to sound condescending, I must
at this point mention things like the redundant
include guards described in the Lakos text. I
found that the little extra typing really can
speed up the compliation stage significantly.
+ 4 Meg executable swells to a mindboggling
+ 130MB of god-knows-what nonsense when the
+ -g flag is on.
Speaking only for myself, not the EGCS people:
why do you care? It's the debugging version,
not the production version.
I realize that's harsh, but for the most part
my binary sizes don't get much attention from
me until after I turn off -g, enable a string
of space-saving optimizations, and then strip
the binary.
+ the current situation sucks for those of us
+ with beefy apps.
My last major project was beefy enough, and
egcs pulled through with flying colors for me.
If you have suggestions, I'm sure the EGCS
maintainers would welcome your patch...
Luck++;
Phil
Re:Hm... (Score:1)
using it. Now I believe it is totally optimal for
what we are doing (manipulating many large data
sets generated from a numerical engine).
One reason I was against it initially is that it
requires a very standards compliant C++ to work
properly. Honestly I've been using the M$
compilier which is pretty compliant, but is
missing partial specialization which would make
iterator_traits work correctly.
Also I have found that use of STL's generic
programming paradigm, if bought into permeates
your code beyond the use of collections. For
instance I find myself doing this all the time
class foo{
template
void bar(It begin, It end);
};
Unfortunately MS forces you to define bar inline
in this situation, but it works...
Generally STL == good
Negatives:
compilies very slow
Bloats object code.
Anyway I'm intested in getting my hands on the
latest GCC to start attempting to compile some
of the STL code I have been working on.
C++ is not OO, it's multi-paradigm (Score:2)
It means that it supports the combined use of classic low-level structured programming (C), object-oriented programming (Simula), and template programming / stronger typing (Ada).
SmallTalk is 100% pure Object. Java is around 75%.
Now, my opinion: C++ is overcomplicated, mostly because it is too low level and high level at the same time.
Re:Huray! Now, more people use C++!! (Score:1)
Not fair or true. There are plenty of people who "know better" and don't avoid the language. C++ is actually a very nice language if you avoid the standard pit-traps (which are many).
For example, I recommend avoiding multiple inheiritance (the only thing that I think Java got right), references, templates, run-time type checking, public data members, unplanned parenthood (e.g. what most people call reuse, and are shocked to find slows projects down), and most of all operator overloading (I'm still stunned by the sheer stupidity of overloading If you avoid these constructs you will soon find that any C effort could be sped up several-fold by the addtion of polymorphic function signatures, single inheiritance, namespace separation, data hiding and the (slightly) improved memory management.
Now, all I need is something that gives me the speed and low-level handling of C++ plus the high-level abstractions of Perl. For now, I will have to resign myself to calling C++ from Perl using XS.
Re:Upgrade consequences? (Score:2)
Optimized around nbench (Score:1)
Re:Kernel and GCC 2.95 (Score:1)
AFAIK a linux kernel written in Ada would never get up to the complexity level of Minix, because all the coders would get fed up.
Re:Java != OO? (Score:2)
Re:Huray! Now, more people use C++!! (Score:1)
C++ is useless trash. People who know better avoid it like they do the plague.
-----end quote-----
Um, no. If your statement is true, then a myriad of proggies and libs that we know and love (e.g. Linux, Gimp, Apache, Samba, Sendmail, Gtk+, Qt, etc. and then everything built on top of them) might not exist. At least they wouldn't exist in the form that we know them now.
Re:Huray! Now, more people use C++!! (Score:1)
From an OO perspective, that is 'equality'. Two
objects that happen to contain the same
information, are still two different objects,
and thus not equal.
Johan Veenstra
Modula 3 kernel - SPIN? (Score:1)
Effectively, M3 was a "one group" implementation, a Modula family language produced by DEC.
It appears to be about as portable as GCC, and the SPIN OS is written in it.
I could imagine worse ideas than trying to build a kernel in Modula 3...
Test Software sans OOP (Score:1)
product line. Our enviroment has been defined
as ANSI C. With the number of developers on two
continents working in the code, that we have,
standards are critical. Resently we have been
running into difficulties. To solve them we have
been implimenting some OOP concept in regulare
old ANSI C. Monday I will be submiting even more
changes in that direction to my team for review.
For some tasks OOP is the only way to go. We will
eventualy be migrating to C++. Having the path to
OOP that C++ provides will make my job much easier.
Saying that C++ is trash is silly, and demonstrates
a very myoptic view of programing. As with all
languages, there are "features" that should be
avoided. But data hiding and single inheretance
are incredably valuble. Especially in instrument
control.
Grow old waiting for Link wth DWARF (Score:1)
I guess I am spoiled by 30 second turn arround times on other platforms to link my app but 8-10 minutes to make a small change in one file and launch the debuger is way beyond unacceptable.
--BQ
Re:GCC and Ritchie's compilers (Score:1)
Re:Huray! Now, more people use C++!! (Score:1)
If you use STL, you'll try to compile your program, and it will say:
Which is a whole lot better.
Templates are good. Void pointers are evil. Think of them as Obi-Wan Kenobi and Darth Vader, respectively.
Re:Kernel and GCC 2.95 (Score:1)
Re:I have never seem a large GUI scheme app... (Score:1)
How is this of value? Deep inheritence
heriarchies are evil enough. I can't imagine
wanting deepen them at run time. Sounds like
a maintence nightmare to me.
Re:Huray! Now, more people use C++!! (Score:1)
Ironically, for the same reason it's easier to write more efficient code as well, since complex data structures can be used with a minimum of effort. So it comes down the the coder's skill -- you'll tend to see greater extremes of *great* and *horrible* code in C++.
The biggest gains are from using better *algorithms*. E.g. going from O(n^2) to O(n) is going to matter a lot more than a constant 5-10% gain.
Most of the time it's only about 20% of the code in a project that needs to be fast. Profiling can help you identify that 20% and get it up to speed.
Re:RH6 RPM's? (Score:2)
installwatch
gnome rpm work station
I could list more....just go to www.freshmeat.net and search for rpm.
Re:RH6 RPM's? (Score:2)
----
Re:Huray! Now, more people use C++!! (Score:1)
Templates themselves are wildly useful, it is just that you really have to know what you are doing to get anything positive out of them. I'd say, don't use templates unless you understand exactly how the STL works, and then only use them if you can't do the same thing easily without them.
Operator overloading should only be used in certain cookie cutter ways. Creating '>' operators for io in a new class. Creating an assignment operator for a new class. That sort of thing.
IMHO, most of the "problems" of C++ come from people who overuse inheritance . Huge inheritance hierarchies are nearly always a mistake. Much better are a bunch of smaller, completely independent classes. (You know, "modularity", that thing they told you was good in school.)
The other mistake is going in expecting something like Smalltalk and then getting pissed because it is not. Part of the whole point of C++ is that you don't have to make every single line of code object-oriented. I know that is heresy for many OO types, but in the real world it is damn useful to have a language that is OO when you want it, but only when you want it. That is why C++ is so much more popular then languages that enforce OO.
Personally, I think anyone coding in C should switch to C++ even if they aren't going to go OO. C++ has some extensions over C that allow you to improve structured programs as well. Just remember that typing "g++" does not mean you have to start the project with "class Object".
Re:Kernel and GCC 2.95 (Score:1)
Re:Huray! Now, more people use C++!! (Score:1)
Re:Upgrade consequences? (Score:1)
Re:Huray! Now, more people use C++!! (Score:1)
While being ugly from an OO point of view, the backwards compatibility with C has huge advantages for real world programming since many libraries are still written in C. And it helps the open-minded of the crowd of C programmers to upgrade slowly to more modern techniques.
Strange alliances here in this tread. On the left side you have the pure OO-people who think C++ is too C-ish, on the right side you have the C hackers who think C++ is too much of a high-level language. In the middle there are we: the poor pragmatic C++ programmers who actually write most of the exiting software these days
Well.. (Score:1)
Re:Huray! Now, more people use C++!! (Score:1)
We use STL all over in our software, on various UNIX platforms. Maps and vectors all the way (where in earlier times we had to fiddle with malloc/realloc and free, now everything goes easy and there are no more forgotten free()s thus no memory leaks), never had any problems.
Most UNIX C++ vendors offer good STL implementations. The only one, alas we had to code around bugs is GNU's libstdc++. I know that they've worked a lot on it since the release of EGCS, so I hope that GCC 2.95 brings improvements in libstdc++ so that it becomes useful too.
Re:Huray! Now, more people use C++!! (Score:1)
There are times when writing full-OO C++ makes things a lot more difficult. The C++ portion of this project was only 2500 lines. Cool things about non-OO C++:
+ declare your vars immediately before use.
+ string, queue, and friends
Re:Performance of compiled binaries compared to pg (Score:1)
Re:Chill support (Score:1)
John
Re:Glacial compile times and huge dwarf builds (Score:1)
Re:Kernel and GCC 2.95 (Score:1)
Besides, he's not going to veto something if it proves to work consistently in test releases. At worse it'll just take a year or so for something to be proven to the point where it gets folded in.
Re:Glacial compile times and huge dwarf builds (Score:1)
On Solaris, my egcs c++ builds are vastly smaller and quicker if I use the GNU linker. If throws away unused virtual function calls etc. If GNU ld is available on your platform I recommend you give it a go. Of course it is already present on Linux.
Alex.
ADA = speed and bit twiddling??? (Score:1)
Granted it's a lot more robust but the costs are too high.
Maybe for some certain apps it would be okay but as far as Kernel is concerned you need something with real speed and portable such as C/C++.
Re:Huray! Now, more people use C++!! (Score:1)
Hash tables are not part of the standard library as defined in the C++ standard. Thus it isn't too surprising that they might cause you problems. You can't blame the language for features that aren't part of it.
If you took two char *'s and compared them, it would compare the addresses. Don't expect the default behaviour of C++ to do anything different. If you wish to compare based on the contents of the strings, you should be able to provide an alternative comparator in the template.
(It's hard to include much code in Slashdot due to character munging. If you want specific help, demunge my e-mail address and e-mail me.)
For example, if you had a std::set of char *s, it would just compare by value. But if you do
std::set mySet;
Then it will sort using the () operator of MyComparator, which you can tie to strcmp or something like that. You might also want to consider using a string type instead of char*'s, for internationalization reasons.
One of my co-workers starting using STL two days ago, and came to me for a little starting help. Two hours later he came back and was gushing about how cool it was to encode powerful, efficient algorithms in just a few lines of code. Perhaps you just need another me handy? Ask for help on comp.lang.c++.moderated.
You can have my C++ compiler when you peel it from my cold, dead fingers.
Re:Huray! Now, more people use C++!! (Score:1)
Re:No, C++ appeals to people who understand OO (Score:1)
print "Hello world!";
Perl rules.
Ada kernel (Score:1)
Many in the hacker/free-software/open-source communities disparage Ada because:
I can understand why a hack programmer wouldn't like Ada (which is what we now call the modern OO language formerly known as Ada95), but most software engineers and disciplined programmers absolutely love it. Loving it, and being able to use it in a project because of political reasons, are often two different things. But on a purely technical basis, Ada rules for complex programs.
On the chance that anyone here might like to learn more, maybe try GNU Ada on their Linux box, see the Home of the Brave Ada Programmers [adahome.com], the starting point for All Things Ada on the web.
And I have to agree with the first poster--an Ada kernel would kick some serious butt. But I'm not convinced that it will never happen. That's what they said about the rise of Linux, and the decline and fall of Microsoft.
Performance of g++ vs. competition under Linux (Score:2)
KAI C++ makes grand performance claims, and Comeau is another compiler built on the same ECG backend (but much cheaper). I'm mainly interested in the Linux platform for now.
Notes:
Re:Huray! Now, more people use C++!! (Score:1)
This is not correct.
Equality for char *s is comparison of addresses, because they are pointers. Compare two pointers and it's the addresses that determine equality. Strings stored in char *s are not truly objects. If you want to compare string contents, you should use a string object of some sort or a comparator function. If you want to use char *s with an STL algorithm, you'll need to provide a comparator function object that does the comparison technique you desire. For example, I have two sets, one of which has as its keys iterators into the other set. By providing a special comparing function object, the iterator set is sorted on a different property of the key than the other set.
Re:Huray! Now, more people use C++!! (Score:2)
C++ has it's pros and cons like every other language. Likewise, it is better suited to some applications than others. C++ code can be syntactically cleaner, and more maintainable, or it can be MFC.
It's biggest drawback is that it can obfuscate inefficiencies in code. What looks like a simple assign (or memcpy) can end up serializing and parsing at a high cost.
It may not even be bad coding when the objects are implemented that way (perhaps the 'assigns' are never done in performance critical areas and the marshalling is needed for interoperability.) The problem starts when sombody else has to maintain the code. They end up loosing the advantages of OO code because they either have inefficient code, or have to study the objects and their relationships just as deeply as they would in C.
Personally, I find that by the time I dig through C++ code (for the fabled ease of code reuse) to check for those problems, it would have been just as easy to cut/paste C code. If the objects are available in library form only, it just means that you either end up with wrappers looking like chinese boxes (so that doing anything involves too many pointer dereferences internally), or you end up with a dozen similar objects that all inherit from the same base and do the same thing in slightly different ways.
C++ does have a few nice features. Most of those seem to be in the process of back-porting into the C standard.
Some things call for C++, others call for C, Perl, or Lisp. Some few things even call for assembly.
While it is true you can write OO-like code in C, why would you want to?
In cases where OO is the right approach, but I want to make the cost of various operations quite explicit. The Linux kernal is written that way.
Re:Web pages (Score:1)
Re:No, C++ appeals to people who understand OO (Score:1)
Re:Kernel and GCC 2.95 (Score:2)
> communication between the egcs team and Linus was not very successful
I don't understand that...
What do you expect?
Should the egcs team hack the compiler to work around "missbehaviours" in the linux sources?!?
Linux that has the problem, *not* egcs. Nearly all other pieces of software (incl. other kernels) compile and work just fine with egcs.
Re:Huray! Now, more people use C++!! (Score:1)
Re:Huray! Now, more people use C++!! (Score:1)
Bingo. I found that most people trashing C++ had not update their knowledge since late 80s, early 90s. ISO C++ is a different beast.
For most data analysis code C becames ugly and incredibly error-prone.
Just why should I use char** for a vector of strings? With all related malloc() nightmare?
Why write my own containers, or reuse somebody's library with obfuscated interface? Hunt down stupid pointers. Bleh...
Hm... (Score:1)
I know, it can be hard to start for many slow-minded people, but if you persevere and actually learn how it works (including some internal details about its built in memory management) you will understand that it is the best set of containers to use among almost all languages (taking into account both performance, flexibility and easy of use)..
Re:Huray! Now, more people use C++!! (Score:1)
Re:Glacial compile times and huge dwarf builds (Score:1)
+ compile/test/debug cycle. [...] that's where
+ the ~8min's+ per compile becomes penal.
Do you want the 8 minutes, or the 130 MB?
I was defending the binary size, not the compile times.
debug cycle much quicker, with tiny little testcases.
It also helps to set TMPDIR to a ramdisk.
+ Has anybody thought about a gcc based build
+ environment that can be distributed
I'm not an expert (yet, dammit
STL is a wonderful thing (Score:1)
I agree completely.
I've always had a certain amount of ambivalence toward C++. On one hard, it addresses some of the short comings of C; but on the other hand, it has gotten so complex that it rivals Ada in this respect. Probably it's best feature is that it lets one pick and chose the features and paradigm that one wants to use, unlike some languages (which I will not name here, lest I be flamed to a crisp by some language x zealot) which forces one into a certain paradigm.
But I really like generic programming in general, and STL in particular. It's unfortuanate that so few people have experimented with this type of programming.
TedC
Re:Microsoft decline (Score:1)
Re:I have never seem a large GUI scheme app... (Score:1)
I haven't ever used that feature myself, and it is certainly good and probably advisable to write programs that don't use it. I think it's one of those things that you want to avoid if you can, but that can really be a lifesaver every once in a while. A situation I can imagine- say somebody wrote a Car class, and subclassed it to Toyota, Honda, Ford, Chevy, et cetera, and then models for each company, from which you are deriving your instances. Now you realize that you have a need to override a method in the Car class for cars built after 1985- so you'd really like your class hierarchy to have Car on top, with all of the companies models as subclasses of Car, and then NewCar as another class, also with all of the companies underneath. There are two problems, though- first, you're duplicating code for a potentially huge hierarchy, which is never good. Second, you may not have access to the source of the classes you're using, or permission to change them, in which case you're SOL with Java or C++. You could make a NewCar subclass of every model, but then you're duplicating your method a huge number of times, and it's a big pain too. The best solution is just to be able to take an object and figure out dynamically whether it's a Car or a NewCar- at some point after all the fields are set, just say "if you were built after 1985, interject NewCar in between Car and your company."
I should again mention that I'm not a hard-core object-oriented Schemer, so I don't really know if that's the point of it or not, but it does seem that it would be useful occasionally.
(Incidentally, I think JavaScript allows for the same sort of thing. Just kinda funny. I'd hate to think that JavaScript might be the choice of a new generation...)
Then you ought to love VC++! (Score:1)
I know this won't go over real big on a forum dominated by Linux users, but VC++ generates some really fast code. It's not just simple trimming CPU cycle stuff either; they (MS programmers) seem to be doing a pretty good job of recognizing patterns in code and replacing it with faster algorithms when it's "safe".
TedC
"There ain't no such thing as the fastest code"
Michael Abrash
Re:Huray! Now, more people use C++!! (Score:1)
If it bothers you that you're really doing a pointer comparison when you say (charPtrA == charPtrB), the solution is to use STL strings instead, which hash just fine with no inconsistency of hashing vs. equality (that is, *stlStringPtrA == *stlStringPtrB if they have the same string value, and hashValue(*stlStringPtrA) == hashValue(*stlStringPtrB) as well). In fact, you should use STL strings for everything anyway if you're programming in C++, because they're far superior to char * pseudostrings, whose disadvantages are myriad (such as segfaults if you don't do things to them that would seem illogical to do to strings, linear time length-finding, non-growability, and so on), and whose only advantages are that they're easy to implement and have very small memory overhead. But you don't have to implement strings yourself, and I don't know about you, but my computer has enough memory that it can spare a few bytes if it makes my life easier.
Parallel Make: (Score:1)
Gatekeeper (Score:1)
I'm Confused (Score:1)
Is EGCS going to replace GCC? Is it going to be/already is GCC? Is it going to live side by side with GCC?
My confusion stems from the fact that I seem to remember something about a name change for EGCS being posted on Slashdot not too long ago, and being fairly confused then. Now I can't remember what the name of my favorite compiler will be, and what neat new tricks it will have nestled inside.
Re:Huray! Now, more people use C++!! (Score:1)
C++ adds to C the sort of things that serious programmers need to manage large projects. In many cases these things are overkill for small ones and just obfuscate things. Of course, it has a strong OO background (but that just reflects that sometimes an object-programming paradigm is what is desired).
To truely appreciate what C++ can do fo you, read "Design Patterns" by Gamma, Helm, et. al.
Re:Ada kernel (Score:1)
Maybe.. (Score:1)
CodeFusion) has new IA32 backend already installed. According to the ad for the CodeFusion on the Cygnus site, it has 80% speed increase over "net egcs" for Pentium II for specific benchmarks (its on par with Intel's Proton(?) compiler on that, and 30% faster than VC6.0)
Problem is CodeFusion is not shipping yet..Should be a matter of days(?). Don't know if the latest GNUPRo has the same optimizations.
Link (Score:2)
Citation..
(1) Code Fusion produces code that is 85 percent faster than the current Net GNU release, 20 percent faster than the Microsoft Visual C++ 6.0, and equivalent to Intel's Proton compiler. These results are based on the Integer Index performance in the byte benchmark.
Re:Huray! Now, more people use C++!! (Score:2)
C++ and other OO languages have been proven to be more efficient for programmers on projects larger than 100k lines.
It takes less time for a programmer to start working with a large codebase written in C++ than in C plain and simple.
For example, I was able to make modifications to a bug in Mozilla roughly 20 minutes after I first took a look at the source. When you break your namespace for functions and variables down into peices the way C++ does, it is easier to digest.
While it is true you can write OO-like code in C, why would you want to? C++ is just an extension of C; all the functionality of C is included in C++ at a minimal cost.
--
More backward compatability (Score:2)
last1120c or prestruct-c?
Performance of compiled binaries compared to pgcc (Score:2)
Cheers
Lucas
Re:GNU IA32? (Score:2)
2.95. If you cvs co it its version number is
2.96 right now, but I don't know when the merge
will occur.
Re:Kernel and GCC 2.95 (Score:2)
That's not good engineering, to write buggy code and expect other people to fix the tools to work around your buggy code.
Re:Kernel and GCC 2.95 (Score:2)
To compile Linux 2.2x with gcc 2.95, you need to include the flag -fno-strict-aliasing
This flag is needed if you have code that does things like try to read an array of longs as an array of shorts, without using unions.
Thanks (Score:3)
to say thank you to all developers that spend
their time making gcc better.
I use gcc/g++ almost every day and I am very pleased with it.
Web pages (Score:3)
As a blatant plug I'd also like to say that the GNU Webmasters need more help. Do write me if you want to help out.
pgcc -> gcc? (Score:2)
Kernel and GCC 2.95 (Score:5)
The linux kernel violates certain aliasing
rules specified in the ANSI/ISO
standard. Starting with GCC 2.95, the gcc
optimizer by default relies on these
rules to produce more efficient code and thus
will produce malfunctioning
kernels. To work around this
problem, the flag -fno-strict-aliasing must be
added to the CFLAGS variable in
the main kernel Makefile.
Disclaimer: I haven't downloaded the new compiler and so I haven't tried it yet, but keep this in mind when you upgrade gcc.
Upgrade consequences? (Score:2)
Will it break my system? What are the requirements? Will the kernels compile with it? how about other large projects such as X, Apache, Gnome, KDE.
The compiler is one of the core programs if you don't use binaries so the over-all stability of your Linux box greatly depends on a good combination of compiler, libraries, includes etc etc.
Is there a HOW-TO available on this? (not just saying: "old goes with old and new with new" or providing upgrade instructions for a specific compiler but more a general document describing how some parts of the system work together and how to make optimal use of that)
Re:GCC and Ritchie's compilers (Score:4)
As a member of the gcc/egcs steering committee, I would be very happy if, in fact, GCC were "the finest compiler on the face of the earth". It isn't. It is the most widely ported compiler, and it's decent enough, but many other compilers beat it for code quality.
gcc 2.95 still isn't that great on Intel-compatible processors. The good news is that we finally have a new IA32 back end, produced by Cygnus under contract, that has been donated; we'll finally have enough accuracy to do instruction selection and scheduling properly. It will be in gcc 2.96 (or whatever we call it). Until then, pgcc will be better (I believe that the new back end beats pgcc at least most of the time).
Re:pgcc -> gcc? (Score:2)
The need for pgcc should be eliminated by the new IA32 back end (which isn't in 2.95, but will be in the next major release).
I don't believe that there is any copyright assignment issue for the pgcc patches. The real issue was that Intel didn't do things "right". Their way of modifying the compiler was to ignore the distinction between the front end (portable) and the back end (processor specific), so pgcc is an Intel-only compiler as a result. This means that the Intel patches would need to be redesigned. Some of them already have been and are already in.
Re:egcs replaces gcc and egcs renamed to GCC (Score:2)
We tried to ask you, but since you posted as Anonymous Coward we couldn't find you. Since we lacked your enormous wisdom, we, in our lesser wisdom, called it GCC.
We considered the name "gcs". We decided to keep "gcc" because that's the name most people know; had we chosen any name but "gcc" some clueless folks would have kept running gcc-2.8.1 forever. Besides, we'd break every makefile in the world if we changed the name users type.
Don't get hung up on capitals versus lower case. Remember, when you invoke the command "gcc", it will happily build C, C++, Objective-C, Fortran, Java, or Chill for you. So gcc is the GNU Compiler Collection.
Re:Kernel and GCC 2.95 (Score:3)
I admire the job Linus is doing but I can't imagine a single person doing it any better. I've always found Linus a humble guy in the end. Show him something's really better your way, and in a way he can understand (considering the other work he does), and often he'll adopt it. He's made an occasional policy or kernel decision that might have upset me, but coordinating public devlopment can be acurately described as herding cats. It's an endless series of tradeoffs because everyone wants to go his own way; sometimes patches are rejected, sometimes the ideas they implement become the center of rabid e-mail debate, and sometimes they're quietly applied.
The sheer numbers of developers and different directions and goals of each pulls on Linus in a different direction. I've used Linux on a variety of architectures, and I wish Linus would focus more on keeping 'stable' release of the kernel clean across all architectures--these are the quality issues of which you speak. 2.2.10, for example, won't compile on an Alpha.
I can't say I see Linus holding back the performance of the kernel for reasons of stubbornness. Most of the performance improvement suggestions he receives present a risk in other areas (stability, security, portability). He's making trade-offs, and I personally admire most of the decisions he's making.
Scalability and performance issues are most often encountered when trying to make the Intel architecture do something it was never intended to do: be scalable. I think it's unfortunate that so many people continue to squeeze this twenty-year-old idol of cruft into such places when cleaner and better engineered alternatives exist.
I think he's doing a very good job.
Re:Kernel and GCC 2.95 (Score:2)
Re:Kernel and GCC 2.95 (Score:3)
Sterring. Rhymes with herring. (Score:2)
-russ