Giter Club home page Giter Club logo

mandel's Introduction

Mandel

Repo organization

branch description
main Development for future releases
release/3.0.x 3.0.x-* series of releases

Supported Operating Systems

To speed up development, we're starting with Ubuntu 20.04. We'll support additional operating systems as time and personnel allow. In the mean time, they may break.

Building

To speed up development and reduce support overhead, we're initially only supporting the following build approach. CMake options not listed here may break. Build scripts may break. Dockerfiles may break.

Ubuntu 20.04 dependencies

apt-get update && apt-get install   \
        binaryen                    \
        build-essential             \
        ccache                      \
        cmake                       \
        curl                        \
        git                         \
        libboost-all-dev            \
        libcurl4-openssl-dev        \
        libssl-dev                  \
        libtinfo5                   \
        libusb-1.0-0-dev            \
        libzstd-dev                 \
        llvm-11-dev                 \
        ninja-build                 \
        pkg-config                  \
        time

Building

git submodule update --init --recursive
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make -j $(nproc)

make install isn't supported unless:

  • You used cmake's -DCMAKE_INSTALL_PREFIX=.... option, or
  • You're building a docker image

We support the following CMake options:

-DCMAKE_CXX_COMPILER_LAUNCHER=ccache    Speed up builds
-DCMAKE_C_COMPILER_LAUNCHER=ccache      Speed up builds
-DCMAKE_BUILD_TYPE=DEBUG                Debug builds
-DDISABLE_WASM_SPEC_TESTS=yes           Speed up builds and skip many tests
-DCMAKE_INSTALL_PREFIX=/foo/bar         Where to install to
-DENABLE_OC=no                          Disable OC support; useful when this repo is used
                                        as a library
-GNinja                                 Use ninja instead of make
                                        (faster on high-core-count machines)

I highly recommend the ccache options. They don't speed up the first clean build, but they speed up future clean builds after the first build.

Running tests

cd build
npm install

# Runs parallelizable tests in parallel. This runs much faster when
# -DDISABLE_WASM_SPEC_TESTS=yes is used.
ctest -j $(nproc) -LE "nonparallelizable_tests|long_running_tests" -E "full-version-label-test|release-build-test|print-build-info-test"

# These tests can't run in parallel.
ctest -L "nonparallelizable_tests"

# These tests can't run in parallel. They also take a long time to run.
ctest -L "long_running_tests"

mandel's People

Contributors

heifner avatar bytemaster avatar arhag avatar spoonincode avatar b1bart avatar brianjohnson5972 avatar kj4ezj avatar larryk85 avatar scottarnette avatar moskvanaft avatar jgiszczak avatar tbfleming avatar nathanielhourt avatar wanderingbort avatar zorba80 avatar elmato avatar pmesnier avatar taokayan avatar asiniscalchi avatar cj-oci avatar dskvr avatar norsegaud avatar paulcalabrese avatar sergmetelin avatar ndcgundlach avatar oschwaldp-oci avatar lparisc avatar kesar avatar swatanabe-b1 avatar zreyn 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.