Skip to content

Releases: ETLCPP/etl

Fixes for issues #815 and #885

26 Apr 10:04
Compare
Choose a tag to compare

#815 etl::remove_if calls predicate twice for first iterator, where predicate returns true.
#885 Bug: queue move-assignment is not compiling
Modified UnitTest++ SUITE macro for better VS2022 intellisence compatibly

Multiple fixes, features and pull requests

19 Apr 17:27
Compare
Choose a tag to compare

Fixes:
#803 etl::unordered_map buffer overflow
#805 legacy etl::bitset set/reset does not work if the element type is greater than 8 bit
#815 etl::remove_if calls predicate twice for first iterator, where predicate returns true.
#819 etl::optional cannot return an optional object of self from member function
#820 etl::send_message does not allow for non-virtual calls
#825 Fixed extent etl::span shouldn't allow default constructor
#827 Declaration order for etl::first_set_bit_position in binary.h
#829 Possible bug on assign of etl::array
#830 gcc warning - potential null pointer dereference using etl::map
#845 etl::message_packet missing a copy constructor
#857 etl::expected emplace methods are missing-return
#868 etl::variant is missing comparison operators
#869 etl::fsm::receive function can call p_state process_event also when p_state is nullptr
#873 Validate allocated DataNode is not null to prevent gcc Wnull-dereference
#874 Allow direct removal of a node from an etl::intrusive_list
#877 Optimize find_first_not_of and find_last_not_of on string_view
#855 Strange expression in volatile atomic operator--

Pull Requests:
#782 etl::set is full error when adding existing item
#804 etl::variant (variadic) default constructed state
#812 Implement SAE-J1850 CRC8
#832 Only copy/move storage value when optional is valid
#843 In subspan function, add static checks on extents
#849 Fix string_stream add missing initializations of const format specifiers
#850 Fixed names according to Arduino's guidelines
#854 In-place construction of shared_message
#858 Fix unique_ptr assigning nullptr to a null unique_ptr causes an assert
#861 Implement constexpr strong type_def
#862 Update ETL_CONSTEXPR and C++14 designation from type_def
#863 Add eq and ne operators for compare utility
#865 Add utils compare equality operator
#879 Make include paths to private files relative

Features:
#774 Truncating access for etl::bitset - Added extract() functions.
#806 etl::variant_pool should support C++17 variadic parameters (supports C++11 variadic parameters)
#818 Apply code spell check across entire code base
#841 Change push to push_back on containers, so they can be used with std::back_inserter. (Added push_insert_iterator instead).
#847 Add has_active_timer to callback_timer. (Added to all timers).
#883 Add etl::partition and etl::nth_element algorithms
#864 cyclic_value first/last methods. Make first() and last() static for template based limits specialisation

Changes without a GitHub issue#:
Added etl::mem_fn (clone of std::mem_fn)
Added etl::generate algorithm (clone of std::generate)
Added binary functors for ~ & | ^
Added etl::is_default_constructible & etl::is_default_constructible_v
Added syntax checks to GitHub CI
Refactored etl::optional implementation
Fixed etl::optional operator =() for invalid values with non-pod types
Refactored message_packet constructors
Added specific copy and move constructors to message_packet for C++17 and above.
Changed optional 'simple' types implementation for C++14 constexpr compatibility
Fixed implicitly disabled copy constructor for message_packet
Modified accepts() message_router functions to interrogate subscribed and successor routers to achieve consistency.
Fixed nodiscard keyword errors
Removed unused ETL_STATIC_CONSTANT
Make binary functor operator() const
Improved display of CHECK_EQUAL_HEX in UnitTest++

#800 Prioritize ETL_TARGET_OS_* for mutex selection

10 Dec 16:31
Compare
Choose a tag to compare
20.38.10

Updated version and release

Fixed CRC and PMA output iterator typedefs

09 Dec 18:12
Compare
Choose a tag to compare

#799 Iterator returned by crc.input() does not satisfy std::output_iterator
Added etl::crc1 (parity)

Small fixes

05 Dec 14:31
Compare
Choose a tag to compare

#795 etl::private_variant doesn't fully respect the chosen error reporting.
#797 Undeclared FP_NAN, FP_INFINITE and FP_ZERO

Various updates & fixes

04 Dec 16:05
Compare
Choose a tag to compare

Updated CI scripts
Refactored GitHub CI workflows
Updated build script text
Added additional etl::make_lsb_mask and etl::make_msb_mask binary functions.
Mask functions are now constexpr for C++11 and above.
#779 hash.h: warnings produced with -Wfloat-equal
#781 etl::multi_span::iterator::operator *() fails if first span is empty
#780 endian enum_type produces useless-cast warnings
#783 Cannot insert existing value to full set
#786 Added u8string
#787 etl::expected doesn't compile with ETL_LOG_ERRORS

#777 Allow Building Tests as Submodule and GCC < 11

28 Oct 20:59
Compare
Choose a tag to compare

Refactored etl::itr_swap for maximum efficiency.

#776 Add missing semicolons

23 Oct 09:06
Compare
Choose a tag to compare
20.38.5

#776 Add missing semicolons

#773 Return raw pointer for etl::multi_span::operator->()

15 Oct 09:55
Compare
Choose a tag to compare
20.38.4

#773 Return raw pointer for etl::multi_span::operator->()

Fixed type_with_alignment issue

28 Sep 08:20
Compare
Choose a tag to compare

#767 etl::pool silently produces unaligned allocations for types with stricter alignment requirements than built in types

etl::type_with_alignment raises a static_assert if the specified alignment cannot be achieved.
Uses the old method for C++03 and below, alignas for C++11 or above.