Releases: unisonweb/unison
release/0.5.12
What's Changed
- new
io.test.all
command runs all the IO tests in your namespace - new
rename
command, is the same asmove
namespace.dependencies
now ignoreslib
. You cancd
intolib
and run it there if you are curious about the state of your libraries.- auto-completion improvements for many project commands
- several bugfixes
All PRs since last release
- io.test.all by @ChrisPenner in #4507
- make
namespace.dependencies
ignorelib
by @mitchellwrosen in #4509 - Partial implementation for native execution/compilation via a standalone executable by @dolio in #4511
- Better project-branch completion for many project commands by @ChrisPenner in #4513
- add
rename
as an alias formove
by @aryairani in #4523 - don't
isTest
-check entiredeepTerms
onview
/edit
by @ChrisPenner in #4520 - bugtweak: force result of
synthesizeForce
earlier by @mitchellwrosen in #4530 - update the name of the pre-release build by @aryairani in #4508
- bugfix: make
run
able to run things that don't return builtins by @mitchellwrosen in #4533 - fix "branch already exists" error message to show project, too by @mitchellwrosen in #4505
- Fix bug in
Bytes.fromBase16
when chunks have an odd size by @runarorama in #4529
Full Changelog: release/0.5.11...release/0.5.12
release/0.5.11
What's changed:
- New
move
command will move existing namespaces, terms, and types, all at once. - Several fixes to
upgrade
, pretty-printing, docs parsing, and type-directed name resolution. - A fix related to displaying docs in Unison Local.
- We've switched to a less weird version numbering scheme (0.5.11 instead of M5k)
All PRs since last release:
- verify 'stack ghci' startup on mac at least by @aryairani in #4455
- Add a new Pattern.captureAs builtin by @stew in #4452
- Allow layout blocks within Doc transclusion by @pchiusano in #4458
- Change urls to use
/docs
instead of/learn
by @pchiusano in #4459 - bugfix: tweak upgrade to ignore aliases of old things by @mitchellwrosen in #4471
- Add
move
command that moves existing namespaces,terms, and types by @tstat in #4477 - Use minimal suffix that's distinct from local var names by @ChrisPenner in #4481
- switch generic-monoid to semigroups (the two overlapping packages) by @aryairani in #4457
- bugfix: make
upgrade
not require a latest-touched file (default to "scratch.u") by @mitchellwrosen in #4479 - provide some deps for the nix linker by @tstat in #4464
- Return evaluation errors rather than just silencing them. by @ChrisPenner in #4433
- Don't typecheck dependents of unchanged defns in upgrade by @tstat in #4486
- Unison Local - Search for docs by exact name, not suffix by @ChrisPenner in #4485
- bugfix: make upgrade not over-suffixify in certain cases by @mitchellwrosen in #4500
- Bugfix: Prefer shallow lib depth in TDNR by @tstat in #4502
- update UpdateIncompleteConstructorSet message by @aryairani in #4503
- use semver for ucm by @aryairani in #4504
Full Changelog: release/M5j...release/0.5.11
release/M5j
What's changed:
- We fixed a bug where saving a scratch file with watch expressions could cause UCM to crash with a SQL error. #4454
- Updates are faster when nothing new needs to be typechecked.
All PRs since last release:
- in update, don't bother typechecking again if we haven't changed the unison file by @mitchellwrosen in #4446
- Unique type churn transcript: add case of revert by @ceedubs in #4447
- update transcripts due to out-of-order merges by @aryairani in #4451
- bugfix: update no longer tries to put non-test watches into the namespace by @mitchellwrosen in #4454
- PackageImports to workaround
stack ghci
failure by @aryairani in #4453
Full Changelog: release/M5i...release/M5j
release/M5i
This release fixes some bugs related to the new update
process. Upgrading is recommended!
All changes since last release:
- Update release-steps.md by @aryairani in #4390
- Force push to avoid keeping tons of old docs by @ChrisPenner in #4396
- Fix spacing in
create.author
help by @pchiusano in #4401 - add some more info than just calling
fromJust
by @aryairani in #4404 - Improve kind error messages by @tstat in #4398
- Add build-tools only devShell that doesn't depend on haskell.nix by @tstat in #4394
- Nix flake: set default app to haskell-nix unison-cli app by @ceedubs in #4412
- Fix bug in scratch file updates by @tstat in #4414
- fix for test watches in
update
by @aryairani in #4413 - Fix name resolution bug in the parser by @tstat in #4419
- Add support for the
controls
attribute in Video by @hojberg in #4431 - fix unsigned int error in update by @aryairani in #4434
- Add entity validation on pull. by @ChrisPenner in #4377
- don't use
deepTermMetadata
fortest
by @aryairani in #4428 - Fix suffixification bug #4424 by @tstat in #4437
Full Changelog: release/M5h...release/M5i
release/M5h
What's new:
Simplified update
process
See the #4374 for more details. TL;DR:
Given your already type-checked scratch file, UCM attempts to substitute the new definitions everywhere the old were referenced in your namespace and other definitions, propagating recursively.
- If successful, you are done!
- If unsuccessful, UCM will load the dependent definitions into the scratch file for you to edit until they typecheck.
Library upgrade
command
See #4386 for more details. TL;DR:
With both an <old>
and <new>
version of a library installed under lib.<old>
and lib.<new>
respectively, the upgrade <old> <new>
command will attempt to replace any usages in your project of definitions from <old>
with definitions from <new>
with the same names.
- If successful,
<old>
is removed fromlib
, and you are done! - If unsuccessful, UCM will switch you to a new temporary branch (without
<old>
), and load the dependent definitions into the scratch file for you to edit until they typecheck. - When you finish the migration, you can
update
and then use themerge
command to merge the temporary branch into your original branch.
Kind checking
We have kind checking now!
Various improvements to
- Error messages
- Pretty-printing and code round-trips
- Request timeout fixes for Share
All changes since last release:
- refactor: add generic-lens to prelude, export orphan IsLabel instance by @mitchellwrosen in #4332
- Restructure decompilation by @dolio in #4336
- Add new BranchV3 type by @mitchellwrosen in #4333
- Add Term Hash Validation by @ChrisPenner in #4329
- Add kind inference by @tstat in #4331
- add expectDeclNumConstructors by @mitchellwrosen in #4341
- JIT: Added
Code.lookup
function and various supporting code changes by @dolio in #4339 - quick fix for delete.type #4315 for next steps by @sixfourtwelve in #4342
- Fill out more scheme builtins by @dolio in #4355
- improve rendering of uncaught exceptions by @mitchellwrosen in #4358
- Fix kind inference context bug by @tstat in #4366
- Delay kind defaulting by @tstat in #4359
- Assorted pretty-printing round trip fixes by @pchiusano in #4368
- Implement Murmurhash in racket by @jaredly in #4365
- Fix parser issue caused by virtual semicolons being emitted inside parens by @pchiusano in #4369
- Scheme builtin optimization and associated tweaks by @dolio in #4371
- Add missing spaces to
pull
explanation by @JohanWinther in #4361 - Align client timeouts with server-side timeouts by @ChrisPenner in #4364
- Add @lexi-lambda to contributors by @pchiusano in #4379
- Add @SystemFw to contributors by @SystemFw in #4380
- print/parse
update
by @aryairani in #4374 - Bump haskell.nix dependency by @tstat in #4376
- feat: add
upgrade
command by @mitchellwrosen in #4386 - update
update
info messages by @aryairani in #4387 - make findCtorNames return an Output instead of error by @aryairani in #4388
New Contributors
- @JohanWinther made their first contribution in #4361
Full Changelog: release/M5g...release/M5h
release/M5g
What's Changed
- Warn on invalid awk version by @ChrisPenner in #4291
- Use gawk if installed by @ChrisPenner in #4292
- add haskell-language-server-wrapper symlink by @mitchellwrosen in #4298
- try to set a custom workflow name on release by @aryairani in #4289
- [jit] Add setCurrentDirectory, renameDirectory, isDirectory, systemTime, systemTimeMicroseconds, isSeekable, and handlePosition by @jaredly in #4296
- Port Name lookups to Postgres by @ChrisPenner in #4265
- refactor: eliminate duplicate ShortHash type by @mitchellwrosen in #4299
- Add extra help line for delete command by @sixfourtwelve in #4302
- Add @sixfourtwelve to the contribution list by @sixfourtwelve in #4307
- Relax hash-mismatch errors if the remote head is what we wanted by @ChrisPenner in #4309
- Add logic to flip welcome hint message by @sixfourtwelve in #4304
- Prefer triple backtick syntax during doc source printing, even for old docs by @pchiusano in #4312
- Add tip for existing branches by @sixfourtwelve in #4308
- Endpoint exposing chosen project, branch and working path by @chuwy in #4285
- Make
pull.without-history
work for Share project branches by @ChrisPenner in #4301 - Add windows stack build retry on pre-release by @ChrisPenner in #4313
- refactor: one reference type by @mitchellwrosen in #4310
- Add fuzzy-finder for project switching by @ChrisPenner in #4317
- Modify intermediate code/value format to be less Haskell-runtime specific by @dolio in #4311
- Fix compile error in benchmarks by @pchiusano in #4323
- Allow multiple ignored bindings in a block by @pchiusano in #4324
- Fixes to suffix-based name resolution when local file names shadow codebase names by @pchiusano in #4325
- Add new combinator for getting ALL the dependencies of a decl. by @ChrisPenner in #4322
- refactor: replace runEitherTransaction with more ergonomic runTransactionWithRollback by @mitchellwrosen in #4327
- Add missing dependency crawling for MCode by @dolio in #4326
New Contributors
- @sixfourtwelve made their first contribution in #4302
Full Changelog: release/M5f...release/M5g
release/M5f
What's Changed
- bump haskell.nix to support new lsp by @tstat in #4275
- Don't completely crash mid-update on missing metadata by @ChrisPenner in #4281
- Clear temp entity tables on login by @ChrisPenner in #4286
- Implement verified hashing for racket backend, with assorted changes by @dolio in #4287
- feat: allow pulling /releases/latest by @mitchellwrosen in #4288
Full Changelog: release/M5e...release/M5f
release/M5e
What's Changed
- cloud jit: implement createTempDirectory removeDirectory createDirectory renameFile isFileOpen ready by @jaredly in #4276
Full Changelog: release/M5d...release/M5e
release/M5d
What's Changed
- Remove Share paths from release flow by @ChrisPenner in #4248
- Add autocomplete for
ui
by @ChrisPenner in #4249 - remove cache.iog.io by @aryairani in #4251
- Add github action to populate nix development cache by @tstat in #4244
- Change runtime term link representation to allow code validation by @dolio in #4255
- Add -y when calling into racket by @dolio in #4264
- Bump LSP lib versions by @ChrisPenner in #4262
- Project UI support by @ChrisPenner in #4246
- Provide mechanism for hashing BranchFormatFull by @ChrisPenner in #4261
- Adds APIs for listing project and branch names in Unison Local by @ChrisPenner in #4250
- fixes #4239, pretty printing for single arg infix op terms no longer displays "error" by @kylegoetz in #4260
- Only run ormolu formatter on trunk by @ChrisPenner in #4270
- disable nix-dev-cache temporarily by @aryairani in #4271
- Round tripping code now yields same hash after reparsing in all known cases by @pchiusano in #4267
- Fix bug where constructors would incorrectly print with a prefix by @pchiusano in #4274
Full Changelog: release/M5c...release/M5d
release/M5c
What's Changed
- tests: Add simple test cases for Text.indexOf and Bytes.indexOf by @lexi-lambda in #4195
- Check if credentials have expired in
ensureAuthenticatedWithCodeserver
by @tstat in #3986 - Add FLOR INCI INCN LOGB and LOGF to the jit by @jaredly in #4196
- Fix various issues with structural find and replace by @pchiusano in #4197
- refactor: delete unnecessary typecheck file variant by @mitchellwrosen in #4140
- Allow
single backticks
for inline monospaced text in docs by @pchiusano in #4206 - fix package.yaml paths ignore thing in network-uri-orphans-sqlite by @mitchellwrosen in #4211
- refactor: make Codebase.typeLookupForDependencies add type lookup for builtins itself by @mitchellwrosen in #4142
- Fix name shadowing / capture issue in pretty-printer by @pchiusano in #4213
- refactor: one less typecheck helper by @mitchellwrosen in #4147
- Add conflict warnings to LSP by @ChrisPenner in #4215
- Generalize
causalHashAtPath
combinators for use in Share by @ChrisPenner in #4216 - Type signature hint Code Lens by @ChrisPenner in #3799
- add docs/nix.md with some info re. cachix by @aryairani in #4210
- refactor: add export list to parser module by @mitchellwrosen in #4148
- feature: fix unique type churn by @mitchellwrosen in #4209
- Adapt cabal build to lts-20.26 by @jneira in #4203
- Numerous pretty-printer fixes and enhancements by @pchiusano in #4217
- Add jit primops MAXF MINF MULF MULI NEGI NTOF POWF POWI POWN SUBI SGNI by @jaredly in #4219
- Implement value reflection in scheme by @dolio in #4218
- Ensure
TVar
values can be compared for equality by @dfreeman in #4224 - Include constructors in labeled deps of decls rendering docs by @ChrisPenner in #4225
- Fix performance problems with
branch.delete
by @tstat in #4229 - switch
hereFile
toFileEmbed
when running sql files so we don't need weird symlinks by @aryairani in #4231 - Add Lazy.nvim installation notes by @chuwy in #4234
- Improve error message for missing result of block by @runarorama in #4235
- Refresh transcripts for missing results by @runarorama in #4237
- Add RNDF SQRT TANH TANF TZRO POPC to the jit by @jaredly in #4220
- Update unison cachix public key by @ceedubs in #4240
- Term declarations should not allow hashes in the term name (typesig or term definition) by @kylegoetz in #4247
New Contributors
- @chuwy made their first contribution in #4234
- @kylegoetz made their first contribution in #4247
Full Changelog: release/M5b...release/M5c