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

Resolve deprecation warnings for v0.7 #86

Closed
wants to merge 42 commits into from
Closed

Resolve deprecation warnings for v0.7 #86

wants to merge 42 commits into from

Conversation

halleysfifthinc
Copy link

According to the testsuite, this fixes all the deprecations.

The only things I'm unsure of is the change in v0.7 for reinterpret/reshape to return reinterpret/reshape types. Since the tests check type equality (and error if mismatched type) before checking for equality in the contents, this required me to add a collect (for most of the cases) around the reinterpret or reshape. This will now allocate when it did not before, and may affect the read/write performance, however I don't see a way around this (other than changing the types of the test data to make the tests pass with reinterpret/reshape types).

@halleysfifthinc
Copy link
Author

halleysfifthinc commented Jul 30, 2018

Tests fail due to the issues with WinRPM and Homebrew..

src/MAT_HDF5.jl Outdated Show resolved Hide resolved
@Evizero
Copy link

Evizero commented Aug 14, 2018

What is the state on this?

@halleysfifthinc
Copy link
Author

halleysfifthinc commented Aug 14, 2018

My understanding is that the PR is ready to be merged, depending on how important passing CI is for whoever has merge permissions. Tests pass locally on my machine (Linux x64), but the last run of Travis failed on 1.0 (bad travis config for 1.0, no using Pkg), tests on 0.7 failed because CMakeWrapper failed to build, Blosc failed because of CMakeWrapper. HDF5 failed to install because the apt sources returned 404's; my guess is that is a Travis issue, and I have no clue if there is anything we can do to solve that on our end.

Obviously, once this gets merged, any issues with 1.0 can be fixed.

Copy link

@c-p-murphy c-p-murphy left a comment

Choose a reason for hiding this comment

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

Thanks for doing this.

REQUIRE Outdated
@@ -1,4 +1,4 @@
julia 0.5
julia 0.7-beta2
Copy link
Member

Choose a reason for hiding this comment

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

just julia 0.7

src/MAT_HDF5.jl Show resolved Hide resolved
@halleysfifthinc
Copy link
Author

The single OSX failure on Travis is due to the gcc link failing in homebrew. Not sure what caused the Linux failure.

@halleysfifthinc
Copy link
Author

All green! @simonster or @yuyichao could we get this merged now?

@aliddell
Copy link

All green! @simonster or @yuyichao could we get this merged now?

+1

@yuyichao
Copy link
Collaborator

Since the tests check type equality (and error if mismatched type) before checking for equality in the contents, this required me to add a collect (for most of the cases) around the reinterpret or reshape. This will now allocate when it did not before, and may affect the read/write performance, however I don't see a way around this (other than changing the types of the test data to make the tests pass with reinterpret/reshape types).

Most of those looks wrong. You should now allocate the array you want to return and fill the reinterpreted/reshaped version.

@halleysfifthinc
Copy link
Author

Ok. I will see about changing that.

@yuyichao yuyichao mentioned this pull request Sep 15, 2018
@yuyichao
Copy link
Collaborator

I believe the copying issue is only needed to maintain the output type which shouldn't break most of the use so merging PRs that doesn't include that part is certainly fine and I've done that already.

@oxinabox
Copy link

Just to be clear master is still broken in 1.0
because a ton of the basic deprecatation removing stuff has not been done (because it is done in this PR).

And master is also broken on 0.7 is also broken because of the reinterpretted output types thing.

@halleysfifthinc
Copy link
Author

halleysfifthinc commented Nov 16, 2018 via email

@nicoleepp
Copy link

The HDF5 changes needed to fix the extra copies here haven't been tagged yet:
JuliaIO/HDF5.jl#535

@oxinabox
Copy link

Here is the METADATA PR.
It is currently kinda stalled
JuliaLang/METADATA.jl#19579

@oxinabox
Copy link

The HDF5 changes are merged and tagged. Thanks @musm

