Conversation
|
@nanosoldier |
|
@nanosoldier |
|
Your benchmark job has completed - possible performance regressions were detected. A full report can be found here. |
|
While nothing looks like it regressed, it is interesting how much worse that made the performance of the inference benchmarks themselves. |
|
This regressed:
But yeah, interesting to see inference itself being so sensitive to this. |
|
Interesting. We can have module-wide |
|
Your benchmark job has completed - possible performance regressions were detected. A full report can be found here. |
🎉 😆 |
|
I'm not entirely surprised: abstract inference is much slower than concrete, and this may result in more abstract inference because there may be fewer cases where it can determine a concrete return type. Which might mean a reduction of some invalidation-vulnerabilities, but an increase in others. |
|
Well, the |
|
Your package evaluation job has completed - possible new issues were detected. A full report can be found here. |
|
People are writing a lot of methods with too strict type parameters that do not have a fallback which causes breakage since the types of empty containers can now change due to explicit use of inference in e.g. ç |
|
Does it make sense to merge this on master? Or maybe with max_methods=2? I'm trying to understand this, want to know all potentially helpful tricks to reduce latency, and if I understand correctly =1 is one of them, fastest/least conservative, but =2 might always work?
We don't want to break packages, but there's no such promise on master, so I'm thinking would merging =1 there help to force users to fix their code, and then we would change to =2 (or =3 for the release on 1.10, which is still far off). E.g. CairoMakie could set at module level. Does this also apply to non-package code, which I guess can't set max_methods? When does =4 make sense? |
This is just to see the effect of this change on Base tests, PkgEval, benchmarks etc.
Advantages of lowering this:
Disadvantages: