Releases: hernanponcedeleon/Dat3M
Dat3M 4.1.0 is out!
What's Changed
- Lazy method supports dataraces/cat_spec by @ThomasHaas in #660
- Option to get dartagnan version by @hernanponcedeleon in #662
- New Pointer Analysis by @xeren in #616
- Add vmm version 0.9.1 by @hernanponcedeleon in #664
- Log a warning instead of throwing an exception when opt is not availa… by @hernanponcedeleon in #666
- Propagate correct memory order tags when compiling to C11 by @hernanponcedeleon in #665
- Fix collectSideEffects for manually annotated spinloops by @hernanponcedeleon in #669
- New AssignmentInlining pass by @ThomasHaas in #667
- Streamline witness options by @hernanponcedeleon in #670
- Add atomicity axiom to sc.cat by @hernanponcedeleon in #671
- Add 4 litmus tests demonstrating unordered failing cmpxchg. by @hernanponcedeleon in #672
- Check all three properties by default by @hernanponcedeleon in #675
- Add some missing LKMM tests by @hernanponcedeleon in #677
- Remove support for LISA format by @hernanponcedeleon in #678
- Support fences as inline assembly by @hernanponcedeleon in #679
- Fix performance issue in DominatorTree.computePredecessorMap by @ThomasHaas in #680
- Lazy cycle detection in inclusion based ailas analysis by @xeren in #676
- Replace several back jumps with via forward jumping by @hernanponcedeleon in #681
Full Changelog: 4.0.1...4.1.0
Dat3M 4.0.1 is out!
This release does not contain major new features. It is mostly code refactoring, bug fixing and improving usability of the tool.
Dat3M 4.0.0 is out!
These are the main changes of this version:
- More precise support of the C language (function pointers, dynamic memory allocation, dynamic thread creation, and recursion)
- Support llvm files as input
- Remove boogie as supported input format
- Remove dependencies on smack and atomic-replace pass
- Implement static analysis of memory models, as described in the OOSPLA’23 paper
- Support for PTX (v6.0 and v7.5) and vulkan memory models
- Several changes related to SVCOMP 2024 participation
- Support for many intrinsics (pthread, llvm, UBSAN)
- Update JavaSMT to version 4.1.0
- Fix unsoundness of symmetry learning
- Optimize memory consumption for RA sets
- Bound refining (CAAT)
- Update LKMM to latest version
- Support SRCU for LKMM
- Allow to update relations in cat
- Improve user output (lines of code and call stack related to violations / witnesses)
- Add coverage report
- Make semantics of pthread events closer to reality
- Force addresses to be even (as in reality)
- Fix / improve liveness encoding
- Improve performance of alias analysis
- Improve / fix compilation schemes
- Replace constant propagation by sparse conditional constant propagation
- Improve most program transformation passes
- Fix refinement cutting
- Add support for ARM-based MacOS
- Move to java 17
- Several refactors / bug fixing
Dat3M 3.1.1 is out!
This release contains our submission for SVCOMP 2023.
It mostly contains changes related to code refactoring and bug fixing for SVCOMP.
Dat3M 3.1.0 is out!
These are the main changes of this version:
- Implements the theory solver for CAAT (Consistency as a Theory) as described in the OOSPLA’22 paper
- Adds support for checking liveness
- Adds support to RC11, IMM and RISCV memory models
- Updates the support to the latests version of LKMM (including data races)
- Implements the compilation schemes from LKMM to hardware models
- Adds macro
__VERIFIER_loop_bound
to use different unrolling bounds for specific loops - Adds option
encoding.wmm.idl2sat
to encode acyclicity constraint using SAT instead of IDL - Adds option
witness.graphviz
to generate violation graphs - Updates JavaSMT version to 3.13.3
- Several bug fixing and performance improvements
Dat3M 3.0.0 is out!
This new major version contains several improvements:
- Support for several SMT solvers based on JavaSMT
- Several performance improvements
- New docker container for easy use
- Extended compilation scheme for more instructions and architectures
- Support for validation of violation witnesses
- Drop support for IDL and KLEENE encodings
- Drop support for Porthos
- Bug fixing
This is the version participating in SVCOMP 2022.
Dat3M 2.0.7 is out!
This is the version participating in SVCOMP 2021. The main new features are listed below.
- Support for bit-vectors
- Improved (machine readable) witness generation
- Checking different properties: currently reachability and no-data-race
Dat3M 2.0.6 is out!
Dartagnan can now verify program written in C.
It uses SMACK (needs to be installed independently) as a backend to convert C programs to Boogie and it then performs the verification on the Boogie representation of the program.
We also improved the IR of programs to support more kind of expressions (including input non-determinism) and implemented loop unrolling of goto instructions.
Dat3M 2.0.3 is out!
The main new feature of this release is the user interface that allows to simulate memory models in just a few clicks instead of running the tools from the console.