Re:Go 1.19 Released
by steveklabnik on Tuesday August 02, 2022 @04:32PM
(#32323912)
I thought Go removed segmented stacks in 1.3. Is that incorrect?
Go doesn’t use segmented stacks anymore, but it does still have resizable stacks that start small and are technically able to grow to any size.
IIRC, they were artificially capped at 1GB a few years ago since it was decided that stacks larger than that usually indicate an obvious bug, and if infinite recursion causes a goroutine stack to consume all memory on a machine, the OOM killer would make this harder to diagnose than a reproducible panic with a backtrace.
Re:Go 1.19 Released
by staticassertion on Tuesday August 02, 2022 @03:54PM
(#32323479)
I didn't say it was the wrong call. My favorite part about new languages is being able to look at their choices over the course of decades.
Well it is implied, if one talk only about great cost but not benefits.
Re:Go 1.19 Released
by staticassertion on Tuesday August 02, 2022 @04:07PM
(#32323630)
The post is about the optimization being implemented now. The cost is that it wasn't implemented before. I find that interesting.
If they could have simply use LLVM they would be stuck with slow compilation that Rust folks are very fond of telling. And they would not be able to use segmented stack which was differentiating factor for language.