あらすじは、
- とあるcrateがあった
- 今日までそれを使っている別の環境では、問題なく動いてた
- なのに、新しい環境では、同じコードなのにエラーになる
- stack overflowと言われても心当たりがない
いったいなぜ・・・?という。
Profile: debug
再帰処理は確かにしていたので、そこに原因があると思っていろいろ変えてみたが、効果がなかった。
というか、そもそも環境起因というところが納得いかない。
あれやこれやと差分を調べまくった結果、たどり着いたのがこの差。
[profile.dev]
debug = false
そして案の定、これを指定したらあっさり動くようになった・・・。
Profiles - The Cargo Book https://doc.rust-lang.org/cargo/reference/profiles.html#debug
普段より大量のスタックフレームを記録しようとして、溢れるって感じか。デバッグ情報も使ったことないけど。