Comment by userbinator
7 years ago
There is a good debugging advice related to this story: "if your code is the same but suddenly starts behaving differently, check for hidden state."
7 years ago
There is a good debugging advice related to this story: "if your code is the same but suddenly starts behaving differently, check for hidden state."
It's more like code than state, isn't it? The thing that changed is the implementation of a circuit for computing the result of some calculation, i.e. a function.
I very often think of the current definitions of functions as part of the program state.
You're right – but I don't think "hardware" usually counts as state!
We don't generally count hardware as state because we expect it to be a reliable abstraction, but this same attitude applies to other things we do too: note that any program you've ever compiled can also count the compiler itself as state; this is the whole foundation for trusting-trust attacks!
I usually say “check environment”, which is usually the reason — cron jobs run in non-interactive mode, new version of system library, wrong PATH variable, new math co-processor and so on.