
Go 1.5 Release Candidate 1 is released - sajal83
https://groups.google.com/forum/#!topic/golang-announce/X0KwHwE1vp4
======
Zikes
Huge improvements to the GC in this release, illustrated in this slide deck
linked from the notes: [https://talks.golang.org/2015/go-
gc.pdf](https://talks.golang.org/2015/go-gc.pdf)

~~~
easytiger
> Tell people that GC is not a barrier with Go’s low latency GC

If you have a time target of 350us, then a 3 millisecond pause means you are
dead. So you either write Go in such a fashion as to not create junk or use
c++. Systems and time sensitive languages cannot have GC.

~~~
duaneb
> Systems and time sensitive languages cannot have GC.

This is not true, as not all GCs are stop-the-world, and all GC systems have
some sort of pool system allowing you to manage/batch your allocations and
sweeps. Root all your allocations for the inner loop, and unroot them/trigger
a release when ready.

~~~
pcwalton
> This is not true, as not all GCs are stop-the-world, and all GC systems have
> some sort of pool system allowing you to manage/batch your allocations and
> sweeps. Root all your allocations for the inner loop, and unroot
> them/trigger a release when ready.

Not for all allocations. You can manually do it for a subset of them, but
pooling all allocations is generally extremely impractical.

How do you, for example, pool the allocations that closures or defer perform?

~~~
duaneb
> How do you, for example, pool the allocations that closures or defer
> perform?

It's a strange area that demands reliable or stable performance but uses
closures and exceptions, two ways to inject a healthy amount of noise into
your understanding of the program, and certainly blows the upper bound on
"arbitrary wait time" to huge. I haven't been presented with a problem yet
that allowed you to complain about GC with respect to latency where you would
want implicit allocations happening all over the case....

~~~
pcwalton
You can't get away from exceptions in Go. Closures, maybe, depending on the
code you're writing (though I doubt it), but the highly dynamic semantics of
defer makes it impossible to avoid.

------
BinaryIdiot
The improvements look fantastic! Great job GO team! I'm still more of a fan of
the way C++ or Rust go about memory management but one of the great detractors
to using GO for me has always been the latency issues (well that and the
forced file structure but that's off topic).

I may have to give GO another shot with 1.5.

------
Rapzid
Anyone know what happened to LiteIDE? The creator went radio silent all of a
sudden a couple months back.

------
0xdeadbeefbabe
Sheesh! You don't have to put go in it's name just because it is written in
go[0].

[0]
[https://twitter.com/rob_pike/status/618357610287226880](https://twitter.com/rob_pike/status/618357610287226880)

~~~
Zikes
Ha! [https://github.com/robpike/nihongo](https://github.com/robpike/nihongo)

------
Coding_Cat
I never realized how odd it is, etymological, to release a release candidate
before.

