unisonweb / unison

A friendly programming language from the future
https://unison-lang.org
Other
5.75k stars 269 forks source link

Is new runtime using pointer equality or local compiler numbering when comparing functions? #2163

Open pchiusano opened 3 years ago

pchiusano commented 3 years ago
        (x -> x) === (x -> x)
        ⧨
        false

I think all pure functions including Universal.=== should not depend on local machine stuff like pointer equality or local compiler numbering. Otherwise it can result in broken distributed programs, like you send a value to another node and suddenly it can’t be found in a Map there.

I think we previously had a few places where we fixed this up. But maybe we’re misunderstanding something about this example?

hojberg commented 3 years ago

I think these are dupes? https://github.com/unisonweb/unison/issues/2162