From cd0c5efece6b41c9b280afd841872ad64f42e752 Mon Sep 17 00:00:00 2001 From: Djordje Nedic Date: Mon, 17 Jul 2023 16:55:42 +0200 Subject: [PATCH] Release 2.0.3 --- CHANGELOG.md | 4 ++++ CMakeLists.txt | 2 +- lockfree/lockfree.hpp | 6 +++--- lockfree/mpmc/priority_queue.hpp | 8 ++++---- lockfree/mpmc/priority_queue_impl.hpp | 6 +++--- lockfree/mpmc/queue.hpp | 6 +++--- lockfree/mpmc/queue_impl.hpp | 6 +++--- lockfree/spsc/bipartite_buf.hpp | 18 +++++++++--------- lockfree/spsc/bipartite_buf_impl.hpp | 6 +++--- lockfree/spsc/priority_queue.hpp | 8 ++++---- lockfree/spsc/priority_queue_impl.hpp | 6 +++--- lockfree/spsc/queue.hpp | 6 +++--- lockfree/spsc/queue_impl.hpp | 6 +++--- lockfree/spsc/ring_buf.hpp | 6 +++--- lockfree/spsc/ring_buf_impl.hpp | 6 +++--- 15 files changed, 52 insertions(+), 48 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 19c4ac3..a593592 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 2.0.3 + +- Fixed MSVC C++ language standard detection + ## 2.0.2 - Performance and code conciseness improvements in single-producer single-consumer [Queue](docs/spsc/queue.md), [Priority Queue](docs/spsc/priority_queue.md) and [Bipartite Buffer](docs/spsc/bipartite_buf.md) diff --git a/CMakeLists.txt b/CMakeLists.txt index 46046ac..5ff8bbf 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,7 +4,7 @@ cmake_minimum_required(VERSION 3.16) project(lockfree - VERSION 2.0.2 + VERSION 2.0.3 LANGUAGES CXX ) diff --git a/lockfree/lockfree.hpp b/lockfree/lockfree.hpp index 4d400b7..0b28fb8 100644 --- a/lockfree/lockfree.hpp +++ b/lockfree/lockfree.hpp @@ -3,8 +3,8 @@ * @brief A collection of lock free data structures written in * standard c++11 suitable for all systems, from low-end * microcontrollers to HPC machines. - * @version 2.0.2 - * @date 6. June 2023 + * @version 2.0.3 + * @date 17. July 2023 * @author Djordje Nedic **************************************************************/ @@ -36,7 +36,7 @@ * This file is part of lockfree * * Author: Djordje Nedic - * Version: v2.0.2 + * Version: v2.0.3 **************************************************************/ #ifndef LOCKFREE_HPP diff --git a/lockfree/mpmc/priority_queue.hpp b/lockfree/mpmc/priority_queue.hpp index 69c157e..7f701fa 100644 --- a/lockfree/mpmc/priority_queue.hpp +++ b/lockfree/mpmc/priority_queue.hpp @@ -3,8 +3,8 @@ * @brief A priority queue implementation written in standard * c++11 suitable for both low-end microcontrollers all the way * to HPC machines. Lock-free for all scenarios. - * @version 2.0.2 - * @date 6. June 2023 + * @version 2.0.3 + * @date 17. July 2023 * @author Djordje Nedic **************************************************************/ @@ -36,7 +36,7 @@ * This file is part of lockfree * * Author: Djordje Nedic - * Version: v2.0.2 + * Version: v2.0.3 **************************************************************/ /************************** INCLUDE ***************************/ @@ -70,7 +70,7 @@ template class PriorityQueue { * @param[in] Element priority * @retval Operation success */ - bool Push(const T &element, const size_t priority); + bool Push(const T &element, size_t priority); /** * @brief Removes an element with the highest priority from the queue. diff --git a/lockfree/mpmc/priority_queue_impl.hpp b/lockfree/mpmc/priority_queue_impl.hpp index 5c611bd..a6ca303 100644 --- a/lockfree/mpmc/priority_queue_impl.hpp +++ b/lockfree/mpmc/priority_queue_impl.hpp @@ -3,8 +3,8 @@ * @brief A priority queue implementation written in standard * c++11 suitable for both low-end microcontrollers all the way * to HPC machines. Lock-free for all scenarios. - * @version 2.0.2 - * @date 6. June 2023 + * @version 2.0.3 + * @date 17. July 2023 * @author Djordje Nedic **************************************************************/ @@ -36,7 +36,7 @@ * This file is part of lockfree * * Author: Djordje Nedic - * Version: v2.0.2 + * Version: v2.0.3 **************************************************************/ /************************** INCLUDE ***************************/ diff --git a/lockfree/mpmc/queue.hpp b/lockfree/mpmc/queue.hpp index c5df604..d0a5d0c 100755 --- a/lockfree/mpmc/queue.hpp +++ b/lockfree/mpmc/queue.hpp @@ -3,8 +3,8 @@ * @brief A queue implementation written in standard c++11 * suitable for both low-end microcontrollers all the way * to HPC machines. Lock-free for all scenarios. - * @version 2.0.2 - * @date 6. June 2023 + * @version 2.0.3 + * @date 17. July 2023 * @author Djordje Nedic **************************************************************/ @@ -36,7 +36,7 @@ * This file is part of lockfree * * Author: Djordje Nedic - * Version: v2.0.2 + * Version: v2.0.3 **************************************************************/ /************************** INCLUDE ***************************/ diff --git a/lockfree/mpmc/queue_impl.hpp b/lockfree/mpmc/queue_impl.hpp index 947855a..9afa98e 100644 --- a/lockfree/mpmc/queue_impl.hpp +++ b/lockfree/mpmc/queue_impl.hpp @@ -3,8 +3,8 @@ * @brief A queue implementation written in standard c++11 * suitable for both low-end microcontrollers all the way * to HPC machines. Lock-free for all scenarios. - * @version 2.0.2 - * @date 6. June 2023 + * @version 2.0.3 + * @date 17. July 2023 * @author Djordje Nedic **************************************************************/ @@ -36,7 +36,7 @@ * This file is part of lockfree * * Author: Djordje Nedic - * Version: v2.0.2 + * Version: v2.0.3 **************************************************************/ /********************** PUBLIC METHODS ************************/ diff --git a/lockfree/spsc/bipartite_buf.hpp b/lockfree/spsc/bipartite_buf.hpp index 49dd9fc..244b0e5 100755 --- a/lockfree/spsc/bipartite_buf.hpp +++ b/lockfree/spsc/bipartite_buf.hpp @@ -4,8 +4,8 @@ * standard c++11 suitable for all systems, from low-end * microcontrollers to HPC machines. * Lock-free for single consumer single producer scenarios. - * @version 2.0.2 - * @date 6. June 2023 + * @version 2.0.3 + * @date 17. July 2023 * @author Djordje Nedic **************************************************************/ @@ -37,7 +37,7 @@ * This file is part of lockfree * * Author: Djordje Nedic - * Version: v2.0.2 + * Version: v2.0.3 **************************************************************/ /************************** INCLUDE ***************************/ @@ -70,7 +70,7 @@ template class BipartiteBuf { * @param[in] Free linear space in the buffer required * @retval Pointer to the beginning of the linear space */ - T *WriteAcquire(const size_t free_required); + T *WriteAcquire(size_t free_required); #if __cplusplus >= 202002L || (defined(_MSVC_LANG) && _MSVC_LANG >= 202002L) /** @@ -79,7 +79,7 @@ template class BipartiteBuf { * @param[in] Free linear space in the buffer required * @retval Span of the linear space */ - std::span WriteAcquireSpan(const size_t free_required); + std::span WriteAcquireSpan(size_t free_required); #endif /** @@ -88,7 +88,7 @@ template class BipartiteBuf { * @param[in] Elements written to the linear space * @retval None */ - void WriteRelease(const size_t written); + void WriteRelease(size_t written); #if __cplusplus >= 202002L || (defined(_MSVC_LANG) && _MSVC_LANG >= 202002L) /** @@ -97,7 +97,7 @@ template class BipartiteBuf { * @param[in] Span of the linear space * @retval None */ - void WriteRelease(const std::span written); + void WriteRelease(std::span written); #endif /** @@ -123,7 +123,7 @@ template class BipartiteBuf { * @param[in] Elements read from the linear region * @retval None */ - void ReadRelease(const size_t read); + void ReadRelease(size_t read); #if __cplusplus >= 202002L || (defined(_MSVC_LANG) && _MSVC_LANG >= 202002L) /** @@ -132,7 +132,7 @@ template class BipartiteBuf { * @param[in] Span of the linear space * @retval None */ - void ReadRelease(const std::span read); + void ReadRelease(std::span read); #endif /********************* PRIVATE METHODS ************************/ diff --git a/lockfree/spsc/bipartite_buf_impl.hpp b/lockfree/spsc/bipartite_buf_impl.hpp index 92af299..5dcdfb1 100644 --- a/lockfree/spsc/bipartite_buf_impl.hpp +++ b/lockfree/spsc/bipartite_buf_impl.hpp @@ -4,8 +4,8 @@ * c++11 suitable for both low-end microcontrollers all the way * to HPC machines. Lock-free for single consumer single * producer scenarios. - * @version 2.0.2 - * @date 6. June 2023 + * @version 2.0.3 + * @date 17. July 2023 * @author Djordje Nedic **************************************************************/ @@ -37,7 +37,7 @@ * This file is part of lockfree * * Author: Djordje Nedic - * Version: v2.0.2 + * Version: v2.0.3 **************************************************************/ /************************** INCLUDE ***************************/ diff --git a/lockfree/spsc/priority_queue.hpp b/lockfree/spsc/priority_queue.hpp index d0936da..4e7beb0 100644 --- a/lockfree/spsc/priority_queue.hpp +++ b/lockfree/spsc/priority_queue.hpp @@ -4,8 +4,8 @@ * c++11 suitable for both low-end microcontrollers all the way * to HPC machines. Lock-free for single consumer single * producer scenarios. - * @version 2.0.2 - * @date 6. June 2023 + * @version 2.0.3 + * @date 17. July 2023 * @author Djordje Nedic **************************************************************/ @@ -37,7 +37,7 @@ * This file is part of lockfree * * Author: Djordje Nedic - * Version: v2.0.2 + * Version: v2.0.3 **************************************************************/ /************************** INCLUDE ***************************/ @@ -71,7 +71,7 @@ template class PriorityQueue { * @param[in] Element priority * @retval Operation success */ - bool Push(const T &element, const size_t priority); + bool Push(const T &element, size_t priority); /** * @brief Removes an element with the highest priority from the queue. diff --git a/lockfree/spsc/priority_queue_impl.hpp b/lockfree/spsc/priority_queue_impl.hpp index 99e92c8..278067f 100644 --- a/lockfree/spsc/priority_queue_impl.hpp +++ b/lockfree/spsc/priority_queue_impl.hpp @@ -4,8 +4,8 @@ * c++11 suitable for both low-end microcontrollers all the way * to HPC machines. Lock-free for single consumer single * producer scenarios. - * @version 2.0.2 - * @date 6. June 2023 + * @version 2.0.3 + * @date 17. July 2023 * @author Djordje Nedic **************************************************************/ @@ -37,7 +37,7 @@ * This file is part of lockfree * * Author: Djordje Nedic - * Version: v2.0.2 + * Version: v2.0.3 **************************************************************/ /************************** INCLUDE ***************************/ diff --git a/lockfree/spsc/queue.hpp b/lockfree/spsc/queue.hpp index 14a0caa..f136ab1 100755 --- a/lockfree/spsc/queue.hpp +++ b/lockfree/spsc/queue.hpp @@ -4,8 +4,8 @@ * suitable for both low-end microcontrollers all the way * to HPC machines. Lock-free for single consumer single * producer scenarios. - * @version 2.0.2 - * @date 6. June 2023 + * @version 2.0.3 + * @date 17. July 2023 * @author Djordje Nedic **************************************************************/ @@ -37,7 +37,7 @@ * This file is part of lockfree * * Author: Djordje Nedic - * Version: v2.0.2 + * Version: v2.0.3 **************************************************************/ /************************** INCLUDE ***************************/ diff --git a/lockfree/spsc/queue_impl.hpp b/lockfree/spsc/queue_impl.hpp index ea2b2d9..d6a65f8 100644 --- a/lockfree/spsc/queue_impl.hpp +++ b/lockfree/spsc/queue_impl.hpp @@ -4,8 +4,8 @@ * suitable for both low-end microcontrollers all the way * to HPC machines. Lock-free for single consumer single * producer scenarios. - * @version 2.0.2 - * @date 6. June 2023 + * @version 2.0.3 + * @date 17. July 2023 * @author Djordje Nedic **************************************************************/ @@ -37,7 +37,7 @@ * This file is part of lockfree * * Author: Djordje Nedic - * Version: v2.0.2 + * Version: v2.0.3 **************************************************************/ /********************** PUBLIC METHODS ************************/ diff --git a/lockfree/spsc/ring_buf.hpp b/lockfree/spsc/ring_buf.hpp index 427995e..96e5694 100755 --- a/lockfree/spsc/ring_buf.hpp +++ b/lockfree/spsc/ring_buf.hpp @@ -4,8 +4,8 @@ * c++11 suitable for both low-end microcontrollers all the way * to HPC machines. Lock-free for single consumer single * producer scenarios. - * @version 2.0.2 - * @date 6. June 2023 + * @version 2.0.3 + * @date 17. July 2023 * @author Djordje Nedic **************************************************************/ @@ -37,7 +37,7 @@ * This file is part of lockfree * * Author: Djordje Nedic - * Version: v2.0.2 + * Version: v2.0.3 **************************************************************/ /************************** INCLUDE ***************************/ diff --git a/lockfree/spsc/ring_buf_impl.hpp b/lockfree/spsc/ring_buf_impl.hpp index 58a565f..7bb4e3b 100644 --- a/lockfree/spsc/ring_buf_impl.hpp +++ b/lockfree/spsc/ring_buf_impl.hpp @@ -4,8 +4,8 @@ * c++11 suitable for both low-end microcontrollers all the way * to HPC machines. Lock-free for single consumer single * producer scenarios. - * @version 2.0.2 - * @date 6. June 2023 + * @version 2.0.3 + * @date 17. July 2023 * @author Djordje Nedic **************************************************************/ @@ -37,7 +37,7 @@ * This file is part of lockfree * * Author: Djordje Nedic - * Version: v2.0.2 + * Version: v2.0.3 **************************************************************/ /********************** PUBLIC METHODS ************************/