Comments (6)
What's wrong with the iterator method? It seems strictly more general to me. If we had the async stuff that has been proposed night not even be so painful!
from miri.
What's wrong with the iterator method?
We'd have to keep state inside miri. This way the state is the current execution of miri.
from miri.
Hmm, I'll have to actually look at the code and not just follow the issues to see what you mean :).
from miri.
AFAIK the main problem is Operand::Constant
, which can occur in a myriad of locations, but requires evaluating more MIR. This is where generators would be nice.
Could do constant instantiation ahead of time before running code in the function, I suppose?
from miri.
I think it's mainly a question of whether to restructure the code around the iterator model (thus requiring state + possibly re-loading of some information at each step) or keeping the current structure (which is optimized for interpretation) and simply adding the various points where the code can be stopped.
Restructuring around an iterator model is possible, but it limits the possibilities (breaking at arbitrary points during interpretation, not just at statements) and creates unintuitive control flow.
from miri.
miri has been restructured around a stepping model. No measurable performance loss in some micro benchmarks.
from miri.
Related Issues (20)
- Running `Cargo miri test` on `cargo`, an error occurred HOT 6
- Massive slowdown caused by stacked borrows on code involving raw pointers + UnsafeCell HOT 6
- Programs that cast function pointers have escalating memory use HOT 1
- Support `SystemTime` with enabled isolation HOT 4
- Implement pipe/pipe2 HOT 1
- pthreads synchronization primitives: detect mutex/rwlock/... being moved to a different location HOT 8
- FFI implementation libc getuid on Linux HOT 2
- False positive deadlock with `pollster` and async HOT 2
- Support miri-specific entry point / start function for no-std binaries
- Miri can't call foreign function `mi_malloc_aligned` on OS `linux` HOT 1
- Tree-borrows false positive with `iter::Extend`? HOT 5
- offset_from "same allocation" check is confused by int-to-ptr casts HOT 3
- Are unclosed file descriptors a memory leak? HOT 3
- Project idea: strongly typed file descriptor integers and deduplication of various checks around them HOT 4
- false positive with SB+TB: "Shifting" of a value HOT 6
- `cargo miri test` fails without `RUSTC` env var HOT 3
- Undefined behavior from `poll_fn` + `futures::join!` / `std::future::join!` HOT 11
- Tail calls end protectors too early HOT 2
- !Send Future violates stacked borrow rules HOT 10
- Implicit reborrows do not cause writes 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 miri.