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."

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.