Skip to content

Commit

Permalink
Merge pull request #939 from rust-ndarray/doc-0.15
Browse files Browse the repository at this point in the history
Update release notes in preparation for 0.15.0
  • Loading branch information
bluss authored Mar 19, 2021
2 parents 141facd + 6f6f707 commit 4e8f636
Showing 1 changed file with 196 additions and 21 deletions.
217 changes: 196 additions & 21 deletions RELEASES.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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)
Expand Down Expand Up @@ -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

0 comments on commit 4e8f636

Please sign in to comment.