@halleysfifthinc
Copy link
Author

I think that should fix all the extra copies. If somebody (@yuyichao perhaps) can review to double-check, then this will be good to go once JuliaIO/HDF5.jl#538 is merged and tagged.

@yuyichao
Copy link
Collaborator

See JuliaIO/HDF5.jl#538 (comment)

@davidssmith
Copy link

Can we get this merged?

Do you know what is worse than a performance penalty? A broken master. That's infinitely bad performance.

@yuyichao
Copy link
Collaborator

yuyichao commented Dec 10, 2018

Not yet (see comment) and no. Old julia version aren't gone yet.

Also note that master isn't completely broken (some cases works) and I've said many times that whoever want to split out part of this to another PR are welcome to do so. I've merged such PR and I've even done the work of fixing that PR and rebas this on the new master.

Also note that this version is also "broken" awaiting the HDF5 PR linked above.

@davidssmith
Copy link

Well it is broken for me, and I created a PR a long time ago that made it work for me, but it was rejected for the reason that it was incomplete, even though it fixed some things.

Don't let perfect be the enemy of the good.

@yuyichao
Copy link
Collaborator

I am very surprised. If you are talking about #92. I believe it's included in #100, if not, feel free to include the missing pieces.
Not being complete is not an issue. #100 is just like that. However, if it does not completely fix all issues on 1.0, it should not break 0.6.

@davidssmith
Copy link

There should be no rush to get everything working on 1.0 since

Also I want to directly disagree with this. Many packages depend on this as part of their backend. The performance of reading and writing MAT files is not as important as allowing all of those packages to upgrade to 1.0+, where they may enjoy speed improvements in execution and better likelihood of adoption. As it is now, anyone who hears about Julia, goes to download 1.0, and tries to install MAT or some package depending on MAT, will get errors. That's not the way to win hearts and minds.

@yuyichao
Copy link
Collaborator

You are just giving very good reason for why the release 1.0 shouldn't have been made so quickly. 0.6 is still a perfectly good release to use and start with. I know this is directly conflicting with the super loose release policy and I don't want to argue with either.

Also, I'm not looking for perfect either. It's just about not introducing regression. And if you want to know what is the right way to do this on a very much related change? JuliaLang/julia#21831 (comment) Noticed that the PRs are submitted to the packages to make sure there's no regression before the base PR is merged.

@oxinabox
Copy link

However, if it does not completely fix all issues on 1.0, it should not break 0.6.

I must be missing something.
This PR will change the minimum julia version to be 0.7
It thus cannot break julia 0.6.

If you are saying that you don't want to lose the ability to make improvements to 0.6,
then have a backports branch.
I am maintaining 2 packages that have backports branchs and it isn't that hard.

@yuyichao
Copy link
Collaborator

This PR will change the minimum julia version to be 0.7

Please read and quote the context.

Not being complete is not an issue. #100 is just like that. However, if it does not completely fix all issues on 1.0, it should not break 0.6.

It's specifically referring to PRs that are "not complete" and "like #100".

@babaq
Copy link

babaq commented Jan 30, 2019

is this branch dead or not, I think it's better get merged and make it work first, and then make another PR to fix performance regression. v1.0 is relatively big change to v0.6 that's why it's better to move to v1.0 early than doing more work in v0.6. please make this work early, cause a lot of data is in MAT format.

@chriselrod
Copy link

FWIW, this branch works for me, but the merged one errors.

@jaakkor2
Copy link
Contributor

Looks like Travis CI was run two months ago. For me this PR passes tests using HDF5 v0.10.4. One line fix is needed for HDF5 v0.11.0. Who is able to trigger Travis? Looks like closing and reopening 18 days ago did not do it.

@timholy
Copy link
Member

timholy commented Feb 18, 2019

Superseded by #110 (merged in #113)

@timholy timholy closed this Feb 18, 2019
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.