Skip to content
This repository was archived by the owner on Sep 6, 2021. It is now read-only.

New eval#13

Open
abrisan wants to merge 9 commits intorunrevmark:developfrom
abrisan:new_eval
Open

New eval#13
abrisan wants to merge 9 commits intorunrevmark:developfrom
abrisan:new_eval

Conversation

@abrisan
Copy link
Copy Markdown

@abrisan abrisan commented Oct 17, 2017

No description provided.

Comment thread engine/src/cmdse.cpp Outdated
static bool eval_async(MCExecContext& ctxt, MCExpression* p_expr, uinteger_t& r_value, Func &&remainder_function) __attribute__((noinline))
{
uinteger_t t_value;
if (!MCEval_UIntType::eval_async(ctxt, p_expr, t_value, remainder_function))
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The thing to remember here is that you don't have the result of eval_async from UIntType until the remainder_function is called, so you need to make a remainder_function which does the value check and then passes to the remainder_function which was passed in.

Copy link
Copy Markdown
Author

@abrisan abrisan Oct 17, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

But I think this particular eval shouldn't be async, because this is one of the intermediary steps of the whole thing, we delegate eval to process the current argument, and then give that to the continuation function. The only problem here could be if the eval triggers a wait

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants