Bug#877418: dh-strip-nondeterminism: kills clojure performance

Chris Lamb lamby at debian.org
Fri Oct 6 09:00:27 UTC 2017

Hi dkg,

> And there are more questions too: what if multiple source files
> contributed to the creation of the compiled artifact (e.g. "include"
> directives)?

Hm, that's an excellent point.

> You can also imagine a compilation regime that detects changes to a file
> (e.g. via inotify) and immediately triggers recompilation -- with a fast
> compiler and a coarse filesystem/archive timestamp, such a regime would
> end up in the same situation (serious performance impact).

Sure, but that doesn't seem like it would happen as part of a package

> There are also problems with the digest based approach that lamby
> suggests: it's significantly more expensive to do a full source
> extraction and digest than it is to compare timestamp metadata.

If it were hardcoded into the filenames, one wouldn't need to do
anything onerous, eg.

  -rw-r--r-- 1 0 Oct  6 09:56 helloworld.adc83b19e793491b1c6ea0fd8b46cd9f32e592fc.class
  -rw-r--r-- 1 0 Oct  6 09:56 helloworld.adc83b19e793491b1c6ea0fd8b46cd9f32e592fc.clj

(Not entirely serious)

> It sounds to me like python has made a sensible tradeoff (accepting that
> equal timestamps means OK)

Just to underline, Python in Debian would not be a problem even with <
unless you consider building a .deb with SOURCE_DATE_EPOCH="$(date +%s)"
and installing that very same .deb within same second...

 … but I understand you were being more general about this topic!


     : :'  :     Chris Lamb
     `. `'`      lamby at debian.org / chris-lamb.co.uk

More information about the Reproducible-builds mailing list