New features
❣️ We introduced operator precedence rules to the langauge, (so you can use fewer parens when doing things like writing boolean expressions!)
📇 We added the namespace directive for prefixing terms and types:
namespace brevity.is.the.soul.of
type Wit = Wit Text
-- versus --
type brevity.is.the.soul.of.Wit = Wit Text
🔢 We added support for writing binary numeric literals with the 0b
prefix: 0b101 == 5
🧟♂️ We revived debug.find.global
and debug.names.global
commands. (`find` and names
are normally scoped to a project, this lets you search across all your projects.)
📋 Better organization of the scratch file on failed updates - so you’ll have an easier time resolving conflicts.
Major Fixes:
- Improvements when running the
merge
command: - Fix for preserving type identities during
merge
. - Fix to LCA calculation that was misclassifying some fast-forward merges as regular merges.
- Fix for preserving type identities during
- Improvements when running the
- Fixed an issue where out-of-date code would
run
after anupdate
.
Minor Fixes & Improvements:
- Fixed a kind-checking bug that didn’t treat ability sets as an ability
- Uppercase identifiers in patterns are now treated as constructors.
- Sub-namespaces starting with
_
are now supported. - Various bug fixes for the transcript parser and LSP.
- Fixed Unison Local launch issues on Windows.
- Tweaked error messages for better clarity.
New Community Contributors
🐡 With gratitude to @puffnfresh for fixing the Windows UI load issue in #5288
💯 Thank you to @SimaDovakin for adding the binary number literal notation #5294