Eve Alpha v0.2.3

@cmontella cmontella released this Dec 12, 2016 · 68 commits to master since this release

What's new in Eve Alpha v0.2.3?

Share Eve Programs with Gist

You can now share and load Eve programs with a link. There are two new icons in the editor at the top of the navigation pane: "Save to Gist" on the left, and "Load from Gist".

new editor buttons

Clicking the "Save to Gist" button will upload your Eve program to a new Gist and provide you with a link to it:

save to gist

You can copy this link and send it to a friend, who can then load your program using the "Load from Gist" button. Clicking this button will reveal an input box, into which you can paste Gist links:

load from gist

When you load a Gist, you get a local copy of the linked Eve program. Any edits to this program will be made locally, and saved in your project workspace.

A nice feature here is that you can share Eve programs with friends new to Eve using play.witheve.com. Save your Eve program to Gist as normal, then load it at play.witheve.com. Now copy the address, and send it to anyone! Anyone with the link can load your program and run it in the browser, without any setup.

Note, that saving to Gist saves a snapshot of you code at the time the link is generated. If you update your code, you'll need to generate a new link to reflect the changes.

Embed CSS Directly in Eve Programs

With a big thanks to the work of dwsmorris, you can embed CSS blocks into Eve documents. In the editor, you can create CSS blocks with the WYSIWYG toolbar:

css blocks

Standard Library

Changelog (46)


  • Gist saving and loading - [675]
  • Integrate CSS blocks - [580]
  • Translate tabs into spaces - [656]
  • Fix changes not being reloaded when navigating - [634]


  • Fix duplicate tag error - [653]


  • Make sure records in parenthesis are treated the same - [674]
  • Fix DependencyChecker if branch that looks at attributes with a fixed value - [672]
  • Fix interdependent nonexistent variables - [664]
  • Fix stratification when joining aggregate results with other scans - [657]
  • Fix server client eagerness - [655]
  • Fix sort.test() not correctly looking up results - [647]
  • Remove unnecessary condition in fullScan() - [611]
  • Blank lookup in a search should produce error - [619]
  • Increase maximum interation limit - [623]


  • Added help flag - [682]
  • Refactor assets directory structure - [652]
  • Fix file loading in Windows - [651]
  • Make errors platform agnostic - [622]


  • Add fix[] function - [665]
  • Add join[] aggregate - [639]
  • Fix bug in gaussian[] - [641]
  • Make functions that return NaN do nothing - [629]


  • Add npm installation instructions - [52]
  • Make Databases a top-level menu item - [35]
  • Update join[] documentation - [48]
  • Update blocks documentation - [34]
  • Update sum[] documentation - [39]

Misc Fixes

[688] [676] [686] [683] [662] [659] [654] [630] [637] [628] [626] [625] [56] [50] [47] [41] [40] [43] [37]

Contributors (15)


Eve Alpha v0.2.2

@cmontella cmontella released this Nov 30, 2016 · 209 commits to master since this release

Eve logo

What's new in Eve Alpha v0.2.2?

Eve npm package

We published a package for Eve on npm, so you can now install Eve like so:

npm install -g witheve

This will give you a global Eve installation that you can invoke with the command eve from anywhere. Doing so will start an Eve server, in the same way npm start currently does. (Note: be sure to install witheve, as installing eve will give you a different package)


We're introducing the ability to run Eve in a custom project workspace. To create a new Eve project workspace, create a folder with an empty file named package.json then start Eve from within this folder. Eve recognizes that it's starting in an Eve project, and will serve *.eve files from within this directory instead of the Eve examples folder. Furthermore, you can serve various assets, like images or CSS, by placing them in an "assets" sub-folder.

Server Mode

Now, Eve can be started in server mode using the --server flag:

eve --server

Without this flag, execution of Eve programs happens within the browser, with the Eve server acting as an intermediary between the browser and your local system. In server mode, Eve will instead execute your program on the server. Currently written programs will operate exactly as before, but this is a preliminary step in order to get networked Eve applications going (like a chat server or a multiplayer game). There is still work needed to be done there (currently in review), so stay tuned for more!

Deploying Eve Apps

Eve npm

This is one of the most requested features to date, so we're happy to bring it to you! You can now run Eve applications without the editor, which should pave the way to deploying them on your own server. You can specify which Eve program you want to run after the Eve command:

eve ~/myEveDir/myEveFile.eve

