1. 10 Oct, 2018 8 commits
  2. 09 Oct, 2018 16 commits
    • Bryan C. Mills's avatar
      cmd/go: remove extraneous 'file' from usage message in script_test · 45e66887
      Bryan C. Mills authored
      Previously, erroneous usage would produce error messages like:
      
      	FAIL: testdata/script/mod_tidy_replace.txt:4: usage: stdout [-count=N] 'pattern' file
      
      where the “file” argument is not actually valid for the stdout command.
      
      Change-Id: I74100960f4d25da122faa6c82620995a3fbfc75f
      Reviewed-on: https://go-review.googlesource.com/c/140858
      Run-TryBot: Bryan C. Mills <bcmills@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarIan Lance Taylor <iant@golang.org>
      45e66887
    • Bryan C. Mills's avatar
      cmd/go: check that package paths are invariantly non-empty · 6c85693b
      Bryan C. Mills authored
      The empty string is never a valid package path.
      Passing an empty string to a function that expects a package path
      indicates some missing validation step further up the call chain —
      typically (and most easily) a missed error check.
      
      Change-Id: I78a2403d95b473bacb0d40814cd9d477ecfd5351
      Reviewed-on: https://go-review.googlesource.com/c/140857
      Run-TryBot: Bryan C. Mills <bcmills@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarIan Lance Taylor <iant@golang.org>
      6c85693b
    • Matthew Dempsky's avatar
      cmd/compile/internal/gc: major evconst cleanup · 48dc42b6
      Matthew Dempsky authored
      Major cleanup to structure the code more similarly to go/constant.
      
      Passes "toolstash -cmp" on std cmd.
      
      Change-Id: I3ec7a7a24e313f119b0da4095001aad02e317894
      Reviewed-on: https://go-review.googlesource.com/c/139901
      Run-TryBot: Matthew Dempsky <mdempsky@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarRobert Griesemer <gri@golang.org>
      48dc42b6
    • Muhammad Falak R Wani's avatar
      go/doc: skip examples with no body · d30d5a6b
      Muhammad Falak R Wani authored
      Fixes #28044
      
      Change-Id: I0052e078dd34dc3546204416bcc5a99e3146c535
      Reviewed-on: https://go-review.googlesource.com/c/140317
      Run-TryBot: Dmitri Shuralyov <dmitshur@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarRobert Griesemer <gri@golang.org>
      d30d5a6b
    • Austin Clements's avatar
      runtime: rename gosweepdone to isSweepDone and document better · 007e8a2f
      Austin Clements authored
      gosweepdone is another anachronism from the time when the sweeper was
      implemented in C. Rename it to "isSweepDone" for the modern era.
      
      Change-Id: I8472aa6f52478459c3f2edc8a4b2761e73c4c2dd
      Reviewed-on: https://go-review.googlesource.com/c/138658
      Run-TryBot: Austin Clements <austin@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      007e8a2f
    • Austin Clements's avatar
      runtime: eliminate gosweepone · f3bb4cbf
      Austin Clements authored
      gosweepone just switches to the system stack and calls sweepone.
      sweepone doesn't need to run on the system stack, so this is pretty
      pointless.
      
      Historically, this was necessary because the sweeper was written in C
      and hence needed to run on the system stack. gosweepone was the
      function that Go code (specifically, bgsweep) used to call into the C
      sweeper implementation. This probably became unnecessary in 2014 with
      CL golang.org/cl/167540043, which ported the sweeper to Go.
      
      This CL changes all callers of gosweepone to call sweepone and
      eliminates gosweepone.
      
      Change-Id: I26b8ef0c7d060b4c0c5dedbb25ecfc936acc7269
      Reviewed-on: https://go-review.googlesource.com/c/138657
      Run-TryBot: Austin Clements <austin@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      f3bb4cbf
    • Austin Clements's avatar
      runtime: simplify free count calculation in (un)cacheSpan · 416804f3
      Austin Clements authored
      For unclear reasons, cacheSpan and uncacheSpan compute the number of
      elements in a span by dividing its size by the element size. This
      number is simply available in the mspan structure, so just use it.
      
      Change-Id: If2e5de6ecec39befd3324bf1da4a275ad000932f
      Reviewed-on: https://go-review.googlesource.com/c/138656
      Run-TryBot: Austin Clements <austin@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      416804f3
    • Austin Clements's avatar
      runtime: avoid tracking spans with no objects with mcentral · 70d7e96c
      Austin Clements authored
      Lazy mcache flushing (golang.org/cl/134783) made it so that moving a
      span from an mcache to an mcentral was sometimes responsible for
      sweeping the span. However, it did a "preserving" sweep, which meant
      it retained ownership, even if the sweeper swept all objects in the
      span. As a result, we could put a completely unused span back in the
      mcentral.
      
      Fix this by first taking back ownership of the span into the mcentral
      and moving it to the right mcentral list, and then doing a
      non-preserving sweep. The non-preserving sweep will move the span to
      the heap if it sweeps all objects.
      
      Change-Id: I244b1893b44b8c00264f0928ac9239449775f617
      Reviewed-on: https://go-review.googlesource.com/c/140597
      Run-TryBot: Austin Clements <austin@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarMichael Knyszek <mknyszek@google.com>
      70d7e96c
    • Austin Clements's avatar
      runtime: fix non-in-use span check · 7d2f46da
      Austin Clements authored
      Lazy mcache flushing (golang.org/cl/134783) introduced a second value
      for sweepgen that indicates a span has been swept. I missed adding
      this case to a sanity check in sweepone, so it can now panic if it
      finds a non-in-use spans that's been swept *and* put in an mcache.
      
      Fix this by adding the second sweepgen case to this check.
      
      Fixes #27997.
      
      Change-Id: I568d9f2cc8923396ca897a37d154cd2c859c7bef
      Reviewed-on: https://go-review.googlesource.com/c/140697
      Run-TryBot: Austin Clements <austin@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      7d2f46da
    • Austin Clements's avatar
      runtime: undo manual inlining of mbits.setMarked · 1d09433e
      Austin Clements authored
      Since atomic.Or8 is now an intrinsic (and has been for some time),
      markBits.setMarked is inlinable. Undo the manual inlining of it.
      
      Change-Id: I8e37ccf0851ad1d3088d9c8ae0f6f0c439d7eb2d
      Reviewed-on: https://go-review.googlesource.com/c/138659
      Run-TryBot: Austin Clements <austin@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      1d09433e
    • Austin Clements's avatar
      runtime: tidy mheap.freeSpan · 3f86d7cc
      Austin Clements authored
      freeSpan currently takes a mysterious "acct int32" argument. This is
      really just a boolean and actually just needs to match the "large"
      argument to alloc in order to balance out accounting.
      
      To make this clearer, replace acct with a "large bool" argument that
      must match the call to mheap.alloc.
      
      Change-Id: Ibc81faefdf9f0583114e1953fcfb362e9c3c76de
      Reviewed-on: https://go-review.googlesource.com/c/138655
      Run-TryBot: Austin Clements <austin@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      3f86d7cc
    • Brad Fitzpatrick's avatar
      net/http/httputil: rewrite flushing code, disable on Server-Sent Events · 5440bfc2
      Brad Fitzpatrick authored
      * Rewrite the flushing code to not use a persistent goroutine, which
        also simplifies testing.
      * Define the meaning of a negative flush interval. Its meaning doesn't
        change, but now it's locked in, and then we can use it to optimize
        the performance of the non-buffered case to avoid use of an AfterFunc.
      * Support (internal-only) special casing of FlushInterval values per
        request/response.
      * For now, treat Server-Sent Event responses as unbuffered. (or rather,
        immediately flushed from the buffer per-write)
      
      Fixes #27816
      
      Change-Id: Ie0f975c997daa3db539504137c741a96d7022665
      Reviewed-on: https://go-review.googlesource.com/c/137335
      Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarDmitri Shuralyov <dmitshur@golang.org>
      5440bfc2
    • Qais Patankar's avatar
      cmd/compile: fix Compiler Directives typo · ffc7bc55
      Qais Patankar authored
      Change-Id: I098b3c627c2142affd4e800a2c1f37e00f3775c5
      Reviewed-on: https://go-review.googlesource.com/c/140777Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      ffc7bc55
    • Marten Seemann's avatar
      crypto/tls: fix ServerHello SCT test · 465d1c61
      Marten Seemann authored
      According to https://tools.ietf.org/html/rfc6962#section-3.3, the SCT
      must be at least one byte long. The parsing code correctly checks for
      this condition, but rarely the test does generate an empty SCT.
      
      Change-Id: If36a34985b4470a5a9f96affc159195c04f6bfad
      Reviewed-on: https://go-review.googlesource.com/c/129755Reviewed-by: 's avatarFilippo Valsorda <filippo@golang.org>
      Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      465d1c61
    • Ben Shi's avatar
      cmd/compile: combine similar code in amd64's assembly generator · ccc337d8
      Ben Shi authored
      BSFQ/BSRQ/BSFL/BSRL/SQRTSD have similar logic in amd64's assembly
      generator. This CL combines them together while does not impact
      generated amd64 code. The total size of
      pkg/linux_amd64/cmd/compile/internal decreases about 1.8KB.
      
      Change-Id: I5f3210c5178c20ac9108877c69f17234baf5b6b7
      Reviewed-on: https://go-review.googlesource.com/c/140438
      Run-TryBot: Ben Shi <powerman1st@163.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarKeith Randall <khr@golang.org>
      ccc337d8
    • Ben Shi's avatar
      cmd/compile: add indexed form for several 386 instructions · 39333025
      Ben Shi authored
      This CL implements indexed memory operands for the following instructions.
      (ADD|SUB|MUL|AND|OR|XOR)Lload -> (ADD|SUB|MUL|AND|OR|XOR)Lloadidx4
      (ADD|SUB|AND|OR|XOR)Lmodify -> (ADD|SUB|AND|OR|XOR)Lmodifyidx4
      (ADD|AND|OR|XOR)Lconstmodify -> (ADD|AND|OR|XOR)Lconstmodifyidx4
      
      1. The total size of pkg/linux_386/ decreases about 2.5KB, excluding
      cmd/compile/ .
      
      2. There is little regression in the go1 benchmark test, excluding noise.
      name                     old time/op    new time/op    delta
      BinaryTree17-4              3.25s ± 3%     3.25s ± 3%    ~     (p=0.218 n=40+40)
      Fannkuch11-4                3.53s ± 1%     3.53s ± 1%    ~     (p=0.303 n=40+40)
      FmtFprintfEmpty-4          44.9ns ± 3%    45.6ns ± 3%  +1.48%  (p=0.030 n=40+36)
      FmtFprintfString-4         78.7ns ± 5%    80.1ns ± 7%    ~     (p=0.217 n=36+40)
      FmtFprintfInt-4            90.2ns ± 6%    89.8ns ± 5%    ~     (p=0.659 n=40+38)
      FmtFprintfIntInt-4          140ns ± 5%     141ns ± 5%  +1.00%  (p=0.027 n=40+40)
      FmtFprintfPrefixedInt-4     185ns ± 3%     183ns ± 3%    ~     (p=0.104 n=40+40)
      FmtFprintfFloat-4           411ns ± 4%     406ns ± 3%  -1.37%  (p=0.005 n=40+40)
      FmtManyArgs-4               590ns ± 4%     598ns ± 4%  +1.35%  (p=0.008 n=40+40)
      GobDecode-4                7.16ms ± 5%    7.10ms ± 5%    ~     (p=0.335 n=40+40)
      GobEncode-4                6.85ms ± 7%    6.74ms ± 9%    ~     (p=0.058 n=38+40)
      Gzip-4                      400ms ± 4%     399ms ± 2%  -0.34%  (p=0.003 n=40+33)
      Gunzip-4                   41.4ms ± 3%    41.4ms ± 4%  -0.12%  (p=0.020 n=40+40)
      HTTPClientServer-4         64.1µs ± 4%    63.5µs ± 2%  -1.07%  (p=0.000 n=39+37)
      JSONEncode-4               15.9ms ± 2%    15.9ms ± 3%    ~     (p=0.103 n=40+40)
      JSONDecode-4               62.2ms ± 4%    61.6ms ± 3%  -0.98%  (p=0.006 n=39+40)
      Mandelbrot200-4            5.18ms ± 3%    5.14ms ± 4%    ~     (p=0.125 n=40+40)
      GoParse-4                  3.29ms ± 2%    3.27ms ± 2%  -0.66%  (p=0.006 n=40+40)
      RegexpMatchEasy0_32-4       103ns ± 4%     103ns ± 4%    ~     (p=0.632 n=40+40)
      RegexpMatchEasy0_1K-4       830ns ± 3%     828ns ± 3%    ~     (p=0.563 n=40+40)
      RegexpMatchEasy1_32-4       113ns ± 4%     113ns ± 4%    ~     (p=0.494 n=40+40)
      RegexpMatchEasy1_1K-4      1.03µs ± 4%    1.03µs ± 4%    ~     (p=0.665 n=40+40)
      RegexpMatchMedium_32-4      130ns ± 4%     129ns ± 3%    ~     (p=0.458 n=40+40)
      RegexpMatchMedium_1K-4     39.4µs ± 3%    39.7µs ± 3%    ~     (p=0.825 n=40+40)
      RegexpMatchHard_32-4       2.16µs ± 4%    2.15µs ± 4%    ~     (p=0.137 n=40+40)
      RegexpMatchHard_1K-4       65.2µs ± 3%    65.4µs ± 4%    ~     (p=0.160 n=40+40)
      Revcomp-4                   1.87s ± 2%     1.87s ± 1%  +0.17%  (p=0.019 n=33+33)
      Template-4                 69.4ms ± 3%    69.8ms ± 3%  +0.60%  (p=0.009 n=40+40)
      TimeParse-4                 437ns ± 4%     438ns ± 4%    ~     (p=0.234 n=40+40)
      TimeFormat-4                408ns ± 3%     408ns ± 3%    ~     (p=0.904 n=40+40)
      [Geo mean]                 65.7µs         65.6µs       -0.08%
      
      name                     old speed      new speed      delta
      GobDecode-4               107MB/s ± 5%   108MB/s ± 5%    ~     (p=0.336 n=40+40)
      GobEncode-4               112MB/s ± 6%   114MB/s ± 9%  +1.95%  (p=0.036 n=37+40)
      Gzip-4                   48.5MB/s ± 4%  48.6MB/s ± 2%  +0.28%  (p=0.003 n=40+33)
      Gunzip-4                  469MB/s ± 4%   469MB/s ± 4%  +0.11%  (p=0.021 n=40+40)
      JSONEncode-4              122MB/s ± 2%   122MB/s ± 3%    ~     (p=0.105 n=40+40)
      JSONDecode-4             31.2MB/s ± 4%  31.5MB/s ± 4%  +0.99%  (p=0.007 n=39+40)
      GoParse-4                17.6MB/s ± 2%  17.7MB/s ± 2%  +0.66%  (p=0.007 n=40+40)
      RegexpMatchEasy0_32-4     310MB/s ± 4%   310MB/s ± 4%    ~     (p=0.384 n=40+40)
      RegexpMatchEasy0_1K-4    1.23GB/s ± 3%  1.24GB/s ± 3%    ~     (p=0.186 n=40+40)
      RegexpMatchEasy1_32-4     283MB/s ± 3%   281MB/s ± 4%    ~     (p=0.855 n=40+40)
      RegexpMatchEasy1_1K-4    1.00GB/s ± 4%  1.00GB/s ± 4%    ~     (p=0.665 n=40+40)
      RegexpMatchMedium_32-4   7.68MB/s ± 4%  7.73MB/s ± 3%    ~     (p=0.359 n=40+40)
      RegexpMatchMedium_1K-4   26.0MB/s ± 3%  25.8MB/s ± 3%    ~     (p=0.825 n=40+40)
      RegexpMatchHard_32-4     14.8MB/s ± 3%  14.9MB/s ± 4%    ~     (p=0.136 n=40+40)
      RegexpMatchHard_1K-4     15.7MB/s ± 3%  15.7MB/s ± 4%    ~     (p=0.150 n=40+40)
      Revcomp-4                 136MB/s ± 1%   136MB/s ± 1%  -0.09%  (p=0.028 n=32+33)
      Template-4               28.0MB/s ± 3%  27.8MB/s ± 3%  -0.59%  (p=0.010 n=40+40)
      [Geo mean]               82.1MB/s       82.3MB/s       +0.25%
      
      Change-Id: Ifa387a251056678326d3508aa02753b70bf7e5d0
      Reviewed-on: https://go-review.googlesource.com/c/140303
      Run-TryBot: Ben Shi <powerman1st@163.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarKeith Randall <khr@golang.org>
      39333025
  3. 08 Oct, 2018 5 commits
  4. 07 Oct, 2018 1 commit
  5. 06 Oct, 2018 10 commits