bytecodealliance / sightglass

A benchmark suite and tool to compare different implementations of the same primitives.
Apache License 2.0
69 stars 33 forks source link

Native benchmarks rely on hard-coded path #259

Open abrown opened 1 year ago

abrown commented 1 year ago

When running a native benchmark that is not named benchmark.so, the native engine will fail due to this hard-coded address:

https://github.com/bytecodealliance/sightglass/blob/04546548e60dcce4b6691f8ddb75442c4d251ad9/engines/native/libengine/src/lib.rs#L285

Previously this was just a paper cut, only affecting in-development benchmarks (one would expect the native engine to open your-benchmark-path.so but it would not) but now that multiple benchmarks can live in a single directory, the path given to the sightglass-cli benchmark command should be the one communicated to the native engine. (Some thoughts: (a) add a new field to the WasmBenchConfig passed in to the native engine in wasm_bench_create, (b) hack the wasm_bytes passed to wasm_bench_compile to contain something like NATIVE_PATH###/path/passed/to/sightglass.so instead of the bytes of the shared library, which are useless.)

jlb6740 commented 1 year ago

@abrown 😢. The renaming definitely exposes this. It was coded to be the same basename as the wasm file (benchmark.wasm) and be minimally invasive into some of the other logic, but now we need to go ahead and propagate the name of the so. A proper change.