Unison 1.0
11–20 of 98 posts
Re: Unison 1.0
#12Also, hi, I'm one of the language creators, feel free to ask any questions here!
Re: Unison 1.0
#13I'm so old, I thought this was about Panic's Usenet client Unison.
Re: Unison 1.0
#14Also, hi, I'm one of the language creators, feel free to ask any questions here!
Re: Unison 1.0
#15How does the database of code work with git? Should you share it or version it too?
Re: Unison 1.0
#16How does the database of code work with git? Should you share it or version it too?
The projects in a codebase can absolutely be shared and versioned as well. Here's a log of release artifacts from a library as an example: https://share.unison-lang.org/@unison/base/releases.
Re: Unison 1.0
#17Also, hi, I'm one of the language creators, feel free to ask any questions here!
Hello! Yes I am curious, how does one deal with cycles in the code hash graph? Mutually recursive functions for example?
Re: Unison 1.0
#18Re: Unison 1.0
#19Also, hi, I'm one of the language creators, feel free to ask any questions here!
Then, a pretty basic question: I see that Unison has a quite radical design, but what problem does this design solves actually?
Re: Unison 1.0
#20Also, hi, I'm one of the language creators, feel free to ask any questions here!
I am asking because if you also have a way to cache all values, this might allow to carry some of Unison's nice properties a little further. Say I implement a compiler in Unison, I end up with an expression that has a free variable, which carries the source code of the program I am compiling.
Now, I could take the hash of the expression, the hash of the term that represents the source code, i.e., what the variable in my compiler binds to, and the hash of the output. Would be very neat for reproducibility, similar to content-addressed derivations in Nix, and extensible to distributed reproducibility like Trustix.
I guess you'll be inclined to say that this is out of scope for your caching, because your caching would only cache results of expressions where all variables are bound (at the top level, evaluating down). And you would be right. But the point is to bridge to the outside of Unison, at runtime, and make this just easy to do with Unison.
Feel free to just point me at material to read, I am completely new to this language and it might be obvious to you...