8000 Error-check array shape before computing strides by bluss · Pull Request #855 · rust-ndarray/ndarray · GitHub
[go: up one dir, main page]

Skip to content

Error-check array shape before computing strides#855

Merged
bluss merged 2 commits intomasterfrom
checked-shape-strides
Dec 3, 2020
Merged

Error-check array shape before computing strides#855
bluss merged 2 commits intomasterfrom
checked-shape-strides

Conversation

@bluss
Copy link
Member
@bluss bluss commented Dec 3, 2020

Update representation (of StrideShape) to use enum { C, F, Custom(D) } so that we don't
try to compute a C or F stride set until after we have checked the
actual array shape.

This avoids overflow errors (that panic) in places where we expected to
return an error. It was visible as a test failure on 32-bit that long
went undetected because tests didn't run on such platforms before (but
the bug affected all platforms, given sufficiently large inputs).

Also move the Shape, StrideShape types into the shape builder module.
It all calls out for a nicer organization of types that makes
constructors easier to understand for users, but that's an issue for
another time - and it's a breaking change.

Fixes #852

bluss added 2 commits December 3, 2020 20:12
Update StrideShape's representation to use enum { C, F, Custom(D) } so
that we don't try to compute a C or F stride set until after we have
checked the actual array shape.

This avoids overflow errors (that panic) in places where we expected to
return an error. It was visible as a test failure on 32-bit that long
went undetected because tests didn't run on such platforms before (but
the bug affected all platforms, given sufficiently large inputs).

Also move the Shape, StrideShape types into the shape builder module.
It all calls out for a nicer organization of types that makes
constructors easier to understand for users, but that's an issue for
another time - and it's a breaking change.
@bluss bluss force-pushed the checked-shape-strides branch from b82fbf3 to c195930 Compare December 3, 2020 19:27
@bluss bluss merged commit 3a2040d into master Dec 3, 2020
@bluss bluss deleted the checked-shape-strides branch December 3, 2020 19:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Array::from_shape_vec panics on shapes that are too big for usize on the platform

1 participant

0