-
Notifications
You must be signed in to change notification settings - Fork 847
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
Use dyn Array in cast kernels #3667
Conversation
@@ -609,7 +609,7 @@ pub fn cast_with_options( | |||
|
|||
// clone array if types are the same | |||
if from_type == to_type { | |||
return Ok(array.clone()); | |||
return Ok(make_array(array.data().clone())); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is the only "downside", in practice cloning ArrayData is relied on to be fast, it underpins array slicing, and so I think this is fine
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This one in particular I think is used frequently. I think its additional overhead should be low enough though.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks like a much nicer API to me
Benchmark runs are scheduled for baseline = a142e5d and contender = b79f27b. b79f27b is a master commit associated with this PR. Results will be available as each benchmark for each run completes. |
Which issue does this PR close?
Closes #.
Rationale for this change
This makes the kernels easier to use, avoids needless boxing, and is more consistent with the other kernels
What changes are included in this PR?
Are there any user-facing changes?
This is technically a breaking change, as type inference may now require additional help, in practice this is unlikely to be a major issue