Android desugaring and reproducible builds
David A. Wheeler
dwheeler at dwheeler.com
Wed Aug 11 16:21:03 UTC 2021
> On Aug 11, 2021, at 11:54 AM, Chris Lamb <chris at reproducible-builds.org> wrote:
> ...
> I've not had experience with any Android-specific desugaring
> technique, but unfortunately quite a few languages targeting the JVM
> have nondeterministic desugaring.
>
> Take, for instance, Clojure:
>
> https://tests.reproducible-builds.org/debian/rb-pkg/unstable/amd64/trapperkeeper-scheduler-clojure.html
>
> (Note the automatically-generated proxy method / inner class is placed
> in a nondeterministic order within its parent class.)
>
> I mention this because the *prevalence* of this issue within the JVM
> ecosystem indicates that reproducibility is, unfortunately, not yet a
> high priority in those circles. And so I am unsurprised that your
> Google searches are not returning results... :(
I think it’s important to clarify that desugaring *CAN* be deterministic.
The problem is that some low-level implementations fail to be deterministic (e.g., because they don’t force a sort order).
I think it’s not that hard from a technical view. It’s just that the people at those levels need to agree that it’s an issue & be willing to fix it.
--- David A. Wheeler
More information about the rb-general
mailing list