Blog item

C++ compiler upgrade - the impact on your applications

Jan 26, 2021

C++ compiler upgrade - impact on your applications

We are glad to announce that Uniface is going to support a new C++ compiler version as of Uniface 10.4!

We want to give an insight into what this implies for you, starting from the impacts coming with the upgrade, described in the following sections. The other blogs will be focussed on the benefits of the compiler upgrade, and the effort of the Uniface lab to address the migration as effective as possible.

Impact of the C++ compiler upgrade

As of Uniface 10.4, C++ compiler support for Uniface will be upgraded to C++ 11.

Gains in updating a compiler to a modern version

If an application is running smoothly in a secure environment, there might not be much incentive to upgrade the compiler. However, any application requires continued maintenance, and that should be considered, along with new feature development, performance, and security improvements. A compiler upgrade results in code that is easier to maintain because new C++ features eliminate many common causes of bugs, and is more conformant to the current standards. Other reasons can be related to performance and security. You can find more benefits in this blog.

Impact

Applications integrated with Uniface

Applications integrated with Uniface (using Call-in/Call-out features) do not need to be recompiled.

Microsoft guarantees binary compatibility between applications compiled with VS2015, VS2017 and VS2019, thus preventing issues when linking DLL files compiled with different versions. This solves any trouble arising for what concerns mangled names, that may change when compiling with a new compiler version. For more information, please consult the Microsoft Documentation.

Supported platforms

However, from Uniface 10.4 onwards, several platforms which are no longer supported by the vendor will fall off the PAM:

  • Red Hat 6 (LID)
  • Suse Linux 11 (LU6)
  • Solaris 11 Express (SOB)
  • Solaris 11.2 (SOD)
  • Solaris 11.3 (SOE)
  • IBM i 7.1 (AS3)
  • IBM i 7.2 (AS4)

Therefore, these platforms should be upgraded to ensure the relevant applications keep working on them.

All the remaining platforms will support C++11.

In summary, the migration should have no impact on your applications. If you do have questions or encounter issues, we are happy to provide prompt support to make the migration as graceful as possible.

Of course, your applications will have benefits of the C++ compiler upgrade that overshadow the impact. That's called progress!

If you're interested in what the Uniface development team had to accomplish for this upgrade, read our blog post: Lab-wide collaboration on the C++ compiler upgrade.