Hacker News new | past | comments | ask | show | jobs | submit login

Do you know the history of its inception? I feel that would be a good read. Like, what use cases did the original authors had in mind, how did they convince others to accept a GC in C++ spec, etc.

I like these kind of development stories, it’s often a weird mix of social and technical challenges, from a specific time period.




As far as I can tell, the initial paper proposal is https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n23..., proposed for C++0x.

The subsequent history appears to be this:

* The "Kona compromise" of 2007, where a few features were stripped down to try to be able to get a new version of C++ shipped by the end of 2008 (which turned out to slip to 2011 anyways). This meant that GC went from a full-bore proposal to a barebones proposal.

* https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n24... is the first proposal of barebones GC support. As you can see, it's stripped down a lot from the original GC proposal. What remains is largely "it's UB to have a pointer not be visible as a pointer address, except if you use new library functionality to declare your pointer shenanigans."

* https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n26... is the final variant that was voted in for the June 2008 meeting (see https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n26...) with no opposition (although some abstention).

* https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p21... proposes, in 2020, to remove the features added by N2670 on the basis of no real implementation or real-world support. The discussion in EWG indicates favor for removal (only one person objected), while LEWG indicates even stronger favor (nobody objects).


Wow, that’s a lot of context. Thank you very much!




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: