Product News

LLDB is Coming to Windows--Zachary Turner

A new article on the LLVM blog speaks about LLDB coming on Windows soon:

LLDB is Coming to Windows

by Zachary Turner

From the article:

We've spoken in the past about teaching Clang to fully support Windows and be compatible with MSVC.  Until now, a big missing piece in this story has been debugging the clang-generated executables.  Over the past 6 months, we've started working on making LLDB work well on Windows and support debugging both regular Windows programs and those produced by Clang...

The Silicon Web Framework

Web frameworks are a rare thing in C++ world so it's interesting to see a new one:

The Silicon Web Framework

by Matthieu Garrigues on GitHub

From the article:

Silicon is a high performance, middleware oriented C++14 http web framework. It brings to C++ the high expressive power of other web frameworks based on dynamic languages.

Deleaker For Free For OpenSource Project Owners

[From time to time vendors use Suggest an Article to submit blog suggestions, like this one. We felt this would be of interest to readers. --Ed.]

 

Free License Offer

We've decided to offer Deleaker for free for all who has open source projects and want to fix leaks in the code fast. We just ask to mention Deleaker. That's all.

To get a license please contact us.

What is Deleaker?

Deleaker is a tool for Visual C++ developers to find memory leaks, GDI leaks, COM / OLE leaks, handle leaks and other leak types.

In the past Deleaker was available as extension for Visual Studio 2005, 2008, 2010, 2012 and 2013. Unfortunately it made Deleaker unavailable for those who uses Express Edition as Express Edition doesn't support extensions.

We have just released new build 3.0.27 that includes standalone edition of Deleaker.

How does Deleaker work?

Deleaker is based on hooks. For each allocation and deallocation it saves stack traces and one a user click to Take snapshot it shows all allocations that are not freed yet.

Deleaker is available as Visual Studio extension and as a standalone tool.

Just a few screenshots. Extension mode:

Standalone edition of Deleaker:

New C/C++ compiler for Linux on z Systems -- IBM

ibm.PNGAnother modern C++ compiler released by IBM, based on a modern foundation:

New C/C++ compiler for Linux on z Systems

Today, IBM announced a brand new C/C++ compiler for Linux on z Systems. Built on top of the advanced optimization technology already in use by the Java and Enterprise COBOL compilers, the XL C/C++ for Linux on z Systems compiler generate highly optimized code to significantly improve runtime performance of applications. It leverages the Clang open source infrastructure for a portion of the compiler front end resulting in a high level of source compatibility with GCC and includes partial support of the latest C11 and C++11 language standards. In addition, the XL C/C++ for Linux on z Systems is able to exploit the new z13 hardware announced today through the use of the qarch and qtune suboptions. High performance mathematics libraries, MASS (Mathematical Acceleration Subsystem) and ATLAS (Automatically Tuned Linear Algebra Software) will also be packaged with the compiler and made available for the first time on zLinux.

The XL C/C++ for Linux on z Systems V1.1 runs on RHEL 6, RHEL 7, SLES 11, and SLES 12 and will become generally available on February 16, 2015. For more information on this new compiler, visit the XL C/C++ for Linux on z Systems product page.

Targeting Android with the C++ REST SDK -- Steven Gates

Fresh on vcblog:

Targeting Android with the C++ REST SDK

by Steven Gates

From the article:

Right before the holidays we put together a new release, version 2.4.0, of the C++ REST SDK. One of the new features added in the library is support for targeting Android using the Visual Studio 2015 cross platform mobile development, as well as the x86 Android emulator. In this post I’m going to walk through showing how to create an Android Native Activity that utilizes the C++ REST SDK...

JSON for Modern C++ -- Niels Lohmann

A new GitHub project With a very readable README:

JSON for Modern C++

by Niels Lohmann

From the README:

... You can create an object (deserialization) by appending _json to a string literal:

// create object from string literal
json j = "{ \"pi\": 3.141, \"happy\": true }"_json;

[Note: Or perhaps auto j = R"({ "pi": 3.141, "happy": true })"_json; --Ed.]

You can also get a string representation (serialize):

// explicit conversion to string
std::string s = j.to_string();

EDG C++ front end 4.10 released, adds more C++14 support

Announced today, just in time for the new year:

EDG C++ front end 4.10 released

Version 4.10 of the EDG C++ Front End has been released.

This version provides the following new features:

1) This version provides the following new C++14 features:

Lambdas can specify expressions, not just local variables, to be captured. For example:

       auto l = [x = 42]{ return x + 1; };

Generic lambdas are accepted, allowing auto parameters to define a call operator template.  For example:

        auto l = [](auto p) { return p*2; };

Binary literals and apostrophes as digit separators in numeric literals are accepted.

        int i = 0b0110;
        long l = 123'456'789; // Equivalent to 123456789

2) __cpluplus in C++14 modes:

The standard for C++14 has now been approved and specifies the value of the __cplusplus predefined macro as 201402L.  The front end uses that value when --c++14 mode is specified, except that in Microsoft and GNU    modes it adopts the value set by those compilers.  See the Changes file for more details.

3) GNU statement expressions with class type results:

Version 4.9 of the front end enabled the ability to have destructible entities in GNU statement expressions (GSEs), but with the restriction that the result expression of a GSE cannot be of a class type requiring nontrivial copy construction or nontrivial destruction.  This restriction has been removed.  For example:

     struct D { D(D const&); };
     D g(D d) {
       return ({ d; });  // Now accepted.
    }

4) Performance improvements:

As part of what will be an ongoing effort, a number of changes were made to improve the overall speed of the front end.  This has generally resulted in an improvement between 1 and 6 percent in our testing, but can be significantly more for some IA-64 mangling cases.

As usual, we have fixed bugs, added many minor features, and continued to improve our various compatibility modes.

C++ Portable Components Release 1.6.0

POCO 1.6.0 is now available:

POCO Release 1.6.0 is out

by POCO Team

This release is the culmination of the work done on GitHub over the last two years, including five development releases. It includes major new features from new contributors, like the JSON and MongoDB libraries, much improved Data library, CMake support, as well as numerous other new features and fixes. A big Thank You to everyone who contributed to this release.

LINQ-like List Manipulation in C++

Cross platform LINQ for C++ 

LINQ-like List Manipulation in C++

by Gaston Hillar

From the article:

When developers make the move from C# to C++, they definitely miss Language-Integrated Query (LINQ) features. Cpplinq is an excellent open-source project that uses C++11 features to provide extensible LINQ-like list manipulation to C++.

I'm sad to say Farewell Dr. Dobb's. Thank you for all the good articles.