GCC 4.9 Coming With Big New Features 181
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."
frist (Score:1, Funny)
finally
Re:frist (Score:5, Funny)
finally
C++0x does not have "finally".
You'll have to implement it yourself, e.g. using a destructor.
See for example: http://codereview.stackexchange.com/questions/2864/an-implementation-of-finally-in-c0x [stackexchange.com]
A big improvement indeed (Score:3, Insightful)
New in this release: lots of stuff most people don't care about, some minor improvements and oh yeah we gave up on Java.
Re: (Score:2)
I have to agree - I've been trying to find out more on the multi-threading support, something that is strangely lacking detail but you would imagine could be quite popular
Re: (Score:2)
C++11 added threading constructs to the standard library, and I believe C++14 has some minor changes there as well. Standard cross-platform multi-threading is a big deal, though it's had to find documentation on the details.
I just discovered that thread-local storage is now a standard library thing - which is awesome. TLS is quite useful for logging and other infrastructure stuff, and making it standard is quite welcome.
Re: (Score:2)
On Windows, you use critical sections, not mutexes, for most things. Perhaps the biggest design mistake in all of win32 was that need to initialize them (and setting the memory to all 0, which at least in C++ you can count on in many cases, isn't right). It's a huge "what where they thinking?".
How is anything "initialized" at compile time in C? Or do you mean that clearing the memory to 0 is correct for initializing a POSIX mutex?
Re: (Score:2)
Re: (Score:2)
Ah, got it - that works for C, but isn't as good for C++.
I say this having personally fought a bug in production C++ code where control entered a critical section during static initialization, before the compiler's arbitrary initialization order initialized the critical section, leaving the object in a busted state for runtime and causing the most bizarre and cryptic deadlocks. But C++ wipes everything static to 0 before it plays any games, and all my personal code is designed where that is proper initiali
Re: (Score:3)
we gave up on Java.
That's not news?
Re: (Score:3)
No it's a relief. Hopefully Sun will follow suit soon...
Re:A big improvement indeed (Score:5, Insightful)
You only don't care about sanitizing standard-undefined behavior if you don't care about bugs.
That one's a Really, Really Big Deal.
Re:A big improvement indeed (Score:5, Insightful)
I assume you can list all the undefined behaviors in the C standard off the top of your head, yes? And you've never actually written a line of code with an error in it, right?
I've spent a lot of time cleaning up after security bugs written by people with that attitude. None of them could make mistakes either. Maybe you guys should form a club, so the rest of us can identify the special beings walking among us.
Re: (Score:3, Interesting)
Frankly I neither know nor care if your perception is that you have spent a lot of time cleaning up after security bugs, but the fact that you don't understood what my attitude is makes it fairly implausible.
For one thing, a lot of shops do not permit a drop into naked API calls, and areas of concern are often abstracted out. And even if they a developer and tests should be checking the documentation for that API. But that's all irrelevant. My point was that this is mainly useful on programs that already ha
Re: (Score:2)
You are entirely correct: this is only applicable to code with bugs (sometimes obscure ones). Therefore, as you point out, it is mostly useless, since it is only of use to people who write buggy software and/or haven't memorized every source of undefined behavior in the appropriate Standard. The vast majority of programmers who have memorized the Standards and never write bugs have no need for it.
Re: (Score:2)
How many programs don't?
I strongly recommend reading (or at least doing a quick pass over) http://pdos.csail.mit.edu/papers/ub:apsys12.pdf [mit.edu] to get an idea of the scope of the problem.
Re: (Score:2)
Utterly untrue. This is about language ambiguity, not standard library ambiguity, so the C language API is moot.
Re: (Score:2, Funny)
> Maybe you guys should form a club, so the rest of us can identify the special beings walking among us.
http://www.openbsd.org
there you go.
Re: (Score:2)
That whole sockaddr design sucks. It's about time somebody (or some compiler) complained about it.
Re: (Score:2)
Agreed. It's not the 1970s any more. We can adopt a design that reflects this fact.
Re: (Score:2)
Did you know that the following is now undefined behaviors thanks to GCC's adherence to the strict aliasing rule?
Surely that depends on the design of sockaddr. If the first member is a union of sockaddr_in and sockaddr_in6, then I think it will work. You can certainly cast a pointer to a struct to a pointer to the first member. And, you can certainly cast a pointer to a union to a pointer to any member. No idea if you can do both in one operation.
Either way the fact that this is not obvious does indeed illu
Re: (Score:3, Interesting)
New in this release: [...] we gave up on Java.
Well, actually it's the other way around: Java gave up on them - meaning that actual development of GCJ moved from GCC to OpenJDK.
Not that i understand what it means for GCC, but i understand that it does not mean much for Java.
Re:A big improvement indeed (Score:5, Interesting)
Re: (Score:2)
IMO the problem is the lack of a JIT compiler. Java is too slow without it.
GCJ vs. JIT (Score:2)
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
Re: (Score:2, Interesting)
1) "A good JIT actually performs very well compared" in theory. FTFY. We're about XX years before JIT'd languages can _reliably_ be as performant as C code in general application.
2) A full-blown JIT without garbage collection is actually pretty hard, so in practical sense you can't have JIT without a garbage collector. The JIT needs to understand the memory model and manipulate object lifetimes in a generic manner unrelated to the contextual semantics of the application, and the only practical way to do thi
Re:GCJ vs. JIT (Score:4, Interesting)
1) Sure. When I said "performs very well" I mean within an order of magnitude. I've heard claims that JIT technology will surpass ahead-of-time compilation. I don't quite believe that either, and at any rate it's clearly not there yet. I didn't claim the JIT was equally fast or faster, but it's close enough that there just wasn't a ton of people interested in using a compiler like gcj.
2) I'm skeptical that JIT requires a GC (in the general case, though for Java it is clearly required by the JVM). Do you have a reference for this claim?
3) Yes, and of course real Java code does bounds checking too. Back when I was using gcj extensively, I was finding examples of duplicate array bounds checks, one added by the developer and one inserted by the compiler. A good compiler should be able to eliminate the redundant check. At times this is hard, such as when the caller does the bounds checking, and does so in a different translation unit.
4) Interesting. There are examples, such as the complex type, that would be far more efficient as a value object. But I agree with your point that passing objects that are too large as value objects is probably counter-productive.
Mostly I agree with your points. Especially that Perl is dog slow.
Re:GCJ vs. JIT (Score:4, Interesting)
I'm skeptical that JIT requires a GC (in the general case, though for Java it is clearly required by the JVM). Do you have a reference for this claim?
Well, to point to evidence otherwise, if by JIT your taking about dynamic translation/recompilation for optimization purposes then no. A number of machine emulators (CPU->CPU, see apple Rosetta) perform dynamic translation, and in a number of cases pretty advanced optimization. There have also been a number of native dynamic translators for a given machine architecture see (http://www.hpl.hp.com/techreports/1999/HPL-1999-78.html) for one example. There are also strange hybrids like the Intel Profile Guided Optimizations, where the feedback from a particular run is used to statically recompile the code. This effectively removes the profile/recompile overhead from an application at the expense of the fact that its now statically optimized for a particular kind of dataset.
But, you ask why isn't a JIT part of most compiler packages if it gives you all these advantages. And the answer is three fold. First OOO CPU's kill the majority of the advantage that projects like dynamo found. Secondly, the overhead of the dynamic translation monitoring/recompile is often greater than the performance gain. And finally, the JIT advantages are often isolated to small hot pieces of code (compared with optimizing an application that is hundreds of MB of code). Applications with small performance critical functions are often hand optimized in C/C++ languages in ways that cannot be done by simple dynamic optimization and often yield functions that execute at the maximum a particular piece of hardware is capable of (say limited by memory bandwidth, functional unit throughput, etc).
Re: (Score:2)
Thanks. When you say:
Well, to point to evidence otherwise, if by JIT your taking about dynamic translation/recompilation for optimization purposes then no
That is the definition of a JIT I have always used, thus my confusion. All of the reasons you state are performance arguments against JIT, but there are other reasons for JIT compilation, including architecture independence. But since all the world's an x86 these days, that feels less important now than it did 15+ years ago.
Speaking of dynamic recompilation, back in 1998 or so I was running Windows NT on a Digital Alpha. Since there were few native apps, Digital included a translato
Re: (Score:2)
Save the syllables!
Yeah! Those evil Japanese and Russian syllabling fleets, sweeping the oceans clean of cute baby syllables with their nets and harpoons. We've got to do something!
Re: (Score:2)
Sorry, but work on gcj was slow for a long time before Java was partially GPL'd. My take is that the people who write compilers for native code aren't really interested in languages designed for an interpreter. (Yes, they call it a virtual machine, but to me that's one flavor of interpreter.)
My (current) biggest complaint about Java is that it doesn't implement structs, i.e., non-object containers for non-object data. Perhaps I just don't know the language, but it appears to be that I need to copy data t
Re: (Score:3, Funny)
Re: (Score:3)
Where do such negative comments come from? Have programers generally left /.? :-/
I for one welcome gcc 4.9, as it allows me to use the full Ada 2012 language. Good job!
Re:A big improvement indeed (Score:4, Interesting)
No one programs anymore. All we do is link together pre-built libraries and frameworks and wrap it all in XML. Not sure who actually codes those libraries or where they come from, but the prevailing theory is that once a year the senior developers hike to the top of Mount Olympus and wrestle them away from the gods.
Re: (Score:2)
What, really? I had no idea gcc did Ada - that's actually pretty cool.
Re: (Score:2)
You don't need to wait for gcc to include the latest version of gnat. It's available for download from AdaCore http://libre.adacore.com/ [adacore.com] in either GPL or commercially supported forms. (Commercial support is intended for companies, though, not for developers. It's a slightly different version, but pretty much the same. And it comes with official support. But it's just a mite expensive. )
Re: (Score:2)
The AdaCore libre version doesn't allow you to distribute your executables under non-GPL license. You'd have to buy the super-expensive pro version instead. The FSF version of Gnat, on the other hand, does allow you to distribute your executables under any license you like because it comes under the Gnat Modified GPL (GMGPL).
That's why I wait. :-)
Re: (Score:3)
If you don't care about safety and error checking, multithreading, Atom SoCs, or C++11... what sort of new features are you really expecting in a compiler. That touches pretty much all the major functionality of a compiler.
Re: (Score:2)
I don't know, some looks interesting. I'd like to get the sanitizers for extra code checking during compile instead of waiting for an external lengthy static analysis tool.
Half-baked (Score:2)
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 comm
Re: (Score:2)
So what you're saying is, this /. article is for people geekier than you? That's a good thing then, we need more intense geekiness and less US politics.
Re: (Score:2)
On the other hand, when Clang lists plans one what they're adding in the next version suddenly lots of fans are hopping up and down with joy (and yes they have preliminary release notes for 3.4).
The rule of thumb basically is that product-you-don't-care-about needs to shut up and product-you-admire needs to keep raining down news on the believers.
Plans aren't news. (Score:2)
News is (mostly) about what actually happened.
Let's not confuse the two
ADA? (Score:5, Informative)
"Ada" is the name of a person, and the language.
"ADA" is the Americans with Disabilities Act, or the American Dental Association.
Re: (Score:2)
"ADA" is the Americans with Disabilities Act, or the American Dental Association.
... and quite a few other things, if you care to look outside of the US: http://en.wikipedia.org/wiki/ADA [wikipedia.org]
Re: (Score:2)
And within the US it's at least the American Dental Association. Probably also several others. TLAs are highly overloaded.
Re: (Score:2)
I hope it is "Americans with Disabilities Act" since I am disabled. ;)
Can we please stop mass-linking Phoronix? (Score:5, Insightful)
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
Re: (Score:2, Informative)
All you will get is a mass of links, whether you click through to TFA or not. At least this way there's no utility in clicking through.
But but Google? (Score:5, Insightful)
But then how would Googlebot know that Phoronix is really great and popular and they should rank it higher in searches?
Re: (Score:2)
I understand the frustration, but that site *wants* to be populated entirely by the kind of morons that fall for blatant SEO spam. Smart people wouldn't make them money via pay-per-impression ad sandbagging, after all.
Coming in 1024 sometime? (Score:2, Troll)
Re:Coming in 1024 sometime? (Score:4, Informative)
Re: (Score:2)
Looks like they are porting Clang features... (Score:4, Insightful)
Re:Looks like they are porting Clang features... (Score:5, Insightful)
Superior backend, coming up to par with Clang on the frontend, what's not to love?
Frankly, the BSD licenses appear to be a failure psychologically. The proponents of BSD-licensed software go apeshit when GPL-licensed software reuses their code, but are ok if the stuff disappears in proprietary forks.
You can see this, for example, with LibreOffice/OpenOffice: every LibreOffice release announcement draws ire from the OpenOffice crowd (well, particularly one OpenOffice developer) because the latter feels their code has been ripped off.
There has been a lot of that going on with OpenBSD and FreeBSD as well, but it's grown a bit more quiet in recent years.
Now we have the same with Clang/GCC.
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.
Re: (Score:2)
The problem with code re-usage to GPL projects is that it is so much more complicated to copy features back.
If a proprietary project with closed source uses the BSD licensed project but add nifty functions it is just a matter of writing similar functions of your own.
When a GNU licensed project grabs some BSD code and improves upon you can't just write code that does the same, because if you do then it is very likely that your code will end up looking very much like the GNU licensed implementation and people
Re:Looks like they are porting Clang features... (Score:4, Insightful)
To the BSD folks, they want to write software that is free as in free beer. You can take it, and do whatever you want with it. Drink it, dump it in the trash, give it to your friends, sell it. Free as in Freedom of the user
To the GPL or Free Software Foundation folks, they want to write software that is free as in free speech. You can copy it, and distribute it, but you can't restrict other people's rights to copy it and distribute it. Just like I can't hand out a copy of the US Constitution or a speech by Abraham Lincoln and forbid other people from sharing it or publishing a copy. Free as in Freedom of the software
You may prefer the BSD way, and that's fine, but "who isn't a zealot" is out of line. Having a different set of priorities does not make one a dick. Blatantly copying code under one license to the other is a dickish move, but re-engineering from one to the other is perfectly legitimate. And yes, I'm in the FSF camp.
Re: (Score:2, Insightful)
To the GPL or Free Software Foundation folks, they want to write software that is free as in free speech. You can copy it, and distribute it, but you can't restrict other people's rights to copy it and distribute it.
Uhm, the entire point of GPL is that you can restrict others right to copy it and distribute it.
Re: (Score:2)
Re: (Score:2)
Uhm, the entire point of GPL is that you can restrict others right to copy it and distribute it.
Technically true, but the only restriction is that those others cannot in turn add further restrictions.
Practically, the way people actually tend to view GPL is as "you can't build your own custom commercial software on top of it". Whether this is true in fact doesn't matter; it's what they think. The BSD license really just says that you can't claim you wrote what you didn't, and you can't change the license; it definitely permits building proprietary things on top. (You could just take the software itself and sell it, but since others could provide the same thing for nothing, there'd be no value-add in doin
Re:Looks like they are porting Clang features... (Score:4, Insightful)
To the GPL or Free Software Foundation folks, they want to write software that is free as in free speech. You can copy it, and distribute it, but you can't restrict other people's rights to copy it and distribute it. Just like I can't hand out a copy of the US Constitution or a speech by Abraham Lincoln and forbid other people from sharing it or publishing a copy. Free as in Freedom of the software
Yes, there is always the "free as in free speech" high horse, but the fact is that (a) you can't legally use GPL licensed code in a BSD project, and (b) when licensed code is moved to a BSD project and modified, you can't legally move the changes back to the BSD project.
So these people's view of "free" is something that I can only call perverted.
Re: (Score:2)
(a) you can't legally use GPL licensed code in a BSD project
Yes, you can. You just can't keep licensing the result as BSD, because that would circumvent the GPL license - someone could take the BSD-licensed result and put it into a proprietary code base, something that people licensing their works under the GPL are not okay with.
But I'll grant that you that these days, it would perhaps be a good idea if you could keep the result licensed under two licenses, so the GPL-part under GPL and the rest under BSD. As long as the rest of the project is under a GPL-compatible
Re: (Score:2)
So you can neit
Re: (Score:2)
Re: (Score:2)
To the BSD folks, they want to write software that is free as in free beer. You can take it, and do whatever you want with it. Drink it, dump it in the trash, give it to your friends, sell it. Free as in Freedom of the user.
You can do all of those with the GPL, too. The GPL is very hot on Free as in Freedom of the User. As a user you will always have those freedoms and no one can take them away from you.
What the GPL does is restrict the freedom of the distributor slightly.
</license pedantry>
Re: (Score:2)
To the GPL or Free Software Foundation folks, they want to write software that is free as in free speech. You can copy it, and distribute it, but you can't restrict other people's rights to copy it and distribute it. Just like I can't hand out a copy of the US Constitution or a speech by Abraham Lincoln and forbid other people from sharing it or publishing a copy. Free as in Freedom of the software
Actually, since both the US Constitution Lincoln's speeches are now out of copyright, you can use them verbatim in a larger work, such as a novel, and restrict further copying/distribution of that novel. That's exactly how BSD licensed software works, but not GPL. If the Constitution were licensed like the GPL, and I quoted it in a novel (assuming the quote were long enough to not be covered by the fair use exemption) then I would have to release my entire novel under the GPL as well. So your example rea
Re: (Score:2)
Re: (Score:2)
You can see this, for example, with LibreOffice/OpenOffice: every LibreOffice release announcement draws ire from the OpenOffice crowd (well, particularly one OpenOffice developer) because the latter feels their code has been ripped off.
What? These are both GPL. I've never seen BSD people care at all about who uses their code, only GPL people freaking out. How did this hogwash get voted up?
Re: (Score:2)
Re: (Score:2)
the BSD licenses appear to be a failure psychologically. The proponents of BSD-licensed software go apeshit when GPL-licensed software reuses their code, but are ok if the stuff disappears in proprietary forks.
You can see this, for example, with LibreOffice/OpenOffice: every LibreOffice release announcement draws ire from the OpenOffice crowd (well, particularly one OpenOffice developer) because the latter feels their code has been ripped off.
That's okay. I'm a huge proponent of BSD and I'm delighted wherever it goes. I'm not sure which proponents you're referring to, but they might be figments of your own prejudices, and I don't believe that any individual examples of your phenomenon would be representative.
Re: (Score:2, Interesting)
The 2-clause BSD license (which is the one used nowadays) is 7 lines of natural English (excluding the disclaimer) and people still can't understand it...
You can't take BSD code and change it's license.
Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
IIRC a Linux dev though it was possible and did so with an OpenBSD piece of code. Some OpenBSD devs complained and the license was reverted to the original one. End of the "shitstorm."
Re: (Score:2)
Actually you can switch licenses if the new license does not conflict with the old license. Since BSD allows basically everything to be done with it you can restrict it any way you wish. Including putting it in proprietary source code.
Re:Looks like they are porting Clang features... (Score:5, Insightful)
The 2-clause BSD license (which is the one used nowadays) is 7 lines of natural English (excluding the disclaimer) and people still can't understand it...
You can't take BSD code and change it's license.
It's ironic that you're laughing at those who misunderstand the licence, given that you've fundamentally midunderstood the licence.
If your interpretation were correct, it would be functionally comparable to the GPL, and we wouldn't have all those flame-wars.
It's a 'copycenter' [wikipedia.org] licence, not a copyleft licence. You're allowed to release your fork under your choice of licence, whether proprietary, Free/Open Source, or anywhere in between, provided you don't hide the fact that your software is based upon that original BSD 2-clause licensed software.
It's a little confusing, as "must retain the above copyright notice" can easily be misinterpreted the way you did, to mean "you must release your fork under the BSD 2-clause licence".
Relevant Wikipedia content. [wikipedia.org]
Re: (Score:2)
You can't change the license.
What you can do is release what you're working on under another license in addition to BSD. If you've used GPLed code, say, the total has to be GPLed. Parts of it now are under both licenses, and (if I can pick them out) I can use the BSD code under the BSD.
Re: (Score:3)
You can't change the license.
What you can do is release what you're working on under another license in addition to BSD.
No. This is totally false.
Copycenter licences are not viral, that's the whole point. It's almost the same as (but not quite the same as) releasing into the public domain.
I urge you to read up on copycenter licences, and stop spreading falsities. The introductory segment of the Wikipedia article [wikipedia.org] covers this stuff.
(I thought you were going to say "You can't change the license of the original software, but you can use any licence you wish for your fork", which would have been technically correct. I could tak
Re: (Score:2)
I read the article, and it didn't seem to me to contradict anything I said.
As far as I know, you can't change the license. You can add other licenses on top, if they're compatible (and darn little is incompatible with BSD), but the BSD license still applies to the BSD-licensed code, and you cannot remove the attribution or license.
If you fork, you can add pretty much any other license to what you release, and what you release will be under that license. The fact that some of the code is still BSD-lic
Re: (Score:2)
I think maybe you do understand the BSD licence. When you put What you can do is release what you're working on under another license in addition to BSD you gave me the impression that you thought that if I fork a BSD project, my work must be released under BSD, perhaps bi-licensed with something else. I think you meant What you can do is release what you're working on under another license, but you still have to bundle the BSD licence text to fulfill the BSD licence still applying to the original BSD-licen
Re: (Score:2, Informative)
The following quote is the complete text of the 2-clause BSD license (sans the disclaimer, which doesn't add anything relevant to this discussion). Note that it is this text which determines what is and isn't allowed to do with code using that license. I put the parts relevant for this discussion in bold.
Copyright (c) YEAR, OWNER
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
Re:Looks like they are porting Clang features... (Score:5, Insightful)
Wait, what, Clang now supports other languages than C-derivatives, like Ada and Fortran?
Re: (Score:3, Interesting)
Yep. They're also stealing OMP4.0 from Clang (which got OMP3.1 just a month or so ago, while GCC had it since 4.7) and Cilk (which is not in Clang at all, though people are working on 3rd party extension)
The whole post really reads quite trollish / alternatively Clang has hired black PR department.
Re: (Score:2)
You mean Clang has the Apple PR department.
Re: (Score:2)
Not in this case. my hardcore development has all moved to clang. we dumped GCC like the gpl-infested crap hole that it is.
Was that so that you could add your own proprietary language front-end and charge developers money for it? Or perhaps you had some secret-sauce extras to add to C or C++ to "add value" to monetize your exiting developer base? Please patent your extensions before one of those stinking, long-haired hippy types tried to implement a Free version for gcc.
Oh, you were trolling. Right-oh.
Re: (Score:2)
It was an indirect factor in that GCC's code is intentionally bad to prevent people from trying to bypass the GPL. We could have added our changes to GCC but it would have been a lot more work and would then become a maintainance issue for GCC updates.
Can you explain? Can you tell us what code in particular is bad and can you show us your patch? I've never looked at GCC internals, but I'd like to know.
Finish C++11 support first? (Score:5, Interesting)
Re: (Score:2)
Re: (Score:3)
Re: (Score:2)
Regular expressions (Atwood) (Score:3)
Re: (Score:2)
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 [codinghorror.com]
Some people like to guide their coding decisions using sound bytes, don't ruin that for them with your pesky rational arguments and facts!
Re: (Score:3)
Supported or not, <regex> may yield surprising results when used with UTF-8 or other Unicode text [stackoverflow.com], so those may require a non-<regex> library or the proposed <unicode> header for C++14 [open-std.org] anyway.
Re: (Score:2)
Actually the behavior of regex on UTF-8 is probably desirable.
Suggestions that "*" mean any number of repeats of make as much sense as suggesting that "the*" means the user wants any number of repeats of "the" (rather than the 'e') because "the" is an English word. It adds hugely to complexity of regexp for no actual gain except for idiots who think the codeunits are actually an item you want to manipulate because you are totally unaware of non-European languages. You should be manipulating words of variab
Re: (Score:2)
Damn slashdot ate my angle brackets:
Suggestions that "<codeunit>*" mean any number of repeats of make as much sense as suggesting that "the*" means the user wants any number of repeats of "the" (rather than the 'e') because "the" is an English word.
Re: (Score:2)
Suggestions that "<codeunit>*" mean any number of repeats of make as much sense as suggesting that "the*" means the user wants any number of repeats of "the" (rather than the 'e') because "the" is an English word.
Do you mean bytes or characters? While you think these are the same thing, you'll continue to be very confused.
Re: (Score:3)
I meant code point, not code unit. Ie what you are calling a "character". I typed the wrong thing there which does not help. You are correct that people thinking they can work in code points rather than bytes (or words for UTF-16) are a huge problem and why Unicode is not working yet. I consider anybody who thinks Unicode requires more than 8-bit code units to be in this category. A further problem is that a lot of people think the code points are "characters", which is actually an undefined entity in Unico
Re: (Score:3)
That "proposed standard" is very very bad. http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2013/n3572.html [open-std.org]
It does not support decoding UTF-8 in an error-preserving way, and appears to also remove the ability to default character strings to UTF-8.
These are complete job-stopping bugs. Though if the intention was to try to save all the misguided investment in "wide characters" by making it as hard as possible to use UTF-8, it is a good attempt, and I suspect that is the underlying reason for this.
Re: (Score:2)
Write up needs more links. (Score:3)
Please edit and re-submit.
Thank you, Clang (Score:5, Interesting)
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.
Re: (Score:2)
Blue finger paints is crap.
- Linus
Re: (Score:2)
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 [emdebian.org]