Skip to content
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

Reduce analysis call overhead: use WebAssembly as analysis language, inline #14

Open
danleh opened this issue Jun 26, 2019 · 9 comments
Assignees
Labels
enhancement New feature or request

Comments

@danleh
Copy link
Owner

danleh commented Jun 26, 2019

  • depends on multiple tables (GC/anyref proposal), multiple memories
  • source language for analysis that can be compiled to WebAssembly: Rust? AssemblyScript?
  • analysis API in that language?
@danleh danleh added the enhancement New feature or request label Jun 26, 2019
@danleh danleh self-assigned this Jun 26, 2019
@vshymanskyy
Copy link

I was looking for a tool that could help us to develop Wasm3, but it looks like our wasm interpreter could be useful for wasabi as well.

@danleh
Copy link
Owner Author

danleh commented Jan 31, 2020

Can you elaborate a bit how Wasm3 (which is an interpreter for Wasm, right?) is useful for Wasabi?

@MaxGraey
Copy link

MaxGraey commented Jan 31, 2020

As wasm-interp replacement I guess 🤷️

@danleh
Copy link
Owner Author

danleh commented Jan 31, 2020

wasm-interp is not used right now in Wasabi (Wasabi instruments purely statically, which is why I'm asking.)

@MaxGraey
Copy link

MaxGraey commented Jan 31, 2020

That's interesting. So may I ask why wasabi described as "A dynamic analysis framework"? Perhaps you use different runtime for now. Also wasm-interp mentioned in README several times

@danleh
Copy link
Owner Author

danleh commented Jan 31, 2020

The instrumentation is static, the analysis happens dynamically (but in the browser or Node.JS, since we assume a JavaScript host environment, which was the only type of host at the time of creation of Wasabi). More info: http://wasabi.software-lab.org/#how-does-it-work

wasm-interp is used once in the README, namely for running a very simple WebAssembly program (just to get people used to Wasm in general, not to Wasabi in particular).

@MaxGraey
Copy link

Thank you for the clarification. It was just my guess, perhaps @vshymanskyy meant something another application.

@vshymanskyy
Copy link

@danleh yup. I also first thought that Wasm3 could help interpreting dynamically the generated analyzer, but after your comments in #23 I now it's not very different from passing the generated wasm file to the native (in-browser) wasm engine via some js glue code...

Wasm3 could itself be tweaked to output some human-friendly tracing information, however I think wasabi approach will be much faster at this.

@danleh
Copy link
Owner Author

danleh commented Jan 31, 2020

Alright, for more comments/ideas on WASI support in Wasabi, let's stick to #23.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants