Sha256: cfbcfb4a979c76421421a278fb7205d94d301658fc25303a9425199ef0455a31
Contents?: true
Size: 1.73 KB
Versions: 1
Compression:
Stored size: 1.73 KB
Contents
# Evoasm ## Description *Evoasm* is an AIMGP (*Automatic Induction of Machine code by Genetic Programming*) engine. You give it a set of examples, that is, several input/output pairs, that describe a program's behavior. It will then try to come up with a short program (in the form of machine code) that follows your specification, by means of genetic programming. *Evoasm* contains a JIT that executes the generated machine code on the fly. Currently, the only supported architecture is **x86-64**. ## Features * Fast JIT * Non-linear control flow * [x86-64](https://github.com/evoasm/evoasm-gen/blob/master/data/tables/x64.csv) up to AVX2 (no FPU) * Lightweight backend [C library](https://github.com/evoasm/libevoasm) with no third-party dependencies * Ruby bindings ## Installation $ gem install evoasm ### Requirements * Ruby (MRI >= 2.3, JRuby >= 9.1.2) * [Capstone](http://www.capstone-engine.org/) for disassembling (*optional*). * [Graphviz](http://www.graphviz.org/) (libgraphviz) for visualizing programs (*optional*). * [Gnuplot](http://gnuplot.sourceforge.net) for visualizing loss functions (*optional*) * POSIX-compliant OS (Linux and Mac OS X should both work). ## Documentation Please see the [API documentation](https://evoasm.github.io/evoasm/doc/) or have a look at the [examples](https://evoasm.github.io/evoasm/doc/file.SymbolicRegression.html). ## Contributing 1. Fork it ( https://github.com/furunkel/evoasm/fork ) 2. Create your feature branch (`git checkout -b my-new-feature`) 3. Commit your changes (`git commit -am 'Add some feature'`) 4. Push to the branch (`git push origin my-new-feature`) 5. Create a new Pull Request ## License [AGPL-3.0][license] [license]: https://github.com/furunkel/evoasm/blob/master/LICENSE.md
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
evoasm-0.1.0.pre2 | README.md |