Use case objects for primitives
Closed this issue · 1 comments
jevdplas commented
Primitive values in the abstract interpreter are currently just implemented as Scala object
s (cf. scalaam.language.scheme.primitives.SchemeLatticePrimitives
).
As a result, the same primitive will get a different hash code on different runs of the same analysis, leading to non-deterministic behaviour in the exploration order of the analysis (which is undesirable when trying to reproduce the results of a previous analysis run).
Implementing them as case object
s instead would avoid this issue.