CHANGELOG

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

Unreleased

Added

  • Implement ArqLayer in VHDL.

  • Added connected event to all protocol layers.

Changed

  • examples/9_fpga now implements a full protocol stack over a potentially lossy channel.

  • Improved handling reconnection of protocol layers.

Fixed

  • Use ZMQ_DEALER instead of ZMQ_PAIR for SyncZmqLayer to fix stability issues over IPC and other possibly non-stable connections.

  • A bug that ignored o_commit signal on libstored_pkg.libstored_fifo.

1.7.1 - 2024-02-28

Added

  • Implement NamedPipeLayer and DoublePipeLayer for Linux.

  • Allow running examples/9_fpga on Linux.

  • CRC8, CRC16, Segmentation protocol layers in VHDL. ArqLayer is still missing.

Changed

  • Brake dependency on heatshrink2 Python package by providing a pure-python heatshrink decoder.

  • Bump ZeroMQ to 4.3.5 when building from source, fixing GCC 13 support.

Fixed

  • Workaround for segfault in XSIM.

1.7.0 - 2023-11-17

Added

  • Produce SBOM for generated store libraries.

Changed

  • Make libstored REUSE compliant.

1.6.0 - 2023-09-13

Added

  • libstored.cmake, with generator to pylibstored. Instead of cloning the libstored repo, running pip install libstored contains everything to generate a store. See also examples/int_pip.

Changed

  • ASan checks on the correct usage of entry/exit RO/X of stores.

  • Improved Synchronizer performance.

  • Made buffer size configurable for FileLayer and StdioLayer.

Fixed

  • Fix baud rate setting and break generation in stored::SerialLayer for Linux.

  • Fix encode queue size computation of stored::ArqLayer.

  • Improve stability of Debugger/Synchronizer protocol handling of bogus messages.

1.5.0 - 2023-07-07

Added

  • Python libstored.log command line logging tool to easily generate a CSV file with samples.

Changed

  • Get a compile error when a store class does provide the implementation of all functions, and provide a store wrapper to add default function implementations.

  • Check against recursive entry/exit RO/X locks per store.

  • Replaced deprecated setup.py and removed deprecated ed2 package.

  • Improved support to include(libstored) in your CMake project.

1.4.0 - 2023-04-06

Added

  • First-order high-pass filter.

  • Pipes, to process data using functional composition.

  • A Signal class (with Signalling store wrapper) to call functions when the signal is triggered (or a store variable is changed).

Fixed

  • Properly calling hooks by the Synchronizer.

  • Minor issues with pylibstored.

1.3.1 - 2022-10-21

Fixed

  • PySide6 6.4.0 support in changed enum handling. However, the same issue exists in matplotlib (issue #24155). To get plotting working again, matplotlib>=3.6.2 or PySide6<6.4.0 is required.

1.3.0 - 2022-10-20

Added

  • Maximum error for PID.

  • Stream visualization in the Embedded Debugger.

Changed

  • Switch license to MPLv2.

Fixed

  • Fix in computing stored::Ramp acceleration and speed.

  • Fix in compressed Debugger streams upon internal buffer overflow.

  • Handle unaligned memory access properly in store objects.

1.2.0 - 2022-03-28

Added

  • Add QObject/QML wrapper for stores to access a store directly in QML.

  • Generate store variable changed callbacks.

  • Allow string variables to be initialized.

  • Generate store meta data in doc/<store>Meta.py

Changed

  • Replaced UNUSED_PAR by a more portable UNUSED macro.

Fixed

  • Improved QtCreator integration, such as store code-completion

  • Fix support for disabling RTTI

  • Fix support for disabling exceptions

1.1.0 - 2022-01-07

Added

  • Add support for ninja, and default to it in build scripts.

  • Use matplotlib for plotting signals by libstored.gui.

Changed

  • Migrate pylibstored from PySide2 to PySide6.

  • Restructure scripts directory into dist.

  • Replace poller API.

  • libstored_lib and libstored_generate now take keyword-based parameters, but old (positional) interface is still supported.

  • Improve Zth integration for fiber-aware polling.

Removed

  • Drop Ubuntu 18.04 support. PySide6 requires Ubuntu 20.04 or later.

1.0.0 - 2021-08-25

Initial version.

Added

  • Store generator for C++ and VHDL

  • C++ library to access the store in your application

  • VHDL entities to setup synchronization between VHDL and a C++ store

  • python library with the Embedded Debugger protocol to connect to an application

  • A presentation

  • Examples

  • (Unit) tests

  • Some documentation