1.0 progress/status

It seems that the only thing missing is the new iteration protocol!! Nice!! In my naive view the rest of issues are straight forward. Isn’t it? Can someone explain for the mortals what is the status of the PR, and why is still not merged? Thanks

1 Like

I think the first post described pretty well what was up with the iteration protocol.


Perhaps what’s confusing to people is that we are in roughly the same situation as described originally but with much more progress having been made. The progress has been somewhat slowed by Keno having various other obligations and lots of travel (he seems to be somewhere new every time I talk to him).

A great deal of excellent work has been done by Matt as well, including a PR changing broadcast to use a lazy intermediate representation that is the culmination of a collaborative design/coding process and which surely must have one of the highest fixed-issue-to-changed-lines-of-code ratios in the history of Julia.

The simmering period has also been quite productive otherwise and there’s definitely a sense among us devs that it’s been good to have some time to look for and fix various large and small annoyances in the language. Things are feeling really good now. The biggest outstanding problem is compile times, which Jeff has already started to work on (and doesn’t block an alpha release).

All said, the perception that 0.7-alpha is really, really close is accurate.


Is 0.7 near at hand? according to optimizer and merge, all the optimizing issues are closed, and we just need “One final go for good measure”.

It might be nice to get some kind of idea on what are the most serious performance regressions to be expected in the release candidate. It looks like there’s still a good number of rather significant regressions.

Has thought been given to moving Regex, BigInt, and BigFloat out of base and into stdlib before v1.0 by the core team? (even if it is just moving the exports out into stdlib, as was done for Unicode, for now)

In my understanding, the tests showing 500+ times regression are just test failures when LLVM fails to vectorize. Besides, these might not be too hard to fix.

That’s not correct. The 200-600x regressions are those that explicitly test start/next/done — those names are being deprecated in favor of the new iterate protocol… and deprecation warnings are slow. We’ll have to re-write those benchmarks to test the appropriate new API.

The regressions are ~2x in some of the array indexing code (IIRC that’s a failure to inline/elide boundschecks), and 5-10x in parsing dates and map reduce. All of which will be worked on in the future. Remember, though, the most relevant benchmark results for those coming from 0.6 will be https://github.com/JuliaLang/julia/pull/27030 — those still need to be re-run with the new optimizer/iteration.

It’s also expected that compile times might be a bit slower. All of this is stuff we can work on and improve after the tag. If you find a regression, please post an example of it — and even better to add a representative BaseBenchmark!


New due date! August 6!! Things have changed in GitHub

It seems that Julia 1.0 will be released just for JuliaCon. And that 0.7 will come sooner than later. Nice!


Like I’ve been saying all along! :grinning:

Nice, I for one am very excited. Hopefully the August date will give package developers a little time to fix all the things that iterate broke. Note also that Julia also now has >11\cdot10^3 stars on github! That’s many.


Time to fix all that warnings with 0.7 for my packages :smile:


Hehe, that’s what I’ve been doing lately (I’ve already found a bug in Base caused by the iterate change,
parsing no longer works correctly with AbstractStrings that don’t have Char as their eltype (such as all of my strings in Strs.jl), see: Bug with new iteration code in parse, I have a branch on my fork of julia to fix it.)
Now I’m fixing all the deprecation warnings from the eval change PR #27098 that just went in.

1 Like

Zero open issues on the 0.7 milestone – guessing a release is imminent. :smiley:


They are moved to the 1.0 milestone


There is also 0.7.0-alpha PR.


I am trying to understand what I should be using as a non-developer user, though with modest expertise by now.

Is 0.7.0 now recommended over 0.6.2 ? Or should I still stick to 0.6.2? Or wait for 0.7.0-beta (is 0.6.2 terminology-wise a beta)?

Once an alpha is released we request all package developers to upgrade. Normal users may still want to wait for a while. Once a beta is released you’ll probably want to try it but for an end user it’s perfectly reasonable to wait until an actual final release. It depends on how much you’re willing to be a beta or alpha tester—much like other software with similar labels.


Is Femtocleaner going to help package authors with deprecations?

Yes, just need to go get it updated.