Skip to content
This repository was archived by the owner on Jan 28, 2021. It is now read-only.

cppTango 9.3.3 Release Notes

Reynald Bourtembourg edited this page Mar 4, 2019 · 11 revisions

[DRAFT]

Tango C++ library (cppTango) 9.3.3

March 2019

What's new (since version 9.2.5)?

  • cppTango source code repository has been moved from subversion on Sourceforge.net to git on GitHub.com. The tango-cs subversion repository on SourceForge has been frozen. The SourceForge tickets have been converted to GitHub issues.
  • cppTango now uses CMake as build system. please refer to INSTALL.md file to get more details if you want to build and install from the source code.
  • Integration tests are now public and built automatically using Travis CI for Linux.
  • cppTango is now using appveyor to automatically build the Tango C++ library on Windows, as well as Windows installers for the Tango C++ library for different Windows compilers (from MSVC9 to MSVC15, 32 bits and 64 bits).
  • A map was added in MultiAttribute object to improve performances when searching for an attribute by name.
  • An error message is now printed with the exception description if the event callback provided by the user (push_event() method) is throwing an exception.
  • Support for NaN and Inf was added in device properties.
  • DevVarBooleanArray DeviceData insertion and extraction operators have been added
  • It is now possible to create dynamic forwarded attributes. This works only when the device server exports only one device per class. Please refer to #342 for more details.
  • Development Debian packages for the Tango C++ library are now deployed automatically on Bintray when a git tag is created.
  • Coveralls, Codacy and Sonar tools have been integrated. So it is now possible to monitor the tests coverage and to benefit from static analysis and automatic code reviews from these tools to detect potential issues.
  • cppTango can now be compiled with Clang and recent g++ versions
  • A search bar has been added to Doxygen generated documentation, which is generated from

Changes which might have an impact on users

  • log4tango is no longer a separate library. It is now part of libtango library. This means that it is no longer required to link Tango C++ programs with liblog4tango. This also means that programs compiled with a previous Tango 9 release of the Tango C++ library will still require log4tango library at execution time until they are recompiled with the newer cppTango version and until their Makefile is updated to no longer link with log4tango library.

  • zmq.hpp file has been removed. This adds a dependency to cppzmq.

  • tango.h file is now generated during the build process from the tango.idl file. This adds a dependency to tango-idl repository. omniidl is also required to be able to generate tango.h file.

  • The include files are now installed under <install_prefix>/include/tango instead of <install_prefix>/include. You may have to update your Makefiles in order to match this new include install location.

  • log4tango include files are now installed under <install_prefix>/include/tango/log4tango. You may have to update your Makefiles in order to match this new include install location.

  • DeviceAttribute::get_type() no longer returns API_EmptyDeviceAttribute exception when the DeviceAttribute is empty. It returns DATA_TYPE_UNKNOWN instead.

    Warning! This change could lead to Segmentation fault in code doing something like:

    DeviceAttribute da;
    da = device->read_attribute("AnAttributeWithINVALIDQualityFactor");
    cout << "Type = " << Tango::CmdArgTypeName[da.get_type()] << endl;

Please refer to #510 for more details.

  • 2 consecutive change events having possibly the same attribute value (but different timestamps) might be sent now during the Device Server startup phase. This was necessary to fix a bug where a client would possibly miss some important change events after a device server restart. Please refer to #359 and #503 to get more details.
  • Tango::string_free() method has been added. The users are strongly encouraged to use this method together with Tango::string_dup() when dealing with Tango::DevString variables instead of using CORBA::string_free() and CORBA::string_dup().

Bug fixes

Feedback

Contributions

Acknowledgement

Clone this wiki locally