4 ms·
It still doesn't, this is a compiler specific language extension. You won't find anything on ISO/IEC 9899:2024 about tail calls, like it happens on Scheme. ht
by pjmlp 3mo ago
It still doesn't, this is a compiler specific language extension.
You won't find anything on ISO/IEC 9899:2024 about tail calls, like it happens on Scheme.
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf
Section 3.5 of R7RS.
https://standards.scheme.org/official/r7rs.pdf https://standards.scheme.org/official/r7rs.pdf
- wahern 3mo agoA formal technical specification (TS) extension is already being drafted: https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3582.pdf https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3582.pdf That's a step up from the usual proposals. I'm not sure what criteria is used to decide whether to first create a TS vs just incorporating a change into the working draft of the next standard.[1] _Defer also seems to be taking the TS route.[2] 1. https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3886.pdf https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3886.pdf 2. https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3928.pdf https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3928.pdf
- pjmlp 3mo agoWell, even if that lands on the official standard, that means C29 as probable release year for C2y, plus adoption of the exact form across compilers to be able to rely on it being available.
- Someone 3mo agoPlus the fact that an implementation that recognizes the new syntax and produces an error whenever it encounters it will be conforming. On such an implementation, the feature is available but useless.
- leoc 3mo agoThere's some discussion of how C29 defer ended up in a TS at https://thephd.dev/c2y-the-defer-technical-specification-its-time-go-go-go#build-wait-are-you-just-making-this-up-entirely-from-scratch https://thephd.dev/c2y-the-defer-technical-specification-its... .
- kenjin4096 3mo agoWoops, I meant to write tail call optimization not tail calls. Shouldn't have used the term interchangeably. Yeah I'm aware that C doesn't have proper tail calls. Thanks for the correction though.