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.
Improved diagnostics output. GCC can now play with colors!
Maybe not..
This is just noise.
"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.
Steve... is that you? Are you alive?
Is that another arm SOC or something else?
I'm not particularly interested in what people (GCC in this case) say they'll (probably) include in the next release.
Why not wait until they've actually released the new version and we have something to test? Or better yet, someone has done the tests for us and is writing about the results.
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)
and no gdc integration. These are the items I am most interested about.
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*.
...still confuse MOVAPS and MOVUPS leading to memory alignment crashes? It's been doing this since 2007.
Wow, this looks awesome. I'm so excited for RedHat to incorporate this version of gcc into RedHat Enterprise in 2032.
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
GPL is about maximizing software freedoms for the end users. You can't take GPL'd code (which guarantees certain freedoms to users, such as the availability of source) and make it into a closed-source product, thus taking away those freedoms.
BSD is about maximum freedom for developers. It gives them code, no strings attached, that they can take and use for something else, even in a closed-source product, with no obligation to give anything back. Thats pretty convenient, especially for closed-source developers.
But the BSD style has two pernicious effects: (1) they sometimes take open-source code and use it as part of a closed-source product without extending to the end users of that product the freedoms that the original open-source code had (i.e. they don't give away the source code, and users who have a bug or a problem with it or still need it after it gets End-of-Life'd are just shit outa luck). (2) Developers who take and use BSD code have no legal obligation to give their modifications back to the community, so sometimes they don't. And that reduces the incentive for others to volunteer their time and effort on those projects. Many people do anyway; but not as many as GPL'd project. For a developer volunteering on a GPL'd project, part of the quid-pro-quo is that they know that anyone else who wants to distribute modified copies or derivative works of that developer's contributions, will have to contribute back their own contributions to the community.
Lots of volunteers like that knowledge that others can't (legally at least) just take their GPL'd code and use it to make a profit in a non-free product without giving anything back to the community. Then again, there's some developers who just want someone, anyone, to be able to do something useful with their stuff. And they don't care if those people make a profit off it. Those developers often choose a BSD-style license to maximize the number of other developers who might be able to do something useful with their code (i.e. because it can be used by lots of developers who are unwilling or unable to abide by the GPL license terms to contribute back their modifications).
I think both styles of license have their place and many important projects exist that could only have been as successful as they were under one model or the other. As a closed-source developer, I sometimes find available BSD-licensed libraries to be extremely useful, in situations where I would not be able to accept the license terms for GPL-licensed libraries. At the same time there is a large and important body of GPL'd software and I'm glad that exists too.