Releases: awslabs/shuttle
Releases · awslabs/shuttle
v0.9.0
- Fix:
JoinHandle<T>is nowSendandSynceven ifTis not. - Gate vector clocks behind the
vector-clocksfeature flag. (#187) - Fix:
Oncecan now be moved (#188 and #208) - Various performance improvements (#191, #211)
std::sync::{LockResult, PoisonError, TryLockError, TryLockResult}are now exported fromshuttle::sync(#198)- Task names are now logged in the step span (#206)
- Task backtraces are now printed on deadlock if the SHUTTLE_BACKTRACE environment variable is set (#205, #213)
- Spawn events are now traced at
DEBUG(down fromINFO) (#211) - Stable resource ids (#207)
UniformRandomWalkscheduler added (#200)- Panic path refactored. 1: Aborting panics should more often have their schedule serialized, 2: Schedule is no longer part of the panic message, 3: There will now be multiple schedules serialized on multiple panics, 4: if
Config::immediately_return_on_panicis set then we will return immediately on a failure and not finish unwinding the panic. (#202) - Change scheduling points to always precede operations (#216)
- Change the backend for the tasks to be the Corosensei crate instead of the generators crate (#204)
- Add
SHUTTLE_PERSIST_SEEDin the RandomScheduler to persist schedule before running the test (to be used for aborting tests) (#201) - Add
BatchSemaphore::close_no_scheduling_point(#227) - Add config for ungraceful shutdowns (#230)
- Add {RwLock, Mutex}::clear_poison (#233)
- Bump to rand 0.8.6 (#264)
v0.8.1
v0.8
- Add
BatchSemaphore(#151) block_onnow has one less thread switch point, which breaks schedules. (#155)ReplayScheduler::set_target_clockadded (#156)- Schedulers now receive references to
Tasks instead ofTaskIds (#156) - Expose
check_random_with_seed(#161) - Make
check_randomoptionally take a seed by providing the environment variableSHUTTLE_RANDOM_SEED(#161) - Shuttle Explorer extension (#163).
AnnotationSchedulerand annotated schedule support added under feature "annotation" (#163)
v0.7.0
v0.6.1
- 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::Barrieris reused (#102) - Make
{Mutex, Condvar, RwLock}::newconst (#106) - Improve tracing spans (#99)
- Fix spurious deadlocks with
FuturesUnordered(#105) - Split schedule output over multiple lines (#103)
- Bump
futuresdependency (#107)
v0.6.0
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_staticsupport (#93)
v0.5.0
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.
v0.4.1
v0.4.0
- Depdendency updates
v0.3.0
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.