Skip to content

Merge 2.12.x to 2.13.x [ci: last-only] #8993

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

Merged
merged 262 commits into from
Jun 1, 2020

Conversation

retronym
Copy link
Member

@retronym retronym commented May 18, 2020

Tricky parts:

  • The new DCE implementation exposed some places in the backend that queried
    an uninitialized or stale MethodNode.maxLocals, typically when the read
    occured before a preceding lazy val had been initialized:
    lazy val a = new AsmAnalyzer(m); m.maxLocals
  • Some of the collections work in 2.12.x didn't need implementation to be
    forward ported, but I have brought relevant test cases forward.

Only the final commit of this branch is expected to pass the tests.
We need to decide if this should all come forward to 2.13.x immediately, or
whether to defer anything until post 2.13.3. I can prepare a new PR with a
squashed subset of this branch.

PICK    *   8d19363fe0 (origin/2.12.x, topic/y-parse-java-flag) Merge pull request #8981 from retronym/topic/java-kinda-right
        |\
        | * 0327e63b4f (retronym/topic/java-kinda-right, origin/pr/8981, topic/java-kinda-right) Java class literals on raw types are okay
        |    src/compiler/scala/tools/nsc/typechecker/Typers.scala | 5 ++++-
        |    test/files/pos/java-raw-class-literal/Ann.java        | 3 +++
        |    test/files/pos/java-raw-class-literal/J.java          | 3 +++
        |    test/files/pos/java-raw-class-literal/test.scala      | 3 +++
        |    4 files changed, 13 insertions(+), 1 deletion(-)
        * f3789fe493 Merge pull request #8982 from retronym/topic/ann-parser-match-error
        * dec820da9a (retronym/topic/ann-parser-match-error, origin/pr/8982, topic/ann-parser-match-error) Avoid slow patmat exhaustiveness analysis in a test
        |  test/files/run/t8928/Checks_0.scala | 32 +++++++++++++++-----------------
        |  1 file changed, 15 insertions(+), 17 deletions(-)
PICK    * 3a4c1c100d Java annotation array parsing fixes
        |  src/compiler/scala/tools/nsc/javac/JavaParsers.scala  | 78 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------
        |  test/files/neg/java-annotation-match-error.check      |  7 +++++++
        |  test/files/pos/java-annotation-match-error/Ann.java   |  7 +++++++
        |  test/files/pos/java-annotation-match-error/J.java     | 22 ++++++++++++++++++++++
        |  test/files/pos/java-annotation-match-error/test.scala | 11 +++++++++++
PICK    *   4dd0abeab2 (origin/2.12.x, topic/unrelated-equals-reflexive, 2.12.x) Merge pull request #8980 from mkeskells/2.12.x_Map_++_regression
        |\
        | * ed36c8bbcc (origin/pr/8980) fix regression in Map ++
        | |  .../scala/collection/immutable/HashMap.scala     |  2 +-
        | |  .../scala/collection/immutable/HashMapTest.scala | 26 ++++++++++++++++++++
        | |  2 files changed, 27 insertions(+), 1 deletion(-)
PICK    * |   1c92061d51 Merge pull request #8971 from joroKr21/implicit-by-namme
        |\ \
        | * | eaf1b749fc (origin/pr/8971) [nomerge] Convert implicit by-name error to a type error
        | | |  src/compiler/scala/tools/nsc/ast/parser/Parsers.scala        | 4 ----
        | | |  src/compiler/scala/tools/nsc/typechecker/ContextErrors.scala | 3 +++
        | | |  src/compiler/scala/tools/nsc/typechecker/Typers.scala        | 5 +++--
        | | |  test/files/neg/implicit-by-name.check                        | 4 ++++
        | | |  test/files/neg/implicit-by-name.scala                        | 4 ++++
        | | |  5 files changed, 14 insertions(+), 6 deletions(-)
PICK    * | |   d91c247bb8 Merge pull request #8979 from mkeskells/2.12.x_RB_set_ops
        |\ \ \
        | * | | 34ccc48914 (origin/pr/8979) consider structural sharing
        | | |/
        | |/|
        | | |    src/library/scala/collection/immutable/RedBlackTree.scala | 4 +++-
        | | |    1 file changed, 3 insertions(+), 1 deletion(-)
PICK    * | |   4b4eb1a2f8 Merge pull request #8849 from lrytz/t11927
        |\ \ \
        | * | | 7580a83407 (origin/pr/8849) Exclude sig files in Symbol.sourceFile
        | | | |  src/reflect/scala/reflect/internal/Symbols.scala | 6 +++++-
        | | | |  1 file changed, 5 insertions(+), 1 deletion(-)
PICK    * | | |   85ec3c5a9e Merge pull request #8781 from dwijnand/2.12/annotation-parsing-and-Deprecated
        |\ \ \ \
        | |_|_|/
        |/| | |
        | * | | 3c8908748a (origin/pr/8781) Honour @Deprecated in joint-compiled Java sources
        | | | |  .../tools/nsc/symtab/classfile/ClassfileParser.scala     | 4 +---
        | | | |  src/reflect/scala/reflect/internal/Definitions.scala     | 1 +
        | | | |  src/reflect/scala/reflect/internal/Symbols.scala         | 2 +-
        | | | |  .../scala/reflect/runtime/JavaUniverseForce.scala        | 1 +
        | | | |  test/files/jvm/deprecation.check                         | 1 -
        | | | |  test/files/neg/t10752.check                              | 4 ++--
        | | | |  test/files/neg/t9617.check                               | 9 +++++++++
        | | | |  test/files/neg/t9617/DeprecatedClass.java                | 6 ++++++
        | | | |  test/files/neg/t9617/DeprecatedMethod.java               | 6 ++++++
        | | | |  test/files/neg/t9617/Test.flags                          | 1 +
        | | | |  test/files/neg/t9617/Test.scala                          | 5 +++++
        | | | |  11 files changed, 33 insertions(+), 7 deletions(-)
        | * | | c2db27f8a0 Implement annotation parsing in JavaParsers.
        |  / /
        | | |    .../scala/tools/nsc/ast/parser/Parsers.scala  |  31 ++---
        | | |    .../scala/tools/nsc/ast/parser/Scanners.scala |   3 +
        | | |    .../scala/tools/nsc/javac/JavaParsers.scala   | 108 ++++++++++++++----
        | | |    .../scala/tools/nsc/javac/JavaScanners.scala  |   3 +-
        | | |    .../symtab/classfile/ClassfileParser.scala    |   9 +-
        | | |    .../scala/tools/nsc/typechecker/Typers.scala  |  11 +-
        | | |    .../scala/tools/nsc/interactive/Global.scala  |   2 +-
        | | |    .../scala/tools/partest/BytecodeTest.scala    |   4 +
        | | |    .../parse-invariants/src/a/A.java             |   6 +
        | | |    .../run/t4788-separate-compilation.check      |   8 +-
        | | |    .../t4788-separate-compilation/Args_0.java    |  13 +++
        | | |    .../t4788-separate-compilation/Test_2.scala   |  20 ++++
        | | |    test/files/run/t4788.check                    |   8 +-
        | | |    test/files/run/t4788/Args.java                |  13 +++
        | | |    test/files/run/t4788/Test.scala               |  20 ++++
        | | |    test/files/run/t8928.javaopts                 |   1 +
        | | |    test/files/run/t8928/Annotated_0.java         |  19 +++
        | | |    test/files/run/t8928/Annotated_1.java         |  19 +++
        | | |    test/files/run/t8928/Array_0.java             |  14 +++
        | | |    test/files/run/t8928/Checks_0.scala           |  84 ++++++++++++++
        | | |    test/files/run/t8928/Empty_0.java             |   7 ++
        | | |    test/files/run/t8928/Enum_0.java              |  12 ++
        | | |    test/files/run/t8928/Macros_0.scala           |  16 +++
        | | |    test/files/run/t8928/Nested_0.java            |  13 +++
        | | |    test/files/run/t8928/NoArgs_0.java            |   7 ++
        | | |    test/files/run/t8928/Simple_0.java            |  18 +++
        | | |    test/files/run/t8928/Test_1.scala             |  16 +++
        | | |    27 files changed, 441 insertions(+), 44 deletions(-)
