Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update release notes in preparation for 0.15.0 #939

Merged
merged 3 commits into from
Mar 19, 2021
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
217 changes: 196 additions & 21 deletions RELEASES.md
Original file line number Diff line number Diff line change
@@ -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 <br>
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<SliceInfo<[SliceOrIndex], D>> for SliceInfo<T, D>`
implementation. Add the similar `From<&'a SliceInfo<T, Din, Dout>> 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 <br>
https://github.com/rust-ndarray/ndarray/pull/940 <br>
https://github.com/rust-ndarray/ndarray/pull/943 <br>
https://github.com/rust-ndarray/ndarray/pull/945 <br>

- 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 <br>
https://github.com/rust-ndarray/ndarray/pull/904 <br>

- 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 <br>
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 <br>
https://github.com/rust-ndarray/ndarray/pull/937 <br>
https://github.com/rust-ndarray/ndarray/pull/907 <br>

- `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 <br>
https://github.com/rust-ndarray/ndarray/pull/938 <br>


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 <br>
https://github.com/rust-ndarray/ndarray/pull/924 <br>

- 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 <br>
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