Comments (1)
In principle it should be possible, though in practice it depends on the IR produced by rustc
.
At the very least, we would need to provide a mock of std::thread
(and maybe std::sync::atomic
) to ensure that GenMC can track thread creation and atomic accesses (this is what is done for C/C++).
Beyond that, we would also need to ensure that there are no ffi calls in the produced code, and that the IR interpreter does not choke on any of the instructions (rustc
exercises different parts of LLVM IR than clang
, and these parts might contain instructions that are not tested/properly supported).
One could also design a different runtime for Rust altogether, but this is considerably more work.
If you are willing to try it out, let me know how it goes. I'd be happy to help in determining what changes are precisely required in order to make it work.
Michalis
from genmc.
Related Issues (20)
- LKMM atomic_andnot and non-returning atomics HOT 1
- Macro `__CONFIG_GENMC_INODE_DATA_SIZE` not defined HOT 1
- Unexpected failure of cmpxchg HOT 1
- Problems with while(x--) HOT 2
- Unexpected behaviour under the unroll option. HOT 1
- genmc vs IMM paper (Remark 2) HOT 3
- BUG: Failure at MOCalculator.cpp:65/getStoreOffset()! HOT 6
- LLVM-6 build is much faster than LLVM-14 build HOT 5
- fprintf(stderr,...) triggers a crash in genmc HOT 1
- Bug with -imm (dependency broken after revisit?) HOT 1
- [missing feature/bug] thread local storage array results into LLVM error HOT 1
- bug: Anomaly with seq_cst and assert HOT 1
- BUG: Failure at PromoteMemIntrinsicPass.cpp:78/promoteMemSet()! HOT 1
- Strange case with compare and swap HOT 1
- Feature Request: support for pthread_rwlock
- BUG: Failure at MOCalculator.cpp:65/getStoreOffset()! HOT 2
- Several issues with one client HOT 1
- Compiling with optimizations disabled results in runtime error HOT 5
- LKMM: failing cmpxchg should have no ordering HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from genmc.