Skip to content

Add option to build Chapel with mimalloc as either the host or target allocator #27231

Add option to build Chapel with mimalloc as either the host or target allocator

Add option to build Chapel with mimalloc as either the host or target allocator #27231

Workflow file for this run

name: CI
on:
push:
branches: [ main ]
pull_request:
env:
NIGHTLY_TEST_SETTINGS: true
# NOTE: each job has to specify the container section in its entirety, which is
# certainly repetetive, but the `defaults` section can't be applied and the `env`
# context isn't available in the `jobs` section
# [1] https://docs.github.com/en/actions/learn-github-actions/contexts#about-contexts
# [2] https://docs.github.com/en/actions/using-jobs/setting-default-values-for-jobs
# And other yml features like anchors and merge aren't supported
# [3] https://github.com/actions/starter-workflows/issues/162
jobs:
make_check:
runs-on: ubuntu-latest
container:
image: ghcr.io/${{ github.repository_owner }}/chapel-github-ci:latest
credentials:
username: ${{ github.actor }}
password: ${{ secrets.github_token }}
steps:
- uses: actions/checkout@v4
- name: make check
run: |
./util/buildRelease/smokeTest chpl
make_doc:
runs-on: ubuntu-latest
container:
image: ghcr.io/${{ github.repository_owner }}/chapel-github-ci:latest
credentials:
username: ${{ github.actor }}
password: ${{ secrets.github_token }}
steps:
- uses: actions/checkout@v4
- name: make frontend-docs
run: |
make frontend-docs
- name: make check-chpldoc && make docs
# Uses a quickstart config to keep it from running too long
# also builds chapel-py so those docs are included
run: |
./util/buildRelease/smokeTest quickstart chapel-py docs
- name: upload docs
uses: actions/upload-artifact@v4
with:
name: documentation
path: doc/html
make_mason:
runs-on: ubuntu-latest
container:
image: ghcr.io/${{ github.repository_owner }}/chapel-github-ci:latest
credentials:
username: ${{ github.actor }}
password: ${{ secrets.github_token }}
steps:
- uses: actions/checkout@v4
- name: make mason
# Use a quickstart config to keep it from running to long
# While there, run a make check in that config for more coverage
run: |
./util/buildRelease/smokeTest quickstart mason chpl
check_compiler_dyno_tests:
runs-on: ubuntu-latest
container:
image: ghcr.io/${{ github.repository_owner }}/chapel-github-ci:latest
credentials:
username: ${{ github.actor }}
password: ${{ secrets.github_token }}
steps:
- uses: actions/checkout@v4
- name: make test-dyno-with-asserts
# 'make modules' so the ChapelSysCTypes module is available
run: |
CHPL_HOME=$PWD make modules
CHPL_HOME=$PWD make DYNO_ENABLE_ASSERTIONS=1 test-dyno -j`util/buildRelease/chpl-make-cpu_count`
- name: run dyno linters
run: |
CHPL_HOME=$PWD CHPL_HOST_CC=clang-13 CHPL_HOST_CXX=clang++-13 make run-dyno-linters
- name: check undocumented symbols
run: |
CHPL_HOME=$PWD make DYNO_ENABLE_ASSERTIONS=1 chapel-py-venv -j`util/buildRelease/chpl-make-cpu_count`
CHPL_HOME=$PWD $PWD/tools/chpldoc/findUndocumentedSymbols --ci --ignore-deprecated --ignore-unstable $PWD/modules/standard
- name: lint standard modules
run: |
CHPL_HOME=$PWD make DYNO_ENABLE_ASSERTIONS=1 lint-standard-modules -j`util/buildRelease/chpl-make-cpu_count`
make_check_llvm_none:
runs-on: ubuntu-latest
container:
image: ghcr.io/${{ github.repository_owner }}/chapel-github-ci:latest
credentials:
username: ${{ github.actor }}
password: ${{ secrets.github_token }}
steps:
- uses: actions/checkout@v4
- name: set llvm_none make check
run: |
CHPL_LLVM=none ./util/buildRelease/smokeTest chpl
check_annotations_rt_calls:
runs-on: ubuntu-latest
container:
image: ghcr.io/${{ github.repository_owner }}/chapel-github-ci:latest
credentials:
username: ${{ github.actor }}
password: ${{ secrets.github_token }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 100000
- name: Set ownership
run: |
chown -R $(id -u):$(id -g) $PWD
- name: find bad runtime calls
run: |
./util/devel/lookForBadRTCalls
- name: find bad compiler calls
run: |
./util/devel/lookForBadCompCalls
- name: check annotations
run: |
CHPL_LLVM=none make test-venv
CHPL_LLVM=none CHPL_HOME=$PWD ./util/test/run-in-test-venv.bash ./util/test/check_annotations.py
- name: check perf graphs
run: |
python3 ./util/test/check_perf_graphs.py
- name: smokeTest lint
run: |
./util/buildRelease/smokeTest lint