* gnu/packages/rust.scm (rust-deque): New variable. --- gnu/packages/rust.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+)
diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm index f68e1ceb0..28a8f72c6 100644 --- a/gnu/packages/rust.scm +++ b/gnu/packages/rust.scm @@ -1099,3 +1099,31 @@ which is providing character encoding support for Rust.") based on WHATWG Encoding Standard, and also provides an advanced interface for error detection and recovery.") (license license:expat))) + +(define-public rust-deque + (package + (name "rust-deque") + (version "0.3.1") + (source + (origin + (method url-fetch) + (uri (crate-uri "deque" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1gz75w8l3l0rjxxa9j1ykxra2kb5828j297av1g7h4g78286a50n")))) + (build-system cargo-build-system) + (inputs `(("rust-rand" ,rust-rand "src"))) + (home-page "https://github.com/kinghajj/deque") + (synopsis "Mostly lock-free concurrent work-stealing deque") + (description + "@code{deque} contains an implementation of the Chase-Lev work +stealing deque described in \"Dynamic Circular Work-Stealing Deque\". +The implementation is heavily based on the implementation using C11 +atomics in \"Correct and Efficient Work Stealing for Weak Memory Models\". + +The only potentially lock-synchronized portion of this deque is the +occasional call to the memory allocator when growing the deque. +Otherwise all operations are lock-free.") + (license (list license:expat license:asl2.0)))) -- 2.11.0