Releases: unisonweb/unison
Development Build
M2 release (Mac)
M2 release (Linux)
release/M1m
A hotfix for pull
performance issues; and a few other nice fixes. 😬
pull
/merge
performance improvements:
- short-circuit when merging into empty namespace. #1528
- LCA-based three-way merge. #1545
- queue-copy sync algorithm. #1548, #1565
FileCodebase
cache. #1549- fixed one source of unnecessarily high memory usage during
pull
. #1561
UCM changes:
dependencies
anddependents
command now produce numbered arg output (#1543, thanks @pt2121)- add
merge.squash
command which discards intermediate history when merging. #1465
Bug fixes:
- fix for no-op pulls incorrectly setting the root namespace to the pulled namespace. #1501
- fix slowness issue when viewing terms that reference
Term.Link
(e.g. unison docs). #1493 - fix for calls to
io.IO.throw
. #1572 - added
debug.push-exhaustive
anddebug.pull-exhaustive
. #1570
Improved messages:
- fix typo in
delete.link
docs (#1499, thanks @virusdave) - improve codebase init tip (#1498, thanks @pt2121)
- add a warning message when the root namespace is changed unexpectedly. #1503
- tweak delete.{term,type}-replacement help text (#1511, thanks @atacratic)
- repeat the user-provided path back in
-codebase <X> init
tip (#1529) - improve
pull-request.create
help example (#1555, thanks @ceedubs) - print
ucm
version in welcome message (#1558, thanks @ceedubs) - flip merge history to not be upside down. #1557
release/M1l
A hotfix for ucm
. So hot!
Fixes:
- the
.unisonConfig
parser was rejecting keys starting with underscores (#1469) - the typechecker was assigning the wrong type to {
Nat
,Int
}.complement
(#1466, thanks @atacratic!)
release/M1k
release/M1j
Thanks to @pete-ts, @noahhaasis, @stew, and @atacratic for their contributions to this release!
New features:
delete.term-replacement
anddelete.type-replacement
commands (#1360)create.author
command (#1400)dependents
,dependencies
,debug.file
commands (#1401)- suffix-based name resolution for
view
/display
(#1241) - six new operations:
##Int.shiftLeft
,##Int.shiftRight
,##Int.pow
,##Nat.shiftLeft
,##Nat.shiftRight
,##Nat.pow
(#1427) - support for default metadata in
.unisonConfig
(#1432)
Changed behavior:
builtins.merge
no longer includes the contents ofIOSource.hs
; usebuiltins.mergeio
to get everything (#1411)
Fixes for:
- a crash in the auto-completion for
push
(#1374) - a bug that caused
update
to produce too many updates (#1382) - reduce the amount of
git
output belched out bypush
/pull
(#1387) putSymbol
growing hidden variable names with each reproduction (#1389)- unnamed transitive dependencies were not being included on
push
(#1317) - transcripts now show the output of a failing stanza, even if it was hidden (#1345)
- a bug in decompiling
Bytes
values (#1428) - pretty-printing non-ascii chars (#1437)
- many message & formatting improvements (#1372, #1403, #1405, #1407, #1424, #1425, #1440)
pull
importing more than necessary of the remote repo (#1439)
Speed improvements:
release/M1i
Thanks (in no particular order) to @pete-ts, @mitchellwrosen, @bontaq, @atacratic, @anovstrup, @pt2121, @anchpop, @Dandandan, @moses-alexander, for your contributions to this release!
New features:
- new
pull-request.create
andpull-request.load
commands to support PR workflows (#1328, #1197, #1209) - new
alias.many
command lets you copy multiple definitions' relative names at once to a destination namespace. (#1236) - new
back
command to jump to the namespace you lastcd
ed from. (#1294) - add
:hide:all
option forunison
anducm
fences in transcripts (#1167)
allow
Changed behavior:
- changed
case
/of
syntax tomatch
/with
(#1214) link
andunlink
argument order has flipped fromlink <metadata> <definition>
tolink <def1> [<def2> ...] <metadata>
(#1208, #1127)- add LambdaCase style
cases
syntax to replacex -> case x of
(#1192) - improve argument support for
alias.type
/alias.term
/replace.type
/replace.term
(#1334)
Fixes:
- fix issue where a command that makes changes all over the namespace creates many history entries instead of one consolidated one (#1225, #1333), reverting #1085 for better or worse 😬
- remove term names from evaluation output in Docs (#1307)
- fix accidental deletion of history for empty namespaces (#1337)
- fix a pair of bugs that created and then couldn't cope with a loop in the namespace history (#1279)
- some obvious speed fixes for
push
andpull
(#1281, #1302) - allow
add
/update
to create aliases without a big fuss (#1254) - don't cry about previously known constructors (#1352)
- error messages and output message improvements (#1122, #1163, #1164, #1170, #1187, #1222, #1223, #1227, #1331 )
- pretty-printing fixes (#1159, #1171, #1180, #1278)
- fix a runtime bug that was causing issues with large lists (#1183)
- unique type hashes are chosen with a deterministic seed when running transcripts, for deterministic transcript output (#1237)
release/M1h
Thanks (in no particular order) to @atacratic, @TomasMikula, @mitchellwrosen, @pt2121, @noahhaasis, @alvaroc1, @int-index, @matthewess, @anovstrup, and @pete-ts, for your contributions to this release!
New features:
- Native
Nat.toFloat
(#1012) - add
bug : a -> b
andtodo : a -> b
builtins, which print their arguments and terminate (#881)
(todo
calls will probably show up in thetodo
ucm output in not too long) - Combined
delete
command (#1036) (no longer need to distinguish between terms and types) - show branch diff after
delete
(#1068) - add
load
command to manually load a .u file into ucm (#1099) - added pretty-printer support for
Doc
literals (#994) - added
diff.namespace
command which prints the diff between two namespaces (#1064).
the new diff output is also used now by relevant existing commands. - the codebases that result from running a unison transcript are now only saved if the
-save-codebase
flag is passed to thetranscript
command. (#1155)
Changed behavior:
handle e with h
syntax (#1159) instead of currenthandle h in e
.
fun fact: your existing code automatically reflects this syntax change 🎉- read
.unisonConfig
from the directory that the codebase is in (i.e. your home dir) (#1031)
Fixes:
- Fixed pretty-printing of
Char
when it is part of a pattern (#1008) - Hopefully more rebust debouncing logic for file events (#1019)
- Update propagation algorithm fixes (#996)
- Rendering cleanup in
names
output (#1002) - Fixed term printer for delayed bindings (#1007)
- fixed hashing issue for some effectful functions (#1020)
- suppress welcome message when using
ucm run
(#1057) - add POSIX compilant ctrl-c handling (#912)
- better typechecking message when .u file contains multiple definitions with the same name (#1077)
- fix
delete
tab completion wasn't including types (#1076) - speed up
todo
output if there is nothing to do (#1088) - fix issue with cleaning up emptied branches (#1090)
- clear cached typechecked file on parsing/typechecking error (#1138)
- fix crash when current dir contains broken symlinks (#1144)
M1g
- Fix regression around pushing to new git repos, (sorry! #971)
- Parsing and pretty-printing now use shortest unique suffix to identify definitions (#963) — you can use
Nat
instead of.base.Nat
when you only have oneNat
! - Renamed
resolve.term
andresolve.type
command toreplace.term
andreplace.type
(#988) - Some compiler cleanup (thanks @TomasMikula! #941)