
This is in addition to lots of people hacking on Unison in their spare time.
Unison reviews full#
We doubled the size of the team at Unison Computing this year! Five new people joined the team, so there are now 10 people working on Unison full time. Growing the Unison Computing team and community # Type inference for ability types is vastly improved.There's now a command to generate HTML from Unison Docs.For example edit ?.doc to edit the docs for all the immediate children of the current namespace UCM now supports wildcard globbing via the ? symbol.If you have fzf installed, UCM will now invoke it if you type cd, find, or edit without any arguments.We improved the performance of UCM in several important ways.We added new builtins and new functionality in the Base libraries.Together we fixed a lot of bugs and improved the developer experience in lots of little ways this year: This can be executed from the command line with very fast startup times via ucm run.compiled binary.uc, without the overhead of loading the UCM interactive shell or needing to invoke the Unison compiler. This will output a small precompiled file binary.uc that contains your main function and its minimal transitive dependencies. We also added support for self-contained bytecode files. We'll be reusing a lot of these stages when compiling to native code, coming this year! Standalone binaries #
Unison reviews code#
The new runtime uses a traditional compiler pipeline which takes the code through several intermediate stages before execution.
Unison reviews software#
It's much faster, and has revamped I/O and concurrency primitives including software transactional memory, and more. We replaced it with an efficient virtual machine that piggybacks on the Haskell VM. That first alpha version of Unison also ran on an inefficient runtime that was more of a proof-of-concept than anything else. Some codebases saw a 99.5% reduction in size as a result of this, UCM uses up to 75x less RAM, and the whole experience of manipulating the codebase is much snappier. Alpha testers quickly ran into the limitations of this format, so last year Unison switched over to using a SQLite database to store the code. The first alpha release of Unison stored the codebase in a directory structure, similar to how e.g. The code for the article is on Unison Share. See also our recently published article " Spark-like distributed datasets in under 100 lines of Unison". Every Unison symbol that appears in the document is hyperlinked to its definition. All the examples are typechecked and evaluated live.

Documents are ordinary Unison values, so docs are actually written in Unison.įor an example of this in action, see the documentation for the List data type in the Base library. This past summer we rolled out a powerful new computable documentation format which makes it a joy to write deeply interlinked documentation with embedded live examples. This site is running a version of the codebase UI, so the experience of browsing your local codebase vs a publicly shared library should be more or less the same. It already hosts a whole bunch of libraries from the community, as well as the Base libraries. It also aims to be the place developers go to read API documentation. We launched a new community hub at where people can share their Unison code for others to see. We have big plans for this UI, and in time it might become a full-fledged IDE for Unison. Documentation (written in Unison! - see below) is beautifully rendered. This comes embedded in the Codebase Manager, so now when you start up ucm it also starts a local web server that lets you browse and search your code in a delightful way.Īll the code shown in the UI is hyperlinked to support clicking through to definitions. So this summer we rolled out a new user interface for browsing the Unison codebase through a web browser. Since a Unison codebase is not stored in text files, it's been a sticking point for developers that they haven't been able to easily browse their code and post it online for others to see. A beautiful UI for browsing Unison code # In total, we merged more than 600 pull requests. We released a new alpha version roughly every other month, and each release came with some serious improvements.
