Josh Bleecher Snyder
Josh Bleecher Snyder
@thanm Austin's [recent comment](https://github.com/golang/go/issues/55022#issuecomment-1249358130) makes me feel far more comfortable about about the current trajectory.
> a per-map seed that changes when the map grows/shrinks. This is challenging with incremental map growth. FWIW, I believe we do opportunistically reset the seed when the length hits...
This is exciting, but before going too far down the optimization path, it seems to me it’d be good to figure out incremental growth, as that could be a dealbreaker.
One very minor observation: > // If this reports true then v.Interface() == x will not panic for any x. I'm not sure this is quite right. `x` could be...
Ah, indeed. Thanks. The relevant sentence from the spec is: > A comparison of two interface values with identical dynamic types causes a run-time panic if values of that type...
> We probably want CanConvert at least for Go 1.17. Is this still true? The window for doing this is pretty small now.
There was also some discussion in the Gophers Slack about one possible hack fix: ```diff func printlock() { - mp := getg().m + gp := getg() + if gp.writebuf !=...
Right. But if I read the code correctly (big if), when gp.writebuf is non-nil, we are always non-concurrent.
I am indeed quite aware of that. :) In those cases, however, gp.writebuf is nil (the output goes straight to stderr). gp.writebuf is only non-nil for runtime.Stack and a runtime...
> Am I missing something? I hope so? :P The idea of the patch above was that we effectively disable `printlock` and `printunlock` only on the relevant G when its...