1. 07 Nov, 2017 10 commits
    • Alex Brainman's avatar
      net: use WSASocket instead of socket call · 44623c2e
      Alex Brainman authored
      WSASocket (unlike socket call) allows to create sockets that
      will not be inherited by child process. So call WSASocket to
      save on using syscall.ForkLock and calling syscall.CloseOnExec.
      
      Some very old versions of Windows do not have that functionality.
      Call socket, if WSASocket failed, to support these.
      
      Change-Id: I2dab9fa00d1a8609dd6feae1c9cc31d4e55b8cb5
      Reviewed-on: https://go-review.googlesource.com/72590Reviewed-by: 's avatarIan Lance Taylor <iant@golang.org>
      44623c2e
    • Adam Langley's avatar
      crypto/x509: enforce all name constraints and support IP, email and URI constraints · 9e76ce70
      Adam Langley authored
      This change makes crypto/x509 enforce name constraints for all names in
      a leaf certificate, not just the name being validated. Thus, after this
      change, if a certificate validates then all the names in it can be
      trusted – one doesn't have a validate again for each interesting name.
      
      Making extended key usage work in this fashion still remains to be done.
      
      Updates #15196
      
      Change-Id: I72ed5ff2f7284082d5bf3e1e86faf76cef62f9b5
      Reviewed-on: https://go-review.googlesource.com/62693
      Run-TryBot: Adam Langley <agl@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarRuss Cox <rsc@golang.org>
      9e76ce70
    • Stanislav Afanasev's avatar
      archive/tar: a cosmetic fix after checking by golint · a4aa5c31
      Stanislav Afanasev authored
      Existing methods regFileReader.LogicalRemaining and regFileReader.PhysicalRemaining have inconsistent reciever names with the previous name
      
      Change-Id: Ief2024716737eaf482c4311f3fdf77d92801c36e
      Reviewed-on: https://go-review.googlesource.com/76430Reviewed-by: 's avatarJoe Tsai <thebrokentoaster@gmail.com>
      Run-TryBot: Joe Tsai <thebrokentoaster@gmail.com>
      a4aa5c31
    • Agniva De Sarker's avatar
      strings: optimize ToUpper · 13cfb15c
      Agniva De Sarker authored
      Handling the ASCII case inline and call unicode.ToUpper only
      for non-ascii cases.
      
      Gives good improvements for the ascii case and minor perf
      degrade for non-ascii case
      
      name                                     old time/op    new time/op    delta
      ToUpper/#00                                11.7ns ± 8%     8.0ns ± 1%  -31.95%  (p=0.008 n=5+5)
      ToUpper/ONLYUPPER                          45.6ns ± 5%    19.9ns ± 1%  -56.40%  (p=0.008 n=5+5)
      ToUpper/abc                                77.4ns ± 1%    57.0ns ± 1%  -26.32%  (p=0.008 n=5+5)
      ToUpper/AbC123                             92.1ns ± 4%    67.7ns ± 2%  -26.57%  (p=0.008 n=5+5)
      ToUpper/azAZ09_                             105ns ± 6%      67ns ± 2%  -36.26%  (p=0.000 n=5+4)
      ToUpper/longStrinGwitHmixofsmaLLandcAps     255ns ± 1%     140ns ± 1%  -45.01%  (p=0.029 n=4+4)
      ToUpper/longɐstringɐwithɐnonasciiⱯchars     440ns ± 1%     447ns ± 0%   +1.49%  (p=0.016 n=5+4)
      ToUpper/ɐɐɐɐɐ                               370ns ± 4%     366ns ± 1%     ~     (p=0.667 n=5+5)
      
      name                                     old alloc/op   new alloc/op   delta
      ToUpper/#00                                 0.00B          0.00B          ~     (all equal)
      ToUpper/ONLYUPPER                           0.00B          0.00B          ~     (all equal)
      ToUpper/abc                                 16.0B ± 0%      6.0B ± 0%  -62.50%  (p=0.008 n=5+5)
      ToUpper/AbC123                              16.0B ± 0%     16.0B ± 0%     ~     (all equal)
      ToUpper/azAZ09_                             24.0B ± 0%     16.0B ± 0%  -33.33%  (p=0.008 n=5+5)
      ToUpper/longStrinGwitHmixofsmaLLandcAps     80.0B ± 0%     64.0B ± 0%  -20.00%  (p=0.008 n=5+5)
      ToUpper/longɐstringɐwithɐnonasciiⱯchars     96.0B ± 0%     96.0B ± 0%     ~     (all equal)
      ToUpper/ɐɐɐɐɐ                               64.0B ± 0%     64.0B ± 0%     ~     (all equal)
      
      Ran on a machine with Intel(R) Core(TM) i5-5200U CPU @ 2.20GHz
      
      Updates #17859
      
      Change-Id: I0735ac4a4a36e8a8f6cc06f2c16b871f12b4abf9
      Reviewed-on: https://go-review.googlesource.com/68370Reviewed-by: 's avatarJoe Tsai <thebrokentoaster@gmail.com>
      Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      Run-TryBot: Joe Tsai <thebrokentoaster@gmail.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      13cfb15c
    • Austin Clements's avatar
      runtime: flush assist credit on goroutine exit · f10d99f5
      Austin Clements authored
      Currently dead goroutines retain their assist credit. This credit can
      be used if the goroutine gets recycled, but in general this can make
      assist pacing over-aggressive by hiding an amount of credit
      proportional to the number of exited (and not reused) goroutines.
      
      Fix this "hidden credit" by flushing assist credit to the global
      credit pool when a goroutine exits.
      
      Updates #14812.
      
      Change-Id: I65f7f75907ab6395c04aacea2c97aea963b60344
      Reviewed-on: https://go-review.googlesource.com/24703
      Run-TryBot: Austin Clements <austin@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarRick Hudson <rlh@golang.org>
      f10d99f5
    • Ian Lance Taylor's avatar
      runtime: only call netpoll if netpollinited returns true · 86cd9c11
      Ian Lance Taylor authored
      This fixes a race on old Linux kernels, in which we might temporarily
      set epfd to an invalid value other than -1. It's also the right thing
      to do. No test because the problem only occurs on old kernels.
      
      Fixes #22606
      
      Change-Id: Id84bdd6ae6d7c5d47c39e97b74da27576cb51a54
      Reviewed-on: https://go-review.googlesource.com/76319
      Run-TryBot: Ian Lance Taylor <iant@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarDmitry Vyukov <dvyukov@google.com>
      86cd9c11
    • Michael Munday's avatar
      cmd/compile: fix SSA immediate sign extension on s390x · 33c246ff
      Michael Munday authored
      The CMPWUconst op (32-bit unsigned comparison with immediate) takes
      an unsigned immediate value. In SSA this should be sign extended to
      64-bits to match the Int32 type given in the op and then zero
      extended when producing the final assembly. Before this CL we were
      zero extending in SSA which caused ssacheck to fail.
      
      While we are here also ensure other 32-bit immediates are sign
      extended in SSA.
      
      Passes toolstash -cmp on std on s390x.
      
      Fixes #22611.
      
      Change-Id: I5c061a76a710b10ecb0650c9c42efd9fa1c123cc
      Reviewed-on: https://go-review.googlesource.com/76336
      Run-TryBot: Michael Munday <mike.munday@ibm.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarCherry Zhang <cherryyz@google.com>
      33c246ff
    • Than McIntosh's avatar
      runtime/pprof: harden CPU profile test against smart backend · 83a1a2ba
      Than McIntosh authored
      A couple of the CPU profiling testpoints make calls to helper
      functions (cpuHog1, for example) where the computed value is always
      thrown away by the caller without being used. A smart compiler back
      end (in this case LLVM) can detect this fact and delete the contents
      of the called function, which can cause tests to fail. Harden the test
      slighly by passing in a value read from a global and insuring that the
      caller stores the value back to a global; this prevents any optimizer
      mischief.
      
      Change-Id: Icbd6e3e32ff299c68a6397dc1404a52b21eaeaab
      Reviewed-on: https://go-review.googlesource.com/76230
      Run-TryBot: Than McIntosh <thanm@google.com>
      Reviewed-by: 's avatarHyang-Ah Hana Kim <hyangah@gmail.com>
      83a1a2ba
    • Russ Cox's avatar
      cmd/go: accept relative -pkgdir argument · 36323e43
      Russ Cox authored
      Fixes #21309.
      
      Change-Id: I8ff1b0f37e34a3a4e9f8448d66a64fe3863d081f
      Reviewed-on: https://go-review.googlesource.com/76250
      Run-TryBot: Russ Cox <rsc@golang.org>
      Reviewed-by: 's avatarRob Pike <r@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      36323e43
    • Russ Cox's avatar
      cmd/go: include package source dir in build action for non-GOROOT packages · 8ac93e66
      Russ Cox authored
      The package source dir is recorded in the archives,
      so it must be recorded in the build action hash too.
      
      Fixes #22596.
      
      Change-Id: I1d3c2523181c302e9917e5fb79c26b00ea03077a
      Reviewed-on: https://go-review.googlesource.com/76025
      Run-TryBot: Russ Cox <rsc@golang.org>
      Reviewed-by: 's avatarDavid Crawshaw <crawshaw@golang.org>
      8ac93e66
  2. 06 Nov, 2017 26 commits
  3. 05 Nov, 2017 4 commits
    • Keith Randall's avatar
      cmd/compile: fix test to use correct go binary · 989cc801
      Keith Randall authored
      Use internal/testenv package to get the right go binary.
      Otherwise, I think we're just grabbing an old one from the environment.
      
      Fixes #22560.
      
      Change-Id: Id5b743b24717e15ec8ffbcfae4dc3e5f6a87b9a9
      Reviewed-on: https://go-review.googlesource.com/76090
      Run-TryBot: Keith Randall <khr@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarDaniel Martí <mvdan@mvdan.cc>
      Reviewed-by: 's avatarDavid Chase <drchase@google.com>
      989cc801
    • Daniel Martí's avatar
      cmd/go: skip "exclude all Go files" error in fmt · e5f6051e
      Daniel Martí authored
      Otherwise, one can't run "go fmt" on a directory containing Go files if
      none of them are buildable (e.g. because of build tags). This is
      counter-intuitive, as fmt will format all Go files anyway.
      
      If we encounter such a load error, ignore it and carry on. All other
      load errors, such as when a package can't be found, should still be
      shown to the user.
      
      Add a test for the two kinds of load errors. Use fmt -n so that any
      changes to the formatting of the files in testdata don't actually get
      applied. The load errors still occur with -n, so the test does its job.
      
      Fixes #22183.
      
      Change-Id: I99d0c0cdd29015b6a3f5286a9bbff50757c78e0d
      Reviewed-on: https://go-review.googlesource.com/75930
      Run-TryBot: Daniel Martí <mvdan@mvdan.cc>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarRuss Cox <rsc@golang.org>
      e5f6051e
    • David Chase's avatar
      cmd/compile: adjust locationlist lifetimes · d58d9015
      David Chase authored
      A statement like
      
        foo = bar + qux
      
      might compile to
      
        AX := AX + BX
      
      resulting in a regkill for AX before this instruction.
      The buggy behavior is to kill AX "at" this instruction,
      before it has executed.  (Code generation of no-instruction
      values like RegKills applies their effects at the
      next actual instruction emitted).
      
      However, bar is still associated with AX until after the
      instruction executes, so the effect of the regkill must
      occur at the boundary between this instruction and the
      next.  Similarly, the new value bound to AX is not visible
      until this instruction executes (and in the case of values
      that require multiple instructions in code generation, until
      all of them have executed).
      
      The ranges are adjusted so that a value's start occurs
      at the next following instruction after its evaluation,
      and the end occurs after (execution of) the first
      instruction following the end of the lifetime as a value.
      
      (Notice the asymmetry; the entire value must be finished
      before it is visible, but execution of a single instruction
      invalidates.  However, the value *is* visible before that
      next instruction executes).
      
      The test was adjusted to make it insensitive to the result
      numbering for variables printed by gdb, since that is not
      relevant to the test and makes the differences introduced
      by small changes larger than necessary/useful.
      
      The test was also improved to present variable probes
      more intuitively, and also to allow explicit indication
      of "this variable was optimized out"
      
      Change-Id: I39453eead8399e6bb05ebd957289b112d1100c0e
      Reviewed-on: https://go-review.googlesource.com/74090
      Run-TryBot: David Chase <drchase@google.com>
      Reviewed-by: 's avatarCherry Zhang <cherryyz@google.com>
      d58d9015
    • David Chase's avatar
      cmd/compile: repair name propagation into aggregate parts · 38c725b1
      David Chase authored
      For structs, slices, strings, interfaces, etc, propagation of
      names to their components (e.g., complex.real, complex.imag)
      is fragile (depends on phase ordering) and not done right
      for the "dec" pass.
      
      The dec pass is subsumed into decomposeBuiltin,
      and then names are pushed into the args of all
      OpFooMake opcodes.
      
      compile/ssa/debug_test.go was fixed to pay attention to
      variable values, and the reference files include checks
      for the fixes in this CL (which make debugging better).
      
      Change-Id: Ic2591ebb1698d78d07292b92c53667e6c37fa0cd
      Reviewed-on: https://go-review.googlesource.com/73210
      Run-TryBot: David Chase <drchase@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarHeschi Kreinick <heschi@google.com>
      38c725b1