It had to happen eventually...

We received a pull request recently for a change that makes JRuby's
hashing of Strings, Booleans, nil, and Symbols be consistent.
Basically, it provides hardcoded hashes for Booleans and nil, and
makes it possible to disable seeded hashes for String and Symbol.

PR: https://github.com/jruby/jruby/pull/590

My question for ruby-core: at what point did you decide to make hash
for e.g. nil not be a single value (it was "4" in 1.8.7 and
different/random in 1.9.3+), and why did you do it?

I think it's valid to want to be able to consistently hash these
values across runtimes, but I want to understand the implications
before I merge this patch into JRuby proper.

Thoughts?

- Charlie