Unison Versions Save

A friendly programming language from the future

trunk-build

1 week ago

Commits

  • ce8dfd2: Bump jit share dependency to 0.0.15 (Dan Doel) #4876

release/testing-ignore-2

3 weeks ago

What's Changed

New Contributors

Full Changelog: https://github.com/unisonweb/unison/compare/release/0.5.19...release/testing-ignore-2

release/0.5.19

1 month ago

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. https://github.com/unisonweb/unison/pull/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

Full Changelog: https://github.com/unisonweb/unison/compare/release/0.5.18...release/0.5.19

release/0.5.18

1 month ago

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: https://github.com/unisonweb/unison/compare/release/0.5.17...release/0.5.18

release/0.5.17

2 months ago

What's Changed

Full Changelog: https://github.com/unisonweb/unison/compare/release/0.5.16...release/0.5.17

release/0.5.16

2 months ago

What's Changed

New Contributors

Full Changelog: https://github.com/unisonweb/unison/compare/release/0.5.15...release/0.5.16

release/0.5.15

2 months ago

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: https://github.com/unisonweb/unison/compare/release/0.5.14...release/0.5.15

release/0.5.14

2 months ago

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: https://github.com/unisonweb/unison/compare/release/0.5.13...release/0.5.14

pre-release

3 months ago

Commits

  • 826585a: remove irrelevant changed-files step (Arya Irani) #4585
  • 73aafe3: change the name of the workflow to be less accurate (Arya Irani) #4585
  • 1df98bf: don't fail when there are changes (Arya Irani) #4585
  • 511f323: can we run ci.yaml manually? (Arya Irani) #4585

release/0.5.13

3 months ago

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: https://github.com/unisonweb/unison/compare/release/0.5.12...release/0.5.13