SKIP    * | |   d5b7f5310a Merge pull request #8965 from retronym/backport/ordering-equals
        |\ \ \
        | * | | 44318c8959 (retronym/backport/ordering-equals, origin/pr/8965, backport/ordering-equals) Backport Ordering equality and other improvements
        | | | |  build.sbt                                    |  11 +
        | | | |  src/library/scala/math/Ordering.scala        | 465 ++++++++++++-------
        | | | |  src/library/scala/math/PartialOrdering.scala |   6 +-
        | | | |  test/junit/scala/math/OrderingTest.scala     |  26 +-
        | | | |  4 files changed, 351 insertions(+), 157 deletions(-)
PICK    * | | |   53abec601f Merge pull request #8953 from hrhino/t11843
        |\ \ \ \
        | * | | | 96aa17712a (origin/pr/8953) Don't enter $isInstanceOf/$asInstanceOf
        | | |_|/
        | |/| |
        | | | |    .../scala/reflect/internal/Definitions.scala | 45 +++++++++++-------
        | | | |    test/files/neg/t11843.check                  | 17 +++++++
        | | | |    test/files/neg/t11843.scala                  | 16 +++++++
        | | | |    .../run/reflection-magicsymbols-invoke.check |  8 ----
        | | | |    .../run/reflection-magicsymbols-invoke.scala | 10 ++--
        | | | |    5 files changed, 65 insertions(+), 31 deletions(-)
PICK    * | | |   d05af801a7 Merge pull request #8963 from SethTisue/bug-11974
        |\ \ \ \
        | * | | | 8f9208a74f (origin/pr/8963) upgrade jQuery to 3.5.1 (was 3.4.1)
        | | | | |  build.sbt                                    |  2 +-
        | | | | |  doc/LICENSE.md                               |  2 +-
        | | | | |  doc/License.rtf                              |  2 +-
        | | | | |  doc/licenses/mit_jquery.txt                  | 27 ++++++++++++------
        | | | | |  project/ScaladocSettings.scala               |  5 ++--
        | | | | |  spec/_layouts/default.yml                    |  2 +-
        | | | | |  spec/_layouts/toc.yml                        |  2 +-
        | | | | |  .../tools/nsc/doc/html/HtmlFactory.scala     |  7 +++--
        | | | | |  8 files changed, 30 insertions(+), 19 deletions(-)
        | * | | | 295aa8ac5f fix an unused import warning
        |/ / / /
        | | | |    src/reflect/scala/reflect/internal/Trees.scala | 2 +-
        | | | |    1 file changed, 1 insertion(+), 1 deletion(-)
PICK    * | | |   90b48a15fe Merge pull request #8875 from mkeskells/2.12.x_MapEquals
        |\ \ \ \
        | * | | | 37cf4b6a6a (retronym/review/8875, origin/pr/8875, mkeskells/2.12.x_MapEquals, review/8875) add some comments, and avoid the equals call in some cases
        | | |/ /
        | |/| |
        | | | |    src/library/scala/collection/GenMapLike.scala | 6 +++++-
        | | | |    1 file changed, 5 insertions(+), 1 deletion(-)
PICK    * | | |   b0afbea339 Merge pull request #8957 from mkeskells/2.12.x_SortedSet_SortedMap
        |\ \ \ \
        | |/ / /
        |/| | |
        | * | | a545607ec0 (origin/pr/8957, mkeskells/2.12.x_SortedSet_SortedMap) reduce allocations for SortedSet/Map
        | | | |  src/library/scala/collection/generic/SortedMapFactory.scala | 5 ++++-
        | | | |  src/library/scala/collection/generic/SortedSetFactory.scala | 5 ++++-
        | | | |  src/library/scala/collection/immutable/SortedMap.scala      | 2 ++
        | | | |  src/library/scala/collection/immutable/SortedSet.scala      | 3 +++
        | | | |  test/junit/scala/collection/immutable/SortedMapTest.scala   | 6 +++---
        | | | |  test/junit/scala/collection/immutable/SortedSetTest.scala   | 6 +++---
        | | | |  6 files changed, 19 insertions(+), 8 deletions(-)
        | * | | 7f3e098d59 allocation test for SortedSet/Map
        | | | |  .../collection/immutable/SortedMapTest.scala  | 26 +++++++++++++++++++
        | | | |  .../collection/immutable/SortedSetTest.scala  | 26 +++++++++++++++++++
        | | | |  2 files changed, 52 insertions(+)
PICK    * | | |   226e67749f (retronym/2.12.x) Merge pull request #8959 from retronym/topic/vector-empty-iterator
        |\ \ \ \
        | * | | | 733177303d (origin/pr/8959) Avoid iterator allocation for empty Vectors
        | | | | |  src/library/scala/collection/immutable/Vector.scala | 10 +++++++---
        | | | | |  1 file changed, 7 insertions(+), 3 deletions(-)
PICK    * | | | |   f6833706e1 Merge pull request #8956 from mkeskells/2.12.x_GenMap_equals
        |\ \ \ \ \
        | |/ / / /
        |/| | | |
        | * | | | 5a198871db (origin/pr/8956, mkeskells/2.12.x_GenMap_equals) remove the allocation of `Some` from checking maps equality check consistent equality for Tree/Hash sets and maps
        | | | | |  .../scala/collection/GenMapLike.scala        | 12 +--
        | | | | |  .../collection/immutable/TreeMapTest.scala   | 66 ++++++++++++++++
        | | | | |  .../collection/immutable/TreeSetTest.scala   | 71 +++++++++++++++++-
        | | | | |  3 files changed, 140 insertions(+), 9 deletions(-)
PICK    * | | | | cef4e10468 Merge pull request #8954 from mkeskells/2.12.x_TreeMap_TreeSet_fix_equals
        |\| | | |
        | |/ / /
        |/| | |
        | * | | 0859cc5778 (origin/pr/8954, mkeskells/2.12.x_TreeMap_TreeSet_fix_equals) use compare rather than equals
        | | | |  build.sbt                                     |  3 +-
        | | | |  .../collection/immutable/RedBlackTree.scala   |  8 ++--
        | | | |  .../collection/immutable/TreeMapTest.scala    | 42 +++++++++++++++----
        | | | |  .../collection/immutable/TreeSetTest.scala    | 36 ++++++++++++----
        | | | |  4 files changed, 71 insertions(+), 18 deletions(-)
SKIP    * | | |   621f104e6c Merge pull request #8952 from mkeskells/2.12.x_TreeMap_TreeSet_sameCBF
        |\ \ \ \
        | * | | | 4f4f9dcae0 (origin/pr/8952) fix sameCBF in TreeSet and TreeMap
        | |/ / /
        | | | |    build.sbt                                    |  4 ++++
        | | | |    .../generic/SortedMapFactory.scala           |  1 +
        | | | |    .../generic/SortedSetFactory.scala           |  2 ++
        | | | |    .../scala/collection/immutable/TreeMap.scala | 22 ++++++++++++------
        | | | |    .../scala/collection/immutable/TreeSet.scala |  9 ++++---
        | | | |    5 files changed, 28 insertions(+), 10 deletions(-)
PICK    * | | |   6cde741c63 Merge pull request #8944 from retronym/topic/source-reader-allocation
        |\ \ \ \
        | |_|/ /
        |/| | |
        | * | | fa713ac614 (retronym/topic/source-reader-allocation, origin/pr/8944, topic/source-reader-allocation) Avoid byte array allocation for non-vanilla source files
        |/ / /
        | | |    src/compiler/scala/tools/nsc/io/SourceReader.scala | 5 +++--
        | | |    1 file changed, 3 insertions(+), 2 deletions(-)
