reproducible builds: inner functions are not consistently generated on Scala 3
reproducing 1.1.0-M1 with set ThisBuild / net.bzzt.reproduciblebuilds.ReproducibleBuildsPlugin.reproducibleBuildsCheckResolver := DefaultMavenRepository; ++3.3; clean; reproducibleBuildsCheck showed two nondeterminisms for me in pekko-http_3-1.1.0-M1.jar :
- In org/apache/pekko/http/scaladsl/server/directives/FileUploadDirectives.class, one build had
default·Directive·storeUploadedFile$$anonfun$1$(final·FileUploadDirectives·$this,·final·String·fieldName$1,·final·Function1·destFn$1,·final·RequestContext·ctx)anddefault·/*·synthetic·*/·Directive·storeUploadedFile$$anonfun$1(final·String·fieldName$1,·final·Function1·destFn$1,·final·RequestContext·ctx), the other hadn't - In org/apache/pekko/http/scaladsl/server/directives/RangeDirectives.class, one build didn't have
default·Directive·applyRanges$1$(final·RangeDirectives·$this,·final·LoggingAdapter·log$3,·final·RoutingSettings·settings$6,·final·Seq·ranges), the other did.
Note default·Directive·storeUploadedFile$$anonfun$1$(final·FileUploadDirectives·$this,·final·String·fieldName$1,·final·Function1·destFn$1,·final·RequestContext·ctx) is a function with an actual implementation - if that's not there, does it even work? Or is it duplicated somewhere?
Possibly related to https://github.com/scala/scala3/issues/18248
Saw something similar in the 1.1.0 release, but now with 'withRangeSupport': https://arnout.engelen.eu/reproducible-builds-diffoscope-output-pekko-http_3-1.1.0.jar/
verified with 1.2.0: https://arnout.engelen.eu/reproducible-builds-diffoscope-output-pekko-http_3-1.2.0.jar/