eolang

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

https://github.com/objectionary/eoc

Science Score: 54.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
    1 of 9 committers (11.1%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.8%) to scientific vocabulary

Keywords

command-line eolang java javascript maven toolkit

Keywords from Contributors

object-oriented object-oriented-language object-oriented-programming programming-language
Last synced: 4 months ago · JSON representation ·

Repository

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

Basic Info
Statistics
  • Stars: 28
  • Watchers: 5
  • Forks: 35
  • Open Issues: 36
  • Releases: 56
Topics
command-line eolang java javascript maven toolkit
Created over 3 years ago · Last pushed 4 months ago
Metadata Files
Readme License Citation

README.md

EOLANG Command Line Tool-Kit

EO principles respected here We recommend IntelliJ IDEA

grunt node-current PDD status Hits-of-Code License

This is a command-line tool-kit for EO programming languages, allowing you to compile EO programs, test, dataize, and check for errors.

First, you install npm and Java SE.

Then, you install eolang package, using npm:

bash npm install -g eolang@0.32.1

You can also use Homebrew:

bash brew tap objectionary/eoc https://github.com/objectionary/eoc brew install objectionary/eoc/eolang@0.32.1

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

```eo

My first object in EO!

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

Then, you run it:

bash eoc --easy dataize hello

That's it.

Commands

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 them in a JSON catalog
  • assemble parses .eo files into .xmir, optimizes them, and pulls foreign EO objects
  • transpile converts .xmir files to the target programming language (Java by default)
  • compile converts target language sources (e.g., .java) to binaries (e.g., .class)
  • link puts all binaries together into a single executable binary
  • dataize dataizes a single object from the executable binary
  • test dataizes all visible unit tests
  • lint finds style-related errors in EO and XMIR files
  • jeo:disassemble converts Java .class files to .xmir (via jeo)
  • jeo:assemble converts .xmir files to Java .class files (via jeo)

There are also commands that help manipulate with XMIR and EO sources (the list is not completed, while some of them are not implemented as of yet):

  • audit inspects all required packages and reports their status
  • foreign inspects all objects found in the program after the assemble step
  • sodg generates .sodg from .xmir, further rederable as XML or Dot
  • print generates .eo files from .xmir files
  • generate_comments generates .json files with LLM-generated documentation for .eo structures
  • docs generates HTML documentation from .xmir files
  • latex generates .tex files from .eo sources
  • fmt formats .eo files in the source directory
  • ~~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 the @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:

bash npm test -- test/test_mvnw.js

Make your changes and then make a pull request.

Owner

  • Name: Objectionary
  • Login: objectionary
  • Kind: organization
  • Email: github@objectionary.com

EO Programming Language, Its Objects, and 𝜑-calculus

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
- family-names: "Bugayenko"
  given-names: "Yegor"
  orcid: "https://orcid.org/0000-0001-6370-0678"
title: "EOLANG and 𝜑-calculus"
version: 0.23.0
doi: 10.48550/arXiv.2111.13384
date-released: 2022-05-09
url: "https://github.com/objectionary/eoc"

Committers

Last synced: almost 3 years ago

All Time
  • Total Commits: 228
  • Total Committers: 9
  • Avg Commits per committer: 25.333
  • Development Distribution Score (DDS): 0.408
Top Committers
Name Email Commits
Yegor Bugayenko y****6@g****m 135
renovate[bot] 2****]@u****m 49
volodya-lombrozo v****o@y****u 19
kerelape 9****e@u****m 7
maximtrunnikov m****v@m****u 6
mximp m****v@g****m 4
volodya-lombrozo v****o@g****m 3
maxonfjvipon m****v@g****m 3
ivan-egorov42 e****m@p****u 2
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 4 months ago

All Time
  • Total issues: 129
  • Total pull requests: 710
  • Average time to close issues: about 1 month
  • Average time to close pull requests: 8 days
  • Total issue authors: 32
  • Total pull request authors: 28
  • Average comments per issue: 2.53
  • Average comments per pull request: 2.09
  • Merged pull requests: 470
  • Bot issues: 6
  • Bot pull requests: 594
Past Year
  • Issues: 59
  • Pull requests: 427
  • Average time to close issues: 15 days
  • Average time to close pull requests: 9 days
  • Issue authors: 16
  • Pull request authors: 22
  • Average comments per issue: 1.46
  • Average comments per pull request: 1.7
  • Merged pull requests: 245
  • Bot issues: 4
  • Bot pull requests: 345
Top Authors
Issue Authors
  • yegor256 (57)
  • volodya-lombrozo (8)
  • maxonfjvipon (6)
  • deemp (5)
  • ErnestMatskevich (5)
  • Dirakon (4)
  • ivan-egorov42 (3)
  • trapvpack (3)
  • SenjeyB (3)
  • renovate[bot] (3)
  • github-actions[bot] (3)
  • qlexl (2)
  • 0pdd (2)
  • MaxFunProger (2)
  • kerelape (2)
Pull Request Authors
  • renovate[bot] (461)
  • github-actions[bot] (133)
  • yegor256 (25)
  • maxonfjvipon (14)
  • Dirakon (12)
  • SenjeyB (8)
  • ErnestMatskevich (6)
  • volodya-lombrozo (5)
  • trapvpack (5)
  • vladislav-yevtushenko (4)
  • netimaaa (4)
  • HaidarJbeily7 (4)
  • aequor-cntrl (3)
  • slry (2)
  • mximp (2)
Top Labels
Issue Labels
bug (34) help wanted (11) enhancement (6) good first issue (6) good-title (5) pdd (2)
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • npm 264 last-month
  • Total dependent packages: 1
  • Total dependent repositories: 0
  • Total versions: 59
  • Total maintainers: 1
npmjs.org: eolang

A collection of command line tools for EOLANG: compiling, parsing, transpiling to other languages, optimizing, and analyzing

  • Versions: 59
  • Dependent Packages: 1
  • Dependent Repositories: 0
  • Downloads: 264 Last month
Rankings
Downloads: 5.4%
Forks count: 9.1%
Stargazers count: 11.2%
Average: 13.5%
Dependent packages count: 16.2%
Dependent repos count: 25.3%
Maintainers (1)
Last synced: 4 months ago

Dependencies

.github/workflows/grunt.yml actions
  • actions/checkout v3 composite
  • actions/setup-java v3 composite
  • actions/setup-node v3 composite
.github/workflows/itest.yml actions
  • actions/checkout v3 composite
  • actions/setup-java v3 composite
  • actions/setup-node v3 composite
.github/workflows/pdd.yml actions
  • actions/checkout v3 composite
  • g4s8/pdd-action master composite
.github/workflows/xcop.yml actions
  • actions/checkout v3 composite
  • g4s8/xcop-action master composite
mvnw/pom.xml maven
  • org.eolang:eo-runtime 0.0.0
  • org.junit.jupiter:junit-jupiter-api 5.10.0
  • org.junit.jupiter:junit-jupiter-engine 5.10.0
package.json npm
  • eslint 8.51.0 development
  • eslint-config-google 0.14.0 development
  • grunt 1.6.1 development
  • grunt-contrib-clean 2.0.1 development
  • grunt-eslint 24.3.0 development
  • grunt-mocha-cli ^7.0.0 development
  • mocha 10.2.0 development
  • colors 1.4.0
  • commander 11.1.0
  • fast-xml-parser 4.3.2
  • node 21.0.0
  • sync-request 6.1.0
  • xmlhttprequest 1.8.0