LLVM's Libc++ Now Has C++1Y Standard Library Support
An anonymous reader writes "LLVM's libc++ standard library (an alternative to GNU libstdc++) now has full support for C++1y, which is expected to become C++14 next year. Code merged this week implements the full C++1y standard library, with support for new language features in the Clang compiler frontend nearly complete."
GCC has some support for the soon-to-be standard too. The C++ standards committee is expected to produce a more or less final draft in just a few weeks. The LLVM and GCC C++14 status pages both have links to the proposals for the new features.
Now that Clang/LLVM has got this finished, I'm wondering what a system would look like with:
* Linux as the kernel
* Clang/LLVM as the system C/C++ compiler
* Heirloom Toolchest as the basic userland toolchain
* Wayland as the underlying display system
* musl as the system C library
That would be Linux, but would contain almost no GNU code. Not that I have anything against GNU, but the Heirloom Toolchest, Clang, and musl are all more standards compliant, smaller, and often faster than their GNU counterparts. I wonder what a Linux distribution like that would look like. I'd use it.
(I hate how "GNU's Not Unix!" is really becoming more and more true. Unix was about minimalism, and sometimes GNU seems like it's about stuffing everything possible into every tool.)
...but it's being eaten...by some...Linux or something...
Now that Clang/LLVM has got this finished, I'm wondering what a system would look like with:
... * Clang/LLVM as the system C/C++ compiler
Slower
Surely those sort of decisions first need a case where - despite all efforts to the contrary - there's something that can't be done as easily any other way as it could if you moved to a new C++ standard.
That's my biggest problem with most of these standards - quite what they add is hard to define, especially when the problems you point out are taken into account. Is there really anything in such a standard that couldn't be replicated by the programmers quite easily enough (or close enough), and would actually save more effort that it would take to create?
Until you find a use case that is advantageous for the exact type of things you do everyday (and which you cannot replicate simply via alternate methods), it's probably best to stay where you are.
I think the use case for its advantage would be development time by taking advantage of certain features that didn't exist in the language previously... but saving development time is meaningless if you can't actually develop for your intended target architecture.
File under 'M' for 'Manic ranting'
.. I want to start hacking around with it. But then I remember how much I love and I just don't care anymore.
Stone Temple Pilots vs. Velvet Revolver is a far more rockin' analogy*.
*Any spelling errors contained in this gag are just so many flies in the vaseline.
Get thee glass eyes, and, like a scurvy politician, seem to see things thou dost not.--King Lear
Not the engine, but we found parts in a friends Acura that had AC Delco (GM) part numbers on them.
I'm starting to think GNU is the problem with "GNU/Linux" these days.
If you are interested, the GoingNative 2013 talks include a C++11/14 Sampler by Scott Meyers.
Well, I'd say he's ok. IMO it's still to early to write C++11 code for any real products. It's not only the matter of the tools (that's the easy part) but the fact that most C++ aren't going to be familiar with those changes and new ways of doing things yet.
"it's still to early to write C++11 code for any real products"
What you seem to mean is it's too early to write C++11 code for any real products if your development team aren't up to speed with it. That's a totally fair statement, but it's clearly not true that it's too early to write C++11 for real products -- we do. We're liable to swap to C++14 as soon as commercial compliant compilers become fully stable and settled (and, of course, that we can convince our IT support to license them, which may take a year or two).
[Caveat: my personal experience with C++ was first with a Borland compiler probably not fully compliant with C++98, and then onto an MS compiler compliant with C++11, and a gap of 12 years. The language I came back to was significantly nicer - for my way of thinking - than the language I left. So I'm rather biased towards C++11 and even more so towards what I see coming up with C++1Y.]
Okay, I'm not a programmer, but shouldn't libc++ be a part of Clang - presumably C language, and not a part of a low level virtual machine?
B'cos if I understood it right, LLVM is the platform to which the code is compiled, while LLVM itself has to run on the bare metal. Or am I missing something here?
Or maybe because it might as well be built in the USA http://www.hondainamerica.com/manufacturing
"LLVM's Libc++ Now Has C++1Y Standard Library Support"
Seriously, is that a real headline, or did your cat just walk across the keyboard?!
The "it" you are referring to doesn't need to be referred to at all.
It does when "free Linux-based OS with a multiwindow GUI" takes up the majority of a 50-character "Comment Subject" box. You need the "multiwindow GUI" part to distinguish the multitude of Linux distributions for desktop and laptop PCs from Android and from Linux distributions designed for servers.
If you must err on the side of brevity, GNU/Linux is best
I need brevity because there are plenty of Slashdot users who repeatedly point to Google Play Store as evidence that there are plenty of games and other commercial apps "on Linux". So is there a shorter term for Linux-based systems that aren't Android or embedded?
GNU/Linux is a term that should be universally rejected
It's still far less clunky than "Linux-with-a-GNU-userland" or "Linux-that-isn't-Android-or-embedded".
Linux distributions have distinct names
Listing all Linux distributions in an application's "system requirements" would require excessive space. This means there's a need for a precise name for the set of Linux distributions that support Gtk+ and/or Qt userland as opposed to only the Android userland. Would Qt/Linux or Gtk+/Linux be more accurate?
Allow me to show you to handle such people.
Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
Then what is the proper term for Debian, Fedora, Gentoo, and other desktop Linux distributions that resemble Debian, Fedora, and Gentoo more than Android?
I don't get the argument "It's not universally supported yet". It's a compiler, not an operating system. Unless perhaps you are trying to share a code base across extremely diverse systems. And even then, the backward compatibility is such that it just means you have to be careful about restricting certain features in the shared part of the code base. Most developers can cope with working on multiple dialects of a programming language, even, astonishingly, multiple languages! It doesn't make sense to not use language features when you can (unless you think those features are bad or buggy). And we have been working with compilers that don't have full compliance to any standard for a long time now!
I can understand some caution in adopting a new compiler, but the C++11 features have been around in nascent form long before the standardization happened. It isn't like the committee doesn't take time to make decisions...
There's some controversy over whether the static_if proposal is really right, and modules is a major change which was never expected to get into C++14. As I understand it the current plan is for the committee to release modules as a technical specification separate from the overall C++ spec and then perhaps it will get rolled into C++17 or later.
it really doesn't matter whether clang/llvm catches up to gcc or not in terms of speed or any other feature.
the crucial issue is what's strategically best for the long term interests of free software, and there is no way in hell that a compiler developed by the Lords of the Walled Garden at Apple is ever going to be a good thing for free software.
Apple's agenda is to sabotage copyleft and the GPL, because they want the benefits they can get from free code from tens of thousands of developers but without having to pay the entirely reasonable price of distributing and freely licensing the source along with any modified binaries.
The fact that Apple has been - and still is - smarter than Microsoft in their anti-free-software campaign just highlights how dangerous they are. Microsoft took the stupid head-on approach to attacking free software. Apple's method has been stealthy subversion and erosion of principles. smart, competent evil is far worse than stupid, incompetent evil.
GCCs middle end is intentionally blurry
How can it be an end if it's in the middle?
Esli epei etot cumprenan, shris soa Sfaha.
a compiler developed by the Lords of the Walled Garden at Apple is ever going to be a good thing for free software.
License: NCSA Open Source License
Product: ISO standards compliant
So what is the problem here?