Skip to content

Releases: unisonweb/unison

Development Build (trunk)

03 Oct 20:59
b9363f8
Compare
Choose a tag to compare
Pre-release

Commits

Development Build (mac-arm-build)

02 Oct 23:05
Compare
Choose a tag to compare
Pre-release

Commits

  • edfaaa0: set racket architecture (Arya Irani)
  • 71f4367: build for macos-14 (Arya Irani)

release/0.5.27

01 Oct 18:44
bb3b5f1
Compare
Choose a tag to compare

What's Changed

  • Numerous bugfixes in the JIT runtime
  • Numerous speedups in the standard runtime
  • Numerous fixes to name resolution and printing logic
  • Fixes to parenthesizing and line-wrapping expressions involving operators (#5384)
  • Fix for a regression in handling empty code blocks in doc blocks
  • Experimental text.find command to search for strings (examples)

All PRs Since Last Release

Full Changelog: release/0.5.26...release/0.5.27

release/0.5.26

05 Sep 22:04
9af301d
Compare
Choose a tag to compare

What's Changed

Major fixes:

  • Fix for preserving type identities during merge.
  • Fix to LCA calculation that was misclassifying some fast-forward merges as regular merges.
  • Fix an issue where run after update would mysteriously run out-of-date code.

New features:

  • Add operator precedence rules
  • Add namespace directive #5285.
  • Binary numeric literals (e.g. 0b101 == 5), though all numeric literals still render as decimal on viewing/editing..
  • Revive the debug.find.global and debug.names.global commands.

Minor fixes:

  • Organize the scratch file better on incomplete update.
  • Fix kind-checking bug that didn't treat ability sets as an ability.
  • In patterns, identifiers starting with upper case are now treated as constructors instead of variables.
  • Change name resolution rules so that the suffix of a name in the file no longer shadows an exact match in the codebase.
  • Support subnamespaces that start with _.
  • Fix more bugs in transcript parser.
  • Bugfix for unused binding detection in LSP.
  • Tweak some error messages.
  • Fix a configuration bug that prevented Unison Local from launching on Windows.
  • Improve transcript runner output.

All Changes Since Last Release

New Contributors

Full Changelog: release/0.5.25...release/0.5.26

release/0.5.25

23 Jul 00:39
7301b69
Compare
Choose a tag to compare

What's Changed

  • Non-project code has been migrated to a project called legacy (or similar, if that name was already taken)
    • absolute paths are now relative to the root of your project.
    • more commands now accept paths/names from other branches in the form /branch:path.in.project
    • new reflog commands:
      • reflog/branch.reflog/reflog.branch shows the changes for the current branch
      • project.reflog/reflog.project shows changes to any branches in the current project
      • reflog.global shows changes across all projects
      • deprecated.root-reflog will show the reflog you had prior to the migration.
    • reset #hash can be used to reset the current branch to the hash you got from one of the reflog commands.
    • undo rewinds one node of history on the current branch, and will no longer cause any corruption or weirdness 😅🎉
  • We replaced our custom pseudo-markdown parser for transcripts with a better, off-the-shelf one
  • Misc message and speed improvements

All PRs since last release

Full Changelog: release/0.5.24...release/0.5.25

release/0.5.24

10 Jul 20:45
9b11d96
Compare
Choose a tag to compare

What's Changed

  • fix an issue with merge that cause false positives for conflicts (#5194)
  • updated todo command to show issues with the current branch
  • add numbered results to test, io.test and io.test.all
  • improve various CLI command error messages
  • fix an LSP issue with hovering over names ending in !
  • improve LSP completion sorting
  • add unused binding warnings to the LSP

All PRs Since Last Release

Full Changelog: release/0.5.23...release/0.5.24

release/0.5.23

26 Jun 15:37
95fc3aa
Compare
Choose a tag to compare

What's changed

  • fixes sleep bug in Unison programs #3957
  • fixes regression with switch
  • updates todo command, now prints name conflicts, one level of missing names, and usages of todo ... in your project
  • fixes merge bug which silently created unnamed dependencies #5092
  • fixes merge bug involving constructor deletion
  • fixes ability list roundtrip bug #4683
  • fixes doc round trip bugs #4476, #4729
  • supports docs.to-html at the branch root, using the same syntax as the fork command
  • hides patches from ls as part of their continuing deprecation
  • fixes typechecking bugs #5129, #3513
  • !foo now renders as foo() in Unison source

All PRs since last release

Full Changelog: release/0.5.22...release/0.5.23

release/0.5.22

17 Jun 17:40
fa8fc3a
Compare
Choose a tag to compare

What's Changed

Features:

  • new command merge.commit (analogous to upgrade.commit). UCM will remind you about it when you run the merge command.

  • ucm transcript now auto-creates a projects given in the transcript prompt:

      Using `project.create-empty` not necessary in this transcript:
    
      ```ucm
      demo-project/main> ls
      ```
    

Fixed Bugs:

  • ls wasn't working right with numbered args
  • edit.namespace was printing record accessors as standalone definitions
  • push error messages were previously not being displayed
  • updating and deleting aliases erroneously tripped “conflicted alias” error during merge
  • improved some error messages for push & merge

All PRs since last release

New Contributors

Full Changelog: release/0.5.21...release/0.5.22

release/0.5.21

04 Jun 18:57
b44044a
Compare
Choose a tag to compare

What's changed

Fun stuff 🎉

  • This release introduces a much improved merge and pull algorithm. The experience is similar to update or upgrade - if there are conflicts (or if the result doesn't typecheck), you are given a scratch file to get compiling. This is very new; let us know you run into any issues!
  • The new upgrade.commit command will merge and remove the temporary branch created during an upgrade that required manual intervention. An analogous merge.commit will be in an upcoming release.
  • A new lib.install command replaces the use of pull for installing libraries. Usage: lib.install @unison/base/releases/latest and use help lib.install for details.

Important deprecations 🪦

  • UCM can no longer push or pull the old Git-based Unison codebases. Use UCM 0.5.20 or earlier to migrate them to Unison Share!

Lovely bugfixes 🐞

  • A bug was causing delete.namespace to sometimes remove the last names for things without any warning. (4988)
  • A bug was causing some commands to work off of an out-of-date namespace. (5027)
  • find followed by docs <n> would fail. (5012)
  • dependents followed by delete <n> would fail. (5019)
  • UCM would just complain if a scratch file it wanted to write to didn't exist. (4973)
  • auth.login was invisible in help. (5028)
  • The ui command couldn't find its data files when using the ucm launcher script included in manual installs. (5048)/(5050)
  • A bug caused hashes to be displayed in the LSP diagnostics. (#4960)
  • LSP diagnostics were one change behind. (4957)
  • The JIT version of zlib.compress on a >64k buffer. (4961)

All new PRs in this release

New Contributors

Full Changelog: release/0.5.20...release/0.5.21

release/0.5.20

16 May 02:09
d06f0d5
Compare
Choose a tag to compare

What's Changed

Fun stuff 🎉

  • This release includes a beta version of the Unison just-in-time/native runtime. You can try it by using the new run.native command in place of the run command. Let us know if you have any issues!
  • Ahead-of-time native compilation to produce a standalone executable is coming soon. If you're running Linux, you can try this today using compile.native; Mac and Windows support are next.
  • @kylegoetz added an implementation of UDP networking, and @etorreborre added an implementation of RSA signing and signature verification. We'll be adding this functionality to base soon!

Important deprecations, please read

  • The cd command and the up command have gone away for maintenance, as they are not yet fully compatible with projects. In the mean time
    • we've added find-in <path> <expression> to replace cd <path>+find <expression>+back
    • and added test <path> to replace cd <path>+test+back.
    • In an emergency where you know what you're doing, you can still use deprecated.cd, and then come let us know what happened on Discord.
  • We are starting to deprecate non-project code, and with this release, you can no longer push to the non-project code area on Share. Check out the https://www.unison-lang.org/docs/tooling/projects-library-migration/ for help on converting your non-projects to projects. You can still pull non-project code from Share, but that will be going away soon too, so get busy :)

Under-the-hood fixes

  • @upendra1997 submitted a color scheme adjustment which was causing some text to appear invisible for some users.
  • The builtins.merge and builtins.mergeio commands (which most people don't use or need) also accept an optional destination path now.
  • The decompiler output now supports immutable arrays, and partially-applied built-in functions.
  • We fixed an issue in the LSP involving auto-completion and punctuation.
  • The pretty-printer now prefers do <expr> in some cases where it previously printed '(<expr>). The ' syntax is still accepted.
  • We fixed an issue with backtracking in Pattern.many, Pattern.or, and Pattern.replicate.
  • We made a tweak to the name-resolution rules, which were impacting type-directed name resolution.

All PRs since last release

Read more