-
Notifications
You must be signed in to change notification settings - Fork 11
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Improvals to function calls #81
Comments
Can you point out an instance in which this causes problems? Also it should probably not be handled by the opcode handler in |
Tested vanilla G2-notr, via:
found some functions:
Are you sure? Hard to imagine case, when corrupted stack is desired way of running the script. |
Yes I know these cases exist, but where does extra data on the stack cause actual problems? Just so I can properly understand why this is needed :)
It's more of a thing about accurately running the code. For example, it is conceivable that someone might implement a compiler with support for multiple return types in which case this change would break their implementation even though they did generate valid Daedalus bytecode. There are probably other cases in which things might break too. |
Lack of data - problem in CoM. Getting
OK, will do with flag. But dough that compiler like that will come any time soon ;) |
Some issues with functions
Scripts compiled by vanilla compiler may have inconsistent sequence of
push
/pop
, leaving more data in stack, that expected by callerProposal: improve guard-related code in
opcode::bl
Need to have traps for call-exit. Two use-cases here:
a) exit from loop-body:
b) LeGo locals package: locals allow to annotate some functions to have proper local-variables. On side of opengothic I can trap annotation just fine and stash 'local' variables, but need to have a way to restore previous values on function exit
PS:
can do it after finishing with memory-traps PR :)
The text was updated successfully, but these errors were encountered: