3 ms·
"Each Unison definition is identified by a hash of its syntax tree." [0] I remember many years ago, i had the same idea on how to correctly version a dependenc
by revskill 4y ago
"Each Unison definition is identified by a hash of its syntax tree." [0]
I remember many years ago, i had the same idea on how to correctly version a dependency.
[0]: https://www.unison-lang.org/learn/the-big-idea/ https://www.unison-lang.org/learn/the-big-idea/
- thefaux 4y agoDoes Unison have stack traces? Using the hash of the ast as the only identifier seems like it would lose some useful runtime debugging information.
- iamevn 4y agoWhile hashes are the primary identifier, things also generally have names associated with them. (Unless you deliberately remove the names that is.)
- galaxyLogic 4y agoSounds oddly much like git. Git-commits are identified by hashes. And git commits "are" (versions of) programs. So what does Unison have that git does not?
- infogulch 4y agoMostly, it heavily normalizes code, to the point where a name change will not register as a change to the program.
- stewoconnor 4y agoYes, we have stack traces. You might see some hashes in the middle of the stack traces, but whenever we do have a name, we'll show you the name. So if you are calling into an anonymous clousure, but functions in your call stack will typically have names available