Skip to content

Releases: stlab/libraries

1.6.1

11 Mar 20:12
a339365
Compare
Choose a tag to compare
  • Simplified the portable default executor to use a priority queue instead of separate queues for each priority
  • Simplified logic for blocking_get()
  • Added support for blocking_get() to steal tasks when using the portable task system with exponential backoff
  • Fixed a bug where setting the exception on a promise does not resolve the promise, and so subsequent destruction of the promise would change the exception to a broken_promise.
  • Fixed two places where objects captured by lambdas were subsequently moved, but the lambdas were not marked as mutable. This meant that you could not move a future passed to recover().
  • Disabled the task() template constructor in the case where the passed function was a task so that it doesn't match the copy constructor. Previously if you copied a task it would compile, but infinitely recurse when executed. Now copying a task will not compile.
  • Fixed an issue where the task invoke arguments where always getting declared as rvalues (I think someone tried to make them universal references) - added a comment to avoid the mistake in the future.
  • Made the top-level task invoke actually use universal references and perfect forwarding.
  • Reduced the size of task for small object optimization (now will usually be size of 8 pointers, with 6 pointers of space for the small object)
  • Fixed tasks for objects that require more than maximum alignment.
  • Lifted the invoke vtable entry for task into the local task, filling an otherwise empty memory slot (on most architectures).
  • Removed the move() on the invoke calls in task, these were intended to make all tasks single execution, but many are not, and so this is a slightly dangerous and, as far as I know, unused optimization. If needed it could come back as a new virtual (rvalue invoke) call and only be used with the task actually is an rvalue.

Minor feature release 1.6.0

09 Feb 22:10
8bec449
Compare
Choose a tag to compare
  • Backport the library to support C++14 and later
  • Better auto-configuration - no need for compiler flags.
  • Supported for threaded wasm using the portable tasking system (auto-configured).

Patch release 1.5.6

01 Feb 20:05
c9d5de0
Compare
Choose a tag to compare
  • Fixed issues
    • [#352]:(#352) Non portable 'warning' preprocessor command
    • [#354]:(#354) Visual Studio 2017 fails to compiler async with std::function as argument

Patch release 1.5.5

30 Jan 17:38
31f2c71
Compare
Choose a tag to compare
Merge pull request #349 from FelixPetriconi/develop

Prepare 1.5.5 release

Patch Release 1.5.4

08 Oct 09:23
51e9367
Compare
Choose a tag to compare
  • Fixed issues
    • #317: when_all(range) and when_any(range) must not be used with an immediate_executor

Patch release 1.5.3

16 Sep 19:42
e91c220
Compare
Choose a tag to compare
  • Fixed issues

    • #312: default_executor implementation for Windows has a memory leak
    • #305 stlab/concurrency/future.hpp won't compile with C++20
    • #303 range based stlab::when_any data race
  • Enhancement

    • Adding Forest container and algorithms

Patch release 1.5.2

05 Feb 22:09
2e411dd
Compare
Choose a tag to compare
  • Fixed issues
    • #292: What happened to our mutable lambdas?
    • #287: future's then doesn't fully support mutable lambdas yet

Patch release 1.5.1

29 Oct 20:06
328ef2b
Compare
Choose a tag to compare
  • Fixed issues
    • #285: steady_clock.now()
    • #262: time_point_to_FILETIME() to duration_to_FILETIME()

1.5.0

18 Aug 08:38
41446a2
Compare
Choose a tag to compare
  • Fixed issues

    • #264: future::error() interface is odd
    • #260: set_exception() should be a const member.
    • #248: Lifetime of receivers returned by operator|
    • #243: Vector of move only type passed to continuation fails to compile.
  • Enhancements

    • #269: Extend the default_executor with high and low priority
    • #262: system_timer interface is cumbersome. Now it accepts a
      duration from now. The previously available interface with a time_point is marked as deprecated and will be removed in a future release.

1.4.1

07 Feb 22:15
77465f7
Compare
Choose a tag to compare

Bug fix release