C言語の末尾呼び出し最適化は意外と最近までなかった
Tail-call optimization in C is relatively recent
LWN.netの記事によると、C言語の末尾呼び出し最適化は長い間実装されていなかった。1994年時点のコンパイラは対応しておらず、2001年にMark ProbstがGCC向けに別の呼び出し規約で実装したが、間接呼び出しには対応していなかった。昨年発表された「Copy-and-Patch Compilation」論文を読んだ後、著者はGCCとClangが記事で示したような末尾呼び出しを最適化できることを確認した。Pythonコミュニティが先に実装したことに祝意を表している。
C言語の末尾呼び出しは、昔からあったわけではない。