Skip to content

Commit eecf58a

Browse files
Merge branch 'master' into convey_retreat_venice_topsecret
2 parents 2477a6a + 0109577 commit eecf58a

File tree

3,233 files changed

+154694
-49183
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

3,233 files changed

+154694
-49183
lines changed

.devcontainer/Dockerfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
# just -opam tag because make setup will install ocaml compiler
2-
FROM ocaml/opam:ubuntu-21.04-opam AS dev
2+
FROM ocaml/opam:ubuntu-22.04-opam AS dev
33

44
# TODO: use opam depext
55
RUN sudo apt-get update \
6-
&& sudo apt-get install -y libgmp-dev libmpfr-dev m4 autoconf pkg-config ruby gem curl
6+
&& sudo apt-get install -y libgmp-dev libmpfr-dev m4 autoconf gcc-multilib pkg-config ruby gem curl
77

88
# remove default Docker <docker@example.com> git credentials added by opam base image: https://github.com/avsm/ocaml-dockerfile/blob/f184554282a3836bf3f1c34d20e77d0530f8349d/src-opam/dockerfile_linux.ml#L24-L28
99
# this prevents devcontainer from using outside git credentials: https://code.visualstudio.com/docs/remote/containers#_sharing-git-credentials-with-your-container

.git-blame-ignore-revs

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,3 +28,21 @@ ec8611a3a72ae0d95ec82ffee16c5c4785111aa1
2828

2929
# Set up end-of-line normalization.
3030
78fd79e7f4d15c4412221b155971fac2e0616b90
31+
32+
# fix indentation in baseInvariant
33+
f3ffd5e45c034574020f56519ccdb021da2a1479
34+
35+
# Fix indentation in various non-legacy code
36+
c3e2cc848479ae86de5542b6ab0e75a74e9cf8c9
37+
38+
# Fix LibraryFunctions.invalidate_actions indentation
39+
5662024232f32fe74dd25c9317dee4436ecb212d
40+
41+
# Rename ctx -> man
42+
0c155e68607fede6fab17704a9a7aee38df5408e
43+
44+
# Trim trailing whitespace in BitfieldDomain
45+
d4e2a5f84ed3b7fbff89e34b2f7833de975e0671
46+
47+
# Fix BaseInvariant indentation
48+
15e7a7ebd34e9fabdd4129e97eb86830fea8395f

.gitattributes

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# GitHub repository language overrides
2+
# https://github.com/github-linguist/linguist/blob/main/docs/overrides.md
3+
4+
# currently only dune-project is classified: https://github.com/github-linguist/linguist/pull/7126
5+
dune linguist-language=dune
6+
dune.inc linguist-language=dune
7+
8+
# avoid misclassification as Standard ML
9+
*.ml linguist-language=ocaml
10+
*.mli linguist-language=ocaml
11+
12+
# cram tests are classified as Raku/Terra/Turing, cram isn't separate language so consider them also dune
13+
*.t linguist-language=dune

.github/workflows/coverage.yml

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
name: coverage
2+
3+
on:
4+
pull_request:
5+
6+
workflow_dispatch:
7+
8+
schedule:
9+
# nightly
10+
- cron: '31 1 * * *' # 01:31 UTC, 02:31/03:31 Munich, 03:31/04:31 Tartu
11+
# GitHub Actions load is high at minute 0, so avoid that
12+
13+
jobs:
14+
coverage:
15+
strategy:
16+
fail-fast: false
17+
matrix:
18+
os:
19+
- ubuntu-22.04 # https://github.com/ocaml/setup-ocaml/issues/872
20+
ocaml-compiler:
21+
- ocaml-variants.4.14.2+options,ocaml-option-flambda # matches opam lock file
22+
# don't add any other because they won't be used
23+
24+
runs-on: ${{ matrix.os }}
25+
26+
env:
27+
OCAMLRUNPARAM: b
28+
29+
steps:
30+
- name: Checkout code
31+
uses: actions/checkout@v5
32+
33+
- name: Set up OCaml ${{ matrix.ocaml-compiler }}
34+
env:
35+
# otherwise setup-ocaml pins non-locked dependencies
36+
# https://github.com/ocaml/setup-ocaml/issues/166
37+
OPAMLOCKED: locked
38+
uses: ocaml/setup-ocaml@v3
39+
with:
40+
ocaml-compiler: ${{ matrix.ocaml-compiler }}
41+
42+
- name: Install graph-easy # TODO: remove if depext --with-test works (https://github.com/ocaml/opam/issues/5836)
43+
if: ${{ matrix.os == 'ubuntu-22.04' }}
44+
run: sudo apt install -y libgraph-easy-perl
45+
46+
- name: Install dependencies
47+
run: opam install . --deps-only --locked --with-test
48+
49+
- name: Install os gem for operating system detection
50+
run: sudo gem install os
51+
52+
- name: Install coverage dependencies
53+
run: opam install bisect_ppx
54+
55+
- name: Build
56+
run: ./make.sh coverage
57+
58+
- name: Download Linux headers
59+
run: ./make.sh headers
60+
61+
- name: Test
62+
run: opam exec -- dune runtest --instrument-with bisect_ppx
63+
64+
- run: opam exec -- bisect-ppx-report send-to Coveralls
65+
env:
66+
COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }}
67+
PULL_REQUEST_NUMBER: ${{ github.event.number }}
68+
69+
- uses: actions/upload-artifact@v5
70+
if: always()
71+
with:
72+
name: suite_result
73+
path: tests/suite_result/

.github/workflows/docker.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -35,21 +35,21 @@ jobs:
3535

3636
steps:
3737
- name: Checkout code
38-
uses: actions/checkout@v3
38+
uses: actions/checkout@v5
3939

4040
- name: Set up Docker Buildx
41-
uses: docker/setup-buildx-action@v1 # needed for GitHub Actions Cache in build-push-action
41+
uses: docker/setup-buildx-action@v3 # needed for GitHub Actions Cache in build-push-action
4242

4343
- name: Log in to the Container registry
44-
uses: docker/login-action@v1
44+
uses: docker/login-action@v3
4545
with:
4646
registry: ${{ env.REGISTRY }}
4747
username: ${{ github.actor }}
4848
password: ${{ secrets.GITHUB_TOKEN }}
4949

5050
- name: Extract metadata (tags, labels) for Docker
5151
id: meta
52-
uses: docker/metadata-action@v3
52+
uses: docker/metadata-action@v5
5353
with:
5454
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
5555
tags: |
@@ -59,7 +59,7 @@ jobs:
5959
6060
- name: Build Docker image
6161
id: build
62-
uses: docker/build-push-action@v2
62+
uses: docker/build-push-action@v6
6363
with:
6464
context: .
6565
load: true # load into docker instead of immediately pushing
@@ -72,7 +72,7 @@ jobs:
7272
run: docker run --rm -v $(pwd):/data ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.meta.outputs.version }} /data/tests/regression/04-mutex/01-simple_rc.c # run image by version in case multiple tags
7373

7474
- name: Push Docker image
75-
uses: docker/build-push-action@v2
75+
uses: docker/build-push-action@v6
7676
with:
7777
context: .
7878
push: true

.github/workflows/docs.yml

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
name: docs
2+
3+
on:
4+
push:
5+
pull_request:
6+
7+
workflow_dispatch:
8+
9+
permissions:
10+
contents: read
11+
pages: write
12+
id-token: write
13+
14+
jobs:
15+
api-build:
16+
strategy:
17+
matrix:
18+
os:
19+
- ubuntu-22.04 # https://github.com/ocaml/setup-ocaml/issues/872
20+
ocaml-compiler:
21+
- ocaml-variants.4.14.2+options,ocaml-option-flambda # matches opam lock file
22+
# don't add any other because they won't be used
23+
24+
runs-on: ${{ matrix.os }}
25+
26+
steps:
27+
- name: Checkout code
28+
uses: actions/checkout@v5
29+
30+
- name: Check for undocumented modules
31+
run: python scripts/goblint-lib-modules.py
32+
33+
- name: Set up OCaml ${{ matrix.ocaml-compiler }}
34+
env:
35+
# otherwise setup-ocaml pins non-locked dependencies
36+
# https://github.com/ocaml/setup-ocaml/issues/166
37+
OPAMLOCKED: locked
38+
uses: ocaml/setup-ocaml@v3
39+
with:
40+
ocaml-compiler: ${{ matrix.ocaml-compiler }}
41+
42+
- name: Setup Pages
43+
id: pages
44+
uses: actions/configure-pages@v5
45+
46+
- name: Install dependencies
47+
run: opam install . --deps-only --locked --with-doc
48+
49+
- name: Build API docs
50+
run: opam exec -- dune build @doc
51+
52+
- name: Upload artifact
53+
uses: actions/upload-pages-artifact@v4
54+
with:
55+
path: _build/default/_doc/_html/
56+
57+
api-deploy:
58+
environment:
59+
name: github-pages
60+
url: ${{ steps.deployment.outputs.page_url }}
61+
runs-on: ubuntu-latest
62+
needs: api-build
63+
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }}
64+
concurrency:
65+
group: "pages"
66+
cancel-in-progress: true
67+
steps:
68+
- name: Deploy to GitHub Pages
69+
id: deployment
70+
uses: actions/deploy-pages@v4

.github/workflows/indentation.yml

Lines changed: 11 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,33 @@
11
name: indentation
22

3-
on: [ push, pull_request]
3+
on:
4+
push:
5+
pull_request:
6+
workflow_dispatch:
47

58
jobs:
69
indentation:
7-
strategy: # remove?
10+
strategy:
811
matrix:
912
os:
10-
- ubuntu-latest
13+
- ubuntu-22.04 # https://github.com/ocaml/setup-ocaml/issues/872
1114
ocaml-compiler:
12-
- 4.14.0 # setup-ocaml@v1 does not support 4.14.x for ocaml-version
15+
- 4.14.x
1316

1417
runs-on: ${{ matrix.os }}
1518

16-
if: ${{ github.event.before != '0000000000000000000000000000000000000000' }}
19+
if: ${{ !github.event.forced && github.event.before != '0000000000000000000000000000000000000000' }}
1720

1821
steps:
1922
- name: Checkout code
20-
uses: actions/checkout@v3
23+
uses: actions/checkout@v5
2124
with:
2225
fetch-depth: 0
2326

24-
# reuse tests.yml or depend on it to not have to setup OCaml? https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#example-using-an-action-in-the-same-repository-as-the-workflow
25-
26-
# rely on cache for now
27-
- name: Cache opam switch # https://github.com/marketplace/actions/cache
28-
uses: actions/cache@v3
29-
with:
30-
# A list of files, directories, and wildcard patterns to cache and restore
31-
path: |
32-
~/.opam
33-
_opam
34-
# Key for restoring and saving the cache
35-
key: opam-ocp-indent-${{ runner.os }}-${{ matrix.ocaml-compiler }}
36-
3727
- name: Set up OCaml ${{ matrix.ocaml-compiler }}
38-
uses: ocaml/setup-ocaml@v1 # intentionally use v1 instead of v2 because it's faster with manual caching: https://github.com/goblint/analyzer/pull/308#issuecomment-887805857
28+
uses: ocaml/setup-ocaml@v3
3929
with:
40-
ocaml-version: ${{ matrix.ocaml-compiler }}
30+
ocaml-compiler: ${{ matrix.ocaml-compiler }}
4131

4232
- name: Install ocp-indent
4333
run: opam install -y ocp-indent

0 commit comments

Comments
 (0)