Product News

ODB C++ ORM 2.4.0 Released, Adds Bulk Operations Support

ODB C++ ORM 2.4.0 Released, Adds Bulk Operations Support

by Boris Kolpackov

ODB is an open source object-relational mapping (ORM) system for C++. It allows you to persist C++ objects to a relational database without having to deal with tables, columns, or SQL and without manually writing any of the mapping code.

Major new features in this release:

  • Support for bulk operations in Oracle and SQL Server. Bulk operations can be used to persist, update, or erase a range of objects using a single database statement execution which often translates to a significantly better performance.
  • Ability to join and load one or more complete objects instead of, or in addition to, a subset of their data members with a single SELECT statement execution (object loading views).
  • Support for specifying object and table join types in views (LEFT, RIGHT, FULL, INNER, or CROSS).
  • Support for calling MySQL and SQL Server stored procedures.
  • Support for defining persistent objects as instantiations of C++ class templates.

A more detailed discussion of these features can be found on the blog. For the complete list of new features in this version see the official release announcement.

ODB is written in portable C++ (both C++98/03 and C++11 are supported) and you should be able to use it with any modern C++ compiler. In particular, we have tested this release on GNU/Linux (x86/x86-64/ARM), Windows (x86/x86-64), Mac OS X (x86/x86_64), and Solaris (x86/x86-64/SPARC) with GNU g++ 4.2.x-5.x, MS Visual C++ 2005, 2008, 2010, 2012, and 2013, Sun Studio 12u2, and Clang 3.x.

The currently supported database systems are MySQL, SQLite, PostgreSQL, Oracle, and SQL Server. ODB also provides optional profiles for Boost and Qt, which allow you to seamlessly use value types, containers, and smart pointers from these libraries in your persistent classes.

More information, documentation, source code, and pre-compiled binaries are available on the project's page.

GCC5 and the C++11 ABI--rhjason

A new article of interest for library developers:

GCC5 and the C++11 ABI

by rhjason

From the article:

The GNU C++ team works hard to avoid breaking ABI compatibility between releases, including between different -std= modes. But some new complexity requirements in the C++11 standard require ABI changes to several standard library classes to satisfy, most notably to std::basic_string and std::list. And since std::basic_string is used widely, much of the standard library is affected...

Snail: Continuation-ready algorithms from STL algorithms -- Manu Sánchez

Monads in use, finally!!

Snail | Continuation-ready algorithms from STL algorithms

by Manu Sánchez

From the article:

Snail is my try to get a continuation-ready set of algorithms to operate on C++ containers, but instead of reinventing all the algorithms, addapting them through a continuation monad (or something resembling a continuation monad).

Announcing the Meeting C++ Recruiting Service!

News from Meeting C++! Today a new service for job seekers and employers has launched:

Announcing the Meeting C++ Recruiting Service

by Jens Weller

From the article:

A long time in the making, a lot of thinking about what is the correct format to do, and now finally having setup all things, I can announce the start of the Meeting C++ Recruiting Service!

Meeting C++ Recruiting is a service that aims at better connecting the C++ programmers, who are looking for a job, with those companies who are actively looking for talented C++ Programmers.

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.