GithubHelp home page GithubHelp logo

tempbottle / dora Goto Github PK

View Code? Open in Web Editor NEW

This project forked from dinfuehr/dora

0.0 2.0 0.0 8.59 MB

Dora VM

License: MIT License

GDB 0.01% Shell 0.14% Go 0.11% Java 0.89% Perl 6 0.29% Ruby 0.55% Makefile 0.04% Assembly 0.01% C 1.68% Rust 96.29%

dora's Introduction

Dora

JIT-compiler for the programming language Dora implemented in Rust. Works on Linux (x86_64, aarch64) and macOS (x86_64). Build with:

Dependencies

You need to install these dependencies:

llvm - Download LLVM 5.0.0 from llvm.org. Unpack the archive and switch into the source directory $LLVM_SRC_DIR (e.g. $HOME/llvm-5.0.0.src). We will now build & install LLVM to $LLVM_INSTALL_DIR (e.g. $HOME/llvm-5.0.0).

cd $LLVM_SRC_DIR # change into directory with LLVM source
cmake -G Ninja . -DLLVM_ENABLE_ASSERTIONS=on \
                 -DCMAKE_INSTALL_PREFIX=$LLVM_INSTALL_DIR \
                 -DCMAKE_BUILD_TYPE=Debug \
                 -DLLVM_TARGETS_TO_BUILD=X86 \
cmake --build . --target install

You can find more information on building LLVM, in its documentation.

capstone

$ git clone https://github.com/aquynh/capstone
$ cd capstone && git checkout 3.0.4 && sudo make install

# on MacOS capstone can be installed via homebrew
$ brew install capstone

ruby - used to run tests

Compilation & Testing

Install current Rust Nightly via rustup.rs. The nightly version of Rust is needed because Dora uses some unstable features of Rust (e.g. inline assembly).

Dora uses cargo for building, which is bundled with Rust:

# install last nightly and use it for this project
rustup update nightly
rustup override set nightly

# run all tests in debug and release mode
LLVM_SYS_50_PREFIX=$LLVM_INSTALL_DIR ./test
LLVM_SYS_50_PREFIX=$LLVM_INSTALL_DIR ./test-release

dora's People

Contributors

dinfuehr avatar riginding avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.