PICK    * | |   03aecb8d07 (mkeskells/2.12.x, topic/open-tracing) Merge pull request #8936 from lrytz/faster-dce
        |\ \ \
        | * | | 2424146490 (origin/pr/8936) Reduce allocation cost of dead code elimination
        |/ / /
        | | |    .../backend/jvm/analysis/BackendUtils.scala   |  26 ++-
        | | |    .../backend/jvm/opt/ClosureOptimizer.scala    |   2 +-
        | | |    .../tools/nsc/backend/jvm/opt/Inliner.scala   |   2 +-
        | | |    .../tools/nsc/backend/jvm/opt/LocalOpt.scala  | 186 +++++++++++++-----
        | | |    .../backend/jvm/opt/UnreachableCodeTest.scala |   2 +-
        | | |    5 files changed, 161 insertions(+), 57 deletions(-)
SKIP    * | |   cb3ae4584a Merge pull request #8739 from mkeskells/2.12.x_TreeMapBuilder-1
        |\ \ \
        | * | | 37988e8612 (origin/pr/8739, mkeskells/2.12.x_TreeMapBuilder-1) A simple TreeMapBuilder
        | | | |  build.sbt                                     |  3 +
        | | | |  .../scala/collection/immutable/TreeMap.scala  | 61 +++++++++++++++++++
        | | | |  2 files changed, 64 insertions(+)
PICK    * | | |   a395462872 Merge pull request #8928 from retronym/faster/unexpandedName
        |\ \ \ \
        | * | | | cf1652bdc8 (retronym/faster/unexpandedName, origin/pr/8928) Reduce allocation in unexpandedName
        | | | | |  .../scala/reflect/internal/StdNames.scala    | 23 ++++++++++--------
        | | | | |  1 file changed, 13 insertions(+), 10 deletions(-)
PICK    * | | | |   377f8cbff3 Merge pull request #8927 from retronym/faster/class-rep-substring
        |\ \ \ \ \
        | * | | | | ccdf74bcc5 (retronym/faster/class-rep-substring, origin/pr/8927) Reduce alloctions when loading packages from classpath
        | |/ / / /
        | | | | |    .../tools/nsc/classpath/ClassPath.scala     | 10 +++---
        | | | | |    .../tools/nsc/symtab/BrowsingLoaders.scala  |  2 +-
        | | | | |    .../tools/nsc/symtab/SymbolLoaders.scala    | 30 +++++++++++------
        | | | | |    .../scala/tools/nsc/util/ClassPath.scala    | 12 +++++++
        | | | | |    4 files changed, 39 insertions(+), 15 deletions(-)
PICK    * | | | |   6ab0725bcd Merge pull request #8926 from retronym/topic/map-get-or-else
        |\ \ \ \ \
        | * | | | | e306b3d353 (retronym/topic/map-get-or-else, origin/pr/8926) Avoid some Some allocations in HashMaps
        | |/ / / /
        | | | | |    build.sbt                                   |  7 ++++-
        | | | | |    .../collection/immutable/HashMap.scala      | 27 +++++++++++++++--
        | | | | |    .../collection/mutable/LinkedHashMap.scala  |  7 +++++
        | | | | |    3 files changed, 38 insertions(+), 3 deletions(-)
PICK    * | | | |   a1336a8a12 Merge pull request #8924 from retronym/topic/synthetics-dont-have-classfiles
        |\ \ \ \ \
        | * | | | | 2809c7e7fe (retronym/topic/synthetics-dont-have-classfiles, origin/pr/8924) Workaround performance bug in Zinc
        | |/ / / /
        | | | | |    .../nsc/classpath/AggregateClassPath.scala  | 40 +++++++++++------
        | | | | |    1 file changed, 27 insertions(+), 13 deletions(-)
SKIP    * | | | |   f22dd0e9cb Merge pull request #8909 from mkeskells/2.12.x_seperate_CBF
        |\ \ \ \ \
        | * | | | | bd69891c72 (origin/pr/8909, mkeskells/2.12.x_seperate_CBF) separate CanBuildFrom for each SeqFactory
        | | |_|/ /
        | |/| | |
        | | | | |    .../scala/collection/IndexedSeq.scala       |  6 +---
        | | | | |    .../generic/IndexedSeqFactory.scala         |  5 +--
        | | | | |    .../scala/collection/immutable/List.scala   |  4 ++-
        | | | | |    .../scala/collection/immutable/Vector.scala |  4 ++-
        | | | | |    test/files/run/t6150.scala                  | 31 ++++++++++-------
        | | | | |    .../collection/immutable/ListTest.scala     | 17 +++++----
        | | | | |    6 files changed, 37 insertions(+), 30 deletions(-)
SKIP    * | | | |   44a177810b Merge pull request #8915 from retronym/topic/actually-reuse-buffer
        |\ \ \ \ \
        | |_|/ / /
        |/| | | |
        | * | | | 2ccc7489a2 (retronym/topic/actually-reuse-buffer, origin/pr/8915) Actually use the reuseable buffer/UTF-8 decoder
        | | | | |  .../nsc/symtab/classfile/ClassfileParser.scala      | 11 ++++++-----
        | | | | |  .../tools/nsc/symtab/classfile/DataReader.scala     |  2 ++
        | | | | |  .../nsc/symtab/classfile/ReusableDataReader.scala   |  2 ++
        | | | | |  3 files changed, 10 insertions(+), 5 deletions(-)
PICK    * | | | |   04e59dfdbc (topic/immutable-jar) Merge pull request #8921 from dwijnand/PipelineMain/compiler-lazy-close
        |\ \ \ \ \
        | * | | | | 26ecb3a0c1 (origin/pr/8921) PipelineMain: only close initialised compilers
        |/ / / / /
        | | | | |    src/compiler/scala/tools/nsc/PipelineMain.scala | 12 ++++++++----
        | | | | |    1 file changed, 8 insertions(+), 4 deletions(-)
PICK    * | | | |   7d4c3f2fa2 Merge pull request #8914 from retronym/topic/find-member-fast-flags
        |\ \ \ \ \
        | * | | | | 92bb1e0423 (retronym/topic/find-member-fast-flags, origin/pr/8914, topic/find-member-fast-flags) Optimize flag lookup in findMember
        |/ / / / /
        | | | | |    src/reflect/scala/reflect/internal/Symbols.scala     | 7 ++++++-
        | | | | |    .../scala/reflect/internal/tpe/FindMembers.scala     | 9 ++++++++-
        | | | | |    2 files changed, 14 insertions(+), 2 deletions(-)
PICK    * | | | |   e366262ef7 Merge pull request #8917 from retronym/topic/destatify
        |\ \ \ \ \
        | * | | | | 7d8285fe75 (retronym/topic/destatify, origin/pr/8917) Remove some statistics
        | |/ / / /
        | | | | |    src/compiler/scala/tools/nsc/Global.scala                | 2 +-
        | | | | |    src/compiler/scala/tools/nsc/typechecker/Implicits.scala | 3 ---
        | | | | |    src/compiler/scala/tools/nsc/typechecker/Typers.scala    | 3 ---
        | | | | |    src/reflect/scala/reflect/internal/Scopes.scala          | 3 ---
        | | | | |    src/reflect/scala/reflect/internal/Trees.scala           | 4 ----
        | | | | |    src/reflect/scala/reflect/internal/Types.scala           | 1 -
        | | | | |    6 files changed, 1 insertion(+), 15 deletions(-)
PICK    * | | | |   aedd45d9f5 Merge pull request #8911 from retronym/topic/pt-arity-cache-goes-wild
        |\ \ \ \ \
        | * | | | | d40587a84d (retronym/topic/pt-arity-cache-goes-wild, origin/pr/8911) Use cache of implicit pt function arity more often
        | |/ / / /
        | | | | |    src/compiler/scala/tools/nsc/typechecker/Implicits.scala | 4 ++--
        | | | | |    1 file changed, 2 insertions(+), 2 deletions(-)
