GCC 4.9 Coming With Big New Features
jones_supa writes "When GCC 4.9 is released in 2014 it will be coming in hot on new features with a large assortment of improvements and new functionality for the open-source compiler. Phoronix provides a recap of some of the really great features of this next major compiler release from the Free Software Foundation. For a quick list: OpenMP 4.0, Intel Cilk Plus multi-threading support, Intel Bay Trail and Silvermont support, NDS32 port, Undefined Behavior Sanitizer, Address Sanitizer, ADA and Fortran updates, improved C11 / C++11 / C++14, better x86 intrinsics, refined diagnostics output. Bubbling under are still: Bulldozer 4 / Excavator support, OpenACC, JIT compiler, disabling Java by default."
finally
New in this release: lots of stuff most people don't care about, some minor improvements and oh yeah we gave up on Java.
"Ada" is the name of a person, and the language.
"ADA" is the Americans with Disabilities Act, or the American Dental Association.
Sheesh, evil *and* a jerk. -- Jade
For God's sake, that's *THIRTEEN* (13) links to Phoronix!
Pointing to a couple of ML threads or to the 4.9 changelog would've been more than enough. http://gcc.gnu.org/gcc-4.9/changes.html
This is like Amazon book ads, only more pointless. Why not either make a submission "The GCC team needs your donation," or wait to advertise it until people can respond to the ad and download it? If it had only one new feature (and it wasn't "now secretly adds more sophisticated backdoors") people with any sort of interest in using GCC will probably get the new version when it's available.
The whole article really reads quite fanboyish / alternatively GCC has hired a marketing department. But it looks really lame when you talk about exiting new features, and you just copied what Clang had before.
But then how would Googlebot know that Phoronix is really great and popular and they should rank it higher in searches?
I see from the status page the Regex support is still not complete, part of the C++11 standard. It would be nice if support for this standard could be completed before starting on C++14.
Pretty colors are for the clang kids who only know how to code with crayons and finger paints.
I was writing a kernel once, but then I ran out of blue crayon and had to drop it. :-(
Blue finger paint just isn't good enough!
Just let us know where 4.9 is in those 'repositories', please.
Without the arrogant stupidity.
It's funny, but out of context. See: Jeff Atwood, “Regular Expressions: Now You Have Two Problems” June 27, 2008, http://www.codinghorror.com/blog/2008/06/regular-expressions-now-you-have-two-problems.html
- David A. Wheeler (see my Secure Programming HOWTO)
Blue finger paints is crap.
- Linus
Mod me down, my New Earth Global Warmingist friends!
and no gdc integration. These are the items I am most interested about.
No, it has nothing to do with ARM. It's a different architecture: http://www.emdebian.org/~zumbi/mx53/u-boot-imx/doc/README.NDS32
Mada mada dane.
You might have heard about the difference between software that's "done" and software that's "work-in-progress" (or "half-baked" to use a less charitable term).
As a compiler *user* (as opposed to a compiler hobbyist) I'm not in the least interested in any work-in-progress in-the-repository stuff because I don't want to waste my time stumbling into all the bugs. So until and unless the GCC is officially released as 4.9, it doesn't exist for me.
I'm perfectly aware that GCC isn't a commercial product, which is all the more reason to stay away from "cutting edge" stuff. I'm happy to let 'em work on that and I'll take a look at it after it's done (and others have verified that this particular cutting edge stuff actually cuts the mustard, so to speak).
Good of you to note that GCC doesn't do press-releases. Only the kind of article that Phoronix published looks for all the world like a press-release to me. Phoronix however is Phoronix ... geek territory with people avidly lapping up the latest new year's resolutions on part of tool makers. It's a specialist audience.
Only ... echoing such articles on Slashdot suggests that it has some news value to a more general audience. Unfortunately that's not the case with half-baked stuff like this it's-in-the-repositories code. If it were done, it wouldn't be "in-the-repository", ok? It would have been *released*.
A good JIT actually performs very well compared to ahead of time compiling, and can take advantage of execution profiling (for things like branch prediction) by deferring compilation until the bytecode runs a few times.
The main advantages of gcj are improved startup times, porting to unusual architectures, and maybe for memory constrained targets.
When comparing C++ performance to Java, there are many things to keep in mind aside from the JIT compiler:
- Java also has GC overhead. You get a fairer comparison by adding garbage collection to your C++ app. The performance effects of garbage collection are complicated, but one of the difficult problems is that it tends to fill the processor data cache with useless entries.
- Java adds overhead required by the JLS such as array bounds checking or class initialization tests.
- Exception handling can also impact code generation. Java requires null pointer dereferencing (for example) to be trapped and handled, which adds abnormal edges to a CFG which places restrictions on e.g. instruction scheduling. Strict expression evaluation order, required by the JLS, has the same effect.
- Java has a more limited type system. In particular objects other than primitive types cannot be passed by value, which tends to result in more frequent memory allocations, more garbage collection, and more pressure on the memory cache than languages that can make more efficient use of the stack.
The biggest reason worked stopped on gcj was the release of OpenJDK, since one of the main reasons for gcj in the first place was to have a fast and free Java runtime. OpenJDK satisfies both.
Please edit and re-submit.
putting the 'B' in LGBTQ+
If you don't want to have your code relicensed under different licenses, use a Copyleft license. If you want to have your code relicensed under different licenses, stop complaining when somebody actually does exactly that.
Actually, I'm not sure they want their code relicensed. Indeed, the BSD license doesn't grant you permission to do so. Theoretically the only reason it works is because the GPL only requires that the code be released under the GPL license but it doesn't require that the original license disappear, it simply demands that the original license can only invoke certain restrictions, like the attribution requirements present in many BSD licenses.
I solved the problem for myself by creating my own license which forbids relicensing but otherwise has no requirements whatsoever. BSD projects can use my code simply by keeping my code under my license and their code under whatever license they choose, as there's nothing about copyright law that requires all of the code in a project to be released under only one license. GPL projects, however, cannot use my code, because the GPL requires all code in a project to be GPL code, but the license of my code cannot be changed. It's really quite amusing since my license isn't specifically GPL-incompatible, but rather, it's the GPL's own viral provisions that create the incompatibility. If they ever create a non-viral GPL it'll automatically be compatible with my license, and if there are any other viral licenses I don't know about, they're automatically incompatible with my license.
Clang has really become a boon to open source compiler development. Unlike the open source *BSD operating systems, which are too far behind the GPL operating systems in many measures (not all), Clang has really electrified the compiler scene.
I see nothing but good things coming from this in near future.
And in such a rapidly evolving area as compiler development, having a *BSD license does not really hurt either. It's not like the *compiler* is likely to get put into some device with proprietary modifications.
News is (mostly) about what actually happened.
Let's not confuse the two