Skip to content

Releases: awslabs/shuttle

v0.8

11 Oct 23:21
63a7aa9
Compare
Choose a tag to compare
  • Add BatchSemaphore (#151)
  • block_on now has one less thread switch point, which breaks schedules. (#155)
  • ReplayScheduler::set_target_clock added (#156)
  • Schedulers now receive references to Tasks instead of TaskIds (#156)
  • Expose check_random_with_seed (#161)
  • Make check_random optionally take a seed by providing the environment variable SHUTTLE_RANDOM_SEED (#161)
  • Shuttle Explorer extension (#163).
  • AnnotationScheduler and annotated schedule support added under feature "annotation" (#163)

v0.7.0

07 Mar 18:58
c8aa400
Compare
Choose a tag to compare
  • Add support for task labels. These replace task tags, which are deprecated and will be removed in a future release. (#138)
  • In the meantime, Tags are now implemented with a trait. This is a breaking change from 0.6.1. (#111)
  • Implement is_finished() for future::JoinHandle (#118)

v0.6.1

23 May 20:18
7188c7d
Compare
Choose a tag to compare
  • Add feature to tag tasks (#98)
  • Add scheduler to check for uncontrolled nondeterminism (#96, #97)
  • Support spurious wakeups for thread::park (#101)
  • Support different leaders when sync::Barrier is reused (#102)
  • Make {Mutex, Condvar, RwLock}::new const (#106)
  • Improve tracing spans (#99)
  • Fix spurious deadlocks with FuturesUnordered (#105)
  • Split schedule output over multiple lines (#103)
  • Bump futures dependency (#107)

v0.6.0

25 Jan 00:30
97e0396
Compare
Choose a tag to compare

This version renames the silence_atomic_ordering_warning configuration option to silence_warnings, as well as the corresponding environment variables, to enable future warnings to be controlled by the same mechanism.

  • Implement lazy_static support (#93)

v0.5.0

23 Nov 00:25
ea63f65
Compare
Choose a tag to compare

This version updates the embedded rand library to v0.8. Tests that use shuttle::rand will need to update to the v0.8 interface of rand, which included some breaking changes.

  • Update rand and other dependencies (#89)
  • Implement abort for future::JoinHandle (#87)
  • Correctly handle the main thread's thread-local storage destructors (#88)

v0.4.1

23 Nov 00:15
5e0034f
Compare
Choose a tag to compare
  • Make PCT scheduling not linear in max number of tasks (#84)

v0.4.0

29 Oct 05:18
1c87c0e
Compare
Choose a tag to compare
  • Depdendency updates

v0.3.0

01 Sep 20:00
d4b1c28
Compare
Choose a tag to compare

Note that clients using async primitives provided by Shuttle (task spawn, block_on, yield_now) will
need to be updated due to the renaming of the asynch module to future in this release.

  • Rust 2021 conversion and dependency bumps (#76)
  • Implement thread::park and thread::unpark (#77)
  • Implement std::hint (#78)
  • Rename the asynch module to future (#79)

v0.2.0

27 Jul 14:51
4a00174
Compare
Choose a tag to compare

Note that failing test schedules created by versions of Shuttle before 0.2.0 will not successfully
replay on version 0.2.0, and vice versa, as the changes below affect Mutex and RwLock
scheduling decisions.

  • Implement Mutex::try_lock (#71)
  • Implement RwLock::{try_read, try_write} (#72)
  • Export a version of std::sync::Weak (#69)
  • Provide better error messages for deadlocks caused by non-reentrant locking (#66)

v0.1.0

11 Apr 17:31
d871a74
Compare
Choose a tag to compare
  • Implement Condvar::wait_while and Condvar::wait_timeout_while (#59)
  • Remove implicit Sized bounds on Mutex and RwLock (#62)
  • Dependency updates (#58, #60)