For ordinary data objects (vectors, lists, data frames, etc.), the generated
hash is reproducible across sessions and R versions on platforms that have
the same endianness. However, hash values may change between rlang versions,
although that should be rare. Reference-like objects (environments, external
pointers, builtins) are hashed by identity, so their hashes are only stable
within a session. Closures hash their formals, body, and environment
identity. Byte-compiled and uncompiled closures hash identically
because the body is always hashed from the original language tree.
By default, source references are stripped before hashing so that
closures and calls that are textually identical produce the same
hash regardless of where they were parsed. Set zap_srcref to
FALSE to include source references in the hash.