Our last release wasM1mway back in May 2020 and a lot has been happening since then. Thanks toall the contributors who helped make this release possible.
First, there's a snazzy new UI for browsing Unison codebases:
This UI now comes embedded in UCM and a version is hosted atshare.unison-lang.org.If you have public Unison code you'd like to be browseable atshare.unison-lang.org,you canopen a PR for this file.
All the code shown in the UI is hyperlinked to support click through to definitions, and this interface will soon support find usages, rich rendering of documentation, and more. This excellent work was a joint effort by@hojberg(designed and built the front end) and@runarorama(wrote the back end server that provides an interface to the codebase over HTTP). There's still some ongoing work to improve the performance of this UI whichcan be tracked here.
Besides the Codebase UI, here's what else is new:
- There's a powerful newcomputable documentation formatwhich makes it a joy to write deeply interlinked documentation with embedded live examples. Work by@pchiusano.For now there's just a console renderer for docs within UCM, but the codebase UI will soon support doc viewing.
- The M2 release uses a newSQLite-based codebase formatwhich is about 100x smaller on disk and uses up to 75x less RAM, with further performance improvements on the way. Work by@aryairani.Performance issues with the simplistic V1 codebase format were getting in the way of library development.
- The Unison runtime has been rewritten: it's faster and comes with revamped I/O and concurrency primitives including software transactional memory and more. We'll be publishing docs on this soon. Work by@dolio.
- M2 has lots of new builtin functions, improvements to the base library, and various new syntax. Work by@stew,@pchiusano,@runaroramaandmany others.
Seethe release notesfor the full details.
You can head over tounison-lang.org/learnfor instructions on getting started or upgrading. And comesay hello in the Slack.
There are a few events coming up: regular "office hours", a documentation day, and a Unison workshop at ZuriHac. Seethe event calendar.
Following M2, the next major release will be a beta release which includes the distributed programming API and a number of improvements to UCM and the codebase UI. We'll be publishing a roadmap soon. After the beta release will be mostly bugfixes and polish before our first general availability release!