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.

C++ Braced Initialization--Edouard of quasardb

Do you use it?

C++ Braced Initialization

by Edouard of quasardb

From the article:

Since C++ 11 it's possible to use braces for construction and initialization. Although this is something you could ignore for the code you write, it's obviously important to know for the code you may read.

If you have a couple of years of experience in C++, the temptation can be great to keep your old habits because "All these new features are useless! The language is bloated! Those people in the committee!".

Let's make sense out of the bloat...

CppChat[14] SFINAW

CppChat:

CppChat[14]: SFINAW

with Bryce Adelstein Lelbach, Jonathan Müller (foonathan), Odin Holms, and Jon Kalb

From the chat:

Bryce, Jonathan, Odin, and Jon discuss the Kona meeting, Visual Studio 2017, CppCast, Meeting C++ Live, and more.

I Wrote The Fastest Hashtable -- Malte Skarupke

This is Malte's third article on hash table design. His solution shows favorable performance against std::unordered_map, boost::multi_index, google::dense_hash_map, and more. Malte includes intuitive descriptions of why each design decision was made and what tradeoffs might exist. The article also describes some interesting artifacts in the implementations of other hash table implementations.

I Wrote The Fastest Hashtable

by Malte Skarupke

From the article:

There are many types of hashtables. For this one I chose

  • Open addressing
  • Linear probing
  • Robing hood hashing
  • Prime number amount of slots (but I provide an option for using powers of two)
  • With an upper limit on the probe count

I believe that the last of these points is a new contribution to the world of hashtables. This is the main source of my speed up, [...]

C++::London talk: A polymorphic value-type for C++

On 25th January at CodeNode, London, Jonathan Coe presented polymorphic_value<T> to the C++::London meetup group.

The class template polymorphic_value is proposed for addition to the C++ Standard Library. The class template, polymorphic_value, confers value-like semantics on a free-store allocated object. A polymorphic_value<T> may hold an object of a class publicly derived from T, and copying the polymorphic_value will copy the object of the derived type.

A polymorphic value-type for C++ (Video)

About the presenter:

Jonathan is a mathematical developer using modern C++ and Python. He has worked in academia and the financial and energy industries. He's been a participant in the C++ standards committee since 2014.

"What's new in C++11/14?" Training in Berlin, 04-06 April 2017

Join us in the upcoming C++11/14 training in Berlin, 04-06 April 2017.

What's new in C++11/14?

Training course by KDAB

About the training

C++11 is a new major version of the C++ standard, released in 2011, and brings many new features to C++ that make the language safer, faster as well as easier and more fun to use. Every professional C++ developer will sooner or later come into contact with C++11/C++14 and introducing its advantages early can only be beneficial.

In this hands-on C++11 and C++14 training for professional C++ developers, you will learn the language changes and the standard library changes introduced in C++11 as well as the changes from C++14.

In class, C++11 and C++14 will be demonstrated with the aid of many examples, and you will get the opportunity to use C++11 and C++14 right away in our lab projects.

The full table of contents for the course is available here.

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

Zapcc 1.0 - A Much Faster C++ Compiler

We are happy to announce Zapcc, a Clang/LLVM based C++ compiler, with much faster compilations.

Zapcc

by the Zapcc team

About the compiler:

Typically, Zapcc accelerate full C++ builds by x2-x5, and incremental builds by x10 and more.

Zapcc is available for evaluation on the companies website.

Feel free to try it out!