github-actions[bot] commented on issue #7282:
Subscribe to Label Action
cc @peterhuene
<details>
This issue or pull request has been labeled: "wasmtime:api", "wasmtime:c-api", "wasmtime:config", "wasmtime:docs"Thus the following users have been cc'd because of the following labels:
- peterhuene: wasmtime:api, wasmtime:c-api
To subscribe or unsubscribe from this label, edit the <code>.github/subscribe-to-label.json</code> configuration file.
Learn more.
</details>
github-actions[bot] commented on issue #7282:
Label Messager: wasmtime:config
It looks like you are changing Wasmtime's configuration options. Make sure to
complete this check list:
[ ] If you added a new
Config
method, you wrote extensive documentation for
it.<details>
Our documentation should be of the following form:
```text
Short, simple summary sentence.More details. These details can be multiple paragraphs. There should be
information about not just the method, but its parameters and results as
well.Is this method fallible? If so, when can it return an error?
Can this method panic? If so, when does it panic?
Example
Optional example here.
```</details>
[ ] If you added a new
Config
method, or modified an existing one, you
ensured that this configuration is exercised by the fuzz targets.<details>
For example, if you expose a new strategy for allocating the next instance
slot inside the pooling allocator, you should ensure that at least one of our
fuzz targets exercises that new strategy.Often, all that is required of you is to ensure that there is a knob for this
configuration option in [wasmtime_fuzzing::Config
][fuzzing-config] (or one
of its nestedstruct
s).Rarely, this may require authoring a new fuzz target to specifically test this
configuration. See [our docs on fuzzing][fuzzing-docs] for more details.</details>
[ ] If you are enabling a configuration option by default, make sure that it
has been fuzzed for at least two weeks before turning it on by default.[fuzzing-config]: https://github.com/bytecodealliance/wasmtime/blob/ca0e8d0a1d8cefc0496dba2f77a670571d8fdcab/crates/fuzzing/src/generators.rs#L182-L194
[fuzzing-docs]: https://docs.wasmtime.dev/contributing-fuzzing.html
<details>
To modify this label's message, edit the <code>.github/label-messager/wasmtime-config.md</code> file.
To add new label messages or remove existing label messages, edit the
<code>.github/label-messager.json</code> configuration file.</details>
kayabaNerve commented on issue #7282:
This merged
jitdump
andvtune
into a new, single featureprofiling
, adding theittapi
dependency to anyone who solely wantsjitdump
. It also didn't properly update documentation as https://docs.rs/wasmtime/latest/wasmtime/ still details ajitdump
/vtune
feature (with noprofiling
feature).While I'm not against the existence of a new
profiling
feature, could the original two features be restored withprofiling
activating both of them?
alexcrichton commented on issue #7282:
Ah I merged those since they were both on-by-default and there didn't at the time appear to be much benefit to sharding further. Out of curiosity is this something where you're concerned about binary size of the ittapi dependency? Or is it otherwise not building for you for one reason or another?
One reason I unified them was I also placed the guest profiler behind the same
profiling
feature and by having a complete on/off switch it would enable conditionally compiling out even more code as well in theory too. I was hoping to avoid a feature-per-profiler, so if possible I'd prefer to solve the problem without splitting it back up, but that depends on the issue that you're having and if it can only be solved by adding a vtune feature back that seems ok too
kayabaNerve commented on issue #7282:
As someone who refers to an upstream which disables default features, then re-enables features as needed, this did introduce the ittapi dependency for me as I updated it in my downstream. To be clear, I agree with that policy.
I don't personally care about ittapi's effect on binary size. I care about the fact I now have ittapi in scope and will have to, eventually, read through and audit ittapi to ensure it's non-malicious (or import the Bytecode Alliance's vet statement for it, which I can assume exists). While I can recognize the library is hosted and maintained by Intel, the actual publishers of the crate are three individuals, any of who could be compromised.
TL;DR It increases my supply chain and complicates the package graph for no benefit to me, making this a downgrade in wasmtime's utility.
Again. I don't mind the profiling feature. I just wish I could still access the original jitdump feature. Accordingly, I believe this can be implemented without hurting the performance/effects/code-gen of the profiling feature.
alexcrichton commented on issue #7282:
That makes sense yeah, thanks for explaining! If it's ok with you I'd prefer to stay the current course, however. Wasmtime doesn't guarantee that we won't add new dependencies with new version of Wasmtime even with default features disabled. That being said we do guarantee that all dependencies used by Wasmtime have a vetted version by BA maintainers.
Otherwise I'd personally prefer to avoid sharding the
profiling
feature into a feature-per-strategy as well as that feels like a bit of an overload of Cargo features (we already have a lot). But again I don't feel super strongly about this, just a slight preference.
kayabaNerve commented on issue #7282:
I fully understand dependencies may increase. That does not affect my commentary on needless dependencies having increased.
As for staying the course, I can respect your preference of simplicity. If in the future, you change your mind and would accept a PR re-defining profiling as a superset of both features, please let me know.
Last updated: Dec 23 2024 at 12:05 UTC