1. 02 Nov, 2016 5 commits
  2. 01 Nov, 2016 33 commits
  3. 31 Oct, 2016 2 commits
    • Matthew Dempsky's avatar
      cmd/compile: move parser.go remnants into noder.go · 2d4d22af
      Matthew Dempsky authored
      Change-Id: I54f8788a4703283b9aa3904e2e610097ac3e3586
      Reviewed-on: https://go-review.googlesource.com/32471
      Run-TryBot: Matthew Dempsky <mdempsky@google.com>
      Reviewed-by: 's avatarRobert Griesemer <gri@golang.org>
      2d4d22af
    • Austin Clements's avatar
      runtime: perform write barriers on direct channel receive · f2d05389
      Austin Clements authored
      Currently we have write barriers for direct channel sends, where the
      receiver is blocked and the sender is writing directly to the
      receiver's stack; but not for direct channel receives, where the
      sender is blocked and the receiver is reading directly from the
      sender's stack.
      
      This was okay with the old write barrier because either 1) the
      receiver would write the received pointer into the heap (causing it to
      be shaded), 2) the pointer would still be on the receiver's stack at
      mark termination and we would rescan it, or 3) the receiver dropped
      the pointer so it wasn't necessarily reachable anyway.
      
      This is not okay with the write barrier because it lets a grey stack
      send a white pointer to a black stack and then remove it from its own
      stack. If the grey stack was the sole grey-protector of this pointer,
      this hides the object from the garbage collector.
      
      Fix this by making direct receives perform a stack-to-stack write
      barrier just like direct sends do.
      
      Fixes #17694.
      
      Change-Id: I1a4cb904e4138d2ac22f96a3e986635534a5ae41
      Reviewed-on: https://go-review.googlesource.com/32450Reviewed-by: 's avatarRick Hudson <rlh@golang.org>
      f2d05389