Skip to content

Releases: malachi-iot/estdlib

v0.8.2

10 Dec 16:30
Compare
Choose a tag to compare

v0.8.2 - 10DEC24

Added Features

  • #70 CMake compiler option macro helper
  • #69 get<T>(tuple) now available
  • #58 ESP-IDF logging emulation

Quality Updates & Bug Fixes

  • #68 freertos::wrapper::task::create_static now truly calls xTaskCreateStatic
  • #66 tuple.visit() now works with references too

v0.8.1

31 Oct 17:23
Compare
Choose a tag to compare

v0.8.1 - 31OCT24

Added Features

  • estd::num_put for bools & integers now available
    • Supports foreign locales, encodings, 16 bit characters and more
    • Compile-time tuning options
  • estd::variadic::values gets where and contains()
  • #49 rudimentary byteswap
  • #51 enhanced operators for units
  • #53 function_traits now active

Known Issues & Limitations

  • A full num_put is extensive functionality. Currently unsupported are floats, comma and decimal placement

Quality Updates & Bug Fixes

  • #48 more flexible span constructor
  • basic_ispanbuf and friends promoted from experimental to estd

v0.8.0

09 Jun 05:45
Compare
Choose a tag to compare

Added Features

  • Adding simplistic beta-quality memory pool. Located in estd::internal::memory::pool
  • Adding make_heap, push_heap and pop_heap

Quality Updates & Bug Fixes

  • #40 Fixed glitch in Streambuf c++20 concept
  • #39 Upgraded & cleaned out internal detail::function
  • AVR pgm support additional testing & refinement
  • Dogfooding internal units code into chrono support
  • Fixed glitch in variadic::values when using non-integer types

Known Issues & Limitations

  • Our heapify functions are crude and won't be as optimized as std.
    Still, it's better than nothing

v0.7.2

18 Mar 16:31
Compare
Choose a tag to compare

Quality Updates & Bug Fixes

  • #35 Top-level CMakeLists.txt now usable
  • Massive cleanup of estd/limits.h:
    • #36 fixed type_traits dependency
    • #37 Deducing long long far more effectively now

v0.7.1

17 Mar 02:40
Compare
Choose a tag to compare

Added Features

  • #31 Added estd::detail::iostream
  • #34 Added uint_least64_t and some other numeric_traits related goodies

Quality Updates & Bug Fixes

  • Improved clang compatibility, especially with c++20 concepts and bipbuffer
  • Fixed bug: 64-bit numeric_limits sometimes resolved to 32-bit
  • #24 Switched default size_type of strings from int16 -> size_t (can still override with policy)
  • #32 Fixed various tuple::visit edge cases
  • #33 Fixed minor glitch with dec, hex manipulator dependencies

v0.7.0

03 Mar 04:44
Compare
Choose a tag to compare

Added Features

Added Features (internal)

Early access - marked internal mainly due to naming and API flux, but passes tests:

  • Added out_buffered_stringbuf and out_bipbuf_streambuf wrapper for "true" streambuf operations. These sit in front of a raw streambuf for additional caching.
  • Core units capability - including bytes and percent and SI helpers for converting to string

Quality Updates & Bug Fixes

  • Bringing back c_str() to layer1 and layer2 strings
  • Various AVR and estd::variadic cleanup
  • Fixed bug in to_chars (#28)

v0.6.2

27 Oct 02:16
Compare
Choose a tag to compare

Added Features

  • Formally an esp-idf component now
  • Adding floating point support to num_get
  • Formalizing estd::detail::to_chars, an even lower-level interpretation of to_chars

Quality Updates & Bug Fixes

  • Using CMake's FetchContent now to acquire unit test frameworks rather than submodules
  • Minor breaking change: selector disambiguation
    • v1 namespace - "selector" might mean API to select or result of selecting
    • v2 namespace - "selector" only means API to select
  • Fixed bug where hex 'a' was encoded incorrectly during to_chars

Known Issues & Limitations

  • from_chars doesn't yet get floating point, even though num_get does

v0.6.1

17 Aug 04:17
Compare
Choose a tag to compare

Added Features

  • estd::detail::string is a more manageable way to pass strings around
  • Experimental/partial support for AVR PGM strings: estd::v0::avr::pgm_string

Quality Updates & Bug Fixes

  • estd::tuple now has conversion constructor
  • estd::variant on AVR now usable, with caveats (see next section)
  • String support code got a major scrub, though still a lot of crust in there
  • estd::vector no longer does naughty memmove with non-trivial types

Known Issues & Limitations

  • estd::is_constructible is broken on AVR. Possibly this is due to -fpermissive default flag
  • estd::variant on AVR caveats:
    • Using is_convertible rather than is_constructible, for assignment
      operator, so your mileage may vary when using more exotic types and constructors
    • is_constructible being how it is may negatively affect other areas. So far unit tests are OK though.
    • move semantic seems glitchy, destructs don't seem to get called

v0.6.0

20 Jul 19:45
Compare
Choose a tag to compare

NOTICE: License changed from MIT to APACHE 2.0

Added Features

  • Added estd::variant
  • Added estd::variadic namespace
    • variadic::types for compile-time management of class ...Types
    • variadic::values for compile-time management of T ...Values (overlaps with estd::index_sequence)
    • variadic::selector for compile-time evaluation of class ...Types
    • variadic::visitor for runtime visitor pattern applied to class ...Types
  • Added ESTD_VERSION macro for compile-time version query

Quality Updates & Bug Fixes

  • is_base_of no longer caught up on access modifierrs
  • General Arduino, AVR, c++03 compatibility
  • estd::optional and estd::expected much more robust
    • shares code base with estd::variant
    • when available, exceptions are now supported
  • estd::num_get and by extension istream integer parsing now returns min/max value on overflow
  • estd::priority_queue works on more targets

Known Issues & Limitations

  • estd::variant not functional on AVR, probably bugs in #7

v0.5.1

18 May 21:59
Compare
Choose a tag to compare

Added Features

  • Adding setw and setfill to ostream
  • Adding estd::expected and estd::unexpected

Quality Updates & Bug Fixes

  • Fixing signed/unsigned mismatch in out_span_streambuf
  • Fixing estd::optional bug when using reset on enum type
  • Adding edge case optimization to estd::tuple (see FEATURE_ESTD_SPARSE_TUPLE)

Known Issues & Limitations

  • estd::expected:
    • Not well tested outside of c++11 GCC, though designed to be compatible with c++03
    • Various edge cases like returning && value() not yet implemented