pekko-http icon indicating copy to clipboard operation
pekko-http copied to clipboard

reproducible builds: inner functions are not consistently generated on Scala 3

Open raboof opened this issue 1 year ago • 2 comments

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) and default·/*·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

raboof avatar Jun 07 '24 08:06 raboof

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/

raboof avatar Oct 01 '24 10:10 raboof

verified with 1.2.0: https://arnout.engelen.eu/reproducible-builds-diffoscope-output-pekko-http_3-1.2.0.jar/

raboof avatar May 19 '25 12:05 raboof