Product News

GCC 6.1 Released

After slightly more than a year since last major GCC release, the GCC project is proud to announce the new major GCC release, 6.1.

GCC 6.1 Released

by the GCC project

From the article:

GCC 6.1 is a major release containing substantial new functionality not available in GCC 5.x or previous GCC releases.

The C++ frontend now defaults to C++14 standard instead of C++98 it has been defaulting to previously, for compiling older C++ code that might require either explicitly compiling with selected older C++ standards, or might require some code adjustment, see http://gcc.gnu.org/gcc-6/porting_to.html for details. The experimental C++17 support has been enhanced in this release.

This releases features various improvements in the emitted diagnostics, including improved locations, location ranges, suggestions for misspelled identifiers, option names etc., fix-it hints and a couple of new warnings have been added.

The OpenMP 4.5 specification is fully supported in this new release, the compiler can be configured for OpenMP offloading to Intel XeonPhi Knights Landing and AMD HSAIL. The OpenACC 2.0a specification support has been much improved, with offloading to NVidia PTX.

The optimizers have been improved, with improvements appearing in all of intra-procedural optimizations, inter-procedural optimizations, link time optimizations and various target backends.

See  https://gcc.gnu.org/gcc-6/changes.html for more information about changes in GCC 6.1.

This release is available from the FTP servers listed here: http://www.gnu.org/order/ftp.html

The release is in gcc/gcc-6.1.0/ subdirectory.

If you encounter difficulties using GCC 6.1, please do not contact me directly. Instead, please visit http://gcc.gnu.org for information about getting help.

Driving a leading free software project such as GNU Compiler Collection would not be possible without support from its many contributors. Not to only mention its developers but especially its regular testers and users which contribute to its high quality.  The list of individuals is too large to thank individually!

build2 0.3.0 Released, Adds High Fidelity Builds

build2 is an open source, cross-platform toolchain for building and packaging C++ code. It includes a build system, package manager, and repository web interface. There is also cppget.org, a public repository of open source C++ packages.

build2 0.3.0 Release Notes

From the announcement:

This release includes a number of new features in the build system (high fidelity builds, command line configuration overrides), package manager (support for dropping no longer necessary packages), and repository web interface (ability to run multiple instances, look and feel customizations).

CppCast Episode 54: VS for Linux with Ankit Asthana

Episode 54 of CppCast the only podcast for C++ developers by C++ developers. In this episode Rob and Jason are joined by Ankit Asthana to discuss new features for Visual Studio and VS Code. Including new support for Linux developers.

CppCast Episode 54: VS for Linux with Ankit Asthana

by Rob Irving and Jason Turner

About the interviewee:

Ankit Asthana is a program manager working in the Visual C++ Cross-Platform space. He is knowledgeable in cross-platform technologies, compilers (dynamic and static compilation, optimizer, code generation), distributed computing and server side development. He has in the past worked for IBM and Oracle Canada as a developer building Java 7 (hotspot) and telecommunication products. Ankit back in 2008 also published a book on C++ titled C++ for Beginners to Masters which sold over a few thousand copies.

C++ Core Guidelines Checkers: Preview of the Lifetime Safety checker--Andrew Pardoe

The Visual C++ Team announces a preview of the Lifetime Safety checker for CppCoreCheck:

C++ Core Guidelines Checkers: Preview of the Lifetime Safety checker

From the article:

Lifetime safety is ensuring that the lifetime of any object matches its use. That is, don’t leak objects by forgetting to delete them in the case that they were allocated on the heap, and don’t access objects...

CLion 2016.1 released: Better language support and new dev tools -- Anastasia Kazakova

Fresh from JetBrains:

CLion 2016.1 released: Better language support and new dev tools

by Anastasia Kazakova

Some C++-specific highlights from the announcement:

This release brings long-awaited support for variadic templates (C++11). With the related fixes in the function overload resolution, this makes it possible to resolve the code correctly and avoid many false positives in code analysis. This also means that Qt C++11 connect calls are resolved correctly in CLion:

Auto-import has been improved greatly for symbols from STL, and the quick documentation popup (Ctrl+Q on Linux/Windows, F1 on OS X) now shows lambda expressions, namespace aliases and explicit instantiation, as well as accurately redirecting hyperlinks:

Building and Using Themis in PNaCl

Cossaclabs offers via their Themis framework to run C++ code inside browsers on x86 and now on ARM platforms.

Building and Using Themis in PNaCl

by cossacklabs

From the article:

Native Client (NaCl) allows browser applications to launch a native low-level code in an isolated environment. Thanks to this, some code, performance code parts can be rewritten in C or C++ easily. Until recent time, NaCl could work on x86-compatible systems only, yet supporting ARM platform becomes very important, because a huge variety of devices (especially the newest Chrome OS laptops), are built on ARM architecture.

All you need to compile the code for ARM is located in the latest Native Client SDK. However, using NaCl forces developers to include support for all used architectures. This is achieved by building NaCl separately for all the architectures supported. Then the browser chooses the correct object to launch, basing on the architecture information.

Despite the fact that ARM architecture support in NaCl is rapidly improving, we should note that while Samsung Chromebooks remain being a primary objective for NaCl developers, it’s too early to talk about adequate ARM architecture support.