On 3/18/2013 2:22 AM, Russel Winder wrote:
On Sun, 2013-03-17 at 13:56 -0700, Walter Bright wrote:
On 3/17/2013 3:01 AM, Russel Winder wrote:
I guess this is because of the segmented stacks architecture behind the
realization of Go.
Segmented stacks have a significant performance cost to them, as well as making
it hard to interface to other languages. I also think that the shift to 64 bits
makes them obsolete anyway.
I think this is possibly not the case or Go and Rust would not have gone
this route – which is the imperative native code equivalent of what the
functional languages and the dynamic languages do using the heap. The
problem is to not have a single stack so that it becomes easy to manage
1,000+ threads within a single process.
That's just not an issue when you have 64 bits of address space. You can still
have 4 billion stacks of 4 billion bytes each.