Skip to content

Command-line toolkit for parsing, compiling, transpiling, optimizing, linking, dataizing, and running EOLANG programs

License

Notifications You must be signed in to change notification settings

objectionary/eoc

Repository files navigation

logo

grunt

First, you install npm and Java SE.

Then, you install eolang package:

$ npm install eolang

Then, you write a simple EO program in hello.eo file in the current directory:

[args...] > hello
  QQ.io.stdout > @
    "Hello, world!\n"

Then, you run it:

$ eoc dataize hello

That's it.

You can also do many other things with eoc commands (the flow is explained in this blog post):

  • register finds necessary EO files and registers the in a CSV
  • assemble parses EO files into XMIR, optimizes them, pulls foreign EO objects
  • transpile converts XMIR to target programming language
  • compile converts target language to binaries
  • link puts all binaries together into a single executable binary
  • dataize executes the binary and dataize a single object
  • test executes all visible unit tests

There are also commands that help manipulate with XMIR and EO sources (some of them are not implemented as of yet):

  • audit inspects all packages and report their status
  • translate converts Java/C++/Python/etc. program to EO program
  • demu removes cage and memory objects
  • dejump removes goto objects
  • infer suggests object names where it's possible to infer them
  • flatten moves inner objects to upper level

This command line toolkit simply integrates other tools available in @objectionary GitHub organization.

How to Contribute

First, run npm install. Then, run grunt. All tests should pass.

If you want to run a single test:

$ npm test -- test/test_mvnw.js

Then, make a pull request.