It may be easier for the user to express their instrumentation by directly writing wat code.
Example
wasm:opcode:if:before {
wat {
i32.const 0
drop
}
}
Further Ideas
What if we expanded this to enable writing a script for postprocessing inside the whamm script itself, e.g.:
END {
// (The END will need to feed some data into python that can be post-processed (e.g. report vars, CSV file, etc.))
// || || ||
// V V V
python {
// Python script to perform the postprocessing steps
......
}
}
The output of whamm would be:
app.mon.wasm: the instrumented wasm module
app.mon.py: the python script referenced in the END
run.bash OR Makefile: A file that runs app.mon.wasm and then calls app.mon.py with the relevant data as args
Justification
It may be easier for the user to express their instrumentation by directly writing
wat
code.Example
Further Ideas
What if we expanded this to enable writing a script for postprocessing inside the whamm script itself, e.g.:
The output of whamm would be:
app.mon.wasm
: the instrumented wasm moduleapp.mon.py
: the python script referenced in the ENDrun.bash
ORMakefile
: A file that runsapp.mon.wasm
and then callsapp.mon.py
with the relevant data as args