[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Chicken-hackers] [PATCH] Make CHICKEN build process deterministic
From: |
Peter Bex |
Subject: |
Re: [Chicken-hackers] [PATCH] Make CHICKEN build process deterministic |
Date: |
Thu, 16 Jun 2016 14:07:30 +0200 |
User-agent: |
Mutt/1.5.23 (2014-03-12) |
On Mon, Jun 06, 2016 at 10:48:16PM +0200, Kooda wrote:
> That’s not the only problem here. Any call to (random) in the compiler
> might cause non-determinism in the output, as well as calls to
> (current-seconds) for example.
>
> If the method used in this patch not suitable, I’ll happily do it some
> other way.
>
> My first approach was to remove calls to (random) and
> (current-seconds) and use (gensym) or something similar instead,
> depending on the case. But I thought that maybe these (random) calls
> were there for a good reason so I didn’t want to change the behaviour
> of the code too much.
If the random calls are there for a good reason, overriding C_randomize
like you did isn't the correct approach either, but just a hack.
I like the idea of reproducible builds, but I think the correct approach
would be to remove the random calls, instead. And for symbol table
randomization, that could be disabled in runtime.c by the compiler
driver, perhaps.
> I also tried changing how symbol hashing operates, as you suggest, but
> I suppose the random seed of the hash table is there as a security
> measure, we have to keep it, it’s just not that useful in the compiler
> itself.
That's why it would make sense to have an option to disable it or use a
deterministic initial random seed. It could even be exposed as a run-time
switch to make debugging easier.
Cheers,
Peter
signature.asc
Description: Digital signature