Our last release was M1m way back in May 2020 and a lot has been happening since then. Thanks to all 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 at share.unison-lang.org. If you have public Unison code you'd like to be browseable at share.unison-lang.org, you can open 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 which can be tracked here.
Besides the Codebase UI, here's what else is new:
- There's a powerful new computable documentation format which 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 new SQLite-based codebase format which 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, @runarorama and many others.
See the release notes for the full details.
There are a few events coming up: regular "office hours", a documentation day, and a Unison workshop at ZuriHac. See the 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!