Eve Alpha v0.3 preview 5

Corey Montella - 23 Jun 2017

(Eve is a new programming language, and this is our development blog. If you’re new to Eve, start here)

We’re releasing Preview 5 of Eve v0.3 today. This isn’t a huge release, but it contains some critical bug fixes, so if you’re using Preview 4, you’ll want this right away.

What’s New?

Eve Starter

Since more people are using eve-starter, we’ve implemented two development streams so we don’t break your work inadvertently.

  • release - This branch will be in sync with the witheve npm module.
  • nightly - We will be actively pushing to eve-starter/master, so if you want to work with the bleeding edge of Eve, work from this branch. We’ll warn of breaking changes on the community Slack, but more formal notice of breaking changes will only come when we package a release.

We’ve updated the readme with instructions on how to work with these branches.

Due to changes in the way npm works, if you are updating a current installation of Eve v0.3 (preview 4 or earlier) and you have a package-lock.json file in your eve-starter directory, you will need to delete this file in order to upgrade:

rm -r node_modules
rm package-lock.json

If you don’t have this file, you are fine.

New Libraries

We’ve got three new libraries for you today: notify, file, and console.

  • notify - Provides a configurable notification banner for displaying info, alerts and errors.
  • file - Provides facilities for accessing the filesystem. This library can only be used when Eve is running in headless mode.
  • console - Allows you to write messages to console log, warn, and error.



We made a couple fixes to the Eve platform:

  • Action lookups in the syntax now support dynamic attributes - [849]
  • Fixed an issue with aggregates and grouping, which would cause blocks using them to fail - [856]
  • Fixed unterminated record/quote errors - [848]
  • Prevent exception from program which parses no code blocks - [850]
  • Fixed double-printing first line on error spans that start at the beginning of the block - [848]
  • Better error message for non-fixpoint - [847]
  • Add a custom error message for values without attributes in a record - [845]
  • Allow appendAsEAVs to also handle nested sub-records - [861]
  • Export all first party watcher classes - [862]


  • Enables using html.addExternalRoot() to control SVG placement - [846]
  • Enables mixing SVG into HTML documents - [846]


For the first time, the standard library now has a baseline of documentation. The documented libraries include aggregates, math, strings, HTML, canvas, UI, system, file, and console.

We’ve also changed/added the following:

  • added the math/pow[] function - [856]
  • added the math/convert-base[] function - [856]
  • added the #notify library - [859]
  • added the #file library - [858]
  • added the #console library - [858]
  • (BREAKING) - adjusted the attributes on #system/timer:
    • fixed day attribute on timer to report the day of the month, not the day of the week - [853]
    • added weekday and millisecond attributes - [853]
    • changed frames to tick - [855]
    • changed hours, minutes, and seconds to hour, minute, and second - [855]


Thanks to everyone who contributed to this release!