Product News

HPX version 1.0 released—STE||AR Group

The STE||AR Group has released V1.0 of HPX -- A C++ Standard library for parallelism and concurrency.

HPX V1.0 Released

The newest version of HPX (V1.0) is now available for download! Please see here for the release notes.

HPX exposes an API fully conforming to the concurrency related parts of the C++11/C++14/C++17 standards, extended and applied to distributed and heterogeneous computing, and aligned with the ongoing standardization discussions.

From the announcement:

  • HPX is a general purpose parallel C++ runtime system for applications of any scale. It implements all of the related facilities as defined by the C++ Standard. As of this writing, HPX provides the only widely available open-source implementation of the new C++17 parallel algorithms. Additionally, HPX implements functionalities proposed as part of the ongoing C++ standardization process, such as large parts of the C++ Concurrency TS, task blocks, data-parallel algorithms, executors, index-based parallel for loops, and many more. It also extends the existing C++ Standard APIs to the distributed case (e.g. compute clusters) and for heterogeneous systems (e.g. GPUs).
  • HPX seamlessly enables a new asynchronous C++ Standard Programming Model which tends to improve the parallel efficiency of our applications and helps reduce complexities usually associated with concurrency

 

Boost 1.64.0 is released

The new boost is out!

Boost 1.64.0 is released

From the article:

New Libraries


Process:
Process library by Klemens D. Morgenstern, that provides cross platorm ways to allows you to:

  • create child processes
  • setup streams for child processes
  • communicate with child processes through streams (synchronously or asynchronously)
  • wait for processes to exit (synchronously or asynchronously)
  • terminate processes

Broken feature:

GitHub #67: "group.wait() does not return".

Updated Libraries

Any:

  • Suppressed false warnings about returning reference to temporary
  • boost::addressof is now used instead of directly taking the address #12615
  • Headers are not included using double quotes any more #12053
  • CI tests now run with address, leak, and undefined sanitizers
  • Added more test

Atomic:

  • Fixed possible incorrect code generation in 64-bit atomic operations on 32-bit x86 with gcc versions older than 4.7 and compatible compilers.

Config:

  • Added BOOST_NO_CXX11_SFINAE_EXPR defect detection.

...

Disabling narrowing conversions in signal/slot connections—Giuseppe D’Angelo

A new useful feature in Qt:

Disabling narrowing conversions in signal/slot connections

by Giuseppe D'Angelo

From the article:

A small new feature that I have added to Qt 5.8 is the possibility of disabling narrowing conversions in the new-style QObject::connect statement. In this short blog post I would like to share with you why I thought this was useful and therefore implemented it...

C++ Debugging and Diagnostics—Adam Welch

A quick tour of the Visual Studio native debugger and how it can help you in all areas of your C++ development:

C++ Debugging and Diagnostics

by Adam Welch

From the article:

Debugging is one of the cornerstones of software development, and it can consume a significant portion of a developer’s day.  The Visual Studio native debugger provides a powerful and feature-rich experience for finding and fixing problems that arise in your applications...

CppCast Episode 96: Jewelbots with Sara Chipps

Episode 96 of CppCast the only podcast for C++ developers by C++ developers. In this episode Rob and Jason are joined by Sara Chipps to discuss Jewelbots, Arduino and getting girls interested in STEM fields.

CppCast Episode 96: Jewelbots with Sara Chipps

by Rob Irving and Jason Turner

About the interviewee:

Sara Chipps is a JavaScript developer based in NYC. She has been working on Software and the Open Source Community since 2001. She’s been obsessed with hardware and part of Nodebots since 2012.

She is the CEO of Jewelbots, a company dedicated towards drastically changing the number of girls entering STEM fields using hardware.

She was formerly the CTO of Flat Iron School, a school dedicated to teaching people of all ages how to build software and launch careers as software developers.

In 2010 she cofounded Girl Develop It, a non-profit focused on helping more women become software developers. Girl Develop It is in 45 cities, and has taught over 17,000 women how to build software.

CLion 2017.1 released—Anastasia Kazakova

Welcome CLion 2017.1, new version of the cross-platform C/C++ IDE from JetBrains!

CLion 2017.1 released

by Anastasia Kazakova

From the article:

With the 2017.1 update CLion has learned a lot about C++14 and C++17. It improves your debugging experience with a disassembly view and unit testing with support for the Catch framework. In addition, Windows users are welcome to check out the new experimental support for Microsoft Visual C++ compiler.

