diff --git a/RELEASES.md b/RELEASES.md index 2f4104730..910378d02 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -4,28 +4,115 @@ Version 0.15.0 (Not released yet) New features ------------ -- Support for compiling ndarray as `no_std` (using core and alloc) by [@xd009642] +- Support inserting new axes while slicing by [@jturner314]. This is an example: - https://github.com/rust-ndarray/ndarray/pull/861 + ```rust + let view = arr.slice(s![.., -1, 2..;-1, NewAxis]); + ``` + + https://github.com/rust-ndarray/ndarray/pull/570 + +- Support two-sided broadcasting in arithmetic operations with arrays by [@SparrowLii] + + Note that this means that a new trait bound is required in some places when + mixing dimensionality types of arrays in arithmetic operations. + + https://github.com/rust-ndarray/ndarray/pull/898 + +- Support for compiling ndarray as `no_std` (using core and alloc) by + [@xd009642] and [@bluss] + + https://github.com/rust-ndarray/ndarray/pull/861
+ https://github.com/rust-ndarray/ndarray/pull/889 - New methods `.cell_view()` and `ArrayViewMut::into_cell_view` that enable new ways of working with array elements as if they were in Cells - setting - elements through shared views and broadcast views. + elements through shared views and broadcast views, by [@bluss]. https://github.com/rust-ndarray/ndarray/pull/877 +- New methods `slice_each_axis/_mut/_inplace` that make it easier to slice + a dynamic number of axes in some situations, by [@jturner314] + + https://github.com/rust-ndarray/ndarray/pull/913 + +- New method `a.assign_to(b)` with the inverse argument order compared to the + existing `b.assign(a)` and some extra features like assigning into + uninitialized arrays, By [@bluss]. + + https://github.com/rust-ndarray/ndarray/pull/947 Enhancements ------------ -- Fix `Zip` for the 0-dimensional case by [@jturner314] +- New constructors `Array::from_iter` and `Array::from_vec` by [@bluss]. + No new functionality, just that these constructors are avaiable without trait + imports. - https://github.com/rust-ndarray/ndarray/pull/862 + https://github.com/rust-ndarray/ndarray/pull/921 + +- Ndarray can now correctly determine that arrays can be contiguous, even if + they have negative strides, by [@SparrowLii] + + https://github.com/rust-ndarray/ndarray/pull/885 + +- `NdProducer::raw_dim` is now a documented method by [@jturner314] + + https://github.com/rust-ndarray/ndarray/pull/918 + +- `AxisDescription` is now a struct with field names, not a tuple struct by + [@jturner314] + + https://github.com/rust-ndarray/ndarray/pull/915 + +- Improvements to `map_inplace` by [@jturner314] + + https://github.com/rust-ndarray/ndarray/pull/911 + +- `.into_dimensionality` performance was improved for the `IxDyn` to `IxDyn` + case by [@bluss] + + https://github.com/rust-ndarray/ndarray/pull/906 + +- Improved performance for scalar + &array and &array + scalar operations by + [@jturner314] + + https://github.com/rust-ndarray/ndarray/pull/890 + +- Methods for array comparison `abs_diff_eq` and `relative_eq` are now + exposed as inherent methods too (no trait import needed), still under the approx + feature flag by [@bluss] + + https://github.com/rust-ndarray/ndarray/pull/946 API changes ----------- -- Removed deprecated methods by [@bluss]: +- Changes to the slicing-related types and macro by [@jturner314] and [@bluss]: + + - Remove the `Dimension::SliceArg` associated type, and add a new `SliceArg` + trait for this purpose. + - Change the return type of the `s![]` macro to an owned `SliceInfo` rather + than a reference. + - Replace the `SliceOrIndex` enum with `SliceInfoElem`, which has an + additional `NewAxis` variant and does not have a `step_by` method. + - Change the type parameters of `SliceInfo` in order to support the `NewAxis` + functionality and remove some tricky `unsafe` code. + - Mark the `SliceInfo::new` method as `unsafe`. The new implementations of + `TryFrom` can be used as a safe alternative. + - Remove the `AsRef> for SliceInfo` + implementation. Add the similar `From<&'a SliceInfo> for + SliceInfo<&'a [SliceInfoElem], Din, Dout>` conversion as an alternative. + - Change the *expr* `;` *step* case in the `s![]` macro to error at compile + time if an unsupported type for *expr* is used, instead of panicking at + runtime. + + https://github.com/rust-ndarray/ndarray/pull/570
+ https://github.com/rust-ndarray/ndarray/pull/940
+ https://github.com/rust-ndarray/ndarray/pull/943
+ https://github.com/rust-ndarray/ndarray/pull/945
+ +- Removed already deprecated methods by [@bluss]: - Remove deprecated `.all_close()` - use approx feature and methods like `.abs_diff_eq` instead - Mark `.scalar_sum()` as deprecated - use `.sum()` instead @@ -34,21 +121,106 @@ API changes https://github.com/rust-ndarray/ndarray/pull/874 -- Remove deprecated methods: rows, cols (for row and column count; the new - names are nrows and ncols) by [@bluss] +- Remove already deprecated methods: rows, cols (for row and column count; the + new names are nrows and ncols) by [@bluss] https://github.com/rust-ndarray/ndarray/pull/872 -- Renamed methods (old names are now deprecated) by [@bluss] +- Renamed `Zip` methods by [@bluss] and [@SparrowLii]: + + - `apply` -> `for_each` + - `apply_collect` -> `map_collect` + - `apply_collect_into` -> `map_collect_into` + - (`par_` prefixed methods renamed accordingly) + + https://github.com/rust-ndarray/ndarray/pull/894
+ https://github.com/rust-ndarray/ndarray/pull/904
+ +- Deprecate `Array::uninitialized` and revamped its replacement by [@bluss] + + Please use new new `Array::uninit` which is based on `MaybeUninit` (renamed + from `Array::maybe_uninit`, the old name is also deprecated). + + https://github.com/rust-ndarray/ndarray/pull/902
+ https://github.com/rust-ndarray/ndarray/pull/876 + +- Renamed methods (old names are now deprecated) by [@bluss] and [@jturner314] - `genrows/_mut` -> `rows/_mut` - `gencolumns/_mut` -> `columns/_mut` + - `stack_new_axis` -> `stack` (the new name already existed) + - `visit` -> `for_each` - https://github.com/rust-ndarray/ndarray/pull/872 + https://github.com/rust-ndarray/ndarray/pull/872
+ https://github.com/rust-ndarray/ndarray/pull/937
+ https://github.com/rust-ndarray/ndarray/pull/907
+ +- `blas-src` dependency updated to 0.7.0 by [@bluss] + + https://github.com/rust-ndarray/ndarray/pull/891 + +- Updated `matrixmultiply` dependency to 0.3.0 by [@bluss] + and adding new feature flag `matrixmultiply-threading` to enable its threading + + https://github.com/rust-ndarray/ndarray/pull/888
+ https://github.com/rust-ndarray/ndarray/pull/938
+ + +Bug fixes +--------- + +- Fix `Zip::indexed` for the 0-dimensional case by [@jturner314] + + https://github.com/rust-ndarray/ndarray/pull/862 + +- Fix bug in layout computation that broke parallel collect to f-order + array in some circumstances by [@bluss] + + https://github.com/rust-ndarray/ndarray/pull/900 + +- Fix an unwanted panic in shape overflow checking by [@bluss] + + https://github.com/rust-ndarray/ndarray/pull/855 + +- Mark the `SliceInfo::new` method as `unsafe` due to the requirement that + `indices.as_ref()` always return the same value when called multiple times, + by [@bluss] and [@jturner314] + + https://github.com/rust-ndarray/ndarray/pull/570 Other changes ------------- +- Various improvements to tests and CI by [@jturner314] + + https://github.com/rust-ndarray/ndarray/pull/934
+ https://github.com/rust-ndarray/ndarray/pull/924
+ +- The `sort-axis.rs` example file's implementation of sort was bugfixed and now + has tests, by [@dam5h] and [@bluss] + + https://github.com/rust-ndarray/ndarray/pull/916
+ https://github.com/rust-ndarray/ndarray/pull/930 + +- We now link to the #rust-sci room on matrix in the readme by [@jturner314] + + https://github.com/rust-ndarray/ndarray/pull/619 + +- Internal cleanup with builder-like methods for creating arrays by [@bluss] + + https://github.com/rust-ndarray/ndarray/pull/908 + +- Implementation fix of `.swap(i, j)` by [@bluss] + + https://github.com/rust-ndarray/ndarray/pull/903 + +- Minimum supported Rust version (MSRV) is Rust 1.49. + + https://github.com/rust-ndarray/ndarray/pull/902 + +- Minor improvements to docs by [@insideoutclub] + + https://github.com/rust-ndarray/ndarray/pull/887 Version 0.14.0 (2020-11-28) @@ -1069,21 +1241,24 @@ Earlier releases [@bluss]: https://github.com/bluss [@jturner314]: https://github.com/jturner314 [@LukeMathWalker]: https://github.com/LukeMathWalker -[@max-sixty]: https://github.com/max-sixty +[@acj]: https://github.com/acj +[@andrei-papou]: https://github.com/andrei-papou +[@dam5h]: https://github.com/dam5h +[@d-dorazio]: https://github.com/d-dorazio +[@Eijebong]: https://github.com/Eijebong +[@insideoutclub]: https://github.com/insideoutclub [@JP-Ellis]: https://github.com/JP-Ellis -[@sebasv]: https://github.com/sebasv +[@lifuyang]: https://github.com/liufuyang +[@max-sixty]: https://github.com/max-sixty [@mneumann]: https://github.com/mneumann -[@termoshtt]: https://github.com/termoshtt -[@rth]: https://github.com/rth -[@nitsky]: https://github.com/nitsky -[@d-dorazio]: https://github.com/d-dorazio +[@mockersf]: https://github.com/mockersf [@nilgoyette]: https://github.com/nilgoyette +[@nitsky]: https://github.com/nitsky +[@rth]: https://github.com/rth +[@sebasv]: https://github.com/sebasv +[@SparrowLii]: https://github.com/SparrowLii +[@termoshtt]: https://github.com/termoshtt [@TheLortex]: https://github.com/TheLortex -[@mockersf]: https://github.com/mockersf [@viniciusd]: https://github.com/viniciusd -[@lifuyang]: https://github.com/liufuyang -[@acj]: https://github.com/acj -[@Eijebong]: https://github.com/Eijebong -[@andrei-papou]: https://github.com/andrei-papou [@xd009642]: https://github.com/xd009642 [@Zuse64]: https://github.com/Zuse64