image: debian:10
cache:
+ when: always
paths:
- ccache
stage: build
before_script:
- apt-get update
+ # one package per line to simplify sorting, git diff, etc.
- >-
apt-get -y install
- build-essential git python3-dev python3-pip
- python3-setuptools python3-wheel pkg-config tcl-dev
- libreadline-dev bison flex libffi-dev ccache python3-venv
- libgmp-dev libmpfr-dev
- - export PATH="/usr/lib/ccache:$PATH"
+ autoconf
+ bison
+ build-essential
+ ccache
+ clang
+ cmake
+ curl
+ flex
+ gawk
+ git
+ gperf
+ libboost-program-options-dev
+ libffi-dev
+ libftdi-dev
+ libgmp-dev
+ libmpfr-dev
+ libreadline-dev
+ mercurial
+ pkg-config
+ python
+ python3
+ python3-dev
+ python3-keyring
+ python3-pip
+ python3-setuptools
+ python3-wheel
+ tcl-dev
+ - export PATH="$HOME/.local/bin:/usr/lib/ccache:$PATH"
- export CCACHE_BASEDIR="$PWD"
- export CCACHE_DIR="$PWD/ccache"
- export CCACHE_COMPILERCHECK=content
- ccache --zero-stats || true
- ccache --show-stats || true
- after_script:
- - export CCACHE_DIR="$PWD/ccache"
- - ccache --show-stats
+ - python3 -m pip install --user pytest-xdist twine cython
script:
- - python3 -m venv .env
- - . .env/bin/activate
- - pip install nose
-
- IEEE754FPU_PATH="$(pwd)"
- git clone --depth 1 --recursive https://github.com/billzorn/sfpy.git sfpy
+ - git rev-parse HEAD
- pushd sfpy
- pushd berkeley-softfloat-3
- git apply "$IEEE754FPU_PATH"/berkeley-softfloat.patch
- git apply ../softposit_sfpy_build.patch
- git apply "$IEEE754FPU_PATH"/SoftPosit.patch
- popd
- - pip install --upgrade -r requirements.txt
- make lib -j$(nproc)
- make cython -j$(nproc)
- make wheel -j$(nproc)
- - pip install dist/sfpy*.whl
+ - python3 -m pip install --user dist/sfpy*.whl
- popd
- git clone --depth 1 https://github.com/YosysHQ/yosys.git yosys
- pushd yosys
+ - git rev-parse HEAD
- make config-gcc
- make -j$(nproc)
- make install
- popd
- yosys -V
- - git clone --depth 1 https://github.com/nmigen/nmigen.git nmigen
+ - git clone --depth 1 https://github.com/YosysHQ/SymbiYosys.git SymbiYosys
+ - pushd SymbiYosys
+ - git rev-parse HEAD
+ - make install
+ - popd
+
+ - git clone --depth 1 https://github.com/SRI-CSL/yices2.git yices2
+ - pushd yices2
+ - git rev-parse HEAD
+ - autoconf
+ - ./configure
+ - make -j$(nproc)
+ - make install
+ - popd
+
+ - git clone --depth 1 https://github.com/Z3Prover/z3.git z3
+ - pushd z3
+ - git rev-parse HEAD
+ - python scripts/mk_make.py
+ - cd build
+ - make -j$(nproc)
+ - make install
+ - popd
+
+ - git clone --depth 1 https://gitlab.com/nmigen/nmigen.git nmigen
- pushd nmigen
- - python setup.py develop
+ - git rev-parse HEAD
+ - python3 setup.py develop
- popd
- - git clone --depth 1 git://git.libre-riscv.org/nmutil.git nmutil
+ - git clone --depth 1 https://git.libre-soc.org/git/nmutil.git nmutil
- pushd nmutil
- - python setup.py develop
+ - git rev-parse HEAD
+ - python3 setup.py develop
- popd
- - python setup.py develop
- - nosetests -v --processes=-1
+ - python3 setup.py develop
+
+ - pytest -n auto src/ieee754