a small handful of optimizations for 2.12#7135
Conversation
This comment has been minimized.
This comment has been minimized.
| new ForeachPartialTreeTraverser(pf).traverse(this) | ||
| } | ||
|
|
||
| def changeOwner(pairs: (Symbol, Symbol)*): Tree = { |
There was a problem hiding this comment.
Let's leave this version around as an overload, it is likely to be called from compiler plugins.
| Literal(Constant(desc: String)), | ||
| Literal(Constant(required: Boolean)) | ||
| ), _) = sym.getAnnotation(LanguageFeatureAnnot).get | ||
| } |
There was a problem hiding this comment.
During the scala corpus benchmark, which has the language features defined in sources:
[error] Suppressed: java.util.NoSuchElementException: None.get
[error] at scala.None$.get(Option.scala:349)
[error] at scala.None$.get(Option.scala:347)
[error] at scala.reflect.internal.Symbols$LanguageFeature.<init>(Symbols.scala:3603)
[error] at scala.reflect.internal.Definitions$DefinitionsClass.getLanguageFeature(Definitions.scala:1222)
[error] at scala.reflect.internal.Definitions$DefinitionsClass$RunDefinitions.ImplicitConversionsFeature$lzycompute(Definitions.scala:1539)
[error] at scala.reflect.internal.Definitions$DefinitionsClass$RunDefinitions.ImplicitConversionsFeature(Definitions.scala:1539)
[error] at scala.tools.nsc.typechecker.Typers$Typer.typedDefDef(Typers.scala:2334)
[error] at scala.tools.nsc.typechecker.Typers$Typer.typedMemberDef$1(Typers.scala:5545)
[error] at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:5596)
There was a problem hiding this comment.
... yikes. It bootstrapped just fine (obviously). I'll take a look as to why, or just get rid of the commit if it's not worth it.
There was a problem hiding this comment.
The point of difference is that over in compiler-benchmark we jointly compile reflect/library/compiler sources, which seems to extend some weird corner cases with bootstrapping
|
Will come back to this today. |
|
@hrhino ping |
|
one of these is not pulling its weight. looking into it, then I'll rebase. (sorry for the extended absence, I've been really busy sorting out job stuff.) |
|
Thanks, @adriaanm. I removed the dubious commit (although I still can't get it to fail on the benchmark) as not worth the effort. I reran the benchmarks which show that b2c493d is most of the improvement. I'm gonna take the WIP label off. Let me know what you think. |
Benchmarking results are here. I removed some commits which turned out to be counterproductive, so the hashes are wrong; the commit messages are correct, though. I'll run some more over the weekend.
cc @mkeskells @rorygraves