-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
Pulley: cargo feature to optionally use Rust's feature(explicit_tail_calls)
in the interpreter
#9163
Comments
Subscribe to Label Actioncc @fitzgen
This issue or pull request has been labeled: "pulley"
Thus the following users have been cc'd because of the following labels:
To subscribe or unsubscribe from this label, edit the |
Why is a separate decoder function for the arguments needed? Why can't the existing decoder functions be used? |
Oh and how can we verify that the tailcall optimization does indeed result in the desired assembly (ie each opcode handler does an indirect branch to the next handler, rather than a branch back to the top of the loop)? Copy/pasting the code into Compiler Explorer and looking at the output is doable, but not automatable. |
For the verification, I think that's a property of the |
Just so that we don't have to manually remember " I fully expect these would be macro-generated like most stuff in this crate and defer to the underlying Does that make sense? |
We should rewrite the core of the interpreter and its main loop such that we can easily flip a cargo feature on to start using nightly Rust's
feature(explicit_tail_calls)
.The way I am imagining this would be done (warning: super rough ideas incoming) is something like this:
cc @Kmeakin, since you've been doing some Pulley stuff
The text was updated successfully, but these errors were encountered: