New paper: N3774, C++ Needs Language Support For Vectorization -- Axel Naumann, Sandro Wenzel

A new WG21 paper is available. A copy is linked below, and the paper will also appear in the next normal WG21 mailing. If you are not a committee member, please use the comments section below or the std-proposals forum for public discussion.

Document number: N3774

Date: 2013-09-19

C++ Needs Language Support For Vectorization

by Axel Naumann, Sandro Wenzel

Excerpt:

In this paper we argue that vectorization is a very different concept to parallelization and needs to be supported explicitly by the language. The lack of C++ support for explicit vectorization costs factors (2 to 4 in real code) of performance on current commodity hardware. We demonstrate why we believe vectorization is a much needed language feature. The arguments presented in this paper are based on, and accompanied by, performance measurements of code used at CERN.

POCO 1.4.6p2 and Development Release 1.5.2 are available

Now available:

POCO Stable Release 1.4.6p2 and Development Release 1.5.2 Available

From the announcement:

Stable release 1.4.6p2 contains mostly bugfixes, upgrades to some bundled libraries (expat, zlib and sqlite) and a few new features (e.g. ColorConsoleChannel). ...

Development release 1.5.2 adds the MongoDB client library, contains significant updates to the JSON library, adds all changes from 1.4.6p2 and a whole lot of other improvements and fixes. ...

Startup Cloudius announces OSv, a new C++ open-source VM operating system

Froosv.PNGm Cloudius comes OSv: An alternative to Linux running in a virtual machine, written in modern C++. Cloudius is a startup formed by a group of ex-Red Hat OS virtualization experts.

Announcement: OSv, a new open-source operating system for virtual machines

InformationWeek, Charles Babcock: "Cloudius Takes On Linux as Cloud OS"

From the announcement:

Another refreshing feature of OSv is that is written in C++. It's been 40 years since Unix was (re)written in C, and the time has come for something better.

C++ is not about writing super-complex type hierarchies (as some people might have you believe). Rather, it allowed us to write shorter code with less boiler-plate repetition and less chances for bugs. It allowed us to more easily reuse quality code and data structures. And using newly standardized C++11 features, we were able to write safe concurrent code with standard language features instead of processor-specific hacks. And all of this with zero performance overheads -- most of C++'s features, most notably templates, are compile-time features which result in no run-time overhead compared to C code.

 

New paper: N3767, WG21 Teleconference 2013-09-13 Minutes -- Kyle Kloepper

A new WG21 paper is available. A copy is linked below, and the paper will also appear in the next normal WG21 mailing. If you are not a committee member, please use the comments section below or the std-proposals forum for public discussion.

Document number: N3767

Date: 2013-09-13

WG21 Teleconference 2013-09-13 Minutes

by Kyle Kloepper

This was the pre-Chicago WG21 administrative telecon.

New paper: N3773, async and ~future (Revision 4) -- Herb Sutter, Chandler Carruth, Niklas Gustafsson

A new WG21 paper is available. A copy is linked below, and the paper will also appear in the next normal WG21 mailing. If you are not a committee member, please use the comments section below or the std-proposals forum for public discussion.

Document number: N3773

Date: 2013-09-12

async and ~future (Revision 4)

by Herb Sutter, Chandler Carruth, Niklas Gustafsson

Excerpt:

N3637 documented the consensus of SG1 in Bristol. This paper is a minor update to N3637 to make the “change std::async” part of the proposal explicitly separable by updating the example code and adding three alternate sections to section 3 (3.1, 3.2, 3.3). This is to reflect that the main question at the end of Bristol was about how changing std::async affects binary compatibility, and to reflect the “N3637 except {remove|deprecate|leave-as-is} std::async instead of changing it” straw polls that had the most support in the July Santa Clara SG1 meeting.

Papers for Chicago: Concurrency

The start of my series about the papers for the upcoming Chicago meeting, starting with C for Concurrency:

C++ Papers for Chicago: Part 1 -- Concurrency

by Jens Weller

From the article:

As I did write a series about the papers for Bristol, this is the start of the series for Chicago, as at the end of this month the C++ committee will meet again for standardization. I try to...

GoingNative 2013 videos now available

gn13-signed.jpgThe videos from last week's GoingNative 2013 are now posted and available for on-demand viewing on Channel 9. Over 20 hours of live presentations cover everything from the latest in the language and the standard library, to C++'s evolution and momentum across the industry, to style guidance and the latest in C++11/14 features, to the optimizer and code generation for modern processors like Haswell, to experience in specific domains and platforms, and more.

GN'13 was a huge success thanks to Channel 9 and all the speakers, including headliner Bjarne Stroustrup and esteemed speakers Sean Parent, Andrei Alexandrescu, Stephan T. Lavavej, Jim Radigan, Herb Sutter, Scott Meyers, Michael Wong, Chandler Carruth, Ales Holecek, Elliot Omiya, Deon Brewis, Niklas Gustafsson, Eric Brumer, and Garrett Serack. Thanks to everyone who came to present and participate in this year's event.

The GN folks and others are working hard on next year. Stay tuned for more information in the months ahead. In the meantime, enjoy this material and be sure to share the ones you find most interesting and useful with your friends and colleagues.

Value-initialization with C++ -- Andrzej KrzemieĊ„ski

Do you know what value-initialization means, and why it's simpler in C++11?

Value-initialization with C++

by Andrzej Krzemieński

From the article:

Some time ago, I showed how boost::value_initialized can be used to value-initialize objects in generic components in C++03. In C++11 it is practically not necessary. C++11 gives you a way to force value-initialization of your objects in any possible initialization context.

Are you familiar with term “value initialization”? It is sometimes confused with “default-initialization”...