-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
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
Backports for 0.6.1 #23670
Backports for 0.6.1 #23670
Conversation
I need to redo this from scratch. Things to do differently:
Edit: Redone. Let's see what happens. |
29f58bd
to
6afd88e
Compare
Looks like something was backported incorrectly, likely a bad conflict resolution. Not sure what exactly is causing it but it looks like it's failing somewhere around src/ccall.cpp. @vtjnash, would you be willing to take a look at that and make sure that part looks okay? |
Added #22161, dropped PR #22472 (096e13d ("Store global variables and function addresses as 32bit offsets") and 054618e ("Fix function base address lookup on Win32 and FreeBSD")), |
6afd88e
to
92900b8
Compare
removes the global work queue, which allows increasing the precision of cycle detection and resolution, and decreases the need for the threading synchronization lock surrounding inference updates `inInference` flag usage to be merely a hint for `jl_type_infer` to not bother trying to infer a method (helps avoid accidental infinite recursion over inferring type inference), enable inferring inference (cherry picked from commit 5847317)
- move call to `short-form-function-loc` inside `parse-assignment` this is faster and fixes nested cases like `f(x)=g(x)=1` - fix a case where an `unexpected "foo"` message was missing quotes - optimize common case of arglists of comma-separated simple tokens - some other small optimizations - put code back in precedence order - separate parse-Nary and parse-comma so they're easier to read - cleaner code for parse-unary and parse-factor
Ref #21832 Squashed for backporting (cherry picked from commit d86b37c) (cherry picked from commit 7e7393c) (cherry picked from commit 6a4acc0) (cherry picked from commit 93cf6d9) (cherry picked from commit 2379294) (cherry picked from commit 7ff6322) (cherry picked from commit 49abbf3) (cherry picked from commit eadb699) (cherry picked from commit 1ce1d75)
* Return socket correctly in socket_reuse_port * Run reuseport tests only if SO_REUSEPORT is supported. * Test fix - test for successful addition of workers in distributed test (cherry picked from commit d3bc329)
* fix spurious newlines in Base.Test printing * add some doctest to test (cherry picked from commit 2796b40)
* Extend definition of StridedReshapedArray * Add test (cherry picked from commit 92ff1bc)
(cherry picked from commit 15ee73a)
(cherry picked from commit b1c2d73)
Your benchmark job has completed - possible performance regressions were detected. A full report can be found here. cc @ararslan |
julia> @btime repeat($A, inner = $[24], outer=$[1]);
51.796 μs (611 allocations: 56.66 KiB) This branch: julia> @btime repeat($A, inner=$[24], outer=$[1]);
290.690 μs (3811 allocations: 150.41 KiB) |
base/abstractarraymath.jl
Outdated
@@ -415,7 +415,7 @@ _reperr(s, n, N) = throw(ArgumentError("number of " * s * " repetitions " * | |||
n = inner[i] | |||
inner_indices[i] = (1:n) + ((c[i] - 1) * n) | |||
end | |||
R[inner_indices...] = A[c] | |||
fill!(view(R, inner_indices...), A[c]) |
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 must be the cause of the repeat regression, @pabloferz
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 a necessary fix, it's meant for the case when A[c]
is itself an array. I can think of a way of trying to preserve the speed for the cases when A[c]
is not an array, but I don't know what would be the action to take with regards to the backport.
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.
(cherry picked from commit af5abb3)
Pablo's PR bettered the performance on master, so let's see what effect it had here. @nanosoldier |
Could I kindly request one more patch to make this round? #23681 would be nice to backport. I don't think I see it listed and it's a very trivial fix. |
Can do 👍 |
(cherry picked from commit c23d6bc)
Will merge once CI is green (FreeBSD and Circle failures are expected) unless someone beats me to it. DO NOT SQUASH! |
Your benchmark job has completed - no performance regressions were detected. A full report can be found here. cc @ararslan |
Thanks! Now we just need the tag v0.6.1. |
Where are your pkgeval results and logs? Coverage.jl fails tests on this branch and it's definitely related, the parser changes were breaking and shouldn't be backported. |
Are you talking about these parser changes: #22161. They were non-breaking according to @JeffBezanson (who seems like a fairly reliable character), and tagged for backporting by @vtjnash. It's possible they were actually breaking, but if so it was subtle. There was a PkgEval run done, and I'm sure @ararslan can post the results here. |
It would be great to hook up PkgEval the way the benchmarks are hooked up - so it can be triggered from here. |
Automating the running of PkgEval is an excellent idea, similar to nanosoldier. I have to confess I have no idea where the PkgEval code even lives. PkgEval.jl doesn’t exist and there seems to be zero documentation of how to run it. |
https://github.com/JuliaCI/PackageEvaluator.jl PkgEval is just what the cool kids are calling it. 😉 |
On Nanosoldier, where they ran. I didn't realize I was supposed to post them somewhere, but I can do that. |
PkgEval for 0.6.1: https://gist.github.com/ararslan/98ef9116c7bb6b5c7dcb041c9f92a2ef |
Doesn't make much sense that those logs seem to say Coverage.jl passed on this branch. It definitely fails locally against latest release-0.6. That PR caused a change in coverage measurement that made Coverage start failing on nightly when it was merged. Something may be flawed about how the backport test binary that pkgeval used was built. Or however the logs were converted to csv may be flawed, and marking some failures as passes. Install jq and use the summary.sh script in the PackageEvaluator repo. |
Given that everyone refers to it as |
To make sure I understand correctly, is it that the parser changes seem to have broken Coverage.jl? |
That's what @tkelman's saying, although more details about how and details of what's failing would be helpful. And of course, then there's the question of why PkgEval didn't catch it. |
It appears that this is what changed in Coverage: JuliaCI/Coverage.jl#136. It seems that change resulted in something more correct for Coverage but because of that broke a test that expected the old behavior. The change seems subtle enough that I doubt pretty much any other package would have noticed. It's still odd that Coverage on PkgEval didn't see it though. |
Interesting, downloading the binaries I used for running PkgEval and doing |
This is my first time doing this, so it's probably an enormous mess.