Eric Lippertのブログ エントリを読んで、次のスニペットに出会いました。
...永久にループするか (末尾呼び出しを最適化できるアーキテクチャを使用している場合)、スタックが不足してプロセスがクラッシュします。
コンパイラが末尾再帰を最適化できることは承知していますが、末尾呼び出しを最適化できるアーキテクチャとはどういう意味ですか?
Eric Lippertのブログ エントリを読んで、次のスニペットに出会いました。
...永久にループするか (末尾呼び出しを最適化できるアーキテクチャを使用している場合)、スタックが不足してプロセスがクラッシュします。
コンパイラが末尾再帰を最適化できることは承知していますが、末尾呼び出しを最適化できるアーキテクチャとはどういう意味ですか?
これは、x64 での .NET JIT が x86 での JIT とは異なる動作をすることを意味します。x64 では、テール コールの最適化がより積極的に適用されます。
2007 年のこのブログ投稿と 2009 年のこのブログ投稿を参照して、従うべきいくつかのルールの実装の詳細 (依存しないでください) を確認してください。