You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I'm writing to raise a concern about the reliance on hash values for ordering symbolic expressions within SymbolicUtils.jl. While hashing can provide efficiency for certain operations, using it for ordering introduces potential problems for the reliability and predictability of a computer algebra system (CAS), especially given the difficulty of modifying the hash function itself without causing breaking changes.
Potential Issues:
Non-Deterministic Behavior: In principle hash functions can produce varying results across different Julia versions, system architectures, or even different runs on the same machine, although the current hash function implementation is deterministic.
Debugging Challenges: Identifying and resolving issues stemming from hash collisions can be exceptionally difficult to debug and reason about.
Challenges of Modifying the Hash Function:
Directly modifying the hash function to address these issues is likely infeasible due to:
Extensive Test Breakage: Existing tests in SymbolicUtils.jl and downstream likely rely on the current hash-based ordering.
Backwards Incompatibility: Changes could break serialization and external dependencies.
The text was updated successfully, but these errors were encountered:
I'm writing to raise a concern about the reliance on hash values for ordering symbolic expressions within SymbolicUtils.jl. While hashing can provide efficiency for certain operations, using it for ordering introduces potential problems for the reliability and predictability of a computer algebra system (CAS), especially given the difficulty of modifying the hash function itself without causing breaking changes.
Potential Issues:
Challenges of Modifying the Hash Function:
Directly modifying the hash function to address these issues is likely infeasible due to:
The text was updated successfully, but these errors were encountered: