Skip to content

Releases: unisonweb/unison

Development Build (trunk)

19 Sep 01:18
2241036
Compare
Choose a tag to compare
Pre-release

Commits

  • 396392a: Eta expand trivial fast path definition in define-unison (Dan Doel) #5355
  • e522176: Repurpose flag argument of make-main in define-unison (Dan Doel) #5355
  • f7893a8: Do not mark all definitions as recursive by default in define-unison (Dan Doel) #5355
  • cb60535: Pass arities during code generation (Dan Doel) #5355
  • 5e9a6bd: Omit link declarations for define-unison (Dan Doel) #5355
  • 02f77a5: Inline hint by default for define-unison-builtin (Dan Doel) #5355
  • c278c18: Bump @unison/internal dependency (Dan Doel) #5355

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

release/0.5.19

14 Mar 02:47
7d95ed5
Compare
Choose a tag to compare

What's changed

  • upgrade now allows library authors to repurpose names for a different definition, without breaking any downstream users. That is, you can rename a definition, then add a new definition with the original name but new behavior, without forcing library users to update to the new definition when they upgrade. #4720
  • Fixes an annoying issue where record types weren't being printed as records (reported and fixed by @runarorama)
  • Improves speed of merge via a faster ancestry check to find the LCA.
  • Greatly improves the error message when the scratch file fails to even parse.
  • Improves error messages and type inference for match statements (now, if the type of the overall match is known, that information is pushed down into the branches of the match, which behaves more nicely)

We've also made improvements and fixes to the new just-in-time native compiler, though the feature is still not quite ready for general use.

All PRs since last release

New Contributors

  • @github-actions made their first contribution in #4784

Full Changelog: release/0.5.18...release/0.5.19

release/0.5.18

27 Feb 18:53
404a9f9
Compare
Choose a tag to compare

What's changed

  • Definitions in operator subnamespaces (like List.++.doc) now round-trip.
  • Builtin support for Ed25519 signatures.

All PRs since last release

Full Changelog: release/0.5.17...release/0.5.18