PICK    * | | | |   6c6f9adf84 Merge pull request #8912 from retronym/topic/depoly-cache
        |\ \ \ \ \
        | * | | | | 65e1e02cfa (retronym/topic/depoly-cache, origin/pr/8912) Cache the depoly-ed type of ImplicitInfo.tpe
        | |/ / / /
        | | | | |    .../tools/nsc/typechecker/Implicits.scala   | 26 ++++++++++-------
        | | | | |    1 file changed, 16 insertions(+), 10 deletions(-)
SKIP    * | | | |   18f027f911 Merge pull request #8916 from retronym/backport/infos
        |\ \ \ \ \
        | |/ / / /
        |/| | | |
        | * | | | 617dedb343 (retronym/backport/infos, origin/pr/8916) [backport] Break up Symbol.info for JIT friendliness
        |/ / / /
        | | | |    .../scala/reflect/internal/Symbols.scala     | 193 ++++++++---------
        | | | |    1 file changed, 95 insertions(+), 98 deletions(-)
SKIP    * | | |   94b39e80df Merge pull request #8907 from dwijnand/bp/PipelineMain
        |\ \ \ \
        | |/ / /
        |/| | |
        | * | | 555fdc100e (origin/pr/8907) [nomerge] Reimplement PipelineMain's sequencing to avoid races
        | | | |  .../scala/tools/nsc/PipelineMain.scala        | 57 ++++++++-----------
        | | | |  1 file changed, 23 insertions(+), 34 deletions(-)
        | * | | 2ce658ce03 [nomerge] "At least it's not a NRE"
        | | | |  .../scala/tools/nsc/PipelineMain.scala        | 20 +++++++++----------
        | | | |  .../scala/tools/nsc/DeterminismTest.scala     |  1 +
        | | | |  2 files changed, 10 insertions(+), 11 deletions(-)
PICK    * | | |   1c6dbc5301 Merge pull request #8893 from retronym/faster/avoid-needs-flat-classes
        |\ \ \ \
        | |/ / /
        |/| | |
        | * | | 5c998bbfe9 (retronym/faster/avoid-needs-flat-classes, origin/pr/8893) microopt subtyping avoiding Symbol.{owner,needFlatClasses}
        | | | |  src/reflect/scala/reflect/internal/tpe/TypeComparers.scala | 2 +-
        | | | |  1 file changed, 1 insertion(+), 1 deletion(-)
PICK    * | | |   59c2e32825 Merge pull request #8903 from mkeskells/2.12.x_simplify_RB_balance
        |\ \ \ \
        | * | | | c7c6f770a9 (origin/pr/8903, mkeskells/2.12.x_simplify_RB_balance) simplify, streamline and document balanceLeft and balanceRight
        | | | | |  .../collection/immutable/RedBlackTree.scala  | 126 ++++++++++++-----
        | | | | |  1 file changed, 93 insertions(+), 33 deletions(-)
PICK    * | | | |   22d4caeeb3 Merge pull request #8901 from retronym/topic/sorted-map-regression
        |\ \ \ \ \
        | * | | | | 017302ccee (retronym/topic/sorted-map-regression, origin/pr/8901) Fix regression in SortedSet.==
        | | |/ / /
        | |/| | |
        | | | | |    .../collection/immutable/SortedSet.scala    |  2 +-
        | | | | |    .../collection/SortedSetMapEqualsTest.scala | 73 +++++++++++++++++
        | | | | |    2 files changed, 74 insertions(+), 1 deletion(-)
PICK    * | | | |   4907bf248b Merge pull request #8902 from retronym/deprecate/treeTpe
        |\ \ \ \ \
        | |_|/ / /
        |/| | | |
        | * | | | 4d73f5f48f (retronym/deprecate/treeTpe, origin/pr/8902) Temporarily reinstate global.treeTpe for compat with scala-meta
        | |/ / /
        | | | |    src/reflect/scala/reflect/internal/Types.scala | 2 ++
        | | | |    1 file changed, 2 insertions(+)
PICK    * | | |   7021d5837e Merge pull request #8790 from mkeskells/2.12.x_SeqList2
        |\ \ \ \
        | * | | | 8f657162dc (origin/pr/8790, mkeskells/2.12.x_SeqList2) avoid creation of ListBuffers for small Seq.apply, like we do for List.apply
        | | | | |  .../scala/tools/nsc/transform/CleanUp.scala  | 24 +++++++++++++--
        | | | | |  .../scala/reflect/internal/Definitions.scala |  1 +
        | | | | |  .../scala/reflect/internal/StdNames.scala    |  1 +
        | | | | |  .../reflect/runtime/JavaUniverseForce.scala  |  1 +
        | | | | |  test/junit/scala/collection/SeqTest.scala    | 18 +++++++++++
        | | | | |  test/junit/scala/collection/Sizes.scala      | 28 ++++++++++++++++--
        | | | | |  .../collection/immutable/ListTest.scala      | 17 +++++++++++
        | | | | |  .../scala/collection/immutable/SeqTest.scala | 18 +++++++++++
        | | | | |  8 files changed, 104 insertions(+), 4 deletions(-)
SKIP    * | | | |   65ba92a026 Merge pull request #8898 from mkeskells/2.12.x_HashMapBuilderBug
        |\ \ \ \ \
        | |_|_|/ /
        |/| | | |
        | * | | | 7f40ff827a (origin/pr/8898, mkeskells/2.12.x_HashMapBuilderBug) cope with a HashMapBuilder merging a two HashTrieMaps, where the builder contains an immutable compressed bitmap that doesn't contain the target bit of the first bit position to be merged
        |/ / / /
        | | | |    .../scala/collection/immutable/HashMap.scala | 26 +++++++++++-------
        | | | |    .../collection/immutable/HashMapTest.scala   | 17 ++++++++++++
        | | | |    .../collection/immutable/HashSetTest.scala   | 18 ++++++++++++
        | | | |    3 files changed, 51 insertions(+), 10 deletions(-)
PICK    * | | |   7b65f021f1 Merge pull request #8897 from retronym/topic/local-var-table
        |\ \ \ \
        | * | | | 93d1b5cf6c (retronym/topic/local-var-table, origin/pr/8897) Fix start of local var visibility in classfiles
        | | |/ /
        | |/| |
        | | | |    .../tools/nsc/backend/jvm/BCodeBodyBuilder.scala     |  2 +-
        | | | |    .../scala/tools/nsc/backend/jvm/BytecodeTest.scala   | 10 +++++-----
        | | | |    .../backend/jvm/opt/UnusedLocalVariablesTest.scala   |  4 ++--
        | | | |    3 files changed, 8 insertions(+), 8 deletions(-)
PICK    * | | |   c470b11ebb Merge pull request #8896 from retronym/topic/force-cp-caching
        |\ \ \ \
        | * | | | 72b25b8a9b (retronym/topic/force-cp-caching, origin/pr/8896, topic/force-cp-caching) Add an option to override Zinc's automatic use of -YdisableFlatCpCaching
        | |/ / /
        | | | |    .../tools/nsc/classpath/ZipAndJarFileLookupFactory.scala    | 3 ++-
        | | | |    src/compiler/scala/tools/nsc/settings/ScalaSettings.scala   | 4 +++-
        | | | |    2 files changed, 5 insertions(+), 2 deletions(-)
PICK    * | | |   8270221567 Merge pull request #8775 from mkeskells/2.12.x_RB_allocations
        |\ \ \ \
        | * | | | 93afae77c8 (origin/pr/8775, mkeskells/2.12.x_RB_allocations) RedBlackTree should not allocation if the Key and Value are the same JVM instance
        | |/ / /
        | | | |    .../collection/immutable/RedBlackTree.scala  | 25 +++++++++++++-----
        | | | |    .../collection/immutable/TreeMapTest.scala   | 14 +++++++++-
        | | | |    .../collection/immutable/TreeSetTest.scala   | 24 ++++++++++++++++-
        | | | |    3 files changed, 55 insertions(+), 8 deletions(-)
PICK    * | | |   e9d69cb5c2 Merge pull request #8883 from mkeskells/2.12.x_fasterRedBlackEqual
        |\ \ \ \
        | * | | | 6d930a1ed5 (origin/pr/8883, mkeskells/2.12.x_fasterRedBlackEqual) walks though the tree the compare, with some ability to skip identical subtrees
        | | | | |  build.sbt                                               | 3 ++-
        | | | | |  .../scala/collection/immutable/RedBlackTree.scala       | 8 ++++----
        | | | | |  2 files changed, 6 insertions(+), 5 deletions(-)
PICK    * | | | |   8c1a0420f9 Merge pull request #8892 from retronym/faster/phase-by-id
        |\ \ \ \ \
        | * | | | | 900ca947d8 (retronym/faster/phase-by-id, origin/pr/8892, faster/phase-by-id) Optimize adaptInfos by devirtualizing Symbol.phaseWithId
        | | |/ / /
        | |/| | |
        | | | | |    build.sbt                                          |  4 ++++
        | | | | |    src/compiler/scala/tools/nsc/Global.scala          |  4 ----
        | | | | |    .../scala/reflect/internal/SymbolTable.scala       |  3 ++-
        | | | | |    .../scala/reflect/runtime/ReflectSetup.scala       |  4 ++--
        | | | | |    .../nsc/symtab/SymbolTableForUnitTesting.scala     | 10 +++-------
        | | | | |    5 files changed, 11 insertions(+), 14 deletions(-)
PICK    * | | | |   b1f31de4f4 Merge pull request #8891 from retronym/faster/zip-archive-get-dir
        |\ \ \ \ \
        | * | | | | 48e357a84d (retronym/faster/zip-archive-get-dir, origin/pr/8891, faster/zip-archive-get-dir) Remove counter-productive use of cache and an unused parameter
        | | | | | |  src/reflect/scala/reflect/io/ZipArchive.scala | 8 ++++----
        | | | | | |  1 file changed, 4 insertions(+), 4 deletions(-)
        | * | | | | e6b0a1347e Remove exploratory assertion.
        | | | | | |  src/reflect/scala/reflect/io/ZipArchive.scala | 1 -
        | | | | | |  1 file changed, 1 deletion(-)
        | * | | | | 706858959e Reduce string allocations in JAR classpath elements
        | |/ / / /
        | | | | |    .../scala/reflect/io/ZipArchive.scala       | 18 +++++++++++++++--
        | | | | |    1 file changed, 16 insertions(+), 2 deletions(-)
SKIP    * | | | |   c566c70001 Merge pull request #8889 from retronym/backport/assoc-file
        |\ \ \ \ \
        | * | | | | 73d0d93bcc (retronym/backport/assoc-file, origin/pr/8889, backport/assoc-file) Unit test for previous backport.
        | | | | | |  .../SymbolLoadersAssociatedFileTest.scala   | 34 +++++++++++++++++
        | | | | | |  1 file changed, 34 insertions(+)
        | * | | | | ef31f42b47 [backport] Set class and module symbol associated files
        | | |_|/ /
        | |/| | |
        | | | | |    .../scala/tools/nsc/symtab/SymbolLoaders.scala   | 12 ++----------
        | | | | |    1 file changed, 2 insertions(+), 10 deletions(-)
PICK    * | | | |   73b9314b02 Merge pull request #8894 from retronym/faster/_chrs
        |\ \ \ \ \
        | |_|/ / /
        |/| | | |
        | * | | | 8f583cf3da (retronym/faster/_chrs, origin/pr/8894) Optimize Name operations
        |/ / / /
        | | | |    .../scala/reflect/internal/Names.scala       | 27 ++++++++++++------
        | | | |    1 file changed, 18 insertions(+), 9 deletions(-)
SKIP    * | | |   ae34e96f2e Merge pull request #8862 from retronym/backport/set-iterator
        |\ \ \ \
        | |/ / /
        |/| | |
        | * | | 5c0ea24d09 (retronym/backport/set-iterator, origin/pr/8862) Reorder MiMi exceptions to align with 2.13.x branch
        | | | |  build.sbt | 14 +++++++-------
        | | | |  1 file changed, 7 insertions(+), 7 deletions(-)
        | * | | f9a11a8346 (backport/set-iterator) [backport] SetN / MapN optimizations
        | | | |  build.sbt                                     | 12 ++-
        | | | |  .../scala/collection/immutable/Map.scala      | 55 +++++++++++
        | | | |  .../scala/collection/immutable/Set.scala      | 95 +++++++++++++++++--
        | | | |  3 files changed, 152 insertions(+), 10 deletions(-)
SKIP    * | | |   870ab78081 Merge pull request #8795 from som-snytt/issue/11903
        |\ \ \ \
        | |_|/ /
        |/| | |
        | * | | 64276dffa0 (origin/pr/8795) [backport] 7768 completed future is not blocking
        |  / /
        | | |    src/library/scala/concurrent/package.scala | 12 ++++++++----
        | | |    1 file changed, 8 insertions(+), 4 deletions(-)
SKIP    * | |   fd7926f74a Merge pull request #8722 from rorygraves/mike/2.12.x_hashSetBuilder
        |\ \ \
        | * | | 42bc67b562 (rorygraves/mike/2.12.x_hashSetBuilder, origin/pr/8722, review/8722) Add a releaseFence before the builder publishes result
        | | | |  src/library/scala/collection/immutable/HashSet.scala | 5 +++--
        | | | |  1 file changed, 3 insertions(+), 2 deletions(-)
        | * | | ae9eeb57db Create a HashSet builder with limited mutability
        | | | |  build.sbt                                     |  14 +-
        | | | |  .../scala/collection/immutable/HashSet.scala  | 318 +++++++++++++++++-
        | | | |  .../scala/collection/immutable/Set.scala      |  70 +++-
        | | | |  .../parallel/immutable/ParHashSet.scala       |   5 +-
        | | | |  .../collection/immutable/HashSetTest.scala    |  31 +-
        | | | |  5 files changed, 415 insertions(+), 23 deletions(-)
        | * | | 178280aa37 add a builder benchmark
        |/ / /
        | | |    .../immutable/HashSetBenchmarkData.scala      |  14 +
        | | |    .../immutable/HashSetBuilderBenchmark.scala   | 249 ++++++++++++++++++
        | | |    .../immutable/HashSetBulkBenchmark.scala      |  13 +-
        | | |    3 files changed, 264 insertions(+), 12 deletions(-)
SKIP   * | |   bfa40a5d71 Merge pull request #8726 from rorygraves/mike/2.12.x_hashMapBuilder
        |\ \ \
        | * | | 9460890b36 (rorygraves/mike/2.12.x_hashMapBuilder, origin/pr/8726, mike/2.12.x_hashMapBuilder) Add a releaseFence before the builder publishes result
        | | | |  src/library/scala/collection/immutable/HashMap.scala | 1 +
        | | | |  1 file changed, 1 insertion(+)
        | * | | f38b35ac0e Create a HashMap builder with limited mutability
        | | | |  build.sbt                                     |  14 +
        | | | |  .../scala/collection/immutable/HashMap.scala  | 346 +++++++++++++++++-
        | | | |  .../scala/collection/immutable/Map.scala      |  60 +++
        | | | |  .../immutable/HashMapBenchmarkData.scala      |  14 +
        | | | |  .../immutable/HashMapBuilderBenchmark.scala   | 218 +++++++++++
        | | | |  .../immutable/HashMapBulkBenchmark.scala      |  12 -
        | | | |  6 files changed, 638 insertions(+), 26 deletions(-)
PICK    * | | |   acabb8ab4e Merge pull request #8768 from hrhino/t10600
        |\ \ \ \
        | * | | | b97172291c (origin/pr/8768) Elim erased value types from sammy bridges
        |  / / /
        | | | |    .../tools/nsc/transform/Delambdafy.scala      |  4 ++--
        | | | |    test/files/pos/t10600.scala                   | 17 +++++++++++++++++
        | | | |    2 files changed, 19 insertions(+), 2 deletions(-)
