changelog
Jun 28, 2024

Unison version 0.5.23 is out!

Rebecca Mark

This release includes some treats for everyday Unison users, like new syntax for forcing delayed computations, and a few fixes to the merge command. Check it out!

Everyday-impact changes

❣️ Unison supports an additional syntax for forcing delayed computations. foo() is equivalent to !foo. You can write either syntax but foo() is preferred by the UCM when displaying things.

✅ The todo UCM command will tell you when you leave todo "implement me" around in your code. It also prints out name conflicts, if you end up with foo#abc and foo#123 in your codebase, it'll tell you about that.

Fixes and quality of life improvements

🐜 The merge command received several bug fixes. If you experienced constructors being deleted or unnamed dependencies (hashes in your codebase) occurring after a merge, this release should help.

🦺 Fixed a situation where the typechecker missed catching a disallowed ability. If an enclosing function does not permit a generic ability, you shouldn’t be able to call a function with an arbitrary ability inside of it!

🔄 Fixed an issue where long ability lists in signatures created a round-trip printer bug. Some of us really took it to heart that Abilities compose. :sweat_smile:

Deprecations and less common situations

🪡 Patches are now hidden from ls as part of their continuing deprecation. (What are patches, you ask? Shh… don’t worry about it.)

💤 Fixed a bug for sleeping with a large Nat value. You can write that Rip Van Winkle simulator program now.

🪶 The team squashed some docs roundtrip bugs when header elements, # Like this , were included in tables and callouts.

Share the news: