При попытке запустить программу, которая создает большую clap::App
(найти источник здесь), Я получаю stackoverflow: thread '<main>' has overflowed its stack
.
До сих пор мне не удалось выяснить, как проинструктировать rustc
увеличить стекирование для обходного пути грубой силы. RUST_MIN_STACK
, похоже, применим только к времени выполнения, и даже там он, похоже, не имеет никакого эффекта.
Когда код сгенерирован, мне, вероятно, придется переместить создание SubCommand
во время выполнения, что я и попытаюсь сделать дальше.
Однако вы видите способ исправить это по-другому?
Похоже, что это важно, поскольку шаблоны построек, похоже, склонны к этой проблеме, если построенная структура просто большая и достаточно вложенная.
Как воспроизвести
git clone -b clap https://github.com/Byron/google-apis-rs
cd google-apis-rs
git checkout 9a8ae4b
make dfareporting2d1-cli-cargo ARGS=run
Обратите внимание, что вам понадобится вилка quasi и установите локальное переопределение, чтобы разрешить создание с помощью последнего компилятора.
Metah1 >
➜ google-apis-rs git:(clap) rustc --version
rustc 1.1.0-nightly (97d4e76c2 2015-04-27) (built 2015-04-28)