PICK    * | | |   e4cac9ab07 Merge pull request #8868 from hrhino/topic/transient-object
        |\ \ \ \
        | * | | | 32f3dc0528 (origin/pr/8868) @transient object
        | | | | |  .../scala/tools/nsc/transform/Fields.scala   |  2 ++
        | | | | |  test/files/run/transient-object.check        |  4 +++
        | | | | |  test/files/run/transient-object.scala        | 33 ++++++++++++++++++
        | | | | |  3 files changed, 39 insertions(+)
PICK    * | | | |   1cf5f4b2af Merge pull request #8869 from hrhino/t11917
        |\ \ \ \ \
        | * | | | | 2c9b4ceec2 (origin/pr/8869) Relax a few Java checks
        | |/ / / /
        | | | | |    .../scala/tools/nsc/typechecker/Typers.scala     | 12 +++++++-----
        | | | | |    test/files/pos/t11917.flags                      |  1 +
        | | | | |    test/files/pos/t11917/A.java                     |  3 +++
        | | | | |    test/files/pos/t11917/X.java                     |  3 +++
        | | | | |    test/files/pos/t11917/Z.scala                    |  3 +++
        | | | | |    5 files changed, 17 insertions(+), 5 deletions(-)
SKIP    * | | | |   ac02631587 Merge pull request #8881 from hrhino/backport/8561
        |\ \ \ \ \
        | |_|/ / /
        |/| | | |
        | * | | | 7f867b77c0 (origin/pr/8881) [backport] Avoid testing unreliable accessor in -Wself-implicit
        | | | | |  .../tools/nsc/typechecker/Implicits.scala    |  2 +-
        | | | | |  test/files/pos/t11813.scala                  | 33 ++++++++++++++++++
        | | | | |  2 files changed, 34 insertions(+), 1 deletion(-)
PICK    * | | | |   aae454ca80 Merge pull request #8774 from mkeskells/2.12.x_fasterRedBlackEqual
        |\ \ \ \ \
        | * | | | | 76d36e8bc0 (origin/pr/8774) walks though the tree the compare, with some ability to skip identical subtrees
        | | | | | |  build.sbt                                   |  7 ++
        | | | | | |  .../collection/immutable/RedBlackTree.scala | 73 ++++++++++++++++-
        | | | | | |  .../collection/immutable/TreeMap.scala      |  5 ++
        | | | | | |  .../collection/immutable/TreeSet.scala      |  6 ++
        | | | | | |  .../collection/immutable/TreeMapTest.scala  | 40 +++++++++
        | | | | | |  .../collection/immutable/TreeSetTest.scala  | 61 ++++++++++++++
        | | | | | |  6 files changed, 188 insertions(+), 4 deletions(-)
PICK    * | | | | |   eab605a460 Merge pull request #8876 from mkeskells/2.12.x_sorted_equals
        |\ \ \ \ \ \
        | * | | | | | 11f93da364 (origin/pr/8876, mkeskells/2.12.x_sorted_equals) make sortedMap and SortedSet #equals O(n) when comparing to similar
        | |/ / / / /
        | | | | | |    build.sbt                                  |  3 +++
        | | | | | |    .../collection/immutable/SortedMap.scala   | 14 +++++++++++++
        | | | | | |    .../collection/immutable/SortedSet.scala   | 17 +++++++++++++++-
        | | | | | |    3 files changed, 33 insertions(+), 1 deletion(-)
        | * | | / / 65eb39e484 (origin/pr/8872, mkeskells/2.12.x_RedBlackTreeEqualsBenchmark) Benchmark for equals checking of RedBlackTree i.e. TreeSet and TreeMap
        | | |_|/ /
        | |/| | |
        | | | | |    .../RedBlackTreeEqualsBenchmark.scala       | 110 ++++++++++++++++
        | | | | |    1 file changed, 110 insertions(+)
SKIP    * | | | |   f85b48be25 Merge pull request #8824 from mkeskells/2.12.x_ListLikeCBF
        |\ \ \ \ \
        | * | | | | 2718b572bc (origin/pr/8824, mkeskells/2.12.x_ListLikeCBF) List CFB optimisation should apply to collection.Seq#canBuildFrom and collection.immutable.Seq#canBuildFrom
        | |/ / / /
        | | | | |    .../scala/collection/immutable/List.scala   |  63 ++++++++--
        | | | | |    test/junit/scala/collection/SeqTest.scala   |  58 +++++++++
        | | | | |    .../collection/immutable/ListTest.scala     | 104 +++++++++++++++-
        | | | | |    .../collection/immutable/SeqTest.scala      |  60 ++++++++-
        | | | | |    4 files changed, 267 insertions(+), 18 deletions(-)
PICK    * | | | |   7b7eadf77a Merge pull request #8823 from mkeskells/2.12.x_RB_k_or_key
        |\ \ \ \ \
        | * | | | | 0fca6c70cd (origin/pr/8823, mkeskells/2.12.x_RB_k_or_key) remove overwrite parameter from updateNth as it is constant
        | | | | | |  .../scala/collection/immutable/RedBlackTree.scala    | 9 ++++-----
        | | | | | |  1 file changed, 4 insertions(+), 5 deletions(-)
SKIP    * | | | | |   c2985c7b4b Merge pull request #8831 from mkeskells/2020-03/2.12.x_TO_toMap
        |\ \ \ \ \ \
        | * | | | | | 08fc800b8f (origin/pr/8831, mkeskells/2020-03/2.12.x_TO_toMap) use ++= to allow to builder optimisations use seq to work correctly with parallel collections
        | | | | | | |  src/library/scala/collection/TraversableOnce.scala | 4 +---
        | | | | | | |  1 file changed, 1 insertion(+), 3 deletions(-)
PICK    * | | | | | |   8e3b1595e5 Merge pull request #8879 from hrhino/t11934
        |\ \ \ \ \ \ \
        | * | | | | | | 9a4b57096a (origin/pr/8879) Don't move RHS of specialized trait val into ctor
        | | |_|_|_|/ /
        | |/| | | | |
        | | | | | | |    .../scala/tools/nsc/transform/Constructors.scala | 2 +-
        | | | | | | |    test/files/run/t11934.scala                      | 9 +++++++++
        | | | | | | |    2 files changed, 10 insertions(+), 1 deletion(-)
PICK    * | | | | | |   3eddb62cb8 Merge pull request #8870 from hrhino/topic/meitsje-it-dea-mei-fjoer
        |\ \ \ \ \ \ \
        | |_|_|_|_|/ /
        |/| | | | | |
        | * | | | | | 6a51c7bcde (origin/pr/8870) Heed -Ywarn-unused:privates,locals
        | |/ / / / /
        | | | | | |    .../scala/reflect/reify/phases/Reshape.scala | 14 --------------
        | | | | | |    .../backend/jvm/analysis/BackendUtils.scala  |  1 -
        | | | | | |    .../tools/nsc/backend/jvm/opt/BoxUnbox.scala |  2 +-
        | | | | | |    .../nsc/backend/jvm/opt/CallGraph.scala      |  2 --
        | | | | | |    .../tools/nsc/backend/jvm/opt/LocalOpt.scala |  2 --
        | | | | | |    .../scala/tools/nsc/plugins/Plugin.scala     |  5 ++---
        | | | | | |    .../scala/tools/nsc/profile/Profiler.scala   |  3 ---
        | | | | | |    .../tools/nsc/symtab/SymbolLoaders.scala     |  6 ------
        | | | | | |    .../transform/patmat/MatchTranslation.scala  |  6 ------
        | | | | | |    .../tools/nsc/transform/patmat/Solving.scala |  4 ----
        | | | | | |    .../scala/tools/nsc/typechecker/Namers.scala |  2 --
        | | | | | |    .../nsc/typechecker/PatternTypers.scala      |  2 --
        | | | | | |    .../tools/nsc/typechecker/RefChecks.scala    |  5 +----
        | | | | | |    .../scala/tools/nsc/util/StackTracing.scala  |  1 -
        | | | | | |    .../scala/reflect/internal/Mirrors.scala     |  7 +------
        | | | | | |    .../scala/reflect/internal/Symbols.scala     |  3 ---
        | | | | | |    .../scala/reflect/internal/Types.scala       |  8 --------
        | | | | | |    .../reflect/internal/tpe/TypeToStrings.scala |  2 +-
        | | | | | |    18 files changed, 6 insertions(+), 69 deletions(-)
PICK    * | | | | |   4f9b70dfcb Merge pull request #8842 from mkeskells/2.12.x_wrapped_array
        |\ \ \ \ \ \
        | * | | | | | 85d777d6d1 (origin/pr/8842, mkeskells/2.12.x_wrapped_array, pr/8842) Rework Sizes test
        | | | | | | |  test/junit/scala/collection/Sizes.scala  | 38 ++++--------------
        | | | | | | |  test/junit/scala/tools/testing/JOL.scala | 15 +++++++
        | | | | | | |  2 files changed, 22 insertions(+), 31 deletions(-)
        | * | | | | | b8226e1b13 reduce the size of WrappedArray
        | | | | | | |  src/library/scala/collection/mutable/WrappedArray.scala | 2 +-
        | | | | | | |  test/junit/scala/collection/Sizes.scala                 | 2 +-
        | | | | | | |  2 files changed, 2 insertions(+), 2 deletions(-)
        | * | | | | | d2a06653fd basic sizes
        | | |/ / / /
        | |/| | | |
        | | | | | |    test/junit/scala/collection/Sizes.scala | 46 +++++++++++++++++++
        | | | | | |    1 file changed, 46 insertions(+)
PICK    * | | | | |   2bbb927580 Merge pull request #8858 from retronym/topic/atPos
        |\ \ \ \ \ \
        | |_|/ / / /
        |/| | | | |
        | * | | | | d6a3397877 (retronym/topic/atPos, origin/pr/8858, topic/atPos, origin/2.12) More efficient atPos under -YrangePos
        | | |_|/ /
        | |/| | |
        | | | | |    .../scala/reflect/internal/Positions.scala  | 83 +++++++++++------
        | | | | |    .../scala/reflect/internal/Trees.scala      | 52 ++++++++++-
        | | | | |    2 files changed, 106 insertions(+), 29 deletions(-)
PICK    * | | | |   df2b131dd9 Merge pull request #8861 from retronym/faster/depends
        |\ \ \ \ \
        | * | | | | 0116c76a07 (retronym/faster/depends, origin/pr/8861, faster/depends) No Unit.depends bookeeping if -Ytrack-dependencies:false
        | |/ / / /
        | | | | |    src/compiler/scala/tools/nsc/CompilationUnits.scala     | 6 +++---
        | | | | |    .../scala/tools/nsc/settings/ScalaSettings.scala        | 1 +
        | | | | |    src/compiler/scala/tools/nsc/typechecker/Infer.scala    | 3 +--
        | | | | |    3 files changed, 5 insertions(+), 5 deletions(-)
PICK    * | | | |   a2a4f0a61d Merge pull request #8860 from retronym/faster/selectorClass
        |\ \ \ \ \
        | * | | | | 9d61e83c25 (retronym/faster/selectorClass, origin/pr/8860, faster/selectorClass) Microopts in FindMember
        | |/ / / /
        | | | | |    .../reflect/internal/tpe/FindMembers.scala  | 45 ++++++++---------
        | | | | |    1 file changed, 20 insertions(+), 25 deletions(-)
PIXK    * | | | |   5dbaed9d84 Merge pull request #8859 from retronym/faster/isSelfOrSuperConstructuctorCall
        |\ \ \ \ \
        | * | | | | 3ee1e15b2b (retronym/faster/isSelfOrSuperConstructuctorCall, origin/pr/8859, faster/isSelfOrSuperConstructuctorCall) Avoid allocation of TreeInfo.Applied
        | |/ / / /
        | | | | |    .../tools/nsc/typechecker/Macros.scala      |  2 +-
        | | | | |    .../tools/nsc/typechecker/Typers.scala      |  2 +-
        | | | | |    .../scala/reflect/internal/TreeInfo.scala   | 19 +++++++++++++----
        | | | | |    3 files changed, 17 insertions(+), 6 deletions(-)
PICK    * | | | |   3be2f0d295 Merge pull request #8825 from mkeskells/2.12.x_AllocationTest
        |\ \ \ \ \
        | * | | | | a4da93b1a8 (origin/pr/8825, mkeskells/2.12.x_AllocationTest) better diagnostics from AllocationTest
        | | |/ / /
        | |/| | |
        | | | | |    .../tools/testing/AllocationTest.scala      | 84 +++++++++++------
        | | | | |    1 file changed, 54 insertions(+), 30 deletions(-)
PICK    * | | | |   83f768fd2f Merge pull request #8771 from hrhino/topic/dehoist
        |\ \ \ \ \
        | |_|_|_|/
        |/| | | |
        | * | | | 75a31a4fdc (origin/pr/8771) Dehoist many closures from Types
        |  / / /
        | | | |    .../tools/nsc/typechecker/Implicits.scala    |  4 +-
        | | | |    .../scala/tools/nsc/typechecker/Typers.scala |  6 +--
        | | | |    .../reflect/internal/TypeDebugging.scala     |  4 +-
        | | | |    .../scala/reflect/internal/Types.scala       | 43 ++++++------------
        | | | |    .../scala/reflect/internal/tpe/GlbLubs.scala | 10 ++--
        | | | |    .../internal/tpe/TypeConstraints.scala       |  8 ++--
        | | | |    .../reflect/internal/tpe/TypeMaps.scala      |  2 +-
        | | | |    7 files changed, 32 insertions(+), 45 deletions(-)
PICK    * / / / 998541a92c only one Mike Skells
        |/ / /
        | | |    .mailmap | 1 +
        | | |    1 file changed, 1 insertion(+)
SKIP    * | |   085b6cf81a Merge pull request #8834 from lrytz/stale-mima
        |\ \ \
        | |/ /
        |/| |
        | * | e458ea60e5 (origin/pr/8834) remove stale mima exception
        |/ /
        | |    build.sbt | 1 -
        | |    1 file changed, 1 deletion(-)
        * |   bb4d3e2c55 Merge pull request #8789 from mkeskells/2.12.x_SeqList1
        |\ \
PICK    | * | b1988157ec (origin/pr/8789, mkeskells/2.12.x_SeqList1) avoid creation of ListBuffers for Seq.empty and Seq()
        |  /
        | |    .../collection/generic/GenericCompanion.scala      |  5 ++++-
        | |    test/junit/scala/collection/SeqTest.scala          | 16 ++++++++++++++++
        | |    .../scala/collection/immutable/ListTest.scala      |  8 +++++++-
        | |    .../junit/scala/collection/immutable/SeqTest.scala | 16 ++++++++++++++++
        | |    4 files changed, 43 insertions(+), 2 deletions(-)
PICK    * |   794b4535b3 Merge pull request #8791 from mkeskells/2.12.x_TreeMap_getOrElse
        |\ \
        | |/
        |/|
        | * a202c422e6 (origin/pr/8791, mkeskells/2.12.x_TreeMap_getOrElse) avoid creation of Option for getOrElse
        |    src/library/scala/collection/immutable/TreeMap.scala | 6 ++++++
        |    1 file changed, 6 insertions(+)
SKIP    *   ad227ca389 Merge pull request #8793 from mkeskells/2.12.x_RedBlackTreeBenchmark_backport
        |\
        | * 42ebc28eb4 (origin/pr/8793, mkeskells/2.12.x_RedBlackTreeBenchmark_backport) backport a benchmark. Adjust API for 2.12
        |    .../immutable/RedBlackTreeBenchmark.scala        | 149 +++++++++++++++++++
        |    1 file changed, 149 insertions(+)
SKIP    *   b63fefc7c5 Merge pull request #8749 from mkeskells/2.12.x_RedBlackBackport
        |\
        | * b87dd51447 (origin/pr/8749, mkeskells/2.12.x_RedBlackBackport) Backport 2.13 BedBlackTree to 2.12
        |    build.sbt                                        |  18 +-
        |    src/library/scala/collection/SetLike.scala       |  10 +-
        |    .../scala/collection/TraversableLike.scala       |  20 +-
        |    .../collection/generic/SortedMapFactory.scala    |   1 +
        |    .../scala/collection/generic/Subtractable.scala  |   6 +-
        |    .../collection/immutable/RedBlackTree.scala      | 743 ++++++++++++-------
        |    .../scala/collection/immutable/TreeMap.scala     |  78 +-
        |    .../scala/collection/immutable/TreeSet.scala     | 107 +--
        |    8 files changed, 617 insertions(+), 366 deletions(-)
SKIP    *   29719739eb Merge pull request #8779 from retronym/backport/release-fence
        |\
        | * 74906219c1 (retronym/backport/release-fence, origin/pr/8779, backport/release-fence) Backport releaseFence for internal use in collections
        |    src/library/scala/collection/immutable/VM.java | 67 ++++++++++++++++++++++
        |    1 file changed, 67 insertions(+)
SKIP    *   9d4633dc5e Merge pull request #8807 from lrytz/2.12.11-starr
        |\
        | * a82a866e6d (origin/pr/8807) Restarr on 2.12.11
        |/
        |    build.sbt           | 2 +-
        |    versions.properties | 2 +-
        |    2 files changed, 2 insertions(+), 2 deletions(-)
        * cd8410d304 (tag: v2.12.11) Merge pull request #8787 from dwijnand/2.12/repl/class-based/outer-pointers
PICK    * be3df1782b (origin/pr/8787) Silence outer pointer warnings in class-based REPL
           .../nsc/transform/patmat/MatchTreeMaking.scala    |  2 +-
           .../run/repl-class-based-outer-pointers.check     | 14 +++++++++
           .../run/repl-class-based-outer-pointers.scala     | 35 +++++++++++++++++++++
           3 files changed, 50 insertions(+), 1 deletion(-)

retronym and others added 30 commits March 24, 2020 15:26
backport 2.13 immutable RedBlackTree to 2.12
…mark_backport

backport a benchmark. Adjust API for 2.12
Avoid creation of Option for TreeMap.getOrElse
avoid creation of ListBuffers for Seq.empty and Seq()
use seq to work correctly with parallel collections
Dehoist many closures from Types
While profiling a build I noticed that calls to disectApplied
via `isSelfOrSuperConstrCall` was an allocation hotspot.

These use cases only need to strip Apply/TypeApply, so in this
commit I've duplicated a few lines of code to to this.
  - Avoid null checks by comparing Symbols with eq rather than ==
  - Eagerly compute `selectorClass` to avoid null check on each
    access, and pass it as a parameter rather than as a field.
…ructuctorCall

Avoid allocation of TreeInfo.Applied
No Unit.depends bookkeeping if -Ytrack-dependencies:false
Direct implementations of MapN.{filterImpl,exists,forall}

(cherry picked from commit 8821b30)

Optimized iterators for immutable.SetN

Avoids projecting to a temporary List.

(cherry picked from commit 3e223d1)

Optimized filter for immutable.SetN

Avoids creating iterators and using builders and reuses the
input collection when the predicate selects all elements.

(cherry picked from commit 20b4596)
Improve performance of atPos under -Yrangepos
Put @transient on an (inner) object and it works kinda like @transient
lazy val, as you may have expected.
Last time I tried this I got called out for relaxing too much.
As justification, Java does not respect self types (so there would be a
separate-compilation inconsistency to try to enforce them) nor does it
understand non-stable prefixes.

Fixes scala/bug#11917, or at least kinda patches over it.
Makes scala faster to build and to download; what's not to like?
… collection.immutable.Seq#canBuildFrom

Update List#flatMap to
- share the last list non-empty segment if we can easily
- reduce allocations in other cases
- improve CPU usage

add test for isLikeListReusableCBF to ensure that if a future Scala version change to result of the Seq builder we detect the change and can adjust accordingly
@SethTisue SethTisue marked this pull request as draft May 20, 2020 01:20
@retronym
Copy link
Member Author

retronym commented May 20, 2020

Backport of the backend changes to defensively avoid witnessing uninitialised or stale maxlocals: #8997

@retronym
Copy link
Member Author

Tests are green now, the cla and validate-main "waiting for status" problems are because @scalabot doesn't support paging when reading the commit list.

Erroneous commit was:

```
commit 2c620a7
Merge: abcde58 8270221
Author: Jason Zaugg <[email protected]>
Date:   Thu May 14 11:17:30 2020 +1000

    Merge commit '8270221567' into merge/2.12.x-to-2.13.x-20200514
```

According to scala#8783, which removed `|| k != tree.key`,
there was no behaviour change in 2.13.x, this was just a cleanup.
Copy link
Member

@dwijnand dwijnand left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Trust.

dwijnand
dwijnand approved these changes May 20, 2020
@lrytz
Copy link
Member

lrytz commented May 29, 2020

@retronym are these all of the fixup changes for dce?

@lrytz lrytz force-pushed the merge/2.12.x-to-2.13.x-20200514 branch 2 times, most recently from 99039c1 to 69ff105 Compare May 29, 2020 15:12
@lrytz
Copy link
Member

lrytz commented May 29, 2020

I looked at the read sites of maxLocals / maxStack to ensure that control flow includes a computeMaxLocalsMaxStack. This fixes the tests, and seems more targeted than eagerly running compute... when ever a (lazy val) Analyzer is created.

However, I agree that it's brittle, and I agree that new helper methods to access the maxs is a better way forward. I'll do that.

@lrytz lrytz force-pushed the merge/2.12.x-to-2.13.x-20200514 branch from 69ff105 to 6d1cdae Compare May 29, 2020 15:52
@retronym retronym marked this pull request as ready for review May 31, 2020 23:45
@retronym
Copy link
Member Author

retronym commented Jun 1, 2020

That cleanup LVGTM, @lrytz

@SethTisue SethTisue modified the milestones: 2.13.4, 2.13.3 Jun 1, 2020
@SethTisue
Copy link
Member

/nothingtoseehere

@SethTisue
Copy link
Member

SethTisue commented Jun 1, 2020

We need to decide if this should all come forward to 2.13.x immediately, or whether to defer anything until post 2.13.3

Discussed at team meeting today. Our sense is that this package of changes seems safe enough (and anyway, the 2.13.2 regressions are not so many or so severe that 2.13.3 needs to be ultra-conservative).

@SethTisue SethTisue added the release-notes worth highlighting in next release notes label Jun 1, 2020
@SethTisue SethTisue merged commit 17570df into scala:2.13.x Jun 1, 2020
@SethTisue
Copy link
Member

SethTisue commented Jun 1, 2020

labeled with "release-notes" since it seems likely that 2.13.3 will come out before 2.12.12 does, so we might need 2.13.3 release-notes for some of these 2.12.x changes

@ijuma
Copy link
Contributor

ijuma commented Jun 2, 2020

Is there a list of 2.13.2 regressions somewhere?

@ijuma
Copy link
Contributor

ijuma commented Jun 2, 2020

I found them by looking at the issues with milestone 2.13.3 and the regressions label:

https://github.com/scala/bug/issues?q=milestone%3A2.13.3+

@SethTisue SethTisue removed the release-notes worth highlighting in next release notes label Jun 23, 2020
hamzaremmal pushed a commit to hamzaremmal/scala3 that referenced this pull request May 2, 2025
…3.x-20200514

Merge 2.12.x to 2.13.x [ci: last-only]
hamzaremmal pushed a commit to scala/scala3 that referenced this pull request May 7, 2025
…3.x-20200514

Merge 2.12.x to 2.13.x [ci: last-only]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.