The highlighted new features are:

  • Extended support for C++14 (in brief, all except constexpr are there!)
  • First step towards C++17 support (nested namespaces!)
  • First step to modernizing your C++ code: make auto intention
  • Support for precompiled headers and headers included via -include compile option
  • Disassembly view in debugger (GDB)
  • Support for the Catch unit test framework
  • Experimental support for Microsoft Visual C++ compiler
  • Find in Path in popup
  • Enhanced Log viewer and branches popup
  • Swift plugin: SourceKit inspections and ability to generate type from usage

CppDepend v2017 Released!—CoderGears

We are happy to inform you that CppDepend v2017 has been released and is now available for download! CppDepend v2017 allows architects and developers to analyze C and C++ code base, automate code reviews, and facilitate refactoring and migration.

More Information about CppDepend v2017 new features!

by CoderGears

About the release

With CppDepend v2017 Save time, reduce costs and deliver high-quality code with these important updates:

  • Support: for Visual Studio 2017 RC.
  • Smart Technical Debt Estimation: CppDepend v2017 is the only VS extension that can tell the developer that, for example, since this morning the code just written has introduced debt that would cost about 30 minutes should it have to be repaid later. Knowing this, the developer can fix the code before even committing it to the source control.
  • Quality Gate: A Quality Gate is a check on a code quality fact that must be enforced before releasing and eventually, before committing to source control. Quality Gates for example can forbid issues with a certain severity introduced since the baseline, enforce particular code coverage by tests ratio on new and refactored code or enforce thresholds on any Technical Debt criteria.
  • Default Rules Set Improvements: All default rules have been revisited to smartly estimate the cost-to-fix and the severity of each issue and also to filter more false positives.
  • Dashboard Improvements: The dashboard now includes Technical Debt metrics, Quality Gates status and Issues facts. It allows drilling down any Technical Debt fact and filter issues through any criteria (new, severity, cost to fix...).
  • Enhanced Baseline Experience: Do you want to measure progress since this morning, last week or since the last release? Choose the baseline in a single click from the Dashboard and harness the updated results in just a few seconds.
  • Report Improvements: The CppDepend report now includes the new Dashboard and proposes Technical Debt and Quality Gates highlights.
  • Code Query Improvements: CppDepend Code Query LINQ (CQLinq) can now be used to live query the Technical Debt and the issues-set. Also, CQLinq now lets users write custom Quality Gates. With CQLinq, smart Technical Debt estimations are computed through custom formulas written in C#. Finally, a code query can now match code elements of various kinds (assemblies, namespace,s types, methods, fields) to obtain more informative results.

Download and enjoy the new version of CppDepend now by clicking here.

Clang-Tidy, part 1: Modernize your source code using C++11/C++14—Kevin Funk

Do you know what is clang-tidy and how to use it?

Clang-Tidy, part 1: Modernize your source code using C++11/C++14

by Kevin Funk

From the article:

This blog series will introduce the clang-tidy utility from the Clang/LLVM project and show how to use it to automatically refactor C++ source code and integrate with your build system, as well as how to use the tool on other platforms than Unices.

PVS-Studio: searching software weaknesses

As we check Apache HTTP Server, we see bugs crawling everywhere across the code. But wait! These are not just bugs, but security weaknesses!

PVS-Studio: searching software weaknesses

by Andrey Karpov, Phillip Khandeliants

From the article:

PVS-Studio has always been able to detect a large number of various security defects (potential vulnerabilities) in the program code. However, historically, we positioned PVS-Studio as a tool to search for errors. We see a trend in the software development to look for vulnerabilities in the code, although it is just the same. It seems to us that it is high time to do the rebranding of our static analyzer PVS-Studio. We will start with Common Weakness Enumeration (CWE). This article provides a table that shows matches of PVS-Studio diagnostic warnings of with the classifier. The table will be gradually updated and changed, but we can already use the table to write articles about security defects detected in projects. We suppose it would attract more attention of the software security specialists.

Heaptrack v1.0.0 Release—Milian Wolff

Milian Wolff announces the first stable release of Heaptrack, a fast heap memory profiler for C and C++ software running on Linux.

Heaptrack v1.0.0 Release

by Milian Wolff

From the article:

Heaptrack is a fast heap memory profiler that runs on Linux. It allows you to track all heap memory allocations at run-time.

Afterwards, the accompanying GUI tool can be used to find optimization opportunities in your code by analyzing the recorded profiling data. It allows you to:

  • Inspect peak heap memory consumption
  • Find memory leaks
  • Count overall number of memory allocations and find temporary allocations
  • Find small allocations with large overhead