Skip to content

Add $(MLTON_GEN_SOURCES) as dependency of $(MLTON_OUTPUT_SMLNJ_HEAP).d #106

Add $(MLTON_GEN_SOURCES) as dependency of $(MLTON_OUTPUT_SMLNJ_HEAP).d

Add $(MLTON_GEN_SOURCES) as dependency of $(MLTON_OUTPUT_SMLNJ_HEAP).d #106

Workflow file for this run

name: CI
# Controls when the workflow will run
on:
push:
pull_request:
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
jobs:
build-test:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
cc: ["gcc", "clang"]
codegen: ["amd64", "c", "llvm"]
exclude:
- cc: "gcc"
codegen: "llvm"
- os: macos-latest
cc: "gcc"
- os: windows-latest
codegen: "c"
- os: windows-latest
codegen: "llvm"
- os: windows-latest
cc: "clang"
# The type of runner that the job will run on
runs-on: ${{ matrix.os }}
defaults:
run:
shell: ${{ (startsWith(matrix.os, 'windows') && 'msys2 {0}') || 'bash' }}
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
- name: Configure git (windows)
if: ${{ startsWith(matrix.os, 'windows') }}
run: git config --global core.autocrlf false
shell: bash
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- name: Checkout
uses: actions/checkout@v3
- name: Install dependencies (ubuntu)
if: ${{ startsWith(matrix.os, 'ubuntu') }}
run: |
sudo apt-get update
sudo apt-get install libgmp-dev
if [[ "${{ matrix.codegen }}" == "llvm" ]]; then sudo apt-get install llvm; fi
mkdir boot && cd boot
curl -O -L https://github.com/MLton/mlton/releases/download/on-20210117-release/mlton-20210117-1.amd64-linux-glibc2.31.tgz
tar xzf mlton-20210117-1.amd64-linux-glibc2.31.tgz --exclude='*/share'
mv mlton-20210117-1.amd64-linux-glibc2.31/* .
rmdir mlton-20210117-1.amd64-linux-glibc2.31
- name: Install dependencies (macos)
if: ${{ startsWith(matrix.os, 'macos') }}
run: |
brew update
brew install gmp
echo "WITH_GMP_DIR=/usr/local" >> $GITHUB_ENV
if [[ "${{ matrix.codegen }}" == "llvm" ]]; then brew install llvm; echo "$(brew --prefix llvm)/bin" >> $GITHUB_PATH; fi
mkdir boot && cd boot
curl -O -L https://github.com/MLton/mlton/releases/download/on-20210117-release/mlton-20210117-1.amd64-darwin-19.6.gmp-homebrew.tgz
tar xzf mlton-20210117-1.amd64-darwin-19.6.gmp-homebrew.tgz --exclude='*/share'
mv mlton-20210117-1.amd64-darwin-19.6.gmp-homebrew/* .
rmdir mlton-20210117-1.amd64-darwin-19.6.gmp-homebrew
- name: Install msys2 (windows)
if: ${{ startsWith(matrix.os, 'windows') }}
uses: msys2/setup-msys2@v2
with:
update: false
install: >-
base-devel
git
pactoys
- name: Install dependencies (windows)
if: ${{ startsWith(matrix.os, 'windows') }}
run: |
pacboy --noconfirm -S --needed gcc:p gmp-devel:
mkdir boot && cd boot
curl -O -L https://github.com/MLton/mlton/releases/download/on-20200817-release/mlton-20200817-amd64-mingw.tgz
tar xzf mlton-20200817-amd64-mingw.tgz --exclude='*/share'
mv mlton-20200817-amd64-mingw/* .
rmdir mlton-20200817-amd64-mingw
- name: Check versions
run: |
PATH=$(pwd)/boot/bin:$PATH mlton
echo
make -version
echo
${{ matrix.cc }} --version
echo
if [[ "${{ matrix.codegen }}" == "llvm" ]]; then llvm-as -version; opt -version; llc -version; fi
- name: Build
run: |
PATH=$(pwd)/boot/bin:$PATH \
make \
CC=${{ matrix.cc }} \
OLD_MLTON_RUNTIME_ARGS="ram-slop 0.90" \
MLTON_RUNTIME_ARGS="ram-slop 0.90" \
MLTON_COMPILE_ARGS="-codegen ${{ matrix.codegen }}" \
$( if [[ -n "$WITH_GMP_DIR" ]]; then echo "WITH_GMP_DIR=$WITH_GMP_DIR"; fi ) \
WITH_ALL_RUNTIME=true \
WITH_DBG_RUNTIME=false \
MLTON_BINARY_RELEASE_SUFFIX=".${{ matrix.os }}_${{ matrix.cc }}_${{ matrix.codegen }}" \
all
- name: Test
run: ./bin/regression -codegen ${{ matrix.codegen }}
- name: Status
run: |
git status
- name: Package
run: |
make \
CC=${{ matrix.cc }} \
OLD_MLTON_RUNTIME_ARGS="ram-slop 0.90" \
MLTON_RUNTIME_ARGS="ram-slop 0.90" \
MLTON_COMPILE_ARGS="-codegen ${{ matrix.codegen }}" \
$( if [[ -n "$WITH_GMP_DIR" ]]; then echo "WITH_GMP_DIR=$WITH_GMP_DIR"; fi ) \
WITH_ALL_RUNTIME=true \
WITH_DBG_RUNTIME=false \
MLTON_BINARY_RELEASE_SUFFIX=".${{ matrix.os }}_${{ matrix.cc }}_${{ matrix.codegen }}" \
binary-release
- name: Upload Artifact
uses: actions/upload-artifact@v3
with:
name: mlton.${{ matrix.os }}_${{ matrix.cc }}_${{ matrix.codegen }}
path: ./*.tgz