-
Notifications
You must be signed in to change notification settings - Fork 791
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Add option to ignore EIP 170 for debugging purposes #282
Conversation
Hi Mike, I think this is a useful addition and would be supportive of it. Wonder if it would be an alternative to rename this explicitly after the use case ( Can you add this as well to the constructor doc strings and add the addition manually also to the README? |
@axic I already wondered a couple of times if we need an additional test setup testing inner library functionality or API functionality, since we can't test things like this atm with our current test setup with just running the external Ethereum tests. Not sure if it's worth the effort though (with eWASM on the horizon... 😄 ) |
I agree with renaming the option; I think |
We have relatively strong guidelines regarding not bloating up the commit history too much with back-and-forth commits, so preferably do this via rebase if you don't add but just change/revert something. If you haven't done rebases before, I recommend a local backup of the repository folder (can go wrong 😄 ). |
Better yet, can we make this a |
From a developer's perspective, having to figure out what the Devil's advocate can see why a Thoughts? |
Yes, I would also stick to the |
I'd rather see the "ewasmfork" option: https://github.com/ethereum/cpp-ethereum/blob/develop/libethcore/EVMSchedule.h#L120 :) |
Many space, very options. 🐙 😄 |
I agree with @seesemichaelj’s assessment. My original motivation for the assessment was flexibility, but I agree that such flexibility in this case is a hinderance. |
Thanks for submitting this @seesemichaelj. Seems like a good change. I definitely agree the name should be As a long term strategy for changes like this, I wonder if there's a way we can architect the VM such that we don't have to create lots of flags altering functionality (and injecting a host of conditionals). Instead, as an example, could we make an API for the data layer that lets you add a new contract to the network, sans limits? The limits being circumvented here are protocol level, and if we had the power to alter the data at will we can unlock a host of new opportunities beyond the scope of the original PR. |
@tcoulter can't really follow how this actually would look like I have to admit. |
@seesemichaelj Hi Mike, I think we have an agreement here now to a) Use Can you prepare this (please replace the old commit and not do the changes on top) and also add this to the constructor doc strings and manually to the README API description? That would be great! :-) |
Will do! Sorry, I've been busy and this fell through the cracks. On a side note, if you didn't know, GitHubs gives you a squash and merge option when pulling in PRs which will merge a single commit rather than all of them |
@holgerd77 please see the updated commit. I wanted to provide a little more detail in the README, and not clutter up the constructor doc string. Let me know if you want me to change/reword it |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks good now, thanks for re-submitting.
I'm creating a real-time Solidity debugger runtime for an Augur bounty.
To do this sanely, compiler optimization needs to be turned off for the developer to be follow a logical stepping process; otherwise it's possible for the compiler to optimize things away and cause unexpected behavior from a debugging perspective.
Unfortunately, turning off optimization can mean very large compiled contracts. EIP 170 prevents contracts with more than
0x6000
bytes (or 24KB) from being created. The rationale for EIP 170 (as I interpreted it) was really to address scaling from a global perspective, however I can see it acceptable to allow users to ignore EIP 170, specifically for debugging purposes.This PR adds the option for ignoring EIP 170.