Now you can navigate to Eve in your browser to access the specified program. If you like, you can also recover the editor with a flag:

eve ~/myEveDir/myEveFile.eve --editor

This will run the supplied Eve program with the editor visible.

Standard Library

The standard library still needs a lot of work, but thanks to our intrepid community we made some great progress on adding basic functionality.

  • Added support for the vast majority of HTML/SVG tags (thanks @frankier!)
  • Added urlencode[] (thanks @renegr!)
  • Achieved parity with Javascript math library functions and constants (thank @Cormac-Williams!)

Changelog (51)


  • Fixed non-eve block identifiers being overwritten - [573]
  • Added notification when the editor is disconnected from the server - [597]
  • Added tooltips for editor buttons - [496]
  • Fix inspector after refactor - [555]


  • Added support for more HTML and SVG tags - [576]
  • Added support for more HTML and SVG tags - [602]
  • Fix dom ordering when sort value is 0 - [596]
  • Fixed cursor reset when changing value of input. - [601]
  • Send keydown for window element - [542]
  • Add tickbox change event - [506]
  • Add coordinates to click and dblclick events for SVG and root elements - [532]


  • Allow nots without dependencies to run - [613]
  • Standalone Eve Apps - [571]
  • Fix determining if a stratum has database scans - [614]
  • Fixed a case where malformed messages were crashing the server - [556]
  • Added port flag for Eve server - [553]


  • npm package - [598]
  • Make CSS, favicon and font dependencies local - [521]
  • Fix Docker install - [560]
  • Add system-polyfill.js - [518]


  • Fix error when JSON value is null - [593]
  • Fix error when JSON value is null - [604]
  • Fixed [#time timestamp] - [603]
  • Fixed HTTP requests being sent twice - [504]
  • Replace angle with radians and degrees in sin and cos - [516]
  • Support for query-params - [517]
  • added Urlencode function to urlencode a string - [517]
  • fix a bug in http where the request wasn't being opened before setting headers - [517]
  • Fixed power function having arguments in wrong order - [524]
  • Make Gaussian use its own result cache rather than using (uniform) Random's - [529]
  • Clean up math.ts - [530]
  • Extend math.ts to match the rest of javascript's math library - [535]


  • Cleaned up references to match - [14]
  • Added hour-24 to #time - [20]
  • Cleaned up references to @name - [21]
  • Fixed examples in split - [23]
  • Added sort - [27]

Misc Fixes

[594] [485] [543] [567] [494] [488] [578] [615] [8] [11] [13] [16] [17] [19]

Contributors (25)


Eve Alpha v0.2.1

@cmontella cmontella released this Nov 16, 2016 · 298 commits to master since this release

Eve logo

Eve is a set of tools to help us think. Currently, these tools include: a temporal query language, a compiler, and a database.

Eve Clock


From Source

You'll need a recent node.js and then:

npm install
npm start

Then open http://localhost:8080/ in your browser.

How to use Eve

You can learn about Eve with the following resources:

Please let us know what kind of documents would be the most helpful as you begin your journey with Eve. We want our documentation to be a highlight of the Eve experience, so any suggestions are greatly appreciated.

Get Involved

Join the Community

The Eve community is small but constantly growing, and everyone is welcome!

How to Contribute

The best way to contribute right now is to write Eve code and report your experiences. Let us know what kind of programs you’re trying to write, what barriers your are facing in writing code (both mental and technological), and any errors you encounter along the way. Also, let us know what you love! What features are your favorite?

Another way to really help us is to host your *.eve files on Github, so we can get Eve recognized as an official language in the eyes of Github. Be sure to also send us a link to your repo!

How to File an Issue

Please file any issues in this repository. Before you file an issue, please take a look to see if the issue already exists. When you file an issue, please include:

  1. The steps needed to reproduce the bug
  2. Your operating system and browser.
  3. If applicable, the .*eve file that causes the bug.


Eve is licensed under the Apache 2.0 license, see LICENSE for details.


Eve is currently at a very early, "pre-alpha" stage of development. This means the language, tools, and docs are largely incomplete, but undergoing rapid and continuous development. If you encounter errors while using Eve, don't worry: it's likely our fault. Please bring the problem to our attention by filing an issue.

As always, with pre-release software, don’t use this for anything important. We are continuously pushing to this codebase, so you can expect very rapid changes. At this time, we’re not prepared make the commitment that our changes will not break your code, but we’ll do our best to update you on the biggest changes.