This this the changelog file for the Pothos C++ library. Release 0.8.0 (pending) ========================== API changes: - BufferManager: added functionality to specify custom memory allocation Additions: - Added Pothos::ProxyVector <-> std::vector conversions PothosUtil: - Added --proxy-environment-info option - Added option to print type conversions for a given type SIMD support: - Added SIMDDispatcherUtils - Buffer and vector conversions use SIMD conversion - Added utility header that adds SFINAE structs for XSIMD type support Build changes: - Update to CMake 3.0 style and project config generation - Increase the CMake build requirement to version 3.1.0 Release 0.7.2 (pending) ========================== Build Changes: - undefined linker flags are only used on module builds - create interface library to support modern cmake targets Release 0.7.1 (2021-01-24) ========================== - TestDocUtils: fix GCC "unused result" warning - Fix std::vector emplace_back missing - Revert BufferAccumulator.cpp from #205 Release 0.7.0 (2020-07-19) ========================== Additions: - Added PothosUtil --num-trials option for tests - Added PothosUtil --list-modules - Octal support for muparserx expressions API Changes: - Added ExceptionForErrorCode exception class with error code - New test assert macros for comparisons - Added equality operator for Object class to other type - Added Block::prepare() API call to be called before work() - Callable API support for std::function - Added function to query Pothos module search paths - Added std::function support for Callable API - Added calls setOut/InputAlias() for Topology API - Update poco submodule to poco-1.9.0-release - OutputPort::getBuffer() returns the exact specified buffer length - Added OutputPort::getBuffer() with specified data type variant - Version reporting API and build support for loadable modules Fixes: - Move probe handlers into worker actor - fixes python overload - Fixes for circular buffer alias calculation Release 0.6.1 (2018-04-30) ========================== - Fixed BufferPool::get() unique check from buffer refactor work - Remove arbitrary argument limit from Callable::opaqueCall() - Additional error handling when RemoteServer fails to launch process - Added support for PothosUtil to query information about loaded modules - Fix for potential overrun in Block Description if the line is empty. Release 0.6.0 (2017-12-25) ========================== - Updated internal poco submodule to poco-1.8.0.1-release - Removed deprecated API call OutputPort::popBuffer() - Re-implement RingDeque container to use std::allocator - Removed previously unused ObjectM class (mutable object) - Added Pothos::Util::SpinLockRW for single write, multi-read - API changes to Object, Proxy, and Callable interface types * Object supports implicit templated convert to target type * Proxy supports implicit templated convert to target type * Deprecated Callable interface's callVoid(), use call() * Deprecated Callable interface's callObject(), use call() * Deprecated Proxy interface's callVoid(), use call() * Deprecated Proxy interface's callProxy(), use call() - Automatic slots for all void calls in Block::registerCallable: Previously calls with 1 or more arguments became automatic slots. The new rule checks for void return type and supports calls without arguments. In addition registerSlot() will not throw when registering slots that were created automatically. - Renamed the project repo from pothos to PothosCore - Updated toolkit/submodule URLs for repo rename - Renamed pothos-gui toolkit to PothosFlow - Renamed pothos-sdr toolkit to PothosSoapy - Alternative JSON C++ library to handle JSON parsing/emitting Release 0.5.1 (2017-08-16) ========================== - Fixed buffer inlining corner case for amalgamated multi-buffers - Moved cmake modules into subdirectory to hide them from cmake's default project search path when cloned in user's home directory - Fix for doc parser and getline for windows newlines - Added missing functional include for Remote/Server.cpp - Exception handling for EvalEnvironment::registerConstantObj() - Fixed memory leak in Util FileLock implementation Release 0.5.0 (2017-04-27) ========================== - BlockEval API changes to support GUI evaluator - DocUtils API changes to support GUI docs query - Removed the pothos-serialization dependency and replaced it with a much smaller in-library solution. The serialization format has changed for this release. - Switch stdio to end of line flushing for logging - Added Plugin path API for concatenating two paths - Added API for parsing sources for block descriptions - Created configuration-file based loader for plugins: - With built-in loader for JSON topologies - With built-in loader for JIT compilation - With built-in loader for block descriptions - Added PluginModule boolean operator for checking null - Reimplemented compiler support around file paths - Reimplemented QFormat for simplification and warnings Release 0.4.3 (2017-04-23) ========================== - Fixed RemoteServer process arguments for some shells - Fix copy/paste typo in DeviceInfoUtils registration Release 0.4.2 (2017-01-26) ========================== - Fix expression parser for nested parenthesized functions - Added missing ProxyEnvironment calls to managed registry - Added missing BufferChunk calls to managed registry - RemoteServer should wait() on process after terminate - Added missing Block::isActive to managed registry - Fixed typo in PothosConfig.cmake for include check - PothosUtil option argument for --proxy-server Release 0.4.1 (2016-09-26) ========================== - Update internal poco submodule to track poco-1.7.5 - Dynamic environment variables for snappy packages - Fixed output port reserve handling for empty managers - Fix warnings for doxygen generated documentation - Set _DEBUG define when not building under MSVC Debug - Bump activity indicator for slots and de/activate Release 0.4.0 (2016-08-02) ========================== Deprecated Framework API calls: - Deprecated OutputPort::popBuffer, use popElements New Framework API calls: - Added OutputPort::setReserve function call - Added OutputPort::popElements function call - Added OutputPort::getBuffer function call - Added InputPort::peekMessage function call - Added BlockRegistry::make block proxy factory - Added Block::emitSignal to replace callVoid - Added DType::fromDType factory method - Added BufferChunk::convert into a specified buffer General additions and changes: - Added set, get, and function call operator to Proxy - Support global variables in JSON Topology description - BufferChunk management of multiple buffer references - Moved EvalEnvironment interface into public headers - Library fixes to support compilation on FreeBSD systems - Use default debug log level for plugin registry events - Allow for plugin module re-initialization after deinit() - Fixed weak storage of plugin's associated module object - Updated the internal Poco submodule to version 1.7.4 Release 0.3.3 (2016-05-10) ========================== - Added conversion for proxy vector to/from numeric matrix - Switch to getWildcardAddr() in logger for portability - Fix Poco in-tree build support, was missing Poco_FOUND - Updated muparserx submodule, contains various fixes - CMake POTHOS_SOVER variable cache fix use INTERNAL type - Proxy server sets unbuffered on descriptors for printf() users Release 0.3.2 (2016-03-06) ========================== - Use current DLL path to determine the system install root - Fixes for POTHOS_MODULE_UTIL destination and install prefix - Added conversions between ObjectMap and ObjectKwargs - Added CMake ENABLE_* flags for internal dependencies Release 0.3.1 (2016-01-01) ========================== - The reserve only prevents work when all ports fail - InputPort::setReserve() only bump for larger setting - Renamed BlockEval to fix symbol conflict with GUI - Restored pothos-all metapackage for convenience - Added pothos (runtime) to libpothos-dev Depends - Make spuce submodule optional as a dependency - CMakeLists.txt use newer git submodule syntax - spuce submodule set to 0.4.2 release tag Release 0.3.0 (2015-12-16) ========================== - Absorbed the pothos-util toolkit into lib/Util - Replaced NamedMutex use with FileLock and std::mutex - Added templated Q-format/fixed-point conversions - Added POTHOS_TEST_CLOSE() for equality with tolerance - Support complex integer toString() and conversions - Added displayable port alias name to framework APIs - Support conditional preview mode in block description parser - Applications can cleanup before exit with deinit() - Detection logic in input port for queue overflows - Added network utils for IPv6 with fall-back support - Improved error reporting and formatting for self tests - Fixed text fixture symbol declaration for OSX - Set library SOVERSION using POTHOS_ABI_VERSION - Use requestTermination in server and fix destructor throw - RemoteProxyEnvironment reply cache check without blocking - Bumped API number to "0.3-0" for serialization changes - Re-implement RPC datagram format with embedded length - Switch to portable binary Object serialization from EOS Release 0.2.2 (2015-12-07) ========================== - Fix Topology::dumpJSON undefined JSON Object behavior - Buffer accumulator pop all front-most consumed buffers - Fixed Buffer manager reuse on small consume logic - Fixed Pothos Util doc parse bug in use of seekg() Release 0.2.1 (2015-08-26) ========================== - Fix buffer accumulator require circular optimization - Support custom multi-dest buffers when domain unspecified - JSON stats use block name from flattened hierarchy - Cache calls to get buffer manager implementations - Install buffer managers skips signal/slot ports - Default propagate labels now skips signal ports - Support alias paths in block description markup - Fixed workInfo element counts to exclude signals/slots - Fixed integer parser failure in named ports setup - Allow work() operation with unused output ports - Created new test suite macro for array equality - WorkerActor push downstream only when data available - Fix Topology::waitInactive() activity checker - Fix input port buffer accumulator total counter - Implement SoapySDRConfigVersion.cmake version check Release 0.2.0 (2015-06-17) ========================== - Support /usr/local module installs when root is /usr - Support POTHOS_PLUGIN_PATH environment variable - Support using system installed version of Poco - Serialization switched to portable text archive - Topology waitInactive() support for infinite timeout - PothosUtil --print-tree renamed to --plugin-tree - PothosUtil --self-tests-at combined with --self-tests - Fixed automatic port deletion upon disconnection - Threading overhaul and performance improvements - Topology factory from JSON description - Topology supports pass-through flows Release 0.1.1 (2015-06-16) ========================== - Fix temporary file cleanup for unix circular buffer - Support openSuSE for automatic LIB_SUFFIX detection logic - Pothos build utils set library paths in unix environment - Added serialization for built-in proxy container types - Fixed circular buffer push front condition when non-empty - Fixed Topology::waitInactive() false positive condition - Fixed usage of managed buffers for message back-pressure Release 0.1.0 (2014-12-21) ========================== This is the first public release of the Pothos C++ library.