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

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

169531f · Jun 21, 2022

History

82 Commits
Jun 19, 2022
Jun 20, 2022
Jun 19, 2022
Jun 21, 2022
Jun 20, 2022
May 13, 2022
May 17, 2022
May 13, 2022
Jun 18, 2022
May 19, 2022
May 13, 2022
Jun 7, 2022
Jun 20, 2022
Jun 20, 2022
May 13, 2022
Jun 19, 2022
Jun 21, 2022

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.

About

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

Topics

Resources

License

Citation

Stars

Watchers

Forks