Skip to content

Releases: stclib/STC

Release v5.0

12 Jan 21:02
Compare
Choose a tag to compare

Finally after nearly two years, a new release of STC! It has lots of improvements, new features and bug fixes. There are a number of breaking changes since the last released version, so make sure to check out the version history. Special thanks to all who contributed with PRs, bug reports and suggestions!

New Features in v5.0**

  • New main build system with Meson. Simple Makefile provided as well.
  • New sum type (tagged union), included via algorithm.h
  • New single/multi-dimensional generic span type, with numpy-like slicing.
  • Coroutines now support structured concurrency and symmetric coroutines.
  • Coroutines now support error handling and error recovery.
  • Template parameter i_type lets you define i_type, i_key, and i_val all in one line (comma separated).
  • Template parameters i_keyclass and i_valclass to specify types with _drop() and _clone() functions defined.
  • Template parameters i_keypro and i_valpro to specify cstr, box and arc types (users may also define pro-types).
  • hmap now uses Robin Hood hashing (very fast on clang compiler).
  • Several new algorithms added, e.g. c_filter (ranges-like).
  • A lot of improvements and bug fixes.

What's Changed

  • add cco macro, block style coroutine definition by @liigo in #57
  • Merge in backported code from master by @tylov in #63
  • Dev43 by @tylov in #65
  • Use attribute((unused)) for clang too by @sgraham in #73
  • Remove trailing whitespace by @sgraham in #75
  • singleheader.py fixes for Windows and newer Python by @sgraham in #74
  • Fix issue with cbits_resize overwriting data when shrinking by @thehoustonian in #94
  • Fix arc memory leak by @wmww in #82
  • Detect Clang and Intel compilers for unused attribute. by @Melkor-1 in #89
  • fix some mistake in deq_api.md by @soyoo in #90
  • Add meson build system support by @mochaaP in #98
  • build/meson: fix building as a subproject by @mochaaP in #100
  • ci: add meson build/tests with asan/ubsan/msan by @mochaaP in #101
  • build: misc changes by @mochaaP in #111

New Contributors

Full Changelog: v4.2...v5.0

Release v4.2

10 Apr 13:12
Compare
Choose a tag to compare

Version 4.2

  • New home! And online single headers for https://godbolt.org
  • Much improved documentation
  • Added Coroutines + documentation
  • Added new crand.h API & header. Old crandom.h is deprecated.
  • Added c_const_cast() typesafe macro.
  • Removed RAII macros usage from examples
  • Renamed c_foreach_r => c_foreach_rv
  • Renamed c_flt_count(i) => c_flt_counter(i)
  • Renamed c_flt_last(i) => c_flt_getcount(i)
  • Renamed c_ARRAYLEN() => c_arraylen()
  • Removed deprecated c_ARGSV(). Use c_SV()
  • Removed c_PAIR

Release v4.1.1

14 Feb 07:02
e456085
Compare
Choose a tag to compare

News: Version 4.1.1 Released (Feb 2023)

This is a minor patch to v4.1:

  • Renamed c_ARGSV(sv) => c_SV(sv): for printing a csview using "%.*s" format. Old name deprecated. Note that lowercase c_sv() is shorthand for csview_from() / csview_from_n().
  • cbits now uses 64-bits signed indices and sizes, to fix max size limit of 0.25 GB on 32-bit platforms.
  • Some improved documentation.

Release v4.1

12 Feb 22:32
Compare
Choose a tag to compare

I am happy to finally announce a new release! Major changes:

VERSION 3.8

28 Jul 18:01
Compare
Choose a tag to compare

This version has a different API for cstr replace() / find() and u8() functions. Some changes to csview as well.
Adds cregex with documentation, and adds back coption, which was removed some months ago.

VERSION 3.7

28 Jul 18:04
Compare
Choose a tag to compare

Container functions size(), capacity() and empty() now take pointer to containers, See release notes for details in README.md.

VERSION 3.6

28 Jul 17:50
Compare
Choose a tag to compare

Last commit before v3.7. Container functions size(), capacity() and empty() take value parameters, which is changed to const pointer in 3.7.

Release v3.5.1

24 Apr 22:16
Compare
Choose a tag to compare
  • Swapped to new cstr (short string optimized, aka SSO). Note that cstr_str(&s) must be used, s.str is no longer usable.
  • Added general i_clone template parameter: containers with smart pointers (carc, cbox) can now be correctly cloned.
  • Optimized c_default_hash(). Therefore c_hash32() and c_hash64() are removed (same speed).
  • Added .._push() and .._emplace() function to all containers to allow for more generic coding.
  • Added some examples and benchmarks for SSO and heterogenous lookup comparison with c++20 (string_bench_*.cpp).

Release V2.0 RC New Style

19 Sep 13:18
Compare
Choose a tag to compare

Release candidate for first version of new template instantiation style,

Release v1.3

19 Sep 13:10
Compare
Choose a tag to compare

Final version of "old-style" templating. Version 2.x uses a new way o instantiating templates.