Eli Zaretskii schrieb am So., 20. Dez. 2015 um 17:37 Uhr: > > From: Philipp Stephani > > Date: Sun, 20 Dec 2015 12:48:17 +0000 > > Cc: emacs-devel@gnu.org > > > > Paul Eggert schrieb am Mo., 7. Dez. 2015 um 20:14 > Uhr: > > > > On 12/07/2015 11:00 AM, Philipp Stephani wrote: > > > this would be a rather big change. > > > > I suppose that depends on what one means by "big". To me it feels > like a > > fairly small improvement. We've already made some progress along > these > > lines in emacs-25 by removing emacs-build-system from the result of > the > > emacs-version function; we just need to make more improvements like > that. > > > > It should be in 'master', though, not in 'emacs-25', as it's not > fixing > > a bug. > > > > OK, here's a first patch that replaces system-name with a constant during > > dumping. That eliminates one source of nondeterminism. > > I'm sorry, but I don't like where this is going. I regret I didn't > speak up earlier, but better late than never. > > In a nutshell, I object to losing valuable information for the benefit > of a single specialized use case. I have nothing against supporting > reproducible builds as long as this removes information and data that > is not important to us humans when developing or debugging Emacs. For > example, changes in loaddefs files that remove non-deterministic > information from there or replace it with deterministic information > are fine with me. > > But here we are losing information about the build system that I found > useful more than once in the past when tracking bugs. We have already > removed the build system name from the bug report produced by > report-emacs-bug (I'm going to add it back, btw, unless someone > provides a _very_ good reason for its removal). Earlier, we removed > the last keystrokes, because someone was worried about their privacy, > but couldn't be bothered to delete the sensitive parts from the bug > report. And your comments indicate that you intend to remove the > build time as well, so it will be impossible to say whether a given > binary was built before or after some change. Where is all this > going? > > I'm sorry, but I cannot agree to this slippery slope, just so we could > support a single specialized use case. Let's support that use case by > providing some build-time option, either a configure-time option or a > Makefile option, or an environment variable, or something else. If > someone presents a convincing case, I might even agree to have the > release tarball build by default with that information removed > (although I found it useful in the past when reading bug reports). > But doing this in the development version is simply a non-starter. > When debugging some problem that happened elsewhere, we quite often > need every bit of information that could potentially help us, so > removing it is out of the question. > > I appreciate your efforts in providing the patch, but we will have to > find another way of supporting reproducible builds. > > > Thanks for your feedback. I'm totally happy with making this configurable and turning it off by default. My suggestion would be to use an environment variable EMACS_DETERMINISTIC_BUILD, which is used to initialize a new Boolean variable `deterministic-build'. If the variable is set, the core and Lisp packages would switch to deterministic output. I'd prefer to have this configurable at runtime so that a single Emacs binary can be used to produce both deterministic and non-deterministic output (e.g. for loaddefs). Would that be OK?