Skip to content

0.9.0 (Papillons) beta 1

Pre-release
Pre-release
Compare
Choose a tag to compare
@eboasson eboasson released this 20 Mar 11:52
· 27 commits to releases/0.9.x since this release

This release brings two major new things: a lovely Python binding and support for the DDS XTypes specification.

XTypes support brings structural typing with type checking, allowing data types to evolve while maintaining backwards compatibility. There are also some minor extensions to the expressiveness of the type system. The type metadata and discovery mechanisms that also make it possible to perform introspection and interact with types not known at compile time. There are some limitations in the support, most of these will be lifted in coming releases.

Perhaps the most important restriction is that the Python binding is the only one that supports the type introspection — but then it is also the language binding in which actually using dynamic types is a pleasure rather than a major pain. Because of this great difference in usability, the extent to which this particular restriction will be lifted in the future will be dependent on need. The pubsub tool has been reimplemented in Python and now supports subscribing to any topic published in the system.

The Python binding has been around for a while but didn't quite make it into the 0.8 release. This time, it is included in the release. Defining types in Python binding can be done using IDL files, but there is no need. Defining the types natively in Python is also fully supported.

Other significant changes are:

  • Iceoryx integration now uses Iceoryx 2.0 and adds support for arbitrary (that is, non-fixed-size) types and transient-local data.
  • The configuration of network interfaces is reworked, now also supports prioritising one interface over another
  • Bison is no longer required to build Cyclone DDS (it is required if the IDL compiler grammar file is changed)
  • Cross-builds have gotten much simpler and in particular get the default configuration initialisation correct
  • QNX is known to work (the Cyclone DDS project doesn't control the infrastructure needed to list it as a "supported" platform)
  • MinGW is supported