From 7fdac06365feff4c2740c15de05049546dd6a02c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Crozet=20S=C3=A9bastien?= Date: Mon, 1 Mar 2021 14:48:59 +0100 Subject: [PATCH 1/4] Fix cargo metadata to allow publishing nalgebra-lapack and nalgebra-sparse. --- CHANGELOG.md | 2 +- nalgebra-lapack/Cargo.toml | 2 +- nalgebra-sparse/Cargo.toml | 8 ++++++++ 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 23cdd62e..bafa8337 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,7 +10,7 @@ This updates all the dependencies of nalgebra to their latest version, including - proptest 1.0 - simba 0.4 -### New crate! +### New crate: nalgebra-sparse Alongside this release of `nalgebra`, we are releasing `nalgebra-sparse`: a crate dedicated to sparse matrix computation with `nalgebra`. The `sparse` module of `nalgebra`itself still exists for backward compatibility but it will be deprecated soon in favor of the `nalgebra-sparse` crate. diff --git a/nalgebra-lapack/Cargo.toml b/nalgebra-lapack/Cargo.toml index 322dc108..c2de1b96 100644 --- a/nalgebra-lapack/Cargo.toml +++ b/nalgebra-lapack/Cargo.toml @@ -9,7 +9,7 @@ homepage = "https://nalgebra.org" repository = "https://github.com/dimforge/nalgebra" readme = "../README.md" categories = [ "science", "mathematics" ] -keywords = [ "linear", "algebra", "matrix", "vector", "math", "lapack" ] +keywords = [ "linear", "algebra", "matrix", "vector", "lapack" ] license = "BSD-3-Clause" edition = "2018" diff --git a/nalgebra-sparse/Cargo.toml b/nalgebra-sparse/Cargo.toml index cc8d5276..f58be6e6 100644 --- a/nalgebra-sparse/Cargo.toml +++ b/nalgebra-sparse/Cargo.toml @@ -3,6 +3,14 @@ name = "nalgebra-sparse" version = "0.1.0" authors = [ "Andreas Longva", "Sébastien Crozet " ] edition = "2018" +description = "Sparse matrix computation based on nalgebra." +documentation = "https://www.nalgebra.org/docs" +homepage = "https://nalgebra.org" +repository = "https://github.com/dimforge/nalgebra" +readme = "../README.md" +categories = [ "science", "mathematics", "wasm", "no-std" ] +keywords = [ "linear", "algebra", "matrix", "vector", "math" ] +license = "Apache-2.0" [features] proptest-support = ["proptest", "nalgebra/proptest-support"] From c32172b6b9f9a2593a20d06acbcc8551571afc55 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Crozet=20S=C3=A9bastien?= Date: Tue, 2 Mar 2021 12:25:12 +0100 Subject: [PATCH 2/4] Make the rand dependency optional. --- .github/Xargo.toml | 3 +++ .github/workflows/nalgebra-ci-build.yml | 8 +++++-- Cargo.toml | 9 +++---- src/base/construction.rs | 29 ++++++++++++----------- src/base/helper.rs | 9 +++++-- src/geometry/isometry_construction.rs | 11 +++++---- src/geometry/orthographic.rs | 11 ++++++--- src/geometry/perspective.rs | 11 ++++++--- src/geometry/point_construction.rs | 8 +++++-- src/geometry/quaternion_construction.rs | 10 ++++++-- src/geometry/rotation_specialization.rs | 11 +++++++-- src/geometry/similarity_construction.rs | 15 +++++++----- src/geometry/translation_construction.rs | 8 +++++-- src/geometry/unit_complex_construction.rs | 9 +++++-- src/lib.rs | 14 ++--------- 15 files changed, 106 insertions(+), 60 deletions(-) diff --git a/.github/Xargo.toml b/.github/Xargo.toml index 6bdef96d..919803b5 100644 --- a/.github/Xargo.toml +++ b/.github/Xargo.toml @@ -1,2 +1,5 @@ [target.x86_64-unknown-linux-gnu.dependencies] +alloc = {} + +[target.thumbv7em-none-eabihf.dependencies] alloc = {} \ No newline at end of file diff --git a/.github/workflows/nalgebra-ci-build.yml b/.github/workflows/nalgebra-ci-build.yml index 181e092e..3518bf74 100644 --- a/.github/workflows/nalgebra-ci-build.yml +++ b/.github/workflows/nalgebra-ci-build.yml @@ -90,7 +90,11 @@ jobs: components: rustfmt - name: install xargo run: cp .github/Xargo.toml .; rustup component add rust-src; cargo install -f xargo; - - name: build + - name: build x86_64-unknown-linux-gnu run: xargo build --verbose --no-default-features --target=x86_64-unknown-linux-gnu; - - name: build --feature alloc + - name: build x86_64-unknown-linux-gnu --features rand-no-std + run: xargo build --verbose --no-default-features --target=x86_64-unknown-linux-gnu; + - name: build x86_64-unknown-linux-gnu --features alloc run: xargo build --verbose --no-default-features --features alloc --target=x86_64-unknown-linux-gnu; + - name: build thumbv7em-none-eabihf + run: xargo build --verbose --no-default-features --target=thumbv7em-none-eabihf; diff --git a/Cargo.toml b/Cargo.toml index 15f9effd..5d0fece6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -23,12 +23,14 @@ path = "src/lib.rs" [features] default = [ "std" ] -std = [ "matrixmultiply", "rand/std", "rand/std_rng", "rand_distr", "simba/std" ] +std = [ "matrixmultiply", "simba/std" ] +rand-no-std = [ "rand-package" ] +rand = [ "rand-no-std", "rand-package/std", "rand-package/std_rng", "rand_distr" ] arbitrary = [ "quickcheck" ] serde-serialize = [ "serde", "num-complex/serde" ] abomonation-serialize = [ "abomonation" ] sparse = [ ] -debug = [ "approx/num-complex", "rand/std" ] +debug = [ "approx/num-complex", "rand" ] alloc = [ ] io = [ "pest", "pest_derive" ] compare = [ "matrixcompare-core" ] @@ -43,8 +45,7 @@ slow-tests = [] [dependencies] typenum = "1.12" generic-array = "0.14" -rand = { version = "0.8", default-features = false } -getrandom = { version = "0.2", default-features = false, features = [ "js" ] } # For wasm +rand-package = { package = "rand", version = "0.8", optional = true, default-features = false } num-traits = { version = "0.2", default-features = false } num-complex = { version = "0.3", default-features = false } num-rational = { version = "0.3", default-features = false } diff --git a/src/base/construction.rs b/src/base/construction.rs index ba15a0f0..b606534c 100644 --- a/src/base/construction.rs +++ b/src/base/construction.rs @@ -7,18 +7,16 @@ use crate::base::storage::Owned; use quickcheck::{Arbitrary, Gen}; use num::{Bounded, One, Zero}; -#[cfg(feature = "std")] -use rand; -use rand::distributions::{Distribution, Standard}; -use rand::Rng; -#[cfg(feature = "std")] -use rand_distr::StandardNormal; +#[cfg(feature = "rand-no-std")] +use rand::{ + distributions::{Distribution, Standard}, + Rng, +}; + use std::iter; use std::mem; use typenum::{self, Cmp, Greater}; -#[cfg(feature = "std")] -use simba::scalar::RealField; use simba::scalar::{ClosedAdd, ClosedMul}; use crate::base::allocator::Allocator; @@ -281,7 +279,7 @@ where /// Creates a matrix filled with random values. #[inline] - #[cfg(feature = "std")] + #[cfg(feature = "rand")] pub fn new_random_generic(nrows: R, ncols: C) -> Self where Standard: Distribution, @@ -291,6 +289,7 @@ where /// Creates a matrix filled with random values from the given distribution. #[inline] + #[cfg(feature = "rand-no-std")] pub fn from_distribution_generic + ?Sized, G: Rng + ?Sized>( nrows: R, ncols: C, @@ -589,6 +588,7 @@ macro_rules! impl_constructors( /// Creates a matrix or vector filled with random values from the given distribution. #[inline] + #[cfg(feature = "rand-no-std")] pub fn from_distribution + ?Sized, G: Rng + ?Sized>( $($args: usize,)* distribution: &Distr, @@ -599,7 +599,7 @@ macro_rules! impl_constructors( /// Creates a matrix filled with random values. #[inline] - #[cfg(feature = "std")] + #[cfg(feature = "rand")] pub fn new_random($($args: usize),*) -> Self where Standard: Distribution { Self::new_random_generic($($gargs),*) @@ -817,6 +817,7 @@ where } } +#[cfg(feature = "rand-no-std")] impl Distribution> for Standard where DefaultAllocator: Allocator, @@ -851,11 +852,11 @@ where } } -#[cfg(feature = "std")] -impl Distribution>> for Standard +#[cfg(feature = "rand")] +impl Distribution>> for Standard where DefaultAllocator: Allocator, - StandardNormal: Distribution, + rand_distr::StandardNormal: Distribution, { /// Generate a uniformly distributed random unit vector. #[inline] @@ -863,7 +864,7 @@ where Unit::new_normalize(VectorN::from_distribution_generic( D::name(), U1, - &StandardNormal, + &rand_distr::StandardNormal, rng, )) } diff --git a/src/base/helper.rs b/src/base/helper.rs index fe5ffd02..00bd462c 100644 --- a/src/base/helper.rs +++ b/src/base/helper.rs @@ -1,7 +1,11 @@ #[cfg(feature = "arbitrary")] use quickcheck::{Arbitrary, Gen}; -use rand::distributions::{Distribution, Standard}; -use rand::Rng; + +#[cfg(feature = "rand-no-std")] +use rand::{ + distributions::{Distribution, Standard}, + Rng, +}; /// Simple helper function for rejection sampling #[cfg(feature = "arbitrary")] @@ -17,6 +21,7 @@ pub fn reject bool, T: Arbitrary>(g: &mut Gen, f: F) -> T { #[doc(hidden)] #[inline] +#[cfg(feature = "rand-no-std")] pub fn reject_rand bool, T>(g: &mut G, f: F) -> T where Standard: Distribution, diff --git a/src/geometry/isometry_construction.rs b/src/geometry/isometry_construction.rs index a64f8208..00138573 100644 --- a/src/geometry/isometry_construction.rs +++ b/src/geometry/isometry_construction.rs @@ -4,10 +4,12 @@ use crate::base::storage::Owned; use quickcheck::{Arbitrary, Gen}; use num::One; -use rand::distributions::{Distribution, Standard}; -use rand::Rng; +#[cfg(feature = "rand-no-std")] +use rand::{ + distributions::{Distribution, Standard}, + Rng, +}; -use simba::scalar::RealField; use simba::simd::SimdRealField; use crate::base::allocator::Allocator; @@ -80,7 +82,8 @@ where } } -impl Distribution> for Standard +#[cfg(feature = "rand-no-std")] +impl Distribution> for Standard where R: AbstractRotation, Standard: Distribution + Distribution, diff --git a/src/geometry/orthographic.rs b/src/geometry/orthographic.rs index bf85a198..7b137641 100644 --- a/src/geometry/orthographic.rs +++ b/src/geometry/orthographic.rs @@ -1,7 +1,10 @@ #[cfg(feature = "arbitrary")] use quickcheck::{Arbitrary, Gen}; -use rand::distributions::{Distribution, Standard}; -use rand::Rng; +#[cfg(feature = "rand-no-std")] +use rand::{ + distributions::{Distribution, Standard}, + Rng, +}; #[cfg(feature = "serde-serialize")] use serde::{Deserialize, Deserializer, Serialize, Serializer}; use std::fmt; @@ -10,7 +13,6 @@ use std::mem; use simba::scalar::RealField; use crate::base::dimension::U3; -use crate::base::helper; use crate::base::storage::Storage; use crate::base::{Matrix4, Vector, Vector3}; @@ -684,11 +686,13 @@ impl Orthographic3 { } } +#[cfg(feature = "rand-no-std")] impl Distribution> for Standard where Standard: Distribution, { fn sample(&self, r: &mut R) -> Orthographic3 { + use crate::base::helper; let left = r.gen(); let right = helper::reject_rand(r, |x: &N| *x > left); let bottom = r.gen(); @@ -706,6 +710,7 @@ where Matrix4: Send, { fn arbitrary(g: &mut Gen) -> Self { + use crate::base::helper; let left = Arbitrary::arbitrary(g); let right = helper::reject(g, |x: &N| *x > left); let bottom = Arbitrary::arbitrary(g); diff --git a/src/geometry/perspective.rs b/src/geometry/perspective.rs index 066ca57a..69233952 100644 --- a/src/geometry/perspective.rs +++ b/src/geometry/perspective.rs @@ -1,7 +1,10 @@ #[cfg(feature = "arbitrary")] use quickcheck::{Arbitrary, Gen}; -use rand::distributions::{Distribution, Standard}; -use rand::Rng; +#[cfg(feature = "rand-no-std")] +use rand::{ + distributions::{Distribution, Standard}, + Rng, +}; #[cfg(feature = "serde-serialize")] use serde::{Deserialize, Deserializer, Serialize, Serializer}; @@ -11,7 +14,6 @@ use std::mem; use simba::scalar::RealField; use crate::base::dimension::U3; -use crate::base::helper; use crate::base::storage::Storage; use crate::base::{Matrix4, Scalar, Vector, Vector3}; @@ -268,11 +270,13 @@ impl Perspective3 { } } +#[cfg(feature = "rand-no-std")] impl Distribution> for Standard where Standard: Distribution, { fn sample<'a, R: Rng + ?Sized>(&self, r: &'a mut R) -> Perspective3 { + use crate::base::helper; let znear = r.gen(); let zfar = helper::reject_rand(r, |&x: &N| !(x - znear).is_zero()); let aspect = helper::reject_rand(r, |&x: &N| !x.is_zero()); @@ -284,6 +288,7 @@ where #[cfg(feature = "arbitrary")] impl Arbitrary for Perspective3 { fn arbitrary(g: &mut Gen) -> Self { + use crate::base::helper; let znear = Arbitrary::arbitrary(g); let zfar = helper::reject(g, |&x: &N| !(x - znear).is_zero()); let aspect = helper::reject(g, |&x: &N| !x.is_zero()); diff --git a/src/geometry/point_construction.rs b/src/geometry/point_construction.rs index e132304b..26ee8a8c 100644 --- a/src/geometry/point_construction.rs +++ b/src/geometry/point_construction.rs @@ -2,8 +2,11 @@ use quickcheck::{Arbitrary, Gen}; use num::{Bounded, One, Zero}; -use rand::distributions::{Distribution, Standard}; -use rand::Rng; +#[cfg(feature = "rand-no-std")] +use rand::{ + distributions::{Distribution, Standard}, + Rng, +}; use crate::base::allocator::Allocator; use crate::base::dimension::{DimName, DimNameAdd, DimNameSum, U1}; @@ -138,6 +141,7 @@ where } } +#[cfg(feature = "rand-no-std")] impl Distribution> for Standard where DefaultAllocator: Allocator, diff --git a/src/geometry/quaternion_construction.rs b/src/geometry/quaternion_construction.rs index ec46b68b..6b40fe49 100644 --- a/src/geometry/quaternion_construction.rs +++ b/src/geometry/quaternion_construction.rs @@ -5,9 +5,13 @@ use crate::base::storage::Owned; #[cfg(feature = "arbitrary")] use quickcheck::{Arbitrary, Gen}; +#[cfg(feature = "rand-no-std")] +use rand::{ + distributions::{Distribution, OpenClosed01, Standard}, + Rng, +}; + use num::{One, Zero}; -use rand::distributions::{Distribution, OpenClosed01, Standard}; -use rand::Rng; use simba::scalar::RealField; use simba::simd::SimdBool; @@ -144,6 +148,7 @@ where } } +#[cfg(feature = "rand-no-std")] impl Distribution> for Standard where Standard: Distribution, @@ -812,6 +817,7 @@ where } } +#[cfg(feature = "rand-no-std")] impl Distribution> for Standard where N::Element: SimdRealField, diff --git a/src/geometry/rotation_specialization.rs b/src/geometry/rotation_specialization.rs index de87b40b..95e19da1 100644 --- a/src/geometry/rotation_specialization.rs +++ b/src/geometry/rotation_specialization.rs @@ -4,8 +4,13 @@ use crate::base::storage::Owned; use quickcheck::{Arbitrary, Gen}; use num::Zero; -use rand::distributions::{Distribution, OpenClosed01, Standard}; -use rand::Rng; + +#[cfg(feature = "rand-no-std")] +use rand::{ + distributions::{Distribution, OpenClosed01, Standard}, + Rng, +}; + use simba::scalar::RealField; use simba::simd::{SimdBool, SimdRealField}; use std::ops::Neg; @@ -256,6 +261,7 @@ impl Rotation2 { } } +#[cfg(feature = "rand-no-std")] impl Distribution> for Standard where N::Element: SimdRealField, @@ -912,6 +918,7 @@ impl Rotation3 { } } +#[cfg(feature = "rand-no-std")] impl Distribution> for Standard where N::Element: SimdRealField, diff --git a/src/geometry/similarity_construction.rs b/src/geometry/similarity_construction.rs index c228c5d0..c24e09b2 100644 --- a/src/geometry/similarity_construction.rs +++ b/src/geometry/similarity_construction.rs @@ -4,10 +4,12 @@ use crate::base::storage::Owned; use quickcheck::{Arbitrary, Gen}; use num::One; -use rand::distributions::{Distribution, Standard}; -use rand::Rng; +#[cfg(feature = "rand-no-std")] +use rand::{ + distributions::{Distribution, Standard}, + Rng, +}; -use simba::scalar::RealField; use simba::simd::SimdRealField; use crate::base::allocator::Allocator; @@ -59,7 +61,8 @@ where } } -impl Distribution> for Standard +#[cfg(feature = "rand-no-std")] +impl Distribution> for Standard where R: AbstractRotation, DefaultAllocator: Allocator, @@ -107,8 +110,8 @@ where #[cfg(feature = "arbitrary")] impl Arbitrary for Similarity where - N: RealField + Arbitrary + Send, - N::Element: RealField, + N: crate::RealField + Arbitrary + Send, + N::Element: crate::RealField, R: AbstractRotation + Arbitrary + Send, DefaultAllocator: Allocator, Owned: Send, diff --git a/src/geometry/translation_construction.rs b/src/geometry/translation_construction.rs index d9061ba0..3dd14a34 100644 --- a/src/geometry/translation_construction.rs +++ b/src/geometry/translation_construction.rs @@ -4,8 +4,11 @@ use crate::base::storage::Owned; use quickcheck::{Arbitrary, Gen}; use num::{One, Zero}; -use rand::distributions::{Distribution, Standard}; -use rand::Rng; +#[cfg(feature = "rand-no-std")] +use rand::{ + distributions::{Distribution, Standard}, + Rng, +}; use simba::scalar::ClosedAdd; @@ -49,6 +52,7 @@ where } } +#[cfg(feature = "rand-no-std")] impl Distribution> for Standard where DefaultAllocator: Allocator, diff --git a/src/geometry/unit_complex_construction.rs b/src/geometry/unit_complex_construction.rs index 114fea6e..21f56562 100644 --- a/src/geometry/unit_complex_construction.rs +++ b/src/geometry/unit_complex_construction.rs @@ -1,10 +1,14 @@ #[cfg(feature = "arbitrary")] use quickcheck::{Arbitrary, Gen}; +#[cfg(feature = "rand-no-std")] +use rand::{ + distributions::{Distribution, OpenClosed01, Standard}, + Rng, +}; + use num::One; use num_complex::Complex; -use rand::distributions::{Distribution, OpenClosed01, Standard}; -use rand::Rng; use crate::base::dimension::{U1, U2}; use crate::base::storage::Storage; @@ -377,6 +381,7 @@ where } } +#[cfg(feature = "rand-no-std")] impl Distribution> for Standard where N::Element: SimdRealField, diff --git a/src/lib.rs b/src/lib.rs index 5e23ab32..14314116 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -89,26 +89,16 @@ an optimized set of tools for computer graphics and physics. Those features incl #![cfg_attr(all(feature = "alloc", not(feature = "std")), feature(alloc))] #![cfg_attr(feature = "no_unsound_assume_init", allow(unreachable_code))] -#[cfg(feature = "arbitrary")] -extern crate quickcheck; - #[cfg(feature = "serde-serialize")] #[macro_use] extern crate serde; -#[cfg(feature = "abomonation-serialize")] -extern crate abomonation; - -#[cfg(feature = "mint")] -extern crate mint; +#[cfg(feature = "rand-no-std")] +extern crate rand_package as rand; #[macro_use] extern crate approx; -#[cfg(feature = "std")] -extern crate matrixmultiply; extern crate num_traits as num; -#[cfg(feature = "std")] -extern crate rand_distr; #[cfg(all(feature = "alloc", not(feature = "std")))] extern crate alloc; From ff27daf0447c72cfdb7747feac415094d6d1e6be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Crozet=20S=C3=A9bastien?= Date: Tue, 2 Mar 2021 12:37:00 +0100 Subject: [PATCH 3/4] Enable rand for tests. --- .github/workflows/nalgebra-ci-build.yml | 4 ++-- tests/lib.rs | 13 ++++++++----- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/.github/workflows/nalgebra-ci-build.yml b/.github/workflows/nalgebra-ci-build.yml index 3518bf74..83a56435 100644 --- a/.github/workflows/nalgebra-ci-build.yml +++ b/.github/workflows/nalgebra-ci-build.yml @@ -49,13 +49,13 @@ jobs: steps: - uses: actions/checkout@v2 - name: test - run: cargo test --features arbitrary --features serde-serialize,abomonation-serialize,sparse,debug,io,compare,libm,proptest-support,slow-tests; + run: cargo test --features arbitrary,rand,serde-serialize,abomonation-serialize,sparse,debug,io,compare,libm,proptest-support,slow-tests; test-nalgebra-glm: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: test nalgebra-glm - run: cargo test -p nalgebra-glm --features arbitrary,serde-serialize,abomonation-serialize,sparse,debug,io,compare,libm,proptest-support,slow-tests; + run: cargo test -p nalgebra-glm --features arbitrary,rand,serde-serialize,abomonation-serialize,sparse,debug,io,compare,libm,proptest-support,slow-tests; test-nalgebra-sparse: runs-on: ubuntu-latest steps: diff --git a/tests/lib.rs b/tests/lib.rs index ca7faa74..add7a468 100644 --- a/tests/lib.rs +++ b/tests/lib.rs @@ -1,17 +1,20 @@ -#[cfg(any(not(feature = "debug"), not(feature = "compare")))] +#[cfg(any( + not(feature = "debug"), + not(feature = "compare"), + not(feature = "rand") +))] compile_error!( - "Please enable the `debug` and `compare` features in order to compile and run the tests. - Example: `cargo test --features debug --features compare`" + "Please enable the `debug`, `compare`, and `rand` features in order to compile and run the tests. + Example: `cargo test --features debug,compare,rand`" ); #[cfg(feature = "abomonation-serialize")] extern crate abomonation; #[macro_use] extern crate approx; -#[cfg(feature = "mint")] -extern crate mint; extern crate nalgebra as na; extern crate num_traits as num; +extern crate rand_package as rand; mod core; mod geometry; From f282d02db1dcaf1647cae0c9729cf2bc6f8caf61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Crozet=20S=C3=A9bastien?= Date: Tue, 2 Mar 2021 14:24:55 +0100 Subject: [PATCH 4/4] Release v0.25.1 --- CHANGELOG.md | 11 ++++++++++- Cargo.toml | 2 +- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index bafa8337..e65ed971 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,7 +4,16 @@ documented here. This project adheres to [Semantic Versioning](https://semver.org/). -## [0.25.0] +## [0.25.1] +This release replaces the version 0.25.0 which has been yanked. The 0.25.0 version +added significant complication to build `nalgebra` targeting a `#[no-std]` platform +not supported by `rand`. + +The `rand` dependency is now optional (and disabled by default). You may enable it with: +- The `rand-no-std` cargo feature when targeting a `#[no-std]` environment. +- The `rand` cargo feature when targeting a `std` environment. + +## [0.25.0] - Yanked This updates all the dependencies of nalgebra to their latest version, including: - rand 0.8 - proptest 1.0 diff --git a/Cargo.toml b/Cargo.toml index 5d0fece6..ea9a2894 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "nalgebra" -version = "0.25.0" +version = "0.25.1" authors = [ "Sébastien Crozet " ] description = "General-purpose linear algebra library with transformations and statically-sized or dynamically-sized matrices."