Releases: unisonweb/unison
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)
M1f
Point release in the M1 series. No codebase format changes.
Doc
type with some special rendering in UCM (#914)- Change
push
/pull
syntax 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
ls
command (now distinct fromfind
) (#808) - New
resolve-edit
command - New
reflog
andreset-root
commands (#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.
M1c
Point release in the M1 series. No codebase format changes.
Fixes #668, an infinite loop if search results include a type name that referred to more than one definition, a name conflict which can occur after merging two namespaces.
Pro tip: If you are upgrading from earlier in the M1 series, and end up in a situation where you have to choose between getting rid of List##List
and List##Sequence
, get rid of List##List
. Sorry about that.
M1b
Point release in the M1 series. No codebase format changes. Recommended action is to pull latest unisonbase after upgrade:
.> cd .
.> pull https://github.com/unisonweb/unisonbase.git
Fixes:
- #645, thanks to @zenhack for spotting!
- unisonbase had an incorrect mapping for
List
type name:List a
should be a synonym for[a]
but it wasn't in unisonbase. - Minor lexing / parsing fixes when nesting
!
and'
prefix operators.