alexcrichton opened PR #4640 from fuzz-adapters
to main
:
This series of commits is an implementation of enhancing the existing
component_api
fuzzer which roundtrips values through components to also roundtrip values through adapter modules as well. The fuzzer itself is extended in a pretty small fashion by "simply" instantiating a second component in the tests and everything is wired up to call the same echo function provided by the host. This will exercise the type hierarchies for adapter modules and various edges of the adapter compiler as well.After running the fuzzer locally for a bit it found a nice crop of issues in the adapter compiler. The fixes for all of these are split out into individual commits. The main issue found was that the output module was growing exponentially in size with respect to the size of the input. To fix this I implemented a "de-inlining" scheme of sorts where memory-to-memory conversions of types are now split out into individual functions to allow reuse and avoid inlining everything into one mega function for each adapter. This doesn't 100% fix the issue because stack-to-stack conversion can still show some exponential behaviour, but at least for now this fixes the most egregious cases and the fuzzer isn't routinely timing out.
alexcrichton requested fitzgen for a review on PR #4640.
alexcrichton updated PR #4640 from fuzz-adapters
to main
.
fitzgen submitted PR review.
fitzgen submitted PR review.
fitzgen created PR review comment:
I feel like we should check for
-1
and trap if we see it, just so that we can't iloop here.
alexcrichton updated PR #4640 from fuzz-adapters
to main
.
alexcrichton has enabled auto merge for PR #4640.
alexcrichton merged PR #4640.
Last updated: Dec 23 2024 at 12:05 UTC