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

More fixes for non-1 arrays #21251

Merged
merged 1 commit into from
Apr 4, 2017
Merged

More fixes for non-1 arrays #21251

merged 1 commit into from
Apr 4, 2017

Conversation

timholy
Copy link
Member

@timholy timholy commented Apr 1, 2017

The endof change is worthy of @nanosoldier runbenchmarks(ALL, vs = :master).

@timholy
Copy link
Member Author

timholy commented Apr 1, 2017

@nanosoldier runbenchmarks(ALL, vs = ":master")

@@ -124,7 +124,7 @@ julia> length(A)
length(t::AbstractArray) = (@_inline_meta; prod(size(t)))
_length(A::AbstractArray) = (@_inline_meta; prod(map(unsafe_length, indices(A)))) # circumvent missing size
_length(A) = (@_inline_meta; length(A))
endof(a::AbstractArray) = (@_inline_meta; length(a))
endof(a::AbstractArray) = (@_inline_meta; last(linearindices(a)))
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This will allow things like A[1:end] for offset arrays, but that's not tested. Is that intended? Of course A[end, 1] will still error with a missing size.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ideally we'd want A[begin:end] but of course that would need parser support. I frankly don't remember the exact context this came up in. If nothing else, this will prevent a genuine bug once we decide to allow length and size again for offset arrays. (Officially we said that would happen in 0.6, but I wonder if it's still a little early. Gotta finish JuliaLang/www_old.julialang.org#498 so they get more use...)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yup, it's the right definition, just checking if you were willing to incrementally begin allowing end expressions.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since I think end has an unambiguous meaning, I think it makes sense. Unless you see a problem I don't.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

any backporting concern that these don't have the @inline_meta on release-0.5 ?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It should be fine to add them, I'd think.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would rather leave them out when it comes to backporting this specific PR. Looks like they were added in #20079 which is a larger breaking PR that's not a backport candidate. But if just this piece on its own has performance advantages and doesn't break anything, someone who wants it can propose it independently against release-0.5 (or at the moment, tk/backports-0.5.2)

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's fine too.

@ararslan ararslan added the arrays [a, r, r, a, y, s] label Apr 1, 2017
@nanosoldier
Copy link
Collaborator

Your benchmark job has completed - possible performance regressions were detected. A full report can be found here. cc @jrevels

@timholy
Copy link
Member Author

timholy commented Apr 2, 2017

Seems like the performance worked out fine. OK to merge?

@timholy timholy merged commit e1d6cdd into master Apr 4, 2017
@timholy timholy deleted the teh/non1 branch April 4, 2017 13:03
tkelman pushed a commit that referenced this pull request May 2, 2017
(cherry picked from commit 4776d9a)
ref #21251
tkelman pushed a commit that referenced this pull request May 3, 2017
(cherry picked from commit 4776d9a)
ref #21251
@tkelman
Copy link
Contributor

tkelman commented May 6, 2017

noting that the backport of this got reverted in #21684 due to a roughly 35% performance regression in array growth, also xref e1c9a4b which should probably go along with this if we try again

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
arrays [a, r, r, a, y, s]
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants