## Description
...instead of feature flags. This VMConfig is on by default, but turned
off explicitly in the node codebase. This gets around quirks in Rust's
`feature` system whereby turning a feature on for one binary in the
build turns it on for everything in that build.
## Test Plan
Existing tests:
```
sui$ cargo simtest
sui$ env SUI_SKIP_SIMTESTS=1 cargo nextest run
```
As a side effect of this change, stacktraces stop showing up in the
transactional test output. It happened to be there almost by
coincidence, because the feature was turned on for some other part of
the build.
Also test that the `sui` binary still produces stacktraces after this
change:
```
sui$ cargo build --bin sui
sui$ ./target/debug/sui move new example -p /tmp/example
sui$ cat <<EOF >/tmp/example/sources/test.move
module example::example {
use sui::address;
fun some_other_function(): address {
sui::address::from_bytes(vector[1, 2, 3])
}
#[test]
fun testing_stacktraces() {
let _ = some_other_function();
abort 42
}
}
EOF
sui$ ./target/debug/sui move test -p /tmp/example
Running Move unit tests
[ FAIL ] 0x0::example::testing_stacktraces
Test failures:
Failures in 0x0::example:
┌── testing_stacktraces ──────
│ error[E11001]: test failure
│
│ ... [snip] ...
│
│ stack trace
│ example::testing_stacktraces(./sources/test.move:11)
│
└──────────────────
Test result: FAILED. Total tests: 1; passed: 0; failed: 1
```
---
If your changes are not user-facing and not a breaking change, you can
skip the following section. Otherwise, please indicate what changed, and
then add to the Release Notes section as highlighted during the release
process.
### Type of Change (Check all that apply)
- [ ] protocol change
- [ ] user-visible impact
- [ ] breaking change for a client SDKs
- [ ] breaking change for FNs (FN binary must upgrade)
- [ ] breaking change for validators or node operators (must upgrade
binaries)
- [ ] breaking change for on-chain data layout
- [ ] necessitate either a data wipe or data migration
### Release notes