Status Update
Comments
xa...@google.com <xa...@google.com>
je...@google.com <je...@google.com> #2
fwiw: I've seen (variations of) this very small difference in various apps:
│ │ ├── j$/util/Collection$-EL.class
│ │ │ ├── procyon -ec {}
│ │ │ │ @@ -1,14 +1,14 @@
│ │ │ │
│ │ │ │ package j$.util;
│ │ │ │
│ │ │ │ import java.util.Comparator;
│ │ │ │ import java.util.Set;
│ │ │ │ -import java.util.List;
│ │ │ │ import java.util.SortedSet;
│ │ │ │ +import java.util.List;
│ │ │ │ import java.util.LinkedHashSet;
│ │ │ │ import java.util.Iterator;
│ │ │ │ import java.util.Objects;
│ │ │ │ import j$.util.function.Consumer;
│ │ │ │ import java.util.Collection;
│ │ │ │ import java.util.OptionalLong;
│ │ │ │ import java.util.OptionalInt;
│ │ │ │ @@ -142,20 +142,20 @@
│ │ │ │ return ((j$.util.Collection)collection).spliterator();
│ │ │ │ }
│ │ │ │ if (collection instanceof LinkedHashSet) {
│ │ │ │ final LinkedHashSet obj = (LinkedHashSet)collection;
│ │ │ │ Objects.requireNonNull(obj);
│ │ │ │ return (Spliterator)new Spliterators$IteratorSpliterator((Collection)obj, 17);
│ │ │ │ }
│ │ │ │ + if (collection instanceof List) {
│ │ │ │ + return List$-CC.$default$spliterator((List)collection);
│ │ │ │ + }
│ │ │ │ if (collection instanceof SortedSet) {
│ │ │ │ final SortedSet set = (SortedSet)collection;
│ │ │ │ return (Spliterator)new SortedSet$1(set, (Collection)set, 21);
│ │ │ │ }
│ │ │ │ - if (collection instanceof List) {
│ │ │ │ - return List$-CC.$default$spliterator((List)collection);
│ │ │ │ - }
│ │ │ │ if (collection instanceof Set) {
│ │ │ │ return Set$-CC.$default$spliterator((Set)(SortedSet)collection);
│ │ │ │ }
│ │ │ │ return Collection$-CC.$default$spliterator(collection);
│ │ │ │ }
│ │ │ │ }
zs...@salesforce.com <zs...@salesforce.com> #3
Hey Clement, do you have any ideas on producing different dex files from build to build?
za...@gmail.com <za...@gmail.com> #4
The example shown above matches a non deterministic issue we had in L8 for classes ending with $-EL. This issue should be fixed on tip of tree. If you can reproduce on ToT let us know, I'll work on another fix. If the changes include something else than ordering inside the $-EL methods, let us know too, that would need to be fixed.
za...@gmail.com <za...@gmail.com> #6
I'd also be interesting in seeing the fix. Could you link the relevant commit?
he...@gmail.com <he...@gmail.com> #7
I will try it out with tip of the tree.
ch...@gmail.com <ch...@gmail.com> #8 Restricted+
sa...@gmail.com <sa...@gmail.com> #9
Thanks for sharing the instructions on how to testing with dev version of r8, Clement!
To reporter, could you try it out with dev version of r8 and see if you still see the difference? I didn't find where you enable core library desugaring in you sample project(debug_reproducible_builds branch) and you are using Android Gradle Plugin 4.2.2 instead of 7.0.
Description
DESCRIBE THE ISSUE IN DETAIL:
STEPS TO REPRODUCE:
sync<variant>LibJars
task like:libraries:text-formatting:syncReleaseLibJars
It doesn't work even if I manually force a newer ASM version like 9.2 because TypedefRemover targets ASM5. Considering AGP 7 is intended to support target/source compatibility for Java 11 and ASM 7 is what introduces it, I think it should be upgraded.
Studio Build: N/A command line only Version of Gradle Plugin: 7.0.0 Version of Gradle: 7.1.1 Version of Java: 16 OS: macOS Big Sur