On 08/11/2023 16.38, Pol Dellaiera wrote: you define functions doing I/O as Impure functions.But without I/O, no build output can be written, so all builds must use impure functions.
In practice we see non-determinism from approx 10 sources, such as documented in https://github.com/bmwiedemann/theunreproduciblepackage/
e.g. https://github.com/bmwiedemann/theunreproduciblepackage/blob/master/race/race.2.sh #!/bin/sh racepart() { input=$1 sleep 0.1 echo $input } for i in $(seq 1 10) ; do # & backgrounds the process to do parallel processing racepart $i & done
OpenPGP_signature.asc
Description: OpenPGP digital signature