Comments (5)
Totally agreed. We should have another Result
type. ExecutionResult<R, N, E>
, where R
is the return type, N
is NMI, and E
is Error.
from sputnikvm.
But I'm going to postpone this until the next refactoring is done. That's a little bit more urgent.
from sputnikvm.
@sjmackenzie However, as I think deeper about this. The problem for using three type parameters is that trr!
and Rust's try!
and question mark syntax is dependent on the Result type. Most of the time, the control flow handling logic for NMI
and Error
are the same. So I think this is better handled by creating a NMI
enum in ExecutionError
. But as this doesn't affect any of the structure or logic of the sputnikvm design. This will probably be postponed a little bit till the next refactoring.
from sputnikvm.
Yes the control flow handling is exactly the same, but the semantics are different and now unambiguous - although NMI
is a bit obtuse, maybe NeedMoreInfo
is better!
from sputnikvm.
Closed via #105
from sputnikvm.
Related Issues (20)
- no_std build fails on current Nightly Rust HOT 1
- Refine benchmarks so the measurement would kick in as close to contract execution as possible
- Run code through clippy and apply fixes
- Prepare for Byzantium hardfork HOT 2
- SHL, SHR and SAR opcodes and correcponding Patch interface changes
- Customization of Pre-compiled Contract HOT 3
- Move Byzantium precompiled contracts implementation to the core codebase HOT 1
- Implement CREATE2 opcode
- Implement EXTCODEHASH opcode
- Change gas metering for SSTORE
- Predicting the address of a contract HOT 3
- Improve SputnikVM panic-safety HOT 1
- sputnikvm-network-* are outdated HOT 1
- Loading of configuration values from a file while starting any network or sputnikvm HOT 6
- What is the purpose of last else block in the screen below. HOT 1
- CREAT2 as a transaction type(action)?
- Persistance of the SputnikVM execution HOT 1
- 999
- vm.fire() hangs
- Crates.io version of code will panic on newer rustc due to stricter uninit checks
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 sputnikvm.