1. 24 Sep, 2018 17 commits
    • Brad Fitzpatrick's avatar
      cmd/compile/internal/ssa: fix a typo · 0ee8a559
      Brad Fitzpatrick authored
      Change-Id: Ie3a8c54fe5e1b94f506cc0e6f650aab441d28a75
      Reviewed-on: https://go-review.googlesource.com/137115Reviewed-by: 's avatarKeith Randall <khr@golang.org>
      0ee8a559
    • Alberto Donizetti's avatar
      test: restore binary.BigEndian use in checkbce · 8c1c6702
      Alberto Donizetti authored
      CL 136855 removed the encoding/binary dependency from the checkbce.go
      test by defining a local Uint64 to fix the noopt builder; then a more
      general mechanism to skip tests on the noopt builder was introduced in
      CL 136898, so we can now restore the binary.Uint64 calls in testbce.
      
      Change-Id: I3efbb41be0bfc446a7e638ce6a593371ead2684f
      Reviewed-on: https://go-review.googlesource.com/137056
      Run-TryBot: Alberto Donizetti <alb.donizetti@gmail.com>
      Reviewed-by: 's avatarGiovanni Bajo <rasky@develer.com>
      Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      8c1c6702
    • Rob Pike's avatar
      fmt: unify the printing examples · 5be78668
      Rob Pike authored
      Provide an example for each of the printing functions (Print,
      Sprintf, Fprintln etc.), and make them all produce the same output
      so their usage can be compared.
      
      Also add a package-level example explaining the difference between
      how Printf, Println, and Print behave.
      
      There are more examples to come.
      
      Update #27554.
      
      Change-Id: Ide03e5233f3762a9ee2ac0269f534ab927562ce2
      Reviewed-on: https://go-review.googlesource.com/136615Reviewed-by: 's avatarIan Lance Taylor <iant@golang.org>
      Run-TryBot: Ian Lance Taylor <iant@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      5be78668
    • Robert Griesemer's avatar
      spec: be more precise about the moment deferred functions are executed · 206fd788
      Robert Griesemer authored
      Fixes #27802.
      
      Change-Id: I7ea9f7279300a55b0cb851893edc591a6f84e324
      Reviewed-on: https://go-review.googlesource.com/136758Reviewed-by: 's avatarRob Pike <r@golang.org>
      Reviewed-by: 's avatarIan Lance Taylor <iant@golang.org>
      206fd788
    • Rob Pike's avatar
      fmt: add a package-level example illustrating basic formats · c5a8d1d2
      Rob Pike authored
      There is much left out here—the space of possibilities is very
      large—but this example shows all that most programmers will need
      to know for most printing problems.
      
      Update #27554.
      
      Change-Id: Ib6ae651d5c3720cf7fe1a05ffd0859a5b56a9157
      Reviewed-on: https://go-review.googlesource.com/136616Reviewed-by: 's avatarIan Lance Taylor <iant@golang.org>
      c5a8d1d2
    • Brad Fitzpatrick's avatar
      test: skip some tests on noopt builder · b3369063
      Brad Fitzpatrick authored
      Adds a new build tag "gcflags_noopt" that can be used in test/*.go
      tests.
      
      Fixes #27833
      
      Change-Id: I4ea0ccd9e9e58c4639de18645fec81eb24a3a929
      Reviewed-on: https://go-review.googlesource.com/136898
      Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarKeith Randall <khr@golang.org>
      b3369063
    • Brad Fitzpatrick's avatar
      cmd/vendor: update golang.org/x/sys/windows for windows/arm support · 01b7c2db
      Brad Fitzpatrick authored
      Updates to golang.org/x/sys git rev 90868a75f.
      
      Updates golang/go#26148
      
      Change-Id: Ic687e7e0e171690e8d937c7bb29b0e55316f874a
      Reviewed-on: https://go-review.googlesource.com/137015Reviewed-by: 's avatarIan Lance Taylor <iant@golang.org>
      01b7c2db
    • Keith Randall's avatar
      cmd/compile: document regalloc fields · f493e557
      Keith Randall authored
      Document what the fields of regalloc mean.
      Hopefully will help people understand how the register allocator works.
      
      Change-Id: Ic322ed2019cc839b812740afe8cd2cf0b61da046
      Reviewed-on: https://go-review.googlesource.com/137016Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      f493e557
    • Katie Hockman's avatar
      compress: reduce copies of new text for compression testing · fdceb2a1
      Katie Hockman authored
      The previous book was 387 KiB decompressed and 119 KiB compressed, the
      new book is 567 KiB decompressed and 132 KiB compressed. Overall, this
      change will reduce the release binary size by 196 KiB. The new book will
      allow for slightly more extensive compression testing with a larger
      text.
      
      Command to run the benchmark tests used with benchstat:
      `../bin/go test -run='^$' -count=4 -bench=. compress/bzip2 compress/flate`
      
      When running the benchmarks locally, changed "Newton" to "Twain" and
      filtered the tests with the -bench flag to include only those which were
      relevant to these changes.
      
      benchstat results below:
      
      name                            old time/op    new time/op     delta
      DecodeTwain-8                     19.6ms ± 2%     24.1ms ± 1%  +23.04%  (p=0.029 n=4+4)
      Decode/Twain/Huffman/1e4-8         140µs ± 3%      139µs ± 5%     ~     (p=0.886 n=4+4)
      Decode/Twain/Huffman/1e5-8        1.27ms ± 3%     1.26ms ± 1%     ~     (p=1.000 n=4+4)
      Decode/Twain/Huffman/1e6-8        12.4ms ± 0%     13.2ms ± 1%   +6.42%  (p=0.029 n=4+4)
      Decode/Twain/Speed/1e4-8           133µs ± 1%      123µs ± 1%   -7.35%  (p=0.029 n=4+4)
      Decode/Twain/Speed/1e5-8          1.20ms ± 0%     1.02ms ± 3%  -15.32%  (p=0.029 n=4+4)
      Decode/Twain/Speed/1e6-8          12.0ms ± 2%     10.1ms ± 3%  -15.89%  (p=0.029 n=4+4)
      Decode/Twain/Default/1e4-8         131µs ± 6%      108µs ± 5%  -17.84%  (p=0.029 n=4+4)
      Decode/Twain/Default/1e5-8        1.06ms ± 2%     0.80ms ± 1%  -24.97%  (p=0.029 n=4+4)
      Decode/Twain/Default/1e6-8        10.0ms ± 3%      8.0ms ± 3%  -20.06%  (p=0.029 n=4+4)
      Decode/Twain/Compression/1e4-8     128µs ± 4%      115µs ± 4%   -9.70%  (p=0.029 n=4+4)
      Decode/Twain/Compression/1e5-8    1.04ms ± 2%     0.83ms ± 4%  -20.37%  (p=0.029 n=4+4)
      Decode/Twain/Compression/1e6-8    10.4ms ± 4%      8.1ms ± 5%  -22.25%  (p=0.029 n=4+4)
      Encode/Twain/Huffman/1e4-8        55.7µs ± 2%     55.6µs ± 1%     ~     (p=1.000 n=4+4)
      Encode/Twain/Huffman/1e5-8         441µs ± 0%      435µs ± 2%     ~     (p=0.343 n=4+4)
      Encode/Twain/Huffman/1e6-8        4.31ms ± 4%     4.30ms ± 4%     ~     (p=0.886 n=4+4)
      Encode/Twain/Speed/1e4-8           193µs ± 1%      166µs ± 2%  -14.09%  (p=0.029 n=4+4)
      Encode/Twain/Speed/1e5-8          1.54ms ± 1%     1.22ms ± 1%  -20.53%  (p=0.029 n=4+4)
      Encode/Twain/Speed/1e6-8          15.3ms ± 1%     12.2ms ± 3%  -20.62%  (p=0.029 n=4+4)
      Encode/Twain/Default/1e4-8         393µs ± 1%      390µs ± 1%     ~     (p=0.114 n=4+4)
      Encode/Twain/Default/1e5-8        6.12ms ± 4%     6.02ms ± 5%     ~     (p=0.486 n=4+4)
      Encode/Twain/Default/1e6-8        69.4ms ± 5%     59.0ms ± 4%  -15.07%  (p=0.029 n=4+4)
      Encode/Twain/Compression/1e4-8     423µs ± 2%      379µs ± 2%  -10.34%  (p=0.029 n=4+4)
      Encode/Twain/Compression/1e5-8    7.00ms ± 1%     7.88ms ± 3%  +12.49%  (p=0.029 n=4+4)
      Encode/Twain/Compression/1e6-8    76.6ms ± 5%     80.9ms ± 3%     ~     (p=0.114 n=4+4)
      
      name                            old speed      new speed       delta
      DecodeTwain-8                   19.8MB/s ± 2%   23.6MB/s ± 1%  +18.84%  (p=0.029 n=4+4)
      Decode/Twain/Huffman/1e4-8      71.7MB/s ± 3%   72.1MB/s ± 6%     ~     (p=0.943 n=4+4)
      Decode/Twain/Huffman/1e5-8      78.8MB/s ± 3%   79.5MB/s ± 1%     ~     (p=1.000 n=4+4)
      Decode/Twain/Huffman/1e6-8      80.5MB/s ± 0%   75.6MB/s ± 1%   -6.03%  (p=0.029 n=4+4)
      Decode/Twain/Speed/1e4-8        75.2MB/s ± 1%   81.2MB/s ± 1%   +7.93%  (p=0.029 n=4+4)
      Decode/Twain/Speed/1e5-8        83.4MB/s ± 0%   98.6MB/s ± 3%  +18.16%  (p=0.029 n=4+4)
      Decode/Twain/Speed/1e6-8        83.6MB/s ± 2%   99.5MB/s ± 3%  +18.91%  (p=0.029 n=4+4)
      Decode/Twain/Default/1e4-8      76.3MB/s ± 6%   92.8MB/s ± 4%  +21.62%  (p=0.029 n=4+4)
      Decode/Twain/Default/1e5-8      94.4MB/s ± 3%  125.7MB/s ± 1%  +33.24%  (p=0.029 n=4+4)
      Decode/Twain/Default/1e6-8       100MB/s ± 3%    125MB/s ± 3%  +25.12%  (p=0.029 n=4+4)
      Decode/Twain/Compression/1e4-8  78.4MB/s ± 4%   86.8MB/s ± 4%  +10.73%  (p=0.029 n=4+4)
      Decode/Twain/Compression/1e5-8  95.7MB/s ± 2%  120.3MB/s ± 4%  +25.65%  (p=0.029 n=4+4)
      Decode/Twain/Compression/1e6-8  96.4MB/s ± 4%  124.0MB/s ± 5%  +28.64%  (p=0.029 n=4+4)
      Encode/Twain/Huffman/1e4-8       179MB/s ± 2%    180MB/s ± 1%     ~     (p=1.000 n=4+4)
      Encode/Twain/Huffman/1e5-8       227MB/s ± 0%    230MB/s ± 2%     ~     (p=0.343 n=4+4)
      Encode/Twain/Huffman/1e6-8       232MB/s ± 4%    233MB/s ± 4%     ~     (p=0.886 n=4+4)
      Encode/Twain/Speed/1e4-8        51.8MB/s ± 1%   60.4MB/s ± 2%  +16.43%  (p=0.029 n=4+4)
      Encode/Twain/Speed/1e5-8        65.1MB/s ± 1%   81.9MB/s ± 1%  +25.83%  (p=0.029 n=4+4)
      Encode/Twain/Speed/1e6-8        65.2MB/s ± 1%   82.2MB/s ± 3%  +26.00%  (p=0.029 n=4+4)
      Encode/Twain/Default/1e4-8      25.4MB/s ± 1%   25.6MB/s ± 1%     ~     (p=0.114 n=4+4)
      Encode/Twain/Default/1e5-8      16.4MB/s ± 4%   16.6MB/s ± 5%     ~     (p=0.486 n=4+4)
      Encode/Twain/Default/1e6-8      14.4MB/s ± 6%   17.0MB/s ± 4%  +17.67%  (p=0.029 n=4+4)
      Encode/Twain/Compression/1e4-8  23.6MB/s ± 2%   26.4MB/s ± 2%  +11.54%  (p=0.029 n=4+4)
      Encode/Twain/Compression/1e5-8  14.3MB/s ± 1%   12.7MB/s ± 3%  -11.08%  (p=0.029 n=4+4)
      Encode/Twain/Compression/1e6-8  13.1MB/s ± 4%   12.4MB/s ± 3%     ~     (p=0.114 n=4+4)
      
      name                            old alloc/op   new alloc/op    delta
      DecodeTwain-8                     3.63MB ± 0%     3.63MB ± 0%   +0.15%  (p=0.029 n=4+4)
      Decode/Twain/Huffman/1e4-8        42.0kB ± 0%     41.3kB ± 0%   -1.62%  (p=0.029 n=4+4)
      Decode/Twain/Huffman/1e5-8        43.5kB ± 0%     45.1kB ± 0%   +3.74%  (p=0.029 n=4+4)
      Decode/Twain/Huffman/1e6-8        71.7kB ± 0%     80.0kB ± 0%  +11.55%  (p=0.029 n=4+4)
      Decode/Twain/Speed/1e4-8          41.2kB ± 0%     41.3kB ± 0%     ~     (p=0.286 n=4+4)
      Decode/Twain/Speed/1e5-8          45.1kB ± 0%     43.9kB ± 0%   -2.80%  (p=0.029 n=4+4)
      Decode/Twain/Speed/1e6-8          72.8kB ± 0%     81.3kB ± 0%  +11.72%  (p=0.029 n=4+4)
      Decode/Twain/Default/1e4-8        41.2kB ± 0%     41.2kB ± 0%   -0.22%  (p=0.029 n=4+4)
      Decode/Twain/Default/1e5-8        44.4kB ± 0%     43.0kB ± 0%   -3.02%  (p=0.029 n=4+4)
      Decode/Twain/Default/1e6-8        71.0kB ± 0%     61.8kB ± 0%  -13.00%  (p=0.029 n=4+4)
      Decode/Twain/Compression/1e4-8    41.3kB ± 0%     41.2kB ± 0%   -0.29%  (p=0.029 n=4+4)
      Decode/Twain/Compression/1e5-8    43.3kB ± 0%     43.0kB ± 0%   -0.72%  (p=0.029 n=4+4)
      Decode/Twain/Compression/1e6-8    69.1kB ± 0%     63.7kB ± 0%   -7.90%  (p=0.029 n=4+4)
      
      name                            old allocs/op  new allocs/op   delta
      DecodeTwain-8                       51.0 ± 0%       51.2 ± 1%     ~     (p=1.000 n=4+4)
      Decode/Twain/Huffman/1e4-8          15.0 ± 0%       14.0 ± 0%   -6.67%  (p=0.029 n=4+4)
      Decode/Twain/Huffman/1e5-8          20.0 ± 0%       23.0 ± 0%  +15.00%  (p=0.029 n=4+4)
      Decode/Twain/Huffman/1e6-8           134 ± 0%        161 ± 0%  +20.15%  (p=0.029 n=4+4)
      Decode/Twain/Speed/1e4-8            17.0 ± 0%       18.0 ± 0%   +5.88%  (p=0.029 n=4+4)
      Decode/Twain/Speed/1e5-8            30.0 ± 0%       31.0 ± 0%   +3.33%  (p=0.029 n=4+4)
      Decode/Twain/Speed/1e6-8             193 ± 0%        228 ± 0%  +18.13%  (p=0.029 n=4+4)
      Decode/Twain/Default/1e4-8          17.0 ± 0%       15.0 ± 0%  -11.76%  (p=0.029 n=4+4)
      Decode/Twain/Default/1e5-8          28.0 ± 0%       32.0 ± 0%  +14.29%  (p=0.029 n=4+4)
      Decode/Twain/Default/1e6-8           199 ± 0%        158 ± 0%  -20.60%  (p=0.029 n=4+4)
      Decode/Twain/Compression/1e4-8      17.0 ± 0%       15.0 ± 0%  -11.76%  (p=0.029 n=4+4)
      Decode/Twain/Compression/1e5-8      28.0 ± 0%       32.0 ± 0%  +14.29%  (p=0.029 n=4+4)
      Decode/Twain/Compression/1e6-8       196 ± 0%        150 ± 0%  -23.47%  (p=0.029 n=4+4)
      
      Updates #27151
      
      Change-Id: I6c439694ed16a33bb4c63fbfb8570c7de46b4f2d
      Reviewed-on: https://go-review.googlesource.com/135495Reviewed-by: 's avatarDmitri Shuralyov <dmitshur@golang.org>
      Reviewed-by: 's avatarJoe Tsai <thebrokentoaster@gmail.com>
      fdceb2a1
    • Brad Fitzpatrick's avatar
      net: don't reject domain names with only numbers and hyphens · 5b3aafe2
      Brad Fitzpatrick authored
      From https://github.com/golang/go/issues/17659#issuecomment-423113606 ...
      
      > In kubernetes , isDomainName reject Pods "A Record" "pod-ip-address",
      > for example: "172-17-0-16", as RFC 3696 section 2 requires
      > "top-level domain names not be all-numeric", but this example has
      > three hyphen, so I think it should not be reject.
      
      Updates #17659
      
      Change-Id: Ibd8ffb9473d69c45c91525953c09c6749233ca20
      Reviewed-on: https://go-review.googlesource.com/136900
      Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
      Reviewed-by: 's avatarIan Lance Taylor <iant@golang.org>
      Reviewed-by: 's avatarIan Gudger <igudger@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      5b3aafe2
    • Ian Davis's avatar
      image: add benchmarks for At and Set methods · 4039be00
      Ian Davis authored
      Added in preparation for looking at some optimizations around bounds
      checks.
      
      BenchmarkAt/rgba-8            100000000     18.5 ns/op      4 B/op   1 allocs/op
      BenchmarkAt/rgba64-8          100000000     22.9 ns/op      8 B/op   1 allocs/op
      BenchmarkAt/nrgba-8           100000000     18.8 ns/op      4 B/op   1 allocs/op
      BenchmarkAt/nrgba64-8         100000000     22.1 ns/op      8 B/op   1 allocs/op
      BenchmarkAt/alpha-8           100000000     14.6 ns/op      1 B/op   1 allocs/op
      BenchmarkAt/alpha16-8         200000000     6.46 ns/op      0 B/op   0 allocs/op
      BenchmarkAt/gray-8            100000000     14.3 ns/op      1 B/op   1 allocs/op
      BenchmarkAt/gray16-8          200000000     6.45 ns/op      0 B/op   0 allocs/op
      BenchmarkAt/paletted-8        300000000     4.28 ns/op      0 B/op   0 allocs/op
      BenchmarkSet/rgba-8           50000000      39.2 ns/op      8 B/op   2 allocs/op
      BenchmarkSet/rgba64-8         30000000      45.8 ns/op     16 B/op   2 allocs/op
      BenchmarkSet/nrgba-8          50000000      39.3 ns/op      8 B/op   2 allocs/op
      BenchmarkSet/nrgba64-8        30000000      45.6 ns/op     16 B/op   2 allocs/op
      BenchmarkSet/alpha-8          50000000      34.5 ns/op      2 B/op   2 allocs/op
      BenchmarkSet/alpha16-8        50000000      34.9 ns/op      4 B/op   2 allocs/op
      BenchmarkSet/gray-8           100000000     20.3 ns/op      1 B/op   1 allocs/op
      BenchmarkSet/gray16-8         50000000      36.2 ns/op      4 B/op   2 allocs/op
      BenchmarkSet/paletted-8       50000000      39.5 ns/op      1 B/op   1 allocs/op
      BenchmarkRGBAAt-8             500000000     3.74 ns/op
      BenchmarkRGBASetRGBA-8        300000000     4.33 ns/op
      BenchmarkRGBA64At-8           300000000     5.06 ns/op
      BenchmarkRGBA64SetRGBA64-8    200000000     6.61 ns/op
      BenchmarkNRGBAAt-8            500000000     3.69 ns/op
      BenchmarkNRGBASetNRGBA-8      300000000     4.06 ns/op
      BenchmarkNRGBA64At-8          300000000     4.98 ns/op
      BenchmarkNRGBA64SetNRGBA64-8  200000000     6.62 ns/op
      BenchmarkAlphaAt-8            2000000000    1.43 ns/op
      BenchmarkAlphaSetAlpha-8      2000000000    1.55 ns/op
      BenchmarkAlpha16At-8          1000000000    2.87 ns/op
      BenchmarkAlphaSetAlpha16-8    500000000     3.27 ns/op
      BenchmarkGrayAt-8             2000000000    1.43 ns/op
      BenchmarkGraySetGray-8        2000000000    1.55 ns/op
      BenchmarkGray16At-8           1000000000    2.87 ns/op
      BenchmarkGraySetGray16-8      500000000     3.14 ns/op
      
      Updates #14884
      
      Change-Id: I349fb214ee75f13ecbc62ac22a40e3b337648f60
      Reviewed-on: https://go-review.googlesource.com/136796Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      4039be00
    • Keith Randall's avatar
      cmd/compile: fix precedence order bug · 9774fa6f
      Keith Randall authored
      &^ and << have equal precedence.  Add some parentheses to make sure
      we shift before we andnot.
      
      Fixes #27829
      
      Change-Id: Iba8576201f0f7c52bf9795aaa75d15d8f9a76811
      Reviewed-on: https://go-review.googlesource.com/136899Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      9774fa6f
    • Andrei Tudor Călin's avatar
      net: don't use splice for unix{packet,gram} connections · 8d6a455d
      Andrei Tudor Călin authored
      As pointed out in the aftermath of CL 113997, splice is not supported
      for SOCK_SEQPACKET or SOCK_DGRAM unix sockets. Don't call poll.Splice
      in those cases.
      
      Change-Id: Ieab18fb0ae706fdeb249e3f54d51a3292e3ead62
      Reviewed-on: https://go-review.googlesource.com/136635
      Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      8d6a455d
    • Jongmin Kim's avatar
      test/bench/garbage: update Benchmarks Game URL to new page · c22c7607
      Jongmin Kim authored
      The existing URL in comment points to an Alioth page which was
      deprecated (and not working), so use the new Benchmarks Game URL.
      
      Change-Id: Ifd694382a44a24c44acbed3fe1b17bca6dab998f
      Reviewed-on: https://go-review.googlesource.com/136835Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      c22c7607
    • Elias Naur's avatar
      syscall: replace lstat, lchown, stat to please Android O · f25656d3
      Elias Naur authored
      Implement Lstat with fstatat and Lchown with Fchownat on
      linux/amd64, linux/arm and linux/386. Furthermore, implement Stat
      with fstatat on linux/arm and linux/386. Linux/arm64 already had
      similar replacements.
      
      The fstatat and fchownat system calls were added in kernel 2.6.16,
      which is before the Go minimum, 2.6.23.
      
      The three syscalls then match the android bionic implementation
      and avoids the Android O seccomp filter.
      
      Fixes #27797
      
      Change-Id: I07fd5506955d454a1a660fef5af0e1ac1ecb0959
      Reviewed-on: https://go-review.googlesource.com/136795
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      f25656d3
    • Alberto Donizetti's avatar
      test: fix bcecheck test on noopt builder · 6054fef1
      Alberto Donizetti authored
      The noopt builder is configured by setting GO_GCFLAGS=-N -l, but the
      test/run.go test harness doesn't look at GO_GCFLAGS when processing
      "errorcheck" files, it just calls compile:
      
        cmdline := []string{goTool(), "tool", "compile", /* etc */}
      
      This is working as intended, since it makes the tests more robust and
      independent from the environment; errorcheck files are supposed to set
      additional building flags, when needed, like in:
      
        // errorcheck -0 -N -l
      
      The test/bcecheck.go test used to work on the noopt builder (even if
      bce is not active on -N -l) because the test was auto-contained and
      the file always compiled with optimizations enabled.
      
      In CL 107355, a new bce test dependent on an external package
      (encoding.binary) was added. On the noopt builder the external package
      is built using -N -l, and this causes a test failure that broke the
      noopt builder:
      
        https://build.golang.org/log/b2be319536285e5807ee9d66d6d0ec4d57433768
      
      To reproduce the failure, one can do:
      
        $ go install -a -gcflags="-N -l" std
        $ go run run.go -- checkbce.go
      
      This change fixes the noopt builder breakage by removing the bce test
      dependency on encoding/binary by defining a local Uint64() function to
      be used in the test.
      
      Change-Id: Ife71aab662001442e715c32a0b7d758349a63ff1
      Reviewed-on: https://go-review.googlesource.com/136855Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      6054fef1
    • Eugene Kalinin's avatar
      mime: derestrict value backslash unescaping for all encodings · 3ff28f7d
      Eugene Kalinin authored
      Previously consumeValue performed consumption of "unnecessary backslashes"
      strictly for non-ASCII and non-token runes. Thus if it encountered a
      backslash before a rune that is out of the ASCII range, it would
      erroneously skip that backslash. This change now derestricts
      "unnecessary backslash" unescaping for all character encodings,
      using "isTSpecial" instead of "!isTokenChar".
      This change is a follow-up of CL 32175.
      
      Fixes #25888
      
      Change-Id: I5e02bbf9c42f753a6eb31399b8d20315af991490
      Reviewed-on: https://go-review.googlesource.com/119795Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      3ff28f7d
  2. 23 Sep, 2018 2 commits
  3. 20 Sep, 2018 8 commits
  4. 19 Sep, 2018 9 commits
    • Joe Tsai's avatar
      fmt: fix usage of sync.Pool · e82d152e
      Joe Tsai authored
      The current usage of sync.Pool is leaky because it stores an arbitrary
      sized buffer into the pool. However, sync.Pool assumes that all items in the
      pool are interchangeable from a memory cost perspective. Due to the unbounded
      size of a buffer that may be added, it is possible for the pool to eventually
      pin arbitrarily large amounts of memory in a live-lock situation.
      
      As a simple fix, we just set a maximum size that we permit back into the pool.
      
      We do not need to fix the use of a sync.Pool in scan.go since the free method
      has always enforced a maximum capacity since the first commit of the scan logic.
      
      Fixes #27740
      Updates #23199
      
      Change-Id: I875278f7dba42625405df36df3e9b028252ce5e3
      Reviewed-on: https://go-review.googlesource.com/136116Reviewed-by: 's avatarBryan C. Mills <bcmills@google.com>
      Run-TryBot: Bryan C. Mills <bcmills@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      e82d152e
    • Bryan C. Mills's avatar
      cmd/go: write an hgrc file in TestMoveHG · 620bd5a3
      Bryan C. Mills authored
      Some variants of Mercurial respond differently to “permission denied” errors
      than to “file not found”, and we set HOME to point to an absolute path that may
      produce the former instead of the latter.
      
      To discourage Mercurial from trying HOME, give it an explicit (empty)
      configuration in the working directory instead.
      
      Change-Id: I82ae99a6892bba7fc3d41b77209ca181d24315e2
      Reviewed-on: https://go-review.googlesource.com/136135Reviewed-by: 's avatarIan Lance Taylor <iant@golang.org>
      Run-TryBot: Ian Lance Taylor <iant@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      620bd5a3
    • Tim Xu's avatar
      clean: clean mod cache should respect "-n" option. · f40dc5cb
      Tim Xu authored
      Clean mod cache should print remove commands and not run them when with set "-n" option.
      Fixes #27458.
      
      Change-Id: I97242cb40c062b347784cdb61653c84a3a7eab44
      GitHub-Last-Rev: 5a6f10cad8c5f2c3916a74ca5eea27b1fdd1dc38
      GitHub-Pull-Request: golang/go#27710
      Reviewed-on: https://go-review.googlesource.com/135695
      Run-TryBot: Bryan C. Mills <bcmills@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarBryan C. Mills <bcmills@google.com>
      f40dc5cb
    • Iskander Sharipov's avatar
      cmd/compile/internal/gc: remove redundant for label · 88c1fd64
      Iskander Sharipov authored
      Since there are no nested loops and/or switches,
      loop label can be removed and "bare continue" can be used.
      
      Change-Id: Id642a0859299e4470af544d59884fec51dbb31ee
      Reviewed-on: https://go-review.googlesource.com/135837Reviewed-by: 's avatarKeith Randall <khr@golang.org>
      Run-TryBot: Iskander Sharipov <iskander.sharipov@intel.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      88c1fd64
    • Iskander Sharipov's avatar
      cmd/compile/internal/gc: handle arith ops in samesafeexpr · c03d0e4f
      Iskander Sharipov authored
      Teach samesafeexpr to handle arithmetic unary and binary ops.
      
      It makes map lookup optimization possible in
      
      	m[k+1] = append(m[k+1], ...)
      	m[-k] = append(m[-k], ...)
      	... etc
      
      Does not cover "+" for strings (concatenation).
      
      Change-Id: Ibbb16ac3faf176958da344be1471b06d7cf33a6c
      Reviewed-on: https://go-review.googlesource.com/135795
      Run-TryBot: Iskander Sharipov <iskander.sharipov@intel.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarKeith Randall <khr@golang.org>
      c03d0e4f
    • Iskander Sharipov's avatar
      cmd/compile/internal/ssa: fix `a == a` to `a == b` · 9850ad04
      Iskander Sharipov authored
      Change-Id: I4ee4f702e1bfc9ad9ea899c255104d5e18cf2c96
      Reviewed-on: https://go-review.googlesource.com/135838Reviewed-by: 's avatarKeith Randall <khr@golang.org>
      Run-TryBot: Iskander Sharipov <iskander.sharipov@intel.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      9850ad04
    • Ben Shi's avatar
      cmd/compile: optimize AMD64's bit wise operation · c6bf9a81
      Ben Shi authored
      Currently "arr[idx] |= 0x80" is compiled to MOVLload->BTSL->MOVLstore.
      And this CL optimizes it to a single BTSLconstmodify. Other bit wise
      operations with a direct memory operand are also implemented.
      
      1. The size of the executable bin/go decreases about 4KB, and the total size
      of pkg/linux_amd64 (excluding cmd/compile) decreases about 0.6KB.
      
      2. There a little improvement in the go1 benchmark test (excluding noise).
      name                     old time/op    new time/op    delta
      BinaryTree17-4              2.66s ± 4%     2.66s ± 3%    ~     (p=0.596 n=49+49)
      Fannkuch11-4                2.38s ± 2%     2.32s ± 2%  -2.69%  (p=0.000 n=50+50)
      FmtFprintfEmpty-4          42.7ns ± 4%    43.2ns ± 7%  +1.31%  (p=0.009 n=50+50)
      FmtFprintfString-4         71.0ns ± 5%    72.0ns ± 3%  +1.33%  (p=0.000 n=50+50)
      FmtFprintfInt-4            80.7ns ± 4%    80.6ns ± 3%    ~     (p=0.931 n=50+50)
      FmtFprintfIntInt-4          125ns ± 3%     126ns ± 4%    ~     (p=0.051 n=50+50)
      FmtFprintfPrefixedInt-4     158ns ± 1%     142ns ± 3%  -9.84%  (p=0.000 n=36+50)
      FmtFprintfFloat-4           215ns ± 4%     212ns ± 4%  -1.23%  (p=0.002 n=50+50)
      FmtManyArgs-4               519ns ± 3%     510ns ± 3%  -1.77%  (p=0.000 n=50+50)
      GobDecode-4                6.49ms ± 6%    6.52ms ± 5%    ~     (p=0.866 n=50+50)
      GobEncode-4                5.93ms ± 8%    6.01ms ± 7%    ~     (p=0.076 n=50+50)
      Gzip-4                      222ms ± 4%     224ms ± 8%  +0.80%  (p=0.001 n=50+50)
      Gunzip-4                   36.6ms ± 5%    36.4ms ± 4%    ~     (p=0.093 n=50+50)
      HTTPClientServer-4         59.1µs ± 1%    58.9µs ± 2%  -0.24%  (p=0.039 n=49+48)
      JSONEncode-4               9.23ms ± 4%    9.21ms ± 5%    ~     (p=0.244 n=50+50)
      JSONDecode-4               48.8ms ± 4%    48.7ms ± 4%    ~     (p=0.653 n=50+50)
      Mandelbrot200-4            3.81ms ± 4%    3.80ms ± 3%    ~     (p=0.834 n=50+50)
      GoParse-4                  3.20ms ± 5%    3.19ms ± 5%    ~     (p=0.494 n=50+50)
      RegexpMatchEasy0_32-4      78.1ns ± 2%    77.4ns ± 3%  -0.86%  (p=0.005 n=50+50)
      RegexpMatchEasy0_1K-4       233ns ± 3%     233ns ± 3%    ~     (p=0.074 n=50+50)
      RegexpMatchEasy1_32-4      74.2ns ± 3%    73.4ns ± 3%  -1.06%  (p=0.000 n=50+50)
      RegexpMatchEasy1_1K-4       369ns ± 2%     364ns ± 4%  -1.41%  (p=0.000 n=36+50)
      RegexpMatchMedium_32-4      109ns ± 4%     107ns ± 3%  -2.06%  (p=0.001 n=50+50)
      RegexpMatchMedium_1K-4     31.5µs ± 3%    30.8µs ± 3%  -2.20%  (p=0.000 n=50+50)
      RegexpMatchHard_32-4       1.57µs ± 3%    1.56µs ± 2%  -0.57%  (p=0.016 n=50+50)
      RegexpMatchHard_1K-4       47.4µs ± 4%    47.0µs ± 3%  -0.82%  (p=0.008 n=50+50)
      Revcomp-4                   414ms ± 7%     412ms ± 7%    ~     (p=0.285 n=50+50)
      Template-4                 64.3ms ± 4%    62.7ms ± 3%  -2.44%  (p=0.000 n=50+50)
      TimeParse-4                 316ns ± 3%     313ns ± 3%    ~     (p=0.122 n=50+50)
      TimeFormat-4                291ns ± 3%     293ns ± 3%  +0.80%  (p=0.001 n=50+50)
      [Geo mean]                 46.5µs         46.2µs       -0.81%
      
      name                     old speed      new speed      delta
      GobDecode-4               118MB/s ± 6%   118MB/s ± 5%    ~     (p=0.863 n=50+50)
      GobEncode-4               130MB/s ± 9%   128MB/s ± 8%    ~     (p=0.076 n=50+50)
      Gzip-4                   87.4MB/s ± 4%  86.8MB/s ± 7%  -0.78%  (p=0.002 n=50+50)
      Gunzip-4                  531MB/s ± 5%   533MB/s ± 4%    ~     (p=0.093 n=50+50)
      JSONEncode-4              210MB/s ± 4%   211MB/s ± 5%    ~     (p=0.247 n=50+50)
      JSONDecode-4             39.8MB/s ± 4%  39.9MB/s ± 4%    ~     (p=0.654 n=50+50)
      GoParse-4                18.1MB/s ± 5%  18.2MB/s ± 5%    ~     (p=0.493 n=50+50)
      RegexpMatchEasy0_32-4     410MB/s ± 2%   413MB/s ± 3%  +0.86%  (p=0.004 n=50+50)
      RegexpMatchEasy0_1K-4    4.39GB/s ± 3%  4.38GB/s ± 3%    ~     (p=0.063 n=50+50)
      RegexpMatchEasy1_32-4     432MB/s ± 3%   436MB/s ± 3%  +1.07%  (p=0.000 n=50+50)
      RegexpMatchEasy1_1K-4    2.77GB/s ± 2%  2.81GB/s ± 4%  +1.46%  (p=0.000 n=36+50)
      RegexpMatchMedium_32-4   9.16MB/s ± 3%  9.35MB/s ± 4%  +2.09%  (p=0.001 n=50+50)
      RegexpMatchMedium_1K-4   32.5MB/s ± 3%  33.2MB/s ± 3%  +2.25%  (p=0.000 n=50+50)
      RegexpMatchHard_32-4     20.4MB/s ± 3%  20.5MB/s ± 2%  +0.56%  (p=0.017 n=50+50)
      RegexpMatchHard_1K-4     21.6MB/s ± 4%  21.8MB/s ± 3%  +0.83%  (p=0.008 n=50+50)
      Revcomp-4                 613MB/s ± 4%   618MB/s ± 7%    ~     (p=0.152 n=48+50)
      Template-4               30.2MB/s ± 4%  30.9MB/s ± 3%  +2.49%  (p=0.000 n=50+50)
      [Geo mean]                127MB/s        128MB/s       +0.64%
      
      Change-Id: If405198283855d75697f66cf894b2bef458f620e
      Reviewed-on: https://go-review.googlesource.com/135422Reviewed-by: 's avatarKeith Randall <khr@golang.org>
      c6bf9a81
    • Iskander Sharipov's avatar
      cmd/compile/internal/gc: simplify `x = x <op> y` to `x <op>= y` · 713edf8b
      Iskander Sharipov authored
      Change-Id: I5afba2c10372252be4b65dae7a95461722de904f
      Reviewed-on: https://go-review.googlesource.com/135835Reviewed-by: 's avatarKeith Randall <khr@golang.org>
      Reviewed-by: 's avatarRobert Griesemer <gri@golang.org>
      Run-TryBot: Iskander Sharipov <iskander.sharipov@intel.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      713edf8b
    • Ben Shi's avatar
      cmd/compile: simplify AMD64's assembly generator · d17ac291
      Ben Shi authored
      AMD64's ADDQconstmodify/ADDLconstmodify have similar logic with
      other constmodify like operators, but seperated case statements.
      This CL simplify them with a fallthrough.
      
      Change-Id: Ia73ffeaddc5080182f68c06c9d9b48fe32a14e38
      Reviewed-on: https://go-review.googlesource.com/135855
      Run-TryBot: Ben Shi <powerman1st@163.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarKeith Randall <khr@golang.org>
      d17ac291
  5. 18 Sep, 2018 4 commits