Skip to content

Commit 4fb4abe

Browse files
committed
Merge branch 'master' into suppress_ovwarn
2 parents 77d0264 + eba7b0f commit 4fb4abe

Some content is hidden

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

69 files changed

+2361
-415
lines changed

.git-blame-ignore-revs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,3 +43,6 @@ c3e2cc848479ae86de5542b6ab0e75a74e9cf8c9
4343

4444
# Trim trailing whitespace in BitfieldDomain
4545
d4e2a5f84ed3b7fbff89e34b2f7833de975e0671
46+
47+
# Fix BaseInvariant indentation
48+
15e7a7ebd34e9fabdd4129e97eb86830fea8395f

.github/workflows/metadata.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ jobs:
4242
uses: actions/checkout@v5
4343

4444
- name: Set up Node.js ${{ matrix.node-version }}
45-
uses: actions/setup-node@v4
45+
uses: actions/setup-node@v5
4646
with:
4747
node-version: ${{ matrix.node-version }}
4848

.github/workflows/options.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ jobs:
1818
uses: actions/checkout@v5
1919

2020
- name: Set up Node.js ${{ matrix.node-version }}
21-
uses: actions/setup-node@v4
21+
uses: actions/setup-node@v5
2222
with:
2323
node-version: ${{ matrix.node-version }}
2424

.github/workflows/unlocked.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -224,7 +224,7 @@ jobs:
224224
ocaml-compiler: ${{ matrix.ocaml-compiler }}
225225

226226
- name: Set up Node.js ${{ matrix.node-version }}
227-
uses: actions/setup-node@v4
227+
uses: actions/setup-node@v5
228228
with:
229229
node-version: ${{ matrix.node-version }}
230230

CHANGELOG.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,19 @@
1-
## v2.6.0 Awkward Aardvark (unreleased)
1+
## v2.6.0 Awkward Aardvark
22
* Add division by zero analysis (#1764).
33
* Add bitfield domain (#1623).
44
* Add weakly-relational C-2PO pointer analysis (#1485).
55
* Add widening delay (#1358, #1442, #1483).
66
* Add narrowing of globals to top-down solver (#1636).
77
* Add weak dependencies to top-down solver (#1746, #1747).
88
* Add YAML ghost witness generation (#1394).
9+
* Remove GraphML witness generation (#1732, #1733, #1738).
910
* Use C standard option for preprocessing (#1807).
1011
* Add bash completion for array options (#1670, #1705, #1750).
1112
* Make `malloc(0)` semantics configurable (#1418, #1777).
1213
* Update path-sensitive analyses (#1785, #1791, #1792).
1314
* Fix evaluation of library function arguments (#1758, #1761).
1415
* Optimize affine equalities analysis using sparse matrices (#1459, #1625).
15-
* Prepare for parallelism (#1708, #1744, #1748).
16+
* Prepare for parallelism (#1708, #1744, #1748, #1781, #1790).
1617

1718
## v2.5.0
1819
Functionally equivalent to Goblint in SV-COMP 2025.

docs/developer-guide/releasing.md

Lines changed: 21 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,38 +2,41 @@
22

33
## opam
44

5-
1. Update list of authors and contributors in `.zenodo.json`, `CITATION.cff` and `dune-project`.
6-
2. Update `CHANGELOG.md`:
5+
1. Choose version name (collaboratively).
6+
2. Update list of authors and contributors in `.zenodo.json`, `CITATION.cff` and `dune-project`.
7+
3. Update `CHANGELOG.md`:
78

8-
1. Add a desired version number (`vX.Y.Z`) header at the top.
9+
1. Add a desired version number (`vX.Y.Z`) and name header at the top.
910
2. Add a list of biggest changes compared to the previous version.
1011

11-
3. Install dune-release: `opam install dune-release`.
1212
4. Remove all opam pins because _opam-repository doesn't allow them_.
1313

1414
* If the pinned changes have been released and published in opam, remove the pin (and add a version lower bound).
1515
* If the pinned changes are not strictly necessary for building (but just optimization or stability), then temporarily remove the pin.
1616

17-
5. Regenerate `goblint.opam`: `dune build`.
18-
6. Regenerate `goblint.opam.locked`: `opam pin add goblint.dev . --no-action` and `opam lock .`.
17+
5. Check opam file for previous release on opam-repository for changes.
18+
6. Regenerate `goblint.opam`: `dune build`.
19+
7. Regenerate `goblint.opam.locked`: `opam pin add goblint.dev . --no-action` and `opam lock .`.
1920

2021
Pinning the package is necessary for locking, otherwise lockfile will be generated for previously published version.
2122
Manually remove not installed `depopts` from `conflicts`.
2223

23-
7. Check with `dune-release check`.
24+
8. Install dune-release: `opam install dune-release`.
25+
26+
9. Check with `dune-release check`.
2427

2528
All changes must be committed because the working tree is not checked.
2629

2730
The warning `[FAIL] opam field doc cannot be parsed by dune-release` is fine and can be ignored (see <https://github.com/ocamllabs/dune-release/issues/154>).
2831

29-
8. Check that "unlocked" workflow passes on GitHub Actions.
32+
10. Check that "unlocked" workflow passes on GitHub Actions.
3033

3134
It can be run manually on the release branch for checking.
3235

33-
9. Tag the release: `dune-release tag`.
34-
10. Create the distribution archive: `dune-release distrib`.
36+
11. Tag the release: `dune-release tag`.
37+
12. Create the distribution archive: `dune-release distrib`.
3538

36-
11. Check created _distribution archive_ (in `_build`) in a clean environment:
39+
13. Check created _distribution archive_ (in `_build`) in a clean environment:
3740

3841
1. Pull Docker image: `docker pull ocaml/opam:ubuntu-22.04-ocaml-4.14` (or newer).
3942
2. Extract distribution archive.
@@ -46,21 +49,22 @@
4649
9. Check that analysis works: `goblint -v tests/regression/04-mutex/01-simple_rc.c`.
4750
10. Exit Docker container.
4851

49-
12. Temporarily enable Zenodo GitHub webhook.
52+
14. Temporarily enable Zenodo GitHub webhook.
5053

5154
This is because we only want numbered version releases to automatically add a new version to our Zenodo artifact.
5255
Other tags (like SV-COMP or paper artifacts) have manually created Zenodo artifacts anyway and thus shouldn't add new versions to the main Zenodo artifact.
5356

54-
13. Create a GitHub release with the git tag: `DUNE_RELEASE_DELEGATE=github-dune-release-delegate dune-release publish distrib`.
57+
15. Create a GitHub release with the git tag: `DUNE_RELEASE_DELEGATE=github-dune-release-delegate dune-release publish distrib`.
5558

5659
Explicitly specify `distrib` because we don't want to publish OCaml API docs.
5760
Environment variable workaround for the package having a Read the Docs `doc` URL (see <https://github.com/ocamllabs/dune-release/issues/154>).
5861

59-
14. Re-disable Zenodo GitHub webhook.
62+
16. Re-disable Zenodo GitHub webhook.
6063

61-
15. Create an opam package: `dune-release opam pkg`.
62-
16. Submit the opam package to opam-repository: `dune-release opam submit`.
63-
17. Revert temporary removal of opam pins.
64+
17. Edit GitHub release to add version name.
65+
18. Create an opam package: `dune-release opam pkg`.
66+
19. Submit the opam package to opam-repository: `dune-release opam submit`.
67+
20. Revert temporary removal of opam pins.
6468

6569

6670
## SV-COMP

dune-project

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ Goblint includes analyses for assertions, overflows, deadlocks, etc and can be e
3737
"concurrency"))
3838
(depends
3939
(ocaml (>= 4.14))
40-
(goblint-cil (>= 2.0.5)) ; TODO no way to define as pin-depends? Used goblint.opam.template to add it for now. https://github.com/ocaml/dune/issues/3231. Alternatively, removing this line and adding cil as a git submodule and `(vendored_dirs cil)` as ./dune also works. This way, no more need to reinstall the pinned cil opam package on changes. However, then cil is cleaned and has to be rebuild together with goblint.
40+
(goblint-cil (>= 2.0.7)) ; TODO no way to define as pin-depends? Used goblint.opam.template to add it for now. https://github.com/ocaml/dune/issues/3231. Alternatively, removing this line and adding cil as a git submodule and `(vendored_dirs cil)` as ./dune also works. This way, no more need to reinstall the pinned cil opam package on changes. However, then cil is cleaned and has to be rebuild together with goblint.
4141
(batteries (>= 3.9.0))
4242
(zarith (>= 1.10))
4343
(yojson (and (>= 2.0.0) (< 3))) ; json-data-encoding has incompatible yojson representation for yojson 3
@@ -71,13 +71,14 @@ Goblint includes analyses for assertions, overflows, deadlocks, etc and can be e
7171
domain_shims
7272
)
7373
(depopts
74-
(apron (>= v0.9.15))
75-
(camlidl (>= 1.13)) ; for stability (https://github.com/goblint/analyzer/issues/1520)
74+
apron
7675
z3
7776
domainslib
7877
)
7978
(conflicts
8079
(result (< 1.5)) ; transitive dependency, overrides standard Result module and doesn't have map_error, bind
80+
(apron (< v0.9.15)) ; lower bounds for depopts seem to not properly constrain in builtin-0install lower-bounds job, so upper bounds for conflicts instead
81+
(camlidl (< 1.13)) ; for stability (https://github.com/goblint/analyzer/issues/1520)
8182
(ez-conf-lib (= 1)) ; https://github.com/nberth/ez-conf-lib/issues/3
8283
)
8384
(sites

goblint.opam

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ bug-reports: "https://github.com/goblint/analyzer/issues"
3737
depends: [
3838
"dune" {>= "3.13"}
3939
"ocaml" {>= "4.14"}
40-
"goblint-cil" {>= "2.0.5"}
40+
"goblint-cil" {>= "2.0.7"}
4141
"batteries" {>= "3.9.0"}
4242
"zarith" {>= "1.10"}
4343
"yojson" {>= "2.0.0" & < "3"}
@@ -70,14 +70,11 @@ depends: [
7070
"domain-local-await"
7171
"domain_shims"
7272
]
73-
depopts: [
74-
"apron" {>= "v0.9.15"}
75-
"camlidl" {>= "1.13"}
76-
"z3"
77-
"domainslib"
78-
]
73+
depopts: ["apron" "z3" "domainslib"]
7974
conflicts: [
8075
"result" {< "1.5"}
76+
"apron" {< "v0.9.15"}
77+
"camlidl" {< "1.13"}
8178
"ez-conf-lib" {= "1"}
8279
]
8380
build: [
@@ -101,8 +98,7 @@ dev-repo: "git+https://github.com/goblint/analyzer.git"
10198
# also remember to generate/adjust goblint.opam.locked!
10299
available: os-family != "bsd" & os-distribution != "alpine" & (arch != "arm64" | os = "macos")
103100
pin-depends: [
104-
# published goblint-cil 2.0.6 is currently up-to-date, but pinned for reproducibility
105-
[ "goblint-cil.2.0.6" "git+https://github.com/goblint/cil.git#4b8b06eb39801a87d195f81d830a686578bd8b8b" ]
101+
[ "goblint-cil.2.0.7" "git+https://github.com/goblint/cil.git#e5b6287c0c85864c6d44f7fa30d0084a3ae11d6c" ]
106102
# pinned for stability (https://github.com/goblint/analyzer/issues/1520), remove after new apron release
107103
[ "apron.v0.9.15" "git+https://github.com/antoinemine/apron.git#418a217c7a70dae3f422678f3aaba38ae374d91a" ]
108104
]

goblint.opam.locked

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ depends: [
6666
"fileutils" {= "0.6.4"}
6767
"fmt" {= "0.9.0"}
6868
"fpath" {= "0.7.3"}
69-
"goblint-cil" {= "2.0.6"}
69+
"goblint-cil" {= "2.0.7"}
7070
"hex" {= "1.5.0"}
7171
"integers" {= "0.7.0"}
7272
"json-data-encoding" {= "1.0.1"}
@@ -135,15 +135,17 @@ dev-repo: "git+https://github.com/goblint/analyzer.git"
135135
available: os-family != "bsd" & os-distribution != "alpine" & (arch != "arm64" | os = "macos")
136136
conflicts: [
137137
"result" {< "1.5"}
138+
"apron" {< "v0.9.15"}
139+
"camlidl" {< "1.13"}
138140
"ez-conf-lib" {= "1"}
139141
]
140142
post-messages: [
141143
"Do not benchmark Goblint on OCaml 5 (https://goblint.readthedocs.io/en/latest/user-guide/benchmarking/)." {ocaml:version >= "5.0.0"}
142144
]
143145
pin-depends: [
144146
[
145-
"goblint-cil.2.0.6"
146-
"git+https://github.com/goblint/cil.git#4b8b06eb39801a87d195f81d830a686578bd8b8b"
147+
"goblint-cil.2.0.7"
148+
"git+https://github.com/goblint/cil.git#e5b6287c0c85864c6d44f7fa30d0084a3ae11d6c"
147149
]
148150
[
149151
"apron.v0.9.15"

goblint.opam.template

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# also remember to generate/adjust goblint.opam.locked!
33
available: os-family != "bsd" & os-distribution != "alpine" & (arch != "arm64" | os = "macos")
44
pin-depends: [
5-
[ "goblint-cil.2.0.6" "git+https://github.com/goblint/cil.git#4b8b06eb39801a87d195f81d830a686578bd8b8b" ]
5+
[ "goblint-cil.2.0.7" "git+https://github.com/goblint/cil.git#e5b6287c0c85864c6d44f7fa30d0084a3ae11d6c" ]
66
# pinned for stability (https://github.com/goblint/analyzer/issues/1520), remove after new apron release
77
[ "apron.v0.9.15" "git+https://github.com/antoinemine/apron.git#418a217c7a70dae3f422678f3aaba38ae374d91a" ]
88
]

0 commit comments

Comments
 (0)