1. 15 Nov, 2017 16 commits
    • Russ Cox's avatar
      doc/go1.10: first draft of release notes · 04344266
      Russ Cox authored
      Change-Id: If7ec07be4ecb0c1d6a1eb5c0740f150473aea6fa
      Reviewed-on: https://go-review.googlesource.com/78130
      Run-TryBot: Russ Cox <rsc@golang.org>
      Reviewed-by: default avatarRuss Cox <rsc@golang.org>
      04344266
    • Joe Tsai's avatar
      archive/tar: change error prefix · d9fb9e7c
      Joe Tsai authored
      Change error message prefix from "tar:" to "archive/tar:" to maintain
      backwards compatibility with Go1.9 and earlier in the unfortunate event
      that someone is relying on string parsing of errors.
      
      Fixes #22740
      
      Change-Id: I59039c59818a0599e9d3b06bb5a531aa22a389b8
      Reviewed-on: https://go-review.googlesource.com/77933Reviewed-by: default avatarroger peppe <rogpeppe@gmail.com>
      d9fb9e7c
    • Daniel Martí's avatar
      go/printer: indent lone comments in composite lits · a265f2e9
      Daniel Martí authored
      If a composite literal contains any comments on their own lines without
      any elements, the printer would unindent the comments.
      
      The comments in this edge case are written when the closing '}' is
      written. Indent and outdent first so that the indentation is
      interspersed before the comment is written.
      
      Also note that the go/printer golden tests don't show the exact same
      behaviour that gofmt does. Added a TODO to figure this out in a separate
      CL.
      
      While at it, ensure that the tree conforms to gofmt. The changes are
      unrelated to this indentation fix, however.
      
      Fixes #22355.
      
      Change-Id: I5ac25ac6de95a236f1e123479127cc4dd71e93fe
      Reviewed-on: https://go-review.googlesource.com/74232
      Run-TryBot: Daniel Martí <mvdan@mvdan.cc>
      Reviewed-by: default avatarRobert Griesemer <gri@golang.org>
      a265f2e9
    • Austin Clements's avatar
      runtime: fix gctrace STW CPU time and CPU fraction · 89b7a08a
      Austin Clements authored
      The CPU time reported in the gctrace for STW phases is simply
      work.stwprocs times the wall-clock duration of these phases. However,
      work.stwprocs is set to gcprocs(), which is wrong for multiple
      reasons:
      
      1. gcprocs is intended to limit the number of Ms used for mark
         termination based on how well the garbage collector actually
         scales, but the gctrace wants to report how much CPU time is being
         stolen from the application. During STW, that's *all* of the CPU,
         regardless of how many the garbage collector can actually use.
      
      2. gcprocs assumes it's being called during STW, so it limits its
         result to sched.nmidle+1. However, we're not calling it during STW,
         so sched.nmidle is typically quite small, even if GOMAXPROCS is
         quite large.
      
      Fix this by setting work.stwprocs to min(ncpu, GOMAXPROCS). This also
      fixes the overall GC CPU fraction, which is based on the computed CPU
      times.
      
      Fixes #22725.
      
      Change-Id: I64b5ce87e28dbec6870aa068ce7aecdd28c058d1
      Reviewed-on: https://go-review.googlesource.com/77710
      Run-TryBot: Austin Clements <austin@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarRick Hudson <rlh@golang.org>
      89b7a08a
    • Keith Randall's avatar
      bytes,strings: in generic Index, use mix of IndexByte and Rabin-Karp · a0252775
      Keith Randall authored
      Use IndexByte first, as it allows us to skip lots of bytes quickly.
      If IndexByte is generating a lot of false positives, switch over to Rabin-Karp.
      
      Experiments for ppc64le
      bytes:
      name                             old time/op  new time/op  delta
      IndexPeriodic/IndexPeriodic2-2   1.12ms ± 0%  0.18ms ± 0%  -83.54%  (p=0.000 n=10+9)
      IndexPeriodic/IndexPeriodic4-2    635µs ± 0%   184µs ± 0%  -71.06%  (p=0.000 n=9+9)
      IndexPeriodic/IndexPeriodic8-2    289µs ± 0%   184µs ± 0%  -36.51%  (p=0.000 n=10+9)
      IndexPeriodic/IndexPeriodic16-2   133µs ± 0%   183µs ± 0%  +37.68%  (p=0.000 n=10+9)
      IndexPeriodic/IndexPeriodic32-2  68.3µs ± 0%  70.2µs ± 0%   +2.76%  (p=0.000 n=10+10)
      IndexPeriodic/IndexPeriodic64-2  35.8µs ± 0%  36.6µs ± 0%   +2.17%  (p=0.000 n=8+10)
      
      strings:
      name                             old time/op  new time/op  delta
      IndexPeriodic/IndexPeriodic2-2    184µs ± 0%   184µs ± 0%   +0.11%  (p=0.029 n=4+4)
      IndexPeriodic/IndexPeriodic4-2    184µs ± 0%   184µs ± 0%     ~     (p=0.886 n=4+4)
      IndexPeriodic/IndexPeriodic8-2    184µs ± 0%   184µs ± 0%     ~     (p=0.486 n=4+4)
      IndexPeriodic/IndexPeriodic16-2   185µs ± 1%   184µs ± 0%     ~     (p=0.343 n=4+4)
      IndexPeriodic/IndexPeriodic32-2   184µs ± 0%    69µs ± 0%  -62.37%  (p=0.029 n=4+4)
      IndexPeriodic/IndexPeriodic64-2   184µs ± 0%    37µs ± 0%  -80.17%  (p=0.029 n=4+4)
      
      Fixes #22578
      
      Change-Id: If2a4d8554cb96bfd699b58149d13ac294615f8b8
      Reviewed-on: https://go-review.googlesource.com/76070Reviewed-by: default avatarAlberto Donizetti <alb.donizetti@gmail.com>
      a0252775
    • Brad Fitzpatrick's avatar
      crypto/sha1, crypto/sha256: add go:noescape annotations · 0ffe90b5
      Brad Fitzpatrick authored
      Additions to:
      https://go-review.googlesource.com/c/go/+/61570
      https://go-review.googlesource.com/c/go/+/61550
      
      Change-Id: Id89e1119333a8721cb9720a04a01dab1f2705fa9
      Reviewed-on: https://go-review.googlesource.com/77591
      Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarIan Lance Taylor <iant@golang.org>
      0ffe90b5
    • Hana Kim's avatar
      runtime/trace: fix a typo in doc · f71cbc8a
      Hana Kim authored
      Change-Id: I63f3d2edb09801c99957a1f744639523fb6d0b62
      Reviewed-on: https://go-review.googlesource.com/60331Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
      f71cbc8a
    • Awn's avatar
      archive/tar: remove useless type conversions · 23c9db65
      Awn authored
      Change-Id: I259a6ed6a1abc63d2dc39eca7e85f94cf38001cc
      Reviewed-on: https://go-review.googlesource.com/47342Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
      Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      23c9db65
    • Marko Mudrinic's avatar
      crypto/sha1, crypto/sha256: fix typo fisrt -> first · 894743b5
      Marko Mudrinic authored
      Change-Id: I9bb7568ca16b420254796eb38dfb86c5ca3399d7
      Reviewed-on: https://go-review.googlesource.com/77890Reviewed-by: default avatarIan Lance Taylor <iant@golang.org>
      894743b5
    • Ian Lance Taylor's avatar
      cmd/cgo: permit passing string values directly between Go and C · 918396b3
      Ian Lance Taylor authored
      Permit the C preamble to use the _GoString_ type. Permit Go code to
      pass string values directly to those C types. Add accessors for C
      code to retrieve sizes and pointers.
      
      Fixes #6907
      
      Change-Id: I190c88319ec88a3ef0ddb99f342a843ba69fcaa3
      Reviewed-on: https://go-review.googlesource.com/70890
      Run-TryBot: Ian Lance Taylor <iant@golang.org>
      Reviewed-by: default avatarAustin Clements <austin@google.com>
      918396b3
    • Tim Cooper's avatar
      encoding/pem: add Encode example · 707a4d3f
      Tim Cooper authored
      Change-Id: Ib9ec3524b712e016a9dd2fbee5555362c1a0cb59
      Reviewed-on: https://go-review.googlesource.com/77770Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
      Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      707a4d3f
    • wei xiao's avatar
      runtime: IndexByte and memclr perf improvements on arm64 · d259815c
      wei xiao authored
      Update runtime asm_arm64.s and memclr_arm64.s to improve performance by using
      SIMD instructions to do more in parallel. It shows improvement on bytes, html
      and go1 benchmarks (particualrly regexp, which uses IndexByte frequently).
      
      Benchmark results of bytes:
      
      name                     old time/op   new time/op    delta
      IndexByte/10-8            28.5ns ± 0%    19.5ns ± 0%   -31.58%  (p=0.000 n=10+10)
      IndexByte/32-8            52.6ns ± 0%    19.0ns ± 0%   -63.88%  (p=0.000 n=10+10)
      IndexByte/4K-8            4.12µs ± 0%    0.49µs ± 0%   -88.16%  (p=0.000 n=10+10)
      IndexByte/4M-8            4.29ms ± 1%    0.70ms ±26%   -83.65%  (p=0.000 n=10+10)
      IndexByte/64M-8           69.7ms ± 0%    16.0ms ± 0%   -76.97%  (p=0.000 n=9+10)
      IndexBytePortable/10-8    34.0ns ± 0%    34.0ns ± 0%      ~     (all equal)
      IndexBytePortable/32-8    66.1ns ± 0%    66.1ns ± 0%      ~     (p=0.471 n=9+9)
      IndexBytePortable/4K-8    6.17µs ± 0%    6.17µs ± 0%      ~     (all equal)
      IndexBytePortable/4M-8    6.33ms ± 0%    6.35ms ± 0%    +0.21%  (p=0.002 n=10+9)
      IndexBytePortable/64M-8    103ms ± 0%     103ms ± 0%    +0.01%  (p=0.017 n=9+10)
      
      name                     old speed     new speed      delta
      IndexByte/10-8           351MB/s ± 0%   512MB/s ± 0%   +46.14%  (p=0.000 n=9+10)
      IndexByte/32-8           609MB/s ± 0%  1683MB/s ± 0%  +176.40%  (p=0.000 n=10+10)
      IndexByte/4K-8           994MB/s ± 0%  8378MB/s ± 0%  +742.75%  (p=0.000 n=10+10)
      IndexByte/4M-8           977MB/s ± 1%  6149MB/s ±32%  +529.29%  (p=0.000 n=10+10)
      IndexByte/64M-8          963MB/s ± 0%  4182MB/s ± 0%  +334.29%  (p=0.000 n=9+10)
      IndexBytePortable/10-8   294MB/s ± 0%   294MB/s ± 0%    +0.17%  (p=0.000 n=8+8)
      IndexBytePortable/32-8   484MB/s ± 0%   484MB/s ± 0%      ~     (p=0.877 n=9+9)
      IndexBytePortable/4K-8   664MB/s ± 0%   664MB/s ± 0%      ~     (p=0.242 n=8+9)
      IndexBytePortable/4M-8   662MB/s ± 0%   661MB/s ± 0%    -0.21%  (p=0.002 n=10+9)
      IndexBytePortable/64M-8  652MB/s ± 0%   652MB/s ± 0%      ~     (p=0.065 n=10+10)
      
      Benchmark results of html:
      
      name              old time/op  new time/op  delta
      Escape-8          62.0µs ± 1%  61.0µs ± 1%   -1.69%  (p=0.000 n=9+10)
      EscapeNone-8      10.2µs ± 0%  10.2µs ± 0%   -0.09%  (p=0.022 n=9+10)
      Unescape-8        71.9µs ± 0%  68.7µs ± 0%   -4.35%  (p=0.000 n=10+10)
      UnescapeNone-8    4.03µs ± 0%  0.48µs ± 0%  -88.08%  (p=0.000 n=10+10)
      UnescapeSparse-8  10.7µs ± 2%   7.1µs ± 3%  -33.91%  (p=0.000 n=10+10)
      UnescapeDense-8   53.2µs ± 1%  53.5µs ± 1%     ~     (p=0.143 n=10+10)
      
      Benchmark results of go1:
      
      name                     old time/op    new time/op    delta
      BinaryTree17-8              6.53s ± 0%     6.48s ± 2%      ~     (p=0.190 n=4+5)
      Fannkuch11-8                6.35s ± 1%     6.35s ± 0%      ~     (p=1.000 n=5+5)
      FmtFprintfEmpty-8           108ns ± 1%     101ns ± 2%    -6.32%  (p=0.008 n=5+5)
      FmtFprintfString-8          172ns ± 1%     182ns ± 2%    +5.70%  (p=0.008 n=5+5)
      FmtFprintfInt-8             207ns ± 0%     207ns ± 0%      ~     (p=0.444 n=5+5)
      FmtFprintfIntInt-8          277ns ± 1%     276ns ± 1%      ~     (p=0.873 n=5+5)
      FmtFprintfPrefixedInt-8     386ns ± 0%     382ns ± 1%    -1.04%  (p=0.024 n=5+5)
      FmtFprintfFloat-8           492ns ± 0%     492ns ± 1%      ~     (p=0.571 n=4+5)
      FmtManyArgs-8              1.32µs ± 1%    1.33µs ± 0%      ~     (p=0.087 n=5+5)
      GobDecode-8                16.8ms ± 2%    16.7ms ± 1%      ~     (p=1.000 n=5+5)
      GobEncode-8                14.1ms ± 1%    14.0ms ± 1%      ~     (p=0.056 n=5+5)
      Gzip-8                      788ms ± 0%     802ms ± 0%    +1.71%  (p=0.008 n=5+5)
      Gunzip-8                   83.6ms ± 0%    83.9ms ± 0%    +0.40%  (p=0.008 n=5+5)
      HTTPClientServer-8          120µs ± 0%     120µs ± 1%      ~     (p=0.548 n=5+5)
      JSONEncode-8               33.2ms ± 0%    33.0ms ± 1%    -0.71%  (p=0.008 n=5+5)
      JSONDecode-8                152ms ± 1%     152ms ± 1%      ~     (p=1.000 n=5+5)
      Mandelbrot200-8            10.0ms ± 0%    10.0ms ± 0%    -0.05%  (p=0.008 n=5+5)
      GoParse-8                  7.97ms ± 0%    7.98ms ± 0%      ~     (p=0.690 n=5+5)
      RegexpMatchEasy0_32-8       233ns ± 1%     206ns ± 0%   -11.44%  (p=0.016 n=5+4)
      RegexpMatchEasy0_1K-8      1.86µs ± 0%    0.77µs ± 1%   -58.54%  (p=0.008 n=5+5)
      RegexpMatchEasy1_32-8       250ns ± 0%     205ns ± 0%   -18.07%  (p=0.008 n=5+5)
      RegexpMatchEasy1_1K-8      2.28µs ± 0%    1.11µs ± 0%   -51.09%  (p=0.029 n=4+4)
      RegexpMatchMedium_32-8      332ns ± 1%     301ns ± 2%    -9.45%  (p=0.008 n=5+5)
      RegexpMatchMedium_1K-8     85.5µs ± 2%    78.8µs ± 0%    -7.83%  (p=0.008 n=5+5)
      RegexpMatchHard_32-8       4.34µs ± 1%    4.27µs ± 0%    -1.49%  (p=0.008 n=5+5)
      RegexpMatchHard_1K-8        130µs ± 1%     127µs ± 0%    -2.53%  (p=0.008 n=5+5)
      Revcomp-8                   1.35s ± 1%     1.13s ± 1%   -16.17%  (p=0.008 n=5+5)
      Template-8                  160ms ± 2%     162ms ± 2%      ~     (p=0.222 n=5+5)
      TimeParse-8                 795ns ± 2%     778ns ± 1%      ~     (p=0.095 n=5+5)
      TimeFormat-8                782ns ± 0%     786ns ± 1%    +0.59%  (p=0.040 n=5+5)
      
      name                     old speed      new speed      delta
      GobDecode-8              45.8MB/s ± 2%  45.9MB/s ± 1%      ~     (p=1.000 n=5+5)
      GobEncode-8              54.3MB/s ± 1%  55.0MB/s ± 1%      ~     (p=0.056 n=5+5)
      Gzip-8                   24.6MB/s ± 0%  24.2MB/s ± 0%    -1.69%  (p=0.008 n=5+5)
      Gunzip-8                  232MB/s ± 0%   231MB/s ± 0%    -0.40%  (p=0.008 n=5+5)
      JSONEncode-8             58.4MB/s ± 0%  58.8MB/s ± 1%    +0.71%  (p=0.008 n=5+5)
      JSONDecode-8             12.8MB/s ± 1%  12.8MB/s ± 1%      ~     (p=1.000 n=5+5)
      GoParse-8                7.27MB/s ± 0%  7.26MB/s ± 0%      ~     (p=0.762 n=5+5)
      RegexpMatchEasy0_32-8     137MB/s ± 1%   155MB/s ± 0%   +12.93%  (p=0.008 n=5+5)
      RegexpMatchEasy0_1K-8     551MB/s ± 0%  1329MB/s ± 1%  +141.11%  (p=0.008 n=5+5)
      RegexpMatchEasy1_32-8     128MB/s ± 0%   156MB/s ± 0%   +22.00%  (p=0.008 n=5+5)
      RegexpMatchEasy1_1K-8     449MB/s ± 0%   920MB/s ± 0%  +104.68%  (p=0.016 n=4+5)
      RegexpMatchMedium_32-8   3.00MB/s ± 0%  3.32MB/s ± 2%   +10.60%  (p=0.016 n=4+5)
      RegexpMatchMedium_1K-8   12.0MB/s ± 2%  13.0MB/s ± 0%    +8.48%  (p=0.008 n=5+5)
      RegexpMatchHard_32-8     7.38MB/s ± 1%  7.49MB/s ± 0%    +1.49%  (p=0.008 n=5+5)
      RegexpMatchHard_1K-8     7.88MB/s ± 1%  8.08MB/s ± 0%    +2.59%  (p=0.008 n=5+5)
      Revcomp-8                 188MB/s ± 1%   224MB/s ± 1%   +19.29%  (p=0.008 n=5+5)
      Template-8               12.2MB/s ± 2%  12.0MB/s ± 2%      ~     (p=0.206 n=5+5)
      
      Change-Id: I94116620a287d173a6f60510684362e500f54887
      Reviewed-on: https://go-review.googlesource.com/33597
      Run-TryBot: Cherry Zhang <cherryyz@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarCherry Zhang <cherryyz@google.com>
      d259815c
    • OneOfOne's avatar
      net/url: allow *User functions to work on a nil receiver. · 466e299d
      OneOfOne authored
      Fixes #20924
      
      Change-Id: If89f31da63cbea38d7e615a428b7b07629770a45
      Reviewed-on: https://go-review.googlesource.com/47851
      Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarTim Cooper <tim.cooper@layeh.com>
      Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
      466e299d
    • Tim Cooper's avatar
      encoding/pem: add Encode, EncodeToMemory docs · f4f6018d
      Tim Cooper authored
      Included in a warning that EncodeToMemory may return an incomplete PEM
      encoded structure if invalid headers are supplied. Example:
      
      	pem.EncodeToMemory(&pem.Block{
      		Headers: map[string]string{
      			"a":   "test1",
      			"b:c": "test2",
      		},
      	})
      
      Returns:
      
      	-----BEGIN -----
      	a: test1
      
      Change-Id: Ia9cf0202f985e3cf210aabb6f07667e581ff081f
      Reviewed-on: https://go-review.googlesource.com/77790Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
      f4f6018d
    • Tw's avatar
      net/http: don't set Content-Type with empty body automatically · 8cdd999b
      Tw authored
      We set Content-Type to "text/plain; charset=utf-8" even with blank body
      before. Let's strip this unnecessary header though it's harmless in most
      cases.
      
      Fixes #20784
      Signed-off-by: default avatarTw <tw19881113@gmail.com>
      
      Change-Id: Ic58a410dcbc89f457c6ddd92961d9cbf545b2f4f
      Reviewed-on: https://go-review.googlesource.com/46631
      Run-TryBot: Emmanuel Odeke <emm.odeke@gmail.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
      8cdd999b
    • Roger Peppe's avatar
      crypto, hash: document marshal/unmarshal implementation · bd926e1c
      Roger Peppe authored
      Unless you go back and read the hash package documentation, it's
      not clear that all the hash packages implement marshaling and
      unmarshaling. Document the behaviour specifically in each package
      that implements it as it this is hidden behaviour and easy to miss.
      
      Change-Id: Id9d3508909362f1a3e53872d0319298359e50a94
      Reviewed-on: https://go-review.googlesource.com/77251Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
      Reviewed-by: default avatarJoe Tsai <thebrokentoaster@gmail.com>
      bd926e1c
  2. 14 Nov, 2017 15 commits
  3. 13 Nov, 2017 9 commits
    • Joe Tsai's avatar
      hash: document that the encoded state may contain input in plaintext · 4aea3e71
      Joe Tsai authored
      The cryptographic checksums operate in blocks of 64 or 128 bytes,
      which means that the last 128 bytes or so of the input may be encoded
      in its original (plaintext) form as part of the state.
      Document this so users do not falsely assume that the encoded state
      carries no reversible information about the input.
      
      Change-Id: I823dbb87867bf0a77aa20f6ed7a615dbedab3715
      Reviewed-on: https://go-review.googlesource.com/77372Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
      4aea3e71
    • Austin Clements's avatar
      runtime: don't elide wrapper functions that call panic or at TOS · 032678e0
      Austin Clements authored
      CL 45412 started hiding autogenerated wrapper functions from call
      stacks so that call stack semantics better matched language semantics.
      This is based on the theory that the wrapper function will call the
      "real" function and all the programmer knows about is the real
      function.
      
      However, this theory breaks down in two cases:
      
      1. If the wrapper is at the top of the stack, then it didn't call
         anything. This can happen, for example, if the "stack" was actually
         synthesized by the user.
      
      2. If the wrapper panics, for example by calling panicwrap or by
         dereferencing a nil pointer, then it didn't call the wrapped
         function and the user needs to see what panicked, even if we can't
         attribute it nicely.
      
      This commit modifies the traceback logic to include the wrapper
      function in both of these cases.
      
      Fixes #22231.
      
      Change-Id: I6e4339a652f73038bd8331884320f0b8edd86eb1
      Reviewed-on: https://go-review.googlesource.com/76770
      Run-TryBot: Austin Clements <austin@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarKeith Randall <khr@golang.org>
      032678e0
    • Michael Munday's avatar
      crypto/elliptic: reduce allocations in s390x P256 code · e8905d2a
      Michael Munday authored
      The Go compiler assumes that pointers escape when passed into assembly
      functions. To override this behavior we can annotate assembly functions
      with go:noescape, telling the compiler that we know pointers do not
      escape from it.
      
      By annotating the assembly functions in the s390x P256 code in this way
      we enable more variables to be allocated on the stack rather than
      the heap, reducing the number of heap allocations required to execute
      this code:
      
      name        old alloc/op   new alloc/op   delta
      SignP256      3.66kB ± 0%    2.64kB ± 0%  -27.95%  (p=0.008 n=5+5)
      VerifyP256    4.46kB ± 0%    1.23kB ± 0%  -72.40%  (p=0.008 n=5+5)
      
      name        old allocs/op  new allocs/op  delta
      SignP256        40.0 ± 0%      31.0 ± 0%  -22.50%  (p=0.008 n=5+5)
      VerifyP256      41.0 ± 0%      24.0 ± 0%  -41.46%  (p=0.008 n=5+5)
      
      Change-Id: Id526c30c9b04b2ad79a55d76cab0e30cc8d60402
      Reviewed-on: https://go-review.googlesource.com/66230
      Run-TryBot: Michael Munday <mike.munday@ibm.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarIan Lance Taylor <iant@golang.org>
      e8905d2a
    • Daniel Martí's avatar
      cmd/compile: remove some more gotos in gc · 7f88d3c1
      Daniel Martí authored
      Split typecheckrange into two, separating the bigger chunk of code that
      takes care of the range expression. It had to sometimes exit early,
      which was done via a goto in the larger func. This lets us simplify many
      declarations and the flow of the code. While at it, also replace the
      toomany int with a bool.
      
      In the case of walkselect, split it into two funcs too since using a
      defer for all the trailing work would be a bit much. It also lets us
      simplify the declarations and the flow of the code, since now
      walkselectcases has a narrower scope and straightforward signature.
      
      Also replace the gotos in typecheckaste with a lineno defer.
      
      Passes toolstash -cmp on std cmd.
      
      Change-Id: Iacfaa0a34c987c44f180a792c473558785cf6823
      Reviewed-on: https://go-review.googlesource.com/72374
      Run-TryBot: Daniel Martí <mvdan@mvdan.cc>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarMatthew Dempsky <mdempsky@google.com>
      7f88d3c1
    • Kevin Burke's avatar
      doc: mention the scratch repo · 1722a2d7
      Kevin Burke authored
      If people are interested in contributing to Go, but not sure what
      change they'd like to make just yet, we can point them to the scratch
      repo, so they can go through the process of submitting and merging
      something now, and make more useful contributions later.
      
      My evidence that sending people to the scratch repo would encourage
      future contributions is that a number of people who went through the
      workshop at Gophercon have continued to send CL's after submitting to
      the scratch repo, even though I doubt they planned to before going
      through the workshop.
      
      Change-Id: Ieb48415773c0ee7dc400f8bf6f57f752eca8eeb5
      Reviewed-on: https://go-review.googlesource.com/49970Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
      1722a2d7
    • Keith Randall's avatar
      cmd/compile: add test for array decomposition · 3abf1177
      Keith Randall authored
      This test fails on 1.9.2, but is ok on tip.
      CL 77331 has both the 1.9.2 fix and this test, and is on the 1.9 release branch.
      This CL is just the test, and is on HEAD.  The buggy code doesn't exist on tip.
      
      Update #22683
      
      Change-Id: I04a24bd6c2d3068e18ca81da3347e2c1366f4447
      Reviewed-on: https://go-review.googlesource.com/77332
      Run-TryBot: Keith Randall <khr@golang.org>
      Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
      Reviewed-by: default avatarDavid Chase <drchase@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      3abf1177
    • Adrian Hesketh's avatar
      time: add example for Time.Unix · d50e9526
      Adrian Hesketh authored
      Change-Id: Ie64eba5b57b609a343ddb381fe83c01f172c0bf4
      Reviewed-on: https://go-review.googlesource.com/60890Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
      Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
      d50e9526
    • Joe Tsai's avatar
      encoding/json: always ignore embedded pointers to unexported struct types · 0cee4b7b
      Joe Tsai authored
      CL 60410 fixes a bug in reflect that allows assignments to an embedded
      field of a pointer to an unexported struct type.
      This breaks the json package because unmarshal is now unable to assign
      a newly allocated struct to such fields.
      
      In order to be consistent in the behavior for marshal and unmarshal,
      this CL changes both marshal and unmarshal to always ignore
      embedded pointers to unexported structs.
      
      Fixes #21357
      
      Change-Id: If62ea11155555e61115ebb9cfa5305caf101bde5
      Reviewed-on: https://go-review.googlesource.com/76851
      Run-TryBot: Joe Tsai <thebrokentoaster@gmail.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarIan Lance Taylor <iant@golang.org>
      0cee4b7b
    • Chris Hines's avatar
      cmd/vet: ignore unrecognized flags for fmt.Formatter · 51032701
      Chris Hines authored
      Fixes #22608.
      
      Change-Id: Id85eb86b0b262156646e55f102fe888b345b20cf
      Reviewed-on: https://go-review.googlesource.com/77230
      Run-TryBot: Russ Cox <rsc@golang.org>
      Reviewed-by: default avatarRuss Cox <rsc@golang.org>
      Reviewed-by: default avatarRob Pike <r@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      51032701