Releases: unisonweb/unison
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
FileCodebasecache. #1549- fixed one source of unnecessarily high memory usage during
pull. #1561
UCM changes:
dependenciesanddependentscommand now produce numbered arg output (#1543, thanks @pt2121)- add
merge.squashcommand 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-exhaustiveanddebug.pull-exhaustive. #1570
Improved messages:
- fix typo in
delete.linkdocs (#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> inittip (#1529) - improve
pull-request.createhelp example (#1555, thanks @ceedubs) - print
ucmversion 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
.unisonConfigparser 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-replacementanddelete.type-replacementcommands (#1360)create.authorcommand (#1400)dependents,dependencies,debug.filecommands (#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.mergeno longer includes the contents ofIOSource.hs; usebuiltins.mergeioto get everything (#1411)
Fixes for:
- a crash in the auto-completion for
push(#1374) - a bug that caused
updateto produce too many updates (#1382) - reduce the amount of
gitoutput belched out bypush/pull(#1387) putSymbolgrowing 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
Bytesvalues (#1428) - pretty-printing non-ascii chars (#1437)
- many message & formatting improvements (#1372, #1403, #1405, #1407, #1424, #1425, #1440)
pullimporting 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.createandpull-request.loadcommands to support PR workflows (#1328, #1197, #1209) - new
alias.manycommand lets you copy multiple definitions' relative names at once to a destination namespace. (#1236) - new
backcommand to jump to the namespace you lastcded from. (#1294) - add
:hide:alloption forunisonanducmfences in transcripts (#1167)
allow
Changed behavior:
- changed
case/ofsyntax tomatch/with(#1214) linkandunlinkargument order has flipped fromlink <metadata> <definition>tolink <def1> [<def2> ...] <metadata>(#1208, #1127)- add LambdaCase style
casessyntax 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
pushandpull(#1281, #1302) - allow
add/updateto 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 -> bandtodo : a -> bbuiltins, which print their arguments and terminate (#881)
(todocalls will probably show up in thetodoucm output in not too long) - Combined
deletecommand (#1036) (no longer need to distinguish between terms and types) - show branch diff after
delete(#1068) - add
loadcommand to manually load a .u file into ucm (#1099) - added pretty-printer support for
Docliterals (#994) - added
diff.namespacecommand 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-codebaseflag is passed to thetranscriptcommand. (#1155)
Changed behavior:
handle e with hsyntax (#1159) instead of currenthandle h in e.
fun fact: your existing code automatically reflects this syntax change 🎉- read
.unisonConfigfrom the directory that the codebase is in (i.e. your home dir) (#1031)
Fixes:
- Fixed pretty-printing of
Charwhen it is part of a pattern (#1008) - Hopefully more rebust debouncing logic for file events (#1019)
- Update propagation algorithm fixes (#996)
- Rendering cleanup in
namesoutput (#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
deletetab completion wasn't including types (#1076) - speed up
todooutput 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
Natinstead of.base.Natwhen you only have oneNat! - Renamed
resolve.termandresolve.typecommand toreplace.termandreplace.type(#988) - Some compiler cleanup (thanks @TomasMikula! #941)
M1f
Point release in the M1 series. No codebase format changes.
Doctype with some special rendering in UCM (#914)- Change
push/pullsyntax to support remote Unison paths (#935) - First class links / references as Unison values (#901)
- Typechecking bugfixes (#942, #947; Thanks @TomasMikula #924, #925, #932)
- Codebase cleanup (Thanks @TomasMikula #887, #900, #907, #925, and @seagreen #934)
- Better propagation of types (#889)
- Numbered range args (#944)
- Transcript error blocks fail only if all subcommands fail (#946)
- Reflog cleanup (#951)
- Parsing and pretty-printing use shortest unique suffix to identify definitions (#963)
M1e
- New transcript runner (#816)
- New shallow
lscommand (now distinct fromfind) (#808) - New
resolve-editcommand - New
reflogandreset-rootcommands (#858) - The codebase is no longer silently initialized (Thanks @sullyj3)
- Fixes for boolean operators and char literals (Thanks @noahhaasis)
- Compiler cleanup and bugfixes (Thanks @TomasMikula)
- ucm now only searches for .u files in the current directory. (Thanks @jdevuyst)
- Support for autocompleting paths to new names
- Allow sequence literals in constructor patterns (Thanks @noahhaasis)
- Improved output for
find.patch(Thanks @pt2121) - more tests (Thanks @georgemarrows, @TomasMikula)
- fixes for misc bugs and typos
(Let me know if I missed something!)
M1d
Point release in the M1 series. No codebase format changes.