-
Notifications
You must be signed in to change notification settings - Fork 70
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
update for Julia v0.6 #248
Conversation
Note that the failing tests are on 0.5. I'm adding compat and a few more type declaration fixes now. |
I've added compat for 0.5. Whether or not the Update: Indeed it seems that |
Thank you for this! You might have to update the Compat version in Line 2 in b63fd9b
|
Hm, yeah I'm a little confused as to exactly what the situation is right now with Update: Hmm.... |
Codecov Report
@@ Coverage Diff @@
## master #248 +/- ##
=========================================
- Coverage 68.9% 68.41% -0.5%
=========================================
Files 24 25 +1
Lines 1859 1852 -7
=========================================
- Hits 1281 1267 -14
- Misses 578 585 +7
Continue to review full report at Codecov.
|
Ok, the Julia devs have told me that |
@ExpandingMan Thanks! I believe our policy is to make the latest release No.1 priority and latest features are always welcome as long as there can be a workaround with |
Ok, in that case I'll revert to |
This is getting ugly. Apparently 0.5 wants to use the wrong dotted operators (i.e. it uses |
Ok, this now works on both 0.5 and 0.6 though there is now some slightly ugly compatibility code. Because I hate ugly compatibility code mucking up my regular code, I put as much of it as I could in the new "compat.jl" file. It contains the following:
I have added MacroTools.jl as a requirement (I use it in Appveyor and travis now run on both 0.5 and 0.6. |
It occurred to me earlier that I can circumvent the need to write separate |
Having MacroTools should be fine as a dependency. |
Just FYI, the appveyor.yml URLs just recently changed and a wide array of automated PRs were opened to update these. see JuliaImages/ImageInTerminal.jl#14 for a diff |
For some reason Travis is timing out on 0.6. I have no idea why as I am having no problems. |
I have rewritten As of this morning, appveryor didn't seem to running at all until I made the update suggested by @Evizero. Now, however, it seems to fail to build Last night travis seemed to time out on 0.6 only. I have absolutely no idea why this happened, everything is working fine for me on 0.6 on linux locally. We'll see if it does this again. |
For some reason appveyor decided to stop throwing errors all of the sudden. Travis is still timing out on 0.6. This happens when building mxnet. As this is a build error, I'm not quite sure how to fix this, and it wouldn't seem to have anything to do with this particular PR. Any advice on this? Has this been encountered before? Otherwise everything looks ok now. |
Thanks, I will be looking into the timeouts. There is one legit failure on travis:
|
Thanks a lot! I'm also quite OK with adding MacroTools as dependency. |
Hmm... it would seem that I'll be a bit busy this weekend but I'll take a more careful look at it soon. |
I have identified the problem that is causing the crash and it is rather strange, see here. It's not actually clear to me how to fix this, so I'll wait on a response. Previously I was not running this test as I did not have |
Ok, I have fixed the method error that was being thrown, but there is a bit of a caveat. The emerging semantics of Julia seem to be that I don't know what the ultimate resolution of this will be, but at the moment it seems to me that the proper thing to do would be to use a different symbol such as That would be a non-trivial change, and I'm still not 100% sure that it will turn out to be the right one in the long run. For now, I have changed Appveyor seems to be failing to build |
Appveyore failed to download the prebuilt binaries. I will look into making that a bit more stable today. |
Silly me, I forgot that I hadn't overloaded By the way, I have seen one test that fails intermittently but very rarely (I've only seen it fail once):
I'm reasonably sure that this has nothing to do with my changes. |
I think the issue with the |
Travis is having a bit of a tantrum on Mac. Appveyor is having the same problem getting the binary it was having before. Finally 0.5 and 0.6 both pass with no errors on Linux. It's funny how this works: Get working on 0.6, very little effort; Get working on both 0.5 and 0.6, big pain. |
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.
Thank you for all the hard work! This looks good to me.
@pluskid I would be happy to break compatibility with 0.5 soonish and maintain 0.5 on a separate stable branch until 0.7/1.0.
@ExpandingMan Thanks a lot for the great efforts! @vchuravy I am looking at the Julia milestone: https://github.com/JuliaLang/julia/milestones, since v0.6 is going to be released 3 months ago, I guess it would be OK to start to plan to move ahead for us, too. Let us aim to make another (potentially minor) release for our final v0.5 package, and then the master can start introducing breaking changes for v0.5. BTW: @vchuravy I saw there was a new release that you made ~two days ago but it seems you forgot to update our NEWS.md. Can you add that? It is good to have a file to keep track of all the versions. Thanks a lot! |
Glad to be of help. I'm going to post an issue about the residual problem with the overloading of |
I have updated for 0.6, including fixes for all deprecation warnings.
The problem people were most frequently experiencing, and, as far as I can tell, the only problem that was causing an exception originated in
@chain
. In 0.6, the AST was changed so thata => b
isExpr(:call, :(=>), :a, :b)
rather thanExpr(:(=>), :a, :b)
. I've changed the macro code to reflect this.Base.take
was being overloaded. Rather awkwardly,take
is still inBase
but deprecated, so it still allows the method to be extended but throws a deprecation warning if one does this.take
was defined in some boilerplate code-generation, so I added a special clause telling it not to check fortake
inBase
. This line should be removed oncetake
is removed fromBase
(I added a comment to this effect).slice
is no longer inBase
, so obviouslyslice
no longer extends this function. One must now usemx.slice
similarly to how one uses other functions in this module.Otherwise, there were various other changes to type declaration syntax and to broadcasting operators (dotted operators are now accessed through
broadcast(::typeof(op), ...)
).