Skip to content

Releases: unisonweb/unison

Development Build (trunk)

23 May 00:37
8a27961
Compare
Choose a tag to compare
Pre-release

Commits

  • d20d30d: update workflows for lib.install (Arya Irani) #5002

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; 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

release/0.5.17

16 Feb 16:23
9d1c75a
Compare
Choose a tag to compare

What's Changed

Full Changelog: release/0.5.16...release/0.5.17

release/0.5.16

06 Feb 13:49
4f345fe
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: release/0.5.15...release/0.5.16

release/0.5.15

01 Feb 22:30
f98ea54
Compare
Choose a tag to compare

What's Changed

New features:

  • LSP support for "format file" / "format selection" / "format on save"
  • New edit.namespace command, see here for example usage (reported by @ceedubs)

Bug fixes:

  • Better tab-completion of branch-relative paths
  • Nicer errors when type-directed name resolution fails (reported by @hojberg)
  • Fixed bug when parsing docs for a unique type with unique omitted (reported by @hojberg)
  • Fixed an indentation issue in Docs that was causing parse failures (reported by @alvaroc1)
  • Fixed a bug with use and names starting with _ (reported by @alvaroc1)
  • Fixed raw text-block indentation (reported by @SystemFw)
  • Fixed an issue where string gets transformed to ''string'' and then fails to parse if string contains ' (reported by @SystemFw)
  • Fixed a type-checking bug where local functions were not generalized (reported by @SystemFw)
  • Fixed a Set.findMin: empty set has no minimal element bug on update (reported by @alvaroc1)
  • UCM now deletes a remote branch mapping when a push fails because the branch doesn't exist.

Speed-ups:

  • LSP no longer preloads names for the entire codebase
  • docs.to-html no longer preloads names for the entire codebase

All PRs since last release:

Full Changelog: release/0.5.14...release/0.5.15

release/0.5.14

23 Jan 03:43
f991abe
Compare
Choose a tag to compare

What's changed:

  • We've implemented the first stage of getting rid of “metadata”.
    • link, links, and unlink commands go away.
    • “default metadata” is no longer applied from your config file on add, nor copied on update.
    • diff.namespace doesn’t report anything about metadata. Note that we used to rely on metadata to exclude uninteresting changes from a diff. That already doesn’t work with the new update process, but we will fix this again eventually.
  • Types are now unique by default, if neither unique nor structural is specified. unique is also left off when viewing the code for a unique type (reported by @ceedubs and others)
  • fork now lets you refer to paths in other branches using project/branch:path syntax. Other commands will support this soon, at which point you hopefully won’t need to go outside of projects for scratch space anymore.
  • UCM no longer searches the global namespace for names not present in or below your current namespace. The upshot is that many commands will complete much more quickly, but you will now see hashes where you would currently see a crazy out-of-scope name. But you wanted to fix that name anyway.
    • This situation is particularly likely when you are cded deeper into your project, into a subnamespace that isn’t completely self-contained, we’re looking into solutions to this. view.global, names.global, and namespace.dependencies will still do a global search. view and display will use the global names if provided an absolute argument.
  • upgrade command now tells you what file to edit (reported by @stew)
  • edit and other commands which modify your scratch file now uniformly produce output in transcript output.md files. It will show up in an ```unison:added-by-ucm <filename.u> code block.
  • Fixed an issue where numbered args unexpectedly got cleared (reported by @ceedubs)
  • Fixed an issue where sub-types of Doc and [Test.Result] showed up on Share as Docs and Tests when they shouldn’t have.
  • Fixed an issue where update/upgrade produced a scratch file that ambiguously referred to aliases in a way that couldn’t typecheck.
  • Globbing (view foo.?) went away; you probably won’t notice. The improved fzf support introduced in 0.5.13 is nicer anyway.

All PRs since last release

Full Changelog: release/0.5.13...release/0.5.14

release/0.5.13

05 Jan 22:02
014b3fc
Compare
Choose a tag to compare

Fixed these bugs:

  • add.run CallStack error issue on 0.5.11 (reported by @rlmark)
  • Feedback when a scratch file change is picked up (reported by @ceedubs)
  • speed up find, by eliminating historical name search (reported by @stew and others)
    • may show a few more hashes than previously; you can use names.global <hash> to investigate the name, and then alias.term or alias.type to create a name in your branch.
  • extend fzf support to all required arguments (multiply reported by @ceedubs)
  • Nat.fromHex fails for some input when it is a substring of larger Text (reported by @hagl)
  • Baffling error messages when using / instead of Float./ (reported by @stefanholzmueller)
  • update issue with sum type, adding a new type constructor (reported by @kylegoetz)

All PRs since last release

Full Changelog: release/0.5.12...release/0.5.13

release/0.5.12

21 Dec 18:36
8e12c77
Compare
Choose a tag to compare

What's Changed

  • new io.test.all command runs all the IO tests in your namespace
  • new rename command, is the same as move
  • namespace.dependencies now ignores lib. You can cd into lib and run it there if you are curious about the state of your libraries.
  • auto-completion improvements for many project commands
  • several bugfixes

All PRs since last release

Full Changelog: release/0.5.11...release/0.5.12