mirror of
https://github.com/unisonweb/unison.git
synced 2024-10-05 06:07:21 +03:00
360e8298ee
The goal of these changes is to remove unboxed details from the interchange formats, and instead exchange values that somewhat resemble surface level unison values. In some cases, the way this works is obvious. For instance, the MatchNumeric/NMatch and BLit constructs avoid having unboxed details in code. However, what might not be so obvious is the request/data matching constructs. These prevent unboxed values from occurring on the stack in normal unison functions, which means they no longer end up in captured continuations. The unboxed details were originally intended to support optimizations that would turn surface unison functions into more efficient versions that operate without any boxing. However, that didn't materialize, and it seems unlikely that we'll implement it for the Haskell end of things (we aren't really obliged to do this ourselves for good performance in scheme). So, some of these new methods of doing things might actually be more efficient than what was happening previously. |
||
---|---|---|
.. | ||
src | ||
tests | ||
LICENSE | ||
package.yaml | ||
unison-parser-typechecker.cabal |