Skip to content

Staging for Race Digests #1666

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 42 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
2fb5390
First steps
michael-schwarz Dec 24, 2024
29a3900
Record capacity
michael-schwarz Dec 24, 2024
60c1d72
Add first checks
michael-schwarz Dec 24, 2024
041e544
Use MHP information
michael-schwarz Dec 24, 2024
db320ae
More involved MHP check
michael-schwarz Dec 24, 2024
8b2ede3
Rm spurious variable
michael-schwarz Dec 24, 2024
f418b00
Document pthread barriers
michael-schwarz Dec 24, 2024
93b7f0c
Add `NOMAC` option
michael-schwarz Dec 25, 2024
a990b5f
Remark that `os` gem is needed
michael-schwarz Dec 25, 2024
27dd030
Make sound for multiprocess
michael-schwarz Dec 25, 2024
24d61c0
Fix indentation
michael-schwarz Dec 25, 2024
8fe2e16
Also consider locks
michael-schwarz Dec 25, 2024
05d2f60
Minimal race handling
michael-schwarz Dec 25, 2024
1b3a0d8
Fix pairwise MHP check
michael-schwarz Dec 25, 2024
7e98213
Add case for more waiters
michael-schwarz Dec 25, 2024
1b4beae
Get rid of overcomplicated logic
michael-schwarz Dec 25, 2024
1bfb985
Cleanup
michael-schwarz Dec 25, 2024
7be6d3a
Merge branch 'master' into issue_1651
michael-schwarz Jan 17, 2025
35bec2d
Fix `List.length` call
michael-schwarz Jan 17, 2025
ea90d39
Add first handling to constraints
michael-schwarz Jan 24, 2025
383ad94
Fix failing test
michael-schwarz Jan 24, 2025
ff411e4
More events & constraints
michael-schwarz Jan 24, 2025
8fff9a5
Onces
michael-schwarz Jan 24, 2025
ab0a9db
Refine
michael-schwarz Jan 24, 2025
e255c60
Document `pthread_once`
michael-schwarz Jan 24, 2025
6df3ff8
Add race checking
michael-schwarz Jan 24, 2025
46d4904
Add further example
michael-schwarz Jan 27, 2025
e31ce2a
Only print onces in race info if one of the sets is non-empty
michael-schwarz Jan 27, 2025
9dae404
Further test
michael-schwarz Jan 27, 2025
010380e
Remove workaround for #547
michael-schwarz Jan 27, 2025
aa68509
Use Seq instead of constructing from scratch
michael-schwarz Jan 29, 2025
cb2c858
Merge branch 'issue_1651' into race_digest_staging
michael-schwarz Jan 29, 2025
5c26909
Merge branch 'issue_1662' into race_digest_staging
michael-schwarz Jan 29, 2025
31323cd
Add switch to not use mutexes in race detection
michael-schwarz Jan 30, 2025
d9bd9ca
Add option to disable thread digest
michael-schwarz Jan 30, 2025
164e0c9
Add option for freshness
michael-schwarz Jan 30, 2025
7ae5e07
Add toggle for region / symbLocks
michael-schwarz Jan 30, 2025
1273af2
Thread flag option
michael-schwarz Jan 31, 2025
aa97679
Add `tid` and `joins` digest
michael-schwarz Jan 31, 2025
953577c
Merge branch 'issue_1664' into race_digest_staging
michael-schwarz Jan 31, 2025
4c2d8a3
Add configs for experiments
michael-schwarz Jan 31, 2025
cea4416
Add two more configs
michael-schwarz Jan 31, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .github/workflows/coverage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,9 @@ jobs:
- name: Install dependencies
run: opam install . --deps-only --locked --with-test

- name: Install os gem for operating system detection
run: sudo gem install os

- name: Install coverage dependencies
run: opam install bisect_ppx

Expand Down
3 changes: 3 additions & 0 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,9 @@ jobs:
- name: Install dependencies
run: opam install . --deps-only --locked --with-doc

- name: Install os gem for operating system detection
run: sudo gem install os

- name: Build API docs
run: opam exec -- dune build @doc

Expand Down
9 changes: 9 additions & 0 deletions .github/workflows/locked.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,9 @@ jobs:
- name: Install dependencies
run: opam install . --deps-only --locked --with-test

- name: Install os gem for operating system detection
run: sudo gem install os

- name: Build
run: ./make.sh nat

Expand Down Expand Up @@ -100,6 +103,9 @@ jobs:
- name: Install dependencies
run: opam install . --deps-only --locked --with-test

- name: Install os gem for operating system detection
run: sudo gem install os

- name: Build
run: ./make.sh nat

Expand Down Expand Up @@ -142,6 +148,9 @@ jobs:
- name: Install dependencies
run: opam install . --deps-only --locked

- name: Install os gem for operating system detection
run: sudo gem install os

- name: Setup Gobview
run: ./make.sh setup_gobview

Expand Down
6 changes: 6 additions & 0 deletions .github/workflows/unlocked.yml
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,9 @@ jobs:

- name: Install dependencies
run: opam install . --deps-only --with-test

- name: Install os gem for operating system detection
run: sudo gem install os

- name: Install Apron dependencies
if: ${{ matrix.apron }}
Expand Down Expand Up @@ -118,6 +121,9 @@ jobs:
- name: Install dependencies
run: opam install . --deps-only --with-test

- name: Install os gem for operating system detection
run: sudo gem install os

- name: Install Apron dependencies
run: |
opam depext apron
Expand Down
1 change: 0 additions & 1 deletion conf/bench-yaml-validate.json
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,6 @@
},
"pre": {
"cppflags": [
"-DGOBLINT_NO_PTHREAD_ONCE",
"-DGOBLINT_NO_QSORT",
"-DGOBLINT_NO_BSEARCH"
]
Expand Down
1 change: 0 additions & 1 deletion conf/bench-yaml.json
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,6 @@
},
"pre": {
"cppflags": [
"-DGOBLINT_NO_PTHREAD_ONCE",
"-DGOBLINT_NO_QSORT",
"-DGOBLINT_NO_BSEARCH"
]
Expand Down
1 change: 0 additions & 1 deletion conf/ldv-races.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
{
"pre": {
"cppflags": [
"-DGOBLINT_NO_PTHREAD_ONCE",
"-DGOBLINT_NO_QSORT",
"-DGOBLINT_NO_BSEARCH"
]
Expand Down
128 changes: 128 additions & 0 deletions conf/race-digests/full-minus-region.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,128 @@
{
"ana": {
"sv-comp": {
"enabled": true,
"functions": true
},
"int": {
"def_exc": true,
"enums": false,
"interval": true
},
"float": {
"interval": true,
"evaluate_math_functions": true
},
"activated": [
"base",
"threadid",
"threadflag",
"threadreturn",
"mallocWrapper",
"mutexEvents",
"mutex",
"access",
"race",
"escape",
"expRelation",
"mhp",
"assert",
"var_eq",
"symb_locks",
"region",
"thread",
"threadJoins",
"abortUnless"
],
"path_sens": [
"mutex",
"malloc_null",
"uninit",
"expsplit",
"activeSetjmp",
"memLeak",
"threadflag"
],
"context": {
"widen": false
},
"base": {
"arrays": {
"domain": "partitioned"
}
},
"race": {
"free": false,
"call": false,
"digests": {
"lockset": true,
"thread": true,
"fresh": true,
"region": false,
"symb_locks": true,
"threadflag": true,
"tid": true,
"join" : true
}
},
"autotune": {
"enabled": true,
"activated": [
"singleThreaded",
"mallocWrappers",
"noRecursiveIntervals",
"enums",
"congruence",
"octagon",
"wideningThresholds",
"loopUnrollHeuristic",
"memsafetySpecification",
"noOverflows",
"termination",
"tmpSpecialAnalysis"
]
}
},
"exp": {
"region-offsets": true
},
"solver": "td3",
"sem": {
"unknown_function": {
"spawn": false
},
"int": {
"signed_overflow": "assume_none"
},
"null-pointer": {
"dereference": "assume_none"
}
},
"witness": {
"graphml": {
"enabled": true,
"id": "enumerate",
"unknown": false
},
"yaml": {
"enabled": true,
"format-version": "2.0",
"entry-types": [
"invariant_set"
],
"invariant-types": [
"loop_invariant"
]
},
"invariant": {
"loop-head": true,
"after-lock": false,
"other": false,
"accessed": false,
"exact": true
}
},
"pre": {
"enabled": false
}
}
118 changes: 118 additions & 0 deletions conf/race-digests/full.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,118 @@
{
"ana": {
"sv-comp": {
"enabled": true,
"functions": true
},
"int": {
"def_exc": true,
"enums": false,
"interval": true
},
"float": {
"interval": true,
"evaluate_math_functions": true
},
"activated": [
"base",
"threadid",
"threadflag",
"threadreturn",
"mallocWrapper",
"mutexEvents",
"mutex",
"access",
"race",
"escape",
"expRelation",
"mhp",
"assert",
"var_eq",
"symb_locks",
"region",
"thread",
"threadJoins",
"abortUnless"
],
"path_sens": [
"mutex",
"malloc_null",
"uninit",
"expsplit",
"activeSetjmp",
"memLeak",
"threadflag"
],
"context": {
"widen": false
},
"base": {
"arrays": {
"domain": "partitioned"
}
},
"race": {
"free": false,
"call": false
},
"autotune": {
"enabled": true,
"activated": [
"singleThreaded",
"mallocWrappers",
"noRecursiveIntervals",
"enums",
"congruence",
"octagon",
"wideningThresholds",
"loopUnrollHeuristic",
"memsafetySpecification",
"noOverflows",
"termination",
"tmpSpecialAnalysis"
]
}
},
"exp": {
"region-offsets": true
},
"solver": "td3",
"sem": {
"unknown_function": {
"spawn": false
},
"int": {
"signed_overflow": "assume_none"
},
"null-pointer": {
"dereference": "assume_none"
}
},
"witness": {
"graphml": {
"enabled": true,
"id": "enumerate",
"unknown": false
},
"yaml": {
"enabled": true,
"format-version": "2.0",
"entry-types": [
"invariant_set"
],
"invariant-types": [
"loop_invariant"
]
},
"invariant": {
"loop-head": true,
"after-lock": false,
"other": false,
"accessed": false,
"exact": true
}
},
"pre": {
"enabled": false
}
}
Loading
Loading