Enso Dev Blog — Friday 17th July
This update on the development of Enso is from the sprint ending 17th of July 2020. If you want to keep up with the development of Enso in real time, you can follow along on GitHub.
It’s been really exciting to share our progress with our community, and with others interested in Enso. Since we started this series, we had some great questions about the future of Enso, as a business, and a product. Our CEO, Wojciech Danilo, answered some of your questions earlier this week, you can check those out here.
Integrated Development Environment
Nodes
Ports and edges from ports are now coloured according to their type. This is an important part of visual Enso, helping you understand the transformation of data in complicated workflows at a glance.
Searcher
The searcher will be a tool in the IDE that will allow users to search for functions in the standard and imported libraries, and access key features of the IDE. The search is context sensitive, providing autocomplete-like functionality where possible. For example, when searching from a particular node, it will recommend methods on that type.
This sprint, the database for these suggestions has been implemented.
Project Management
Renaming projects (covered in the previous blog) got some flashy new visuals this week.
Engine
Parser
Work has continued on reimplementing the parser in Rust. This week, that work has been focused on the flexer. The flexer is a finite-automata-based engine for generating highly-optimised lexers, and was previously implemented in Scala. Not only must the flexer itself be reimplemented in Rust, but it must now generate Rust code from the lexer definition.
Progress on the parser rewrite can be followed at this Epic.
Launcher
The launcher will be used to run Enso commands, and manage Enso versions. This sprint saw the start of a user-friendly CLI with plugin support for the launcher.
Standard Library
The standard library is shaping up, with some extensions and quality of life improvements.
Layered State
We now have the ability to run computations in multiple kinds of State
at once, keyed on an arbitrary type.
List Utilities
A bunch of useful methods for the List
type, including a tail-recursive version of map
.
Test Framework
A framework for BDD-style testing has been built into the standard library.
More information
That’s all for this developer update. We’ll be back with more after the next sprint. You can continue to follow along with Enso development on GitHub, by joining our Discord server, or subscribing to updates on our developer mailing list.