Product News

PVS-Studio in the Clouds - Running the Analysis on Travis CI

At the moment, cloud CI systems are a highly-demanded service. In this article, we'll tell you how to integrate analysis of source code into a CI cloud platform with the tools that are already available in PVS-Studio. As an example we'll use the Travis CI service.

PVS-Studio in the Clouds - Running the Analysis on Travis CI

by Oleg Andreev

From the article:

Travis CI is a service for building and testing software that uses GitHub as a storage. Travis CI doesn't require changing of programming code for using the service. All settings are made in the file .travis.yml located in the root of the repository. We'll take LXC (Linux Containers) as a test project for PVS-Studio. It is a virtualization system at the operation system level for launching several instances of the Linux OS at one node. The project is small, but more than enough for demonstration.

HPX V1.3 released -- STE||AR Group

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

HPX V1.3 Released

The newest version of HPX (V1.3) is now available for download! This release focuses on performance and stability improvements. Please see here for the full release notes.

    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, Parallelism TS V2, data-parallel algorithms, executors, 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 that tends to improve the parallel efficiency of our applications and helps reducing complexities usually associated with parellism and concurrency.

 

GCC 9.1 Released

Check it out.

GCC 9.1 Released

From the article:

In this release C++17 support is no longer marked experimental. The C++ front-end implements the full C++17 language (already previous GCC major version implemented that) and the C++ standard library support is almost complete. The C++ front-end and library also have numerous further C++2a draft features. GCC has a new front-end for the D language. GCC 9.1 has newly partial OpenMP 5.0 support and almost complete OpenACC 2.5 support...

ReSharper C++ 2019.1 is released: Doctest support, more C++17 and C++20 features, and better for UE4

ReSharper C++ 2019.1 is just released! It brings Significant performance boosts, C++17 and C++20 features, support for Doctest, more flexible configuration for C++ naming and Clang-Tidy, and productivity features for Unreal Engine developers.

ReSharper C++ 2019.1: More Responsive, Better for Unreal Engine, and with New Language Features

by Anastasia Kazakova

From the article:

This year’s first major update includes the following changes and improvements:
  • Performance improvements, including better start times and quicker navigation actions
  • Visual Studio 2019 support
  • Unreal Engine 4 support
  • More steps towards C++17 and C++20 compliance
  • Updated naming and formatter settings
  • More flexible Clang-Tidy integration
  • Doctest support

Boost 1.70.0 released

Check it out:

Boost 1.70.0 released

From the release notes:

New Libraries​
  • Outcome: A set of tools for reporting and handling function failures in contexts where directly using C++ exception handling is unsuitable, from Niall Douglas.
  • Histogram: Fast and extensible multi-dimensional histograms with convenient interface for C++14, from Hans Dembinski.
Updated Libraries​
  1. Asio:
  • Fixed a Windows-specific memory leak that may occur when system_executor is used.
  • Improved dispatch, post and defer documentation.
  • Fixed compile errors that occur when using the composed read and write operations with MSVC 11.0.
  • Fixed a macOS-specific warning about the deprecation of OSMemoryBarrier.
  • Changed composed asynchronous read and write operations to move buffer sequence objects.
  • Added a fallback error code for when we OpenSSL produces an SSL_ERROR_SYSCALL result without an associated error.
  • Suppressed the eof error on SSL shutdown as it actually indicates success.
  • Ensured SSL handshake errors are propagated to the peer before the local operation completes.
  • Fixed buffer_sequence_begin and buffer_sequence_end to prevent implicit conversion.
  • Changed the range-based asynchronous connect operation to deduce the EndpointSequence iterator type.
  • Fixed calculation of absolute timeout when the backend uses pthread_cond_timedwait.
  • Changed receive operations to return the correct number of bytes transferred when truncation (error::message_size) occurs on a datagram-oriented socket.
  • Enabled recycling of the memory used to type-erase a function object with the polymorphic executor.
  • Added a new BOOST_ASIO_DISABLE_VISIBILITY configuration #define.
  • Added the noexcept qualifier to various functions.
  • Added a constructor for local::basic_endpoint that takes a string_view.
  • Relaxed the completion condition type requirements to only require move-constructibility rather than copy-constructibility.
  • Added a make_strand helper function.
  • Added a new async_compose function that simplifies the implementation of user-defined asynchronous operations.
  • Added a new DynamicBuffer_v2 concept which is CopyConstructible.
  • Updated the Coroutines TS support and promoted it to the asio namespace.
  • Added a new async_result form with an initiate static member function.
  • Added the ability to use custom I/O executors with I/O objects (such as sockets).
  • This release includes a number of new features, bug fixes, performance enhancements, and documentation improvements. Notable changes include:
  • Consult the Revision History for further details.

...

CLion 2019.1 release comes with ClangFormat and initial embedded dev support

As announced earlier, our main areas of focus this year are IDE performance, expanding Clangd leverage, and Embedded Development. This update makes headway in all three areas.

 

 

CLion 2019.1 is Here with Embedded Development, ClangFormat, Memory View, Injected languages, Custom Themes, and Much More

by Anastasia Kazakova

From the article:

  • CLion 2019.1 has taken a couple of first steps towards Embedded Development. They include integration with STM32CubeMX and OpenOCD support.
  • Its C++ refactorings Rename and Extract are now more accurate, and code highlighting has moved to Clangd to make the editor more responsive.
  • To help you follow your preferred coding style, CLion now integrates with the well-known ClangFormat tool and adds support for various C/C++ naming schemes.
  • For compilation database projects, it’s now possible to create build-system independent Targets and Run/Debug configurations. This also means that you can build your project from CLion with any build tool you prefer, including custom commands and scripts.
  • Debugger got Memory View, Disassembly View for LLDB and Mute Variables on stepping opportunity.
  • String literals with pieces of code in other languages (SQL, HTML, RegExp, etc.)can now be treated accordingly, thanks to injected languages feature.
  • The Rust plugin was updated: it got profiler tools on Linux and macOS and suggests out-of-scope items in completion and auto-import.

 

doctest -- The Fastest C++ Testing Framework -- version 2.3 released! -- Viktor Kirilov

doctest brings the ability of compiled languages such as D, Rust and Nim to write tests right next to the production code to C++.

doctest - "The Fastest C++ Testing Framework" - version 2.3 released

by Viktor Kirilov

From the article:

Version 2.3 brings an extensible reporter system and a few already implemented reporters with the framework - most importantly one for XML - vital for Continuous Integration (CI) workflows. Huge thanks to the Catch2 project for paving the way for single header testing libraries.