Enso Dev Blog — Friday 14th August
This update on the development of Enso is from the sprint ending 31st of July 2020. If you want to keep up with the development of Enso in real time, you can follow along on GitHub.
Integrated Development Environment
Engine compatibility
Recent API changes in the Engine meant that the IDE was incompatible with newer versions. The IDE has been updated to the newer API, fixing the incompatibility issues. Great news if you’re looking to take Enso for a test drive.
Dual representation
Code in the visual editor is updated in real time when expressions are edited in a node within the graph editor.
Engine
Standard Library
A new library, Base.Process
, allows spawning operating system processes. This is an important milestone in making Enso a useful general purpose programming language. Here’s some examples:
Print to Stdout:
import Base.Process
main = Process.shell "echo" ["Hello World!"]
Read from Stdin:
import Base.Process
main =
Process.shell "bash" ["-c", "read name; echo Hello $name!"]
Return exit code:
import Base.Process
main =
exit_code = Process.shell "bash" ["-c", "exit 42"]
IO.println exit_code
Parser
In previous editions, we’ve covered work on the flexer, an engine for generating parsers. The flexer is now generating working lexers, and has updated documentation, including a tutorial on using the flexer to generate a lexer.
With that complete, the flexer can now be used to write the Enso lexer, translating the existing rules from Scala to Rust.
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.