Releases: unisonweb/unison
release/M5b
What's new:
- Bugfix:
clone
was discarding history, but now it doesn't. - Feature: Structured find and replace (#4046) (Experimental; let us know if you find bugs! Demo video here and see the docs)
- Current known issues with this feature: #4198
- Bugfix: Record types with fields of user-defined type didn't display correctly, but now they do.
- Added a secure random generator builtin.
- Bumped max queued connections on builtin Socket to 2048.
- Added autocomplete for
delete.branch
anddelete.project
. Debug.toText
can now be used in tests.
All changes since last release
- refactor: delete duplicate typecheckFile helper by @mitchellwrosen in #4139
- Use a project and versioning for in-unison compiler code on share by @dolio in #4149
- Switch Namespace Details to Precise pretty-printer by @ChrisPenner in #4151
- autoformat PRs with ormolu by @aryairani in #4154
- restrict ormolu to changed files by @aryairani in #4161
- move stack and unison repo around in CI by @aryairani in #4162
- Add a secure random generator builtin by @runarorama in #4159
- add getSomeBytes to cloud jit by @jaredly in #4164
- Add
getEcho
andsetEcho
to the jit by @jaredly in #4136 - Bump max queued connections on builtin Socket to 2048 by @runarorama in #4163
- put JitInfo into base.md cache key by @aryairani in #4157
- Implement getArgs and getEnv for jit by @jaredly in #4137
- move the file watcher to the unison-cli package by @aryairani in #4166
- Add potentially missing squash_results table by @ChrisPenner in #4168
- project.create: add more adjectives and animals by @hojberg in #4167
- Quiet down the transcripts executable and aggregate failures by @ChrisPenner in #4165
- Top-Level-Definition span annotations by @ChrisPenner in #3881
--mode inplace
now available inhaskell-actions/run-ormolu
by @aryairani in #4176- Build unison packages with nix by @tstat in #4093
- update to lts-20.26 by @aryairani in #4170
- [#4150] truncate argument type error from the front by @HatimKhambati26 in #4174
- [#4109] added autocomplete for project & branch name in delete.branch by @HatimKhambati26 in #4175
- bugfix: make clone not throw away history by @mitchellwrosen in #4179
- Implement getChar and getCurrentDirectory in the jit by @jaredly in #4186
- Add DECN and EXPF to the jit by @jaredly in #4187
- New feature: structured find and replace by @pchiusano in #4046
- Add pattern match coverage check switch to synthesize by @tstat in #4188
- jit: Add Text.indexOf and Bytes.indexOf primops by @lexi-lambda in #4183
- #4185 | Add autocomplete for
delete.project
command by @HatimKhambati26 in #4191 - Allow Debug.toText usage in tests by @pchiusano in #4182
New Contributors
- @HatimKhambati26 made their first contribution in #4174
Full Changelog: release/M5a...release/M5b
release/M5a
What's New
Support for projects in UCM and Unison Share:
In UCM, there's several new project-related commands:
Command | Description |
---|---|
create.project |
Create a new project |
clone |
Download a project branch from Share |
branch |
Create a new branch forked off the current branch |
branch.empty |
Create a new empty branch |
switch |
Switch to a different project/branch |
projects |
List your projects |
branches |
List your branches |
rename.branch |
Rename a branch |
rename.project |
Rename a project |
delete.branch |
Delete a branch |
delete.project |
Delete a project |
See the official docs for more details.
Numerous VSCode / LSP improvements (like docs on hover)
... and many other performance fixes! ⏳
Known Issues
A few commands' outputs aren't fully Projects-aware yet; this means long scary identifiers in certain spots:
In particular, undo
and reset-root
commands aren't project-aware yet. If you use them to undo or revert past a branch or project creation, the project or branch will continue to exist, but with branches reset to the empty branch. Use project.delete
or branch.delete
if you wish to undo a project or branch creation.
If you use undo or reset-root to undo a project or branch deletion, it will resurrect the namespace(s) that were deleted, but won't associate those namespaces with any projects or branches. Use the procedure below to find those namespaces and bring their contents back into a branch.
All changes since last release
- UCM Project Branch APIs by @ChrisPenner in #3829
- Port Codebase.getDeclType to be in Sqlite.Transaction by @ChrisPenner in #3866
- Update nix flake by @tstat in #3869
- Update Backend modules for project-codebase browsing by @ChrisPenner in #3868
- Add documentation for NeoVIM LSP Configuration by @gdbaldw in #3870
- Add LSP diagnostics for several more compiler errors. by @ChrisPenner in #3877
- Ensure we don't hang on 'open' by @ChrisPenner in #3876
- JIT: Implement TLS primops & add TLS tests by @jaredly in #3875
- Adding "allow-from" option so other web clients could call the api by @unorsk in #3882
- Add docs to hover. by @ChrisPenner in #3804
- Docs for completion options by @ChrisPenner in #3880
- Use a list for versions in m1-mac-setup-tips.markdown by @chriskrycho in #3862
- Build PPE using name lookup indices queries by @ChrisPenner in #3682
- Cache constructor enumeration during pattern match coverage checking by @tstat in #3884
- Add names to pattern match coverage checker debug output by @tstat in #3885
- Initial implementation of projects by @mitchellwrosen in #3886
- Misc. projects-related cleanup and bugfixes by @mitchellwrosen in #3889
- Add
projects
command to list projects by @mitchellwrosen in #3890 - project.switch bugfix: the new branch should share all history with its parent by @mitchellwrosen in #3891
- Fix example.com tests in tls-tests and tcp-tests, and disable until scheme generate escapes \r by @jaredly in #3894
- Add
branches
command that lists local branches and their remote mappings by @mitchellwrosen in #3893 - Disallow attempting to create a remote project without a user slug by @mitchellwrosen in #3898
- Delete
pr.create
andpr.load
commands by @mitchellwrosen in #3897 - implement
clone /branch
syntax by @mitchellwrosen in #3899 - Allow streaming diffs in constant memory by @ChrisPenner in #3852
- Add
project.delete-branch
command by @mitchellwrosen in #3896 - Anntoate tls & tcp functions to indicate where bytes, strings and lists are accepted or produced by @jaredly in #3903
- Make merge project aware by @tstat in #3902
- Add
branch
command that creates a branch by @mitchellwrosen in #3904 - Add more in-depth tests of the TLS stack by @jaredly in #3906
- Add md5 hash support to racket crypto by @jaredly in #3908
- Chunked seq integration by @SystemFw in #3905
- Increase busy_timeout by @ChrisPenner in #3907
- Fix md5 tests by @SystemFw in #3911
- Add an onCreate action for sqlite codebases by @ChrisPenner in #3909
- Allow regenerating name lookups by @ChrisPenner in #3910
- Add support for chunked-bytes operations by @SystemFw in #3913
- Implement two-arg variant of
branch
command by @mitchellwrosen in #3916 - add better sql quasi-quoter that allows variable interpolation by @mitchellwrosen in #3912
- Add pattern match coverage checking for ability handlers by @tstat in #3915
- Don't use named parameters in sql2 quasi-quoter by @mitchellwrosen in #3919
- Add
branch.empty
command by @mitchellwrosen in #3918 - Add error cases for release branches by @ChrisPenner in #3914
- Toss comments in sql quasi-quoter by @mitchellwrosen in #3921
- Report original source location in define-unison macro by @SystemFw in #3917
- Use sqlite quasi-quoter more by @mitchellwrosen in #3920
- Remove hacky vim auto-completion by @ceedubs in #3926
- Add a sql quasi-quoter syntax for Haskell values that span multiple SQLite fields by @mitchellwrosen in #3922
- Complete patterns api by @SystemFw in #3923
- Fix parsing of write-repo git(...) by @mitchellwrosen in #3927
- delete
switch
command's ability to make branches by @mitchellwrosen in #3928 - Move to Racket by @SystemFw in #3931
- Relax valid branch names in UCM to allow releases/ and releases/drafts/ by @mitchellwrosen in #3929
- Rename
project.clone
tobranch.clone
; add back differentproject.clone
by @mitchellwrosen in #3933 - Link.Term.toText: handle ability constructors by @ceedubs in #3940
- Add
release.draft
command by @mitchellwrosen in #3934 - Update pull_request_template.md by @aryairani in #3943
- racket: Add base16/32/64 encoding/decoding for chunked-bytes by @lexi-lambda in #3930
- Add zlib.compress and zlib.decompress racket primitives by @jaredly in #3932
- Disable text.term.tests, which uses TermLinks that are not yet supported by the jit by @jaredly in #3946
- release.draft output message tweak by @mitchellwrosen in #3948
- Fix branch.clone/project.clone reflog by @mitchellwrosen in #3950
- Implement encoding and decoding for Bytes, base16/32/64 and 64UrlUnpadded by @jaredly in #3944
- Make
delete.branch foo
delete branch/foo
, notfoo/main
by @mitchellwrosen in #3952 - JIT implementations for
Bytes.{gzip,zlib}.{compress,decompress}
andBytes.{to,from}Base{16,32,64,64UrlUnpadded}
by @jaredly in #3924 - Don't re...
release/M5
What's New
Support for projects in UCM and Unison Share:
In UCM, there's several new project-related commands:
Command | Description |
---|---|
create.project |
Create a new project |
clone |
Download a project branch from Share |
branch |
Create a new branch forked off the current branch |
branch.empty |
Create a new empty branch |
switch |
Switch to a different project/branch |
projects |
List your projects |
branches |
List your branches |
rename.branch |
Rename a branch |
rename.project |
Rename a project |
delete.branch |
Delete a branch |
delete.project |
Delete a project |
See the official docs for more details.
Numerous VSCode / LSP improvements (like docs on hover)
... and many other performance fixes! ⏳
Known Issues
A few commands' outputs aren't fully Projects-aware yet; this means long scary identifiers in certain spots:
In particular, undo
and reset-root
commands aren't project-aware yet. If you use them to undo or revert past a branch or project creation, the project or branch will continue to exist, but with branches reset to the empty branch. Use project.delete
or branch.delete
if you wish to undo a project or branch creation.
If you use undo or reset-root to undo a project or branch deletion, it will resurrect the namespace(s) that were deleted, but won't associate those namespaces with any projects or branches. Use the procedure below to find those namespaces and bring their contents back into a branch.
All changes since last release
- UCM Project Branch APIs by @ChrisPenner in #3829
- Port Codebase.getDeclType to be in Sqlite.Transaction by @ChrisPenner in #3866
- Update nix flake by @tstat in #3869
- Update Backend modules for project-codebase browsing by @ChrisPenner in #3868
- Add documentation for NeoVIM LSP Configuration by @gdbaldw in #3870
- Add LSP diagnostics for several more compiler errors. by @ChrisPenner in #3877
- Ensure we don't hang on 'open' by @ChrisPenner in #3876
- JIT: Implement TLS primops & add TLS tests by @jaredly in #3875
- Adding "allow-from" option so other web clients could call the api by @unorsk in #3882
- Add docs to hover. by @ChrisPenner in #3804
- Docs for completion options by @ChrisPenner in #3880
- Use a list for versions in m1-mac-setup-tips.markdown by @chriskrycho in #3862
- Build PPE using name lookup indices queries by @ChrisPenner in #3682
- Cache constructor enumeration during pattern match coverage checking by @tstat in #3884
- Add names to pattern match coverage checker debug output by @tstat in #3885
- Initial implementation of projects by @mitchellwrosen in #3886
- Misc. projects-related cleanup and bugfixes by @mitchellwrosen in #3889
- Add
projects
command to list projects by @mitchellwrosen in #3890 - project.switch bugfix: the new branch should share all history with its parent by @mitchellwrosen in #3891
- Fix example.com tests in tls-tests and tcp-tests, and disable until scheme generate escapes \r by @jaredly in #3894
- Add
branches
command that lists local branches and their remote mappings by @mitchellwrosen in #3893 - Disallow attempting to create a remote project without a user slug by @mitchellwrosen in #3898
- Delete
pr.create
andpr.load
commands by @mitchellwrosen in #3897 - implement
clone /branch
syntax by @mitchellwrosen in #3899 - Allow streaming diffs in constant memory by @ChrisPenner in #3852
- Add
project.delete-branch
command by @mitchellwrosen in #3896 - Anntoate tls & tcp functions to indicate where bytes, strings and lists are accepted or produced by @jaredly in #3903
- Make merge project aware by @tstat in #3902
- Add
branch
command that creates a branch by @mitchellwrosen in #3904 - Add more in-depth tests of the TLS stack by @jaredly in #3906
- Add md5 hash support to racket crypto by @jaredly in #3908
- Chunked seq integration by @SystemFw in #3905
- Increase busy_timeout by @ChrisPenner in #3907
- Fix md5 tests by @SystemFw in #3911
- Add an onCreate action for sqlite codebases by @ChrisPenner in #3909
- Allow regenerating name lookups by @ChrisPenner in #3910
- Add support for chunked-bytes operations by @SystemFw in #3913
- Implement two-arg variant of
branch
command by @mitchellwrosen in #3916 - add better sql quasi-quoter that allows variable interpolation by @mitchellwrosen in #3912
- Add pattern match coverage checking for ability handlers by @tstat in #3915
- Don't use named parameters in sql2 quasi-quoter by @mitchellwrosen in #3919
- Add
branch.empty
command by @mitchellwrosen in #3918 - Add error cases for release branches by @ChrisPenner in #3914
- Toss comments in sql quasi-quoter by @mitchellwrosen in #3921
- Report original source location in define-unison macro by @SystemFw in #3917
- Use sqlite quasi-quoter more by @mitchellwrosen in #3920
- Remove hacky vim auto-completion by @ceedubs in #3926
- Add a sql quasi-quoter syntax for Haskell values that span multiple SQLite fields by @mitchellwrosen in #3922
- Complete patterns api by @SystemFw in #3923
- Fix parsing of write-repo git(...) by @mitchellwrosen in #3927
- delete
switch
command's ability to make branches by @mitchellwrosen in #3928 - Move to Racket by @SystemFw in #3931
- Relax valid branch names in UCM to allow releases/ and releases/drafts/ by @mitchellwrosen in #3929
- Rename
project.clone
tobranch.clone
; add back differentproject.clone
by @mitchellwrosen in #3933 - Link.Term.toText: handle ability constructors by @ceedubs in #3940
- Add
release.draft
command by @mitchellwrosen in #3934 - Update pull_request_template.md by @aryairani in #3943
- racket: Add base16/32/64 encoding/decoding for chunked-bytes by @lexi-lambda in #3930
- Add zlib.compress and zlib.decompress racket primitives by @jaredly in #3932
- Disable text.term.tests, which uses TermLinks that are not yet supported by the jit by @jaredly in #3946
- release.draft output message tweak by @mitchellwrosen in #3948
- Fix branch.clone/project.clone reflog by @mitchellwrosen in #3950
- Implement encoding and decoding for Bytes, base16/32/64 and 64UrlUnpadded by @jaredly in #3944
- Make
delete.branch foo
delete branch/foo
, notfoo/main
by @mitchellwrosen in #3952 - JIT implementations for
Bytes.{gzip,zlib}.{compress,decompress}
andBytes.{to,from}Base{16,32,64,64UrlUnpadded}
by @jaredly in #3924 - Don't re...
release/M4i
What's Changed
- Add specific failure typeLink for async exceptions by @SystemFw in #3835
- Updates for safer migrations on Share by @ChrisPenner in #3825
- Fix stack release version by @ChrisPenner in #3836
- Add migration to BranchHash based name lookups by @ChrisPenner in #3765
- Hard-cut to new name lookup tables by @ChrisPenner in #3768
- Fix bad ucm migration backups by @ChrisPenner in #3839
- docs(lsp-helix): adds helix editor instructions for lsp by @mabasic in #3840
- docs(m1-mac): fixes link to M1 Mac tips by @jordanrule in #3842
- Allow specifying a username to fetch the compiler from by @jaredly in #3844
- JIT: use records rather than lists for encoding unison structures by @dolio in #3838
- feat(respect-ucm-host): makes codebase server use the correct host by @mabasic in #3841
- Multiline raw text literals by @pchiusano in #3848
- Fix
request
for the case of unhandled abilities by @jaredly in #3832 - Add pattern match coverage checking by @tstat in #3737
- Add TCP primops to racket by @jaredly in #3846
- Fix roundtrip error with block lambdas by @runarorama in #3853
- Fix pattern coverage checking bugs by @tstat in #3856
- Fix missing column in primary key for name lookup indexes by @ChrisPenner in #3850
- Allow destructuring bind at beginning of do/lambda by @runarorama in #3864
- Fix #3861 by @tstat in #3863
- Add
Md5
builtin tocrypto.HashAlgorithm
by @chriskrycho in #3865
New Contributors
- @mabasic made their first contribution in #3840
- @jordanrule made their first contribution in #3842
- @chriskrycho made their first contribution in #3865
Full Changelog: release/M4h...release/M4i
release/M4h
What's Changed
- Scheme library changes for more implementation agnosticism by @dolio in #3786
- Use socket operations for LSP client communication to avoid errors on socket close by @ChrisPenner in #3783
- Allow specifying the location to save the codebase from running a transcript by @jaredly in #3785
- Improve type error message for == on Foreign by @ceedubs in #3790
- Upgrade to stack 2.9.1 by @ChrisPenner in #3787
- Fix universal equality for Socket by @ceedubs in #3792
- Add LSP diagnostic for arity mismatches by @ChrisPenner in #3797
- Work-around for Effect annotations bug. by @ChrisPenner in #3789
- Add a basic transcript testing chez generation by @jaredly in #3781
- Expect full scheme-libs structure for 'installed' libraries by @dolio in #3800
- Hover Info improvements by @ChrisPenner in #3637
- Add builtins test suite skeleton, which can be run using the JIT or interpreted by @pchiusano in #3802
- Various racket related fixes/changes by @dolio in #3812
- Add racket (unison cont) library by @dolio in #3813
- Fix tls calling conventions by @stew in #3811
- Builtins test suite no longer uses IO refs by @pchiusano in #3814
- switch less args from -r to -R to fix reflog weirdness by @aryairani in #3810
- Add some comments on defining builtin tests in separate .u files by @pchiusano in #3816
- Make scheme jit transcript work by @dolio in #3819
- Add cryptographic hashing primitives for the racket backend by @jaredly in #3807
- Improved scheme-libs/readme.md by @pchiusano in #3821
- Add concurrency primitives for the JIT, based on Racket threads by @SystemFw in #3815
- Make compile.native use racket by @dolio in #3826
- Char.Class builtin type and supporting functions by @runarorama in #3820
- Format codebase using Ormolu and fail PRs if not ormolu formatted by @pchiusano in #3824
- Acquire and persist user information on login. by @ChrisPenner in #3818
- Improve error message for unhandled ability by @ceedubs in #3828
- Some type references were being ignored when compiling code by @dolio in #3830
- Add tryEval to the JIT compiler by @SystemFw in #3831
- Enables deletion of multiple terms and types in one command by @rlmark in #3798
Full Changelog: release/M4g...release/M4h
release/M4g
What's Changed
- default pull to silent mode by @ceedubs in #3717
- Split doc evaluation from doc rendering by @ChrisPenner in #3694
- Update vim support. Comments are now correct, and syntax is closer to… by @pragdave in #3727
- Parse share handles separate from name segments by @ChrisPenner in #3704
- Tweak some builtin implementations by @dolio in #3715
- Add note about installing the vim plugin for neovim LSP by @zetashift in #3729
- Improve vim syntax highlighting by @runarorama in #3731
- Fix annotations for bindings and blocks by @ChrisPenner in #3689
- Various scheme compiler additions by @dolio in #3736
- Return an error rather than
error
on invalid base32hex in a Reference by @ChrisPenner in #3728 - Add builtins for Ref+Promise concurrency scheme by @SystemFw in #3745
- Remove unused code by @SystemFw in #3758
- Saving current echo state before running anything and then falling back to it if needed by @unorsk in #3740
- Doc: add support for inline latex and svg by @hojberg in #3725
- Add a Debug.toText builtin by @dolio in #3764
- Add Universal.murmurHash by @SystemFw in #3762
- Return 'null' instead of an empty hover result by @ChrisPenner in #3751
- Allow explicitly enabling the LSP server on Windows by @ChrisPenner in #3744
- Require that each pattern have at least one RHS. by @ChrisPenner in #3734
- Improved delimited control implementation for Chez backend by @dolio in #3771
- Add/revise some builtins related to open issues. by @dolio in #3770
- Wait until server responds to shut down the server by @ChrisPenner in #3776
- M1 mac setup tips by @rlmark in #3779
- Cryptographic Hashing! Adding some primops and crypto FOps by @jaredly in #3780
- Obliterate branches in delete.namespace rather than consing an empty branch onto existing history. by @ChrisPenner in #3605
- Don't parse guards on destructuring binds by @ChrisPenner in #3784
- Add nix flake for common development environment by @tstat in #3778
- warn after pulling an empty namespace by @mitchellwrosen in #3713
New Contributors
- @pragdave made their first contribution in #3727
- @zetashift made their first contribution in #3729
- @SystemFw made their first contribution in #3745
Full Changelog: release/M4f...release/M4g
release/M4f
What's Changed
- Refactor: make getWatch in Transaction, not IO by @mitchellwrosen in #3577
- Ignore "lib" namespace during patch propagation by @mitchellwrosen in #3575
- Fix codebase root branch cache bugs by @tstat in #3619
- Create option for unison exe that will write RTS stats to a file by @tstat in #3624
- Refactor: remove getShallowCausalByHash from Codebase record by @mitchellwrosen in #3578
- Update LICENSE by @stew in #3644
- Update URL refering to newly pushed share code by @hojberg in #3656
- Blocks enforce that actions return
()
by @pchiusano in #3655 - Include LHS of binary exprs in annotation by @ChrisPenner in #3640
- Refactor: make termsOfType in Transaction, not IO by @mitchellwrosen in #3583
- Extract stringy Name parsing/printing printing functions to Unison.Syntax.Name module by @mitchellwrosen in #3527
- Refactor: ensure resources are bracketed on launch by @ChrisPenner in #3613
- Fix "Text.patterns.charRange" builtin by @runarorama in #3663
- Benchmark suite by @pchiusano in #3662
- Include file symbols in PPE used for rendering diagnostics (LSP) by @ChrisPenner in #3652
- Add a concurrent
TMap
benchmark by @dolio in #3670 - Refactor: make termsMentioningType in Transaction, not IO by @mitchellwrosen in #3592
- Fix a corner case in new 'beta-reduced' decompilation by @dolio in #3671
- Fix CI to run some (previously skipped) unit tests in unison-parser-typechecker by @pchiusano in #3672
- Fix an out-of-bounds in array comparison by @dolio in #3680
- Add a few more
TMap
variants totmap.u
benchmark by @pchiusano in #3677 - Add
diff.namespace.to-patch
command by @mitchellwrosen in #3646 - Don't strip type signatures during synthesis, even if redundant. by @ChrisPenner in #3645
- Small cleanup follow-up to #3527 by @mitchellwrosen in #3661
- Remove diff from delete{.term,.type} output by @tstat in #3665
- Refactor: make termReferentsByPrefix in Transaction, not IO by @mitchellwrosen in #3594
- More microbenchmarks by @pchiusano in #3681
- clean up codebase-sqlite-hashing-v2 package by @mitchellwrosen in #3686
- Remove external names from names-index lookups by @ChrisPenner in #3688
- Refactor: make getTerm in Transaction, not IO by @mitchellwrosen in #3599
- Cleanup: share hash tags newtypes in codebase/parser-typechecker by @mitchellwrosen in #3692
- Add transcript to capture some
diff.namespace.to-patch
behavior by @mitchellwrosen in #3684 - Cleanup: eliminate second NameSegment type by @mitchellwrosen in #3691
- Add doc rendering transcript by @ChrisPenner in #3695
- Cleanup: break up
unison-util
sin bin by @mitchellwrosen in #3687 - Fix message formatting by @ChrisPenner in #3700
- Type signatures for completion options by @ChrisPenner in #3697
- Silence error message from scratch-file contention by @ChrisPenner in #3702
- Make
diff.namespace.to-patch
use "v2" branch diffs by @mitchellwrosen in #3693 - Fix a runtime segfault, plus debugging infrastructure by @dolio in #3714
- prepend "test>" to edited tests by @mitchellwrosen in #3716
- Cleanup: use Cli monad in sync http functions by @mitchellwrosen in #3667
- make io.test look in scratch file first by @mitchellwrosen in #3709
- add all-base-hashes.md transcript by @mitchellwrosen in #3718
- delete unused Backticks lexeme by @mitchellwrosen in #3719
- Cleanup: tidy up v2-hashing package and hide it behind an interface by @mitchellwrosen in #3698
- Add Clear command by @ChrisPenner in #3705
Full Changelog: release/M4e...release/M4f
release/M4e
What's Changed
- update: discover new cycles by @mitchellwrosen in #3466
- Refactor: make isTerm in Transaction, not IO by @mitchellwrosen in #3569
- Don't re-save branches that already exist by @ChrisPenner in #3555
- Refactor: make updateNameLookup in Transaction, not IO by @mitchellwrosen in #3595
- cleanup: add a couple cached transaction helpers by @mitchellwrosen in #3576
- Refactor: make putTerm in Transaction, not IO by @mitchellwrosen in #3571
- edit command: don't bring all members of a component into scratch file by @mitchellwrosen in #3591
- lazy version of more direct implementation of deepTerms by @aryairani in #3570
- Add configuration docs by @ChrisPenner in #3586
- Allow disabling file watching by @ChrisPenner in #3602
- Refactor: make putTypeDeclaration in Transaction, not IO by @mitchellwrosen in #3572
- Make universal compare do lexicographic comparison on lists by @dolio in #3606
- Refactor: make dependentsOfComponent in Transaction, not IO by @mitchellwrosen in #3573
- Fix skipped sync in add.run by @ChrisPenner in #3612
- Refactor: Derive instance Show NameSegment by @mitchellwrosen in #3607
- Refactor: remove a couple functions from the Codebase record by @mitchellwrosen in #3574
- Mention glob patterns in help for
view
by @pchiusano in #3621 - Indent after newline in pattern lists by @runarorama in #3628
- Swap name priority so shorter fqn come first by @ChrisPenner in #3618
- Implement commands for building/running via scheme by @dolio in #3589
- Make ucm use multiple capabilities by default by @tstat in #3620
- Clean up applyPropagate by @tstat in #3611
- Avoid justifying case arrows if the pattern doesn't fit by @runarorama in #3632
- Eta-reduce Doc term links to undo compiler expansion by @runarorama in #3634
- Cleanup: delete unused strings dependency by @mitchellwrosen in #3630
- Cleanup: delete inaccessible case by @mitchellwrosen in #3633
- Cleanup: delete prelude-extras package by @mitchellwrosen in #3629
Full Changelog: release/M4d...release/M4e
release/M4d
What's Changed
- add putTypeDeclarationComponent to codebase interface by @mitchellwrosen in #3508
- Add putTermComponent to codebase interface by @mitchellwrosen in #3491
- Refactor: make addToDependentsIndex take a collection of dependencies by @mitchellwrosen in #3489
- Refactor: monomorphize
v
toSymbol
in slurp stuff by @mitchellwrosen in #3463 - Add putTermComponent to codebase record by @mitchellwrosen in #3503
- Surgical name lookup index updates by @ChrisPenner in #3505
- LSP Auto-completion by @ChrisPenner in #3488
- Pull out unison-util-rope into its own package by @mitchellwrosen in #3518
- Fewer parens inside list types by @runarorama in #3512
- Generate stack traces for calls to
bug
and similar. by @dolio in #3531 - slightly better error description for unhandled ability requests by @stew in #3534
- Add export list to Unison.Var by @mitchellwrosen in #3528
- Pull out unison-util-bytes into its own package by @mitchellwrosen in #3519
- Fix to
Pattern.or
andPattern.replicate
to properly do backtracking when given composite patterns by @pchiusano in #3540 - Do TDNR substitutions in a single term traversal by @ChrisPenner in #2789
- Allow specifying custom base version for releases by @ChrisPenner in #3522
- Improve errors on bad short-hashes by @ChrisPenner in #3541
- Fix universal quantifiers disappearing in nested bindings by @runarorama in #3543
- fix Cli.time logic by @aryairani in #3545
- Pull out a couple modules into new
unison-syntax
package by @mitchellwrosen in #3521 - Comment out builtins from the edit command by @runarorama in #3548
- run ucm main in an unbound thread by @mitchellwrosen in #3546
- do an in-sqlite before-check before reconstructing FF-path proof client-side by @mitchellwrosen in #3550
- Fixes #3523 by @tstat in #3544
- Split V2.ShortCausalHash from V2.ShortBranchHash by @ChrisPenner in #3549
- Improve decompilation via undoing lambda lifting transformations by @dolio in #3553
- add Cli.time calls to HandleInput by @aryairani in #3552
- Add 'Show' for backend errors for usage in Sentry errors by @ChrisPenner in #3554
- Refactor: make dependents in Transaction, not IO by @mitchellwrosen in #3561
- Refactor: make isType in Transaction rather than IO by @mitchellwrosen in #3564
- Refactor: make getDeclComponent in Transaction, not IO by @mitchellwrosen in #3563
Scope.bytearrayOf
builtin had reversed arguments by @dolio in #3567
Full Changelog: release/M4c...release/M4d
release/M4c
What's Changed
- Update cycle element first draft by @mitchellwrosen in #3443
- Fix windows release... again by @ChrisPenner in #3470
- Address PR feedback on #3443 by @mitchellwrosen in #3462
- network: 3.1.1.1 -> 3.1.2.7 by @ceedubs in #3483
- refactor: leave getTermComponentWithTypes in Transaction by @mitchellwrosen in #3473
- Adding set echo io bindings by @unorsk in #3476
- Fix record trailing comma parsing by @ceedubs in #3492
- Fix a shadowing bug in
instantiateL
by @dolio in #3493 - Term/Type Summary API tweaks by @ChrisPenner in #3472
- Fixed the code of fromBase64UrlEncoded builtin by @runarorama in #3498
- Refactor: delete hash1 <-> hash2 conversions by @mitchellwrosen in #3490
- Fix pretty-printing of empty docs by @runarorama in #3507
- Add Unison.Util.Map.upsert by @mitchellwrosen in #3500
- Cli monad simplification: implement scoped short-circuit with exceptions by @mitchellwrosen in #3496
- Fix roundtrip error with lambda as a final argument, which ignores its own argument by @runarorama in #3511
New Contributors
Full Changelog: release/M4b...release/M4c