1. 26 Jan, 2017 1 commit
  2. 25 Jan, 2017 2 commits
  3. 24 Jan, 2017 7 commits
  4. 23 Jan, 2017 1 commit
    • Keith Randall's avatar
      runtime: amd64, use 4-byte ops for memmove of 4 bytes · a96e117a
      Keith Randall authored
      memmove used to use 2 2-byte load/store pairs to move 4 bytes.
      When the result is loaded with a single 4-byte load, it caused
      a store to load fowarding stall.  To avoid the stall,
      special case memmove to use 4 byte ops for the 4 byte copy case.
      
      We already have a special case for 8-byte copies.
      386 already specializes 4-byte copies.
      I'll do 2-byte copies also, but not for 1.8.
      
      benchmark                 old ns/op     new ns/op     delta
      BenchmarkIssue18740-8     7567          4799          -36.58%
      
      3-byte copies get a bit slower.  Other copies are unchanged.
      name         old time/op   new time/op   delta
      Memmove/3-8   4.76ns ± 5%   5.26ns ± 3%  +10.50%  (p=0.000 n=10+10)
      
      Fixes #18740
      
      Change-Id: Iec82cbac0ecfee80fa3c8fc83828f9a1819c3c74
      Reviewed-on: https://go-review.googlesource.com/35567
      Run-TryBot: Keith Randall <khr@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarDavid Chase <drchase@google.com>
      a96e117a
  5. 21 Jan, 2017 1 commit
  6. 20 Jan, 2017 4 commits
  7. 19 Jan, 2017 2 commits
  8. 18 Jan, 2017 4 commits
  9. 17 Jan, 2017 4 commits
  10. 16 Jan, 2017 4 commits
  11. 14 Jan, 2017 4 commits
  12. 13 Jan, 2017 6 commits
    • Brad Fitzpatrick's avatar
      net/http: make sure Hijack's bufio.Reader includes pre-read background byte · b2a3b54b
      Brad Fitzpatrick authored
      Previously, if the Hijack called stopped the background read call
      which read a byte, that byte was sitting in memory, buffered, ready to
      be Read by Hijack's returned bufio.Reader, but it wasn't yet in the
      bufio.Reader's buffer itself, so bufio.Reader.Buffered() reported 1
      byte fewer.
      
      This matters for callers who wanted to stitch together any buffered
      data (with bufio.Reader.Peek(bufio.Reader.Buffered())) with Hijack's
      returned net.Conn. Otherwise there was no way for callers to know a
      byte was read.
      
      Change-Id: Id7cb0a0a33fe2f33d79250e13dbaa9c0f7abba13
      Reviewed-on: https://go-review.googlesource.com/35232
      Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarJoe Tsai <thebrokentoaster@gmail.com>
      b2a3b54b
    • David Crawshaw's avatar
      cmd/go, misc: rework cwd handling for iOS tests · 593ea3b3
      David Crawshaw authored
      Another change in behvaior (bug) in LLDB. Despite the fact that
      LLDB can dump the symtab of our test binaries and show the function
      addresses, it can no longer call the functions. This means the chdir
      trick on signal is failing.
      
      This CL uses a new trick. For iOS, the exec script passes the change
      in directory as an argument, and it is processed early by the test
      harness generated by cmd/go.
      
      For the iOS builders.
      
      Change-Id: I8f5d0f831fe18de99f097761f89c5184d5bf2afb
      Reviewed-on: https://go-review.googlesource.com/35152Reviewed-by: default avatarElias Naur <elias.naur@gmail.com>
      Run-TryBot: David Crawshaw <crawshaw@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      593ea3b3
    • Michael Munday's avatar
      syscall: export Fsid.X__val on s390x · 0642b8a2
      Michael Munday authored
      mkpost.go replaces all variables prefixed with 'X_' with '_' on s390x
      because most of them do not need to be exposed. X__val is being used
      by a third party library so it turns out we do need to expose it on
      s390x (it is already exposed on all other Linux architectures).
      
      Fixes #17298 and updates #18632.
      
      Change-Id: Ic03463229a5f75ca41a4a4b50300da4b4d892d45
      Reviewed-on: https://go-review.googlesource.com/30130Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
      0642b8a2
    • Alberto Donizetti's avatar
      doc/gdb: mention GOTRACEBACK=crash · 4601eae6
      Alberto Donizetti authored
      Also fix a couple of other errors.
      
      Fixes #6877
      
      Change-Id: I94c81c5847cc7b0adab19418e71687bc2ee7fe94
      Reviewed-on: https://go-review.googlesource.com/34960Reviewed-by: default avatarIan Lance Taylor <iant@golang.org>
      4601eae6
    • Keith Randall's avatar
      misc/cgo/testplugin: test that types and itabs are unique · 4c4c5fc7
      Keith Randall authored
      Make sure that the same type and itab generated in two
      different plugins are actually the same thing.
      
      See also CL 35115
      
      Change-Id: I0c1ecb039d7e2bf5a601d58dfa162a435ae4ef76
      Reviewed-on: https://go-review.googlesource.com/35116
      Run-TryBot: Keith Randall <khr@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarDavid Crawshaw <crawshaw@golang.org>
      4c4c5fc7
    • Austin Clements's avatar
      reflect: keep makeFuncImpl live across makeFuncStub · 22689c44
      Austin Clements authored
      When traceback sees reflect.makeFuncStub (or reflect.methodValueCall)
      on the stack, it expects to be able to get the *reflect.makeFuncImpl
      (or *reflect.methodValue) for that call from the first outgoing
      argument slot of makeFuncStub/methodValueCall.
      
      However, currently this object isn't necessarily kept live across
      makeFuncStub. This means it may get garbage collected while in a
      reflect call and reused for something else. If we then try to
      traceback, the runtime will see a corrupted makeFuncImpl object and
      panic. This was not a problem in previous releases because we always
      kept arguments live across the whole function. This became a problem
      when we stopped doing this.
      
      Fix this by using reflect.KeepAlive to keep the
      makeFuncImpl/methodValue live across all of callReflect/callMethod,
      which in turn keeps it live as long as makeFuncStub/methodValueCall
      are on the stack.
      
      Fixes #18635.
      
      Change-Id: I91853efcf17912390fddedfb0230648391c33936
      Reviewed-on: https://go-review.googlesource.com/35151
      Run-TryBot: Austin Clements <austin@google.com>
      Reviewed-by: default avatarIan Lance Taylor <iant@golang.org>
      Reviewed-by: default avatarRuss Cox <rsc@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      22689c44