Open
Description
Splitting out of #1527 to give a clearer summary.
Dotty interns identifiers and never releases them, even if you drop the compiler instance, because the hashtable used for interning is stored in a static field. While this only leaks memory slowly, I'm not sure that's OK (though @odersky is not convinced this is a real problem). So if one wants to avoid this leak in Ensime/ScalaIDE, it seems one would have to load Dotty in a separate classloader.
I'm trying to anticipate whether this is indeed a problem, so pinging @fommil and @sschaef:
- Is that indeed a false problem for Ensime/ScalaIDE?
- If the problem is there, is loading Dotty in a separate classloader (and discarding it on different projects) acceptable for Ensime/ScalaIDE? Is that something they do today with Scalac?