1. 18 Apr, 2016 5 commits
    • David Crawshaw's avatar
      cmd/compile, etc: use name offset in method tables · 95df0c6a
      David Crawshaw authored
      Introduce and start using nameOff for two encoded names. This pair
      of changes is best done together because the linker's method decoder
      expects the method layouts to match.
      
      Precursor to converting all existing name and *string fields to
      nameOff.
      
      linux/amd64:
      	cmd/go:  -45KB (0.5%)
      	jujud:  -389KB (0.6%)
      
      linux/amd64 PIE:
      	cmd/go: -170KB (1.4%)
      	jujud:  -1.5MB (1.8%)
      
      For #6853.
      
      Change-Id: Ia044423f010fb987ce070b94c46a16fc78666ff6
      Reviewed-on: https://go-review.googlesource.com/21396Reviewed-by: 's avatarIan Lance Taylor <iant@golang.org>
      95df0c6a
    • David Crawshaw's avatar
      cmd/link: use -znocopyreloc when dynamic linking · 3c8d6af8
      David Crawshaw authored
      On ARM, use the gold linker to avoid copy relocations.
      https://sourceware.org/bugzilla/show_bug.cgi?id=19962
      
      Change-Id: Icf82a38d39495d4518812713b957a03a6652c728
      Reviewed-on: https://go-review.googlesource.com/22141
      Run-TryBot: David Crawshaw <crawshaw@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarIan Lance Taylor <iant@golang.org>
      3c8d6af8
    • Andrew Gerrand's avatar
      cmd/go: mention that _test.go files are ignored when building · 135572eb
      Andrew Gerrand authored
      Fixes #15315
      
      Change-Id: I8fea31507a5f83df8a86fb067f1b11d90133dc09
      Reviewed-on: https://go-review.googlesource.com/22180Reviewed-by: 's avatarChris Broadfoot <cbro@golang.org>
      135572eb
    • Klaus Post's avatar
      compress/flate: use uncompressed if dynamic encoding is larger · 6ec481b0
      Klaus Post authored
      This adds size calculation to "dynamic" writes.
      This ensures that if dynamic Huffman encoding is bigger,
      or only slightly smaller than raw data, the block is written
      uncompressed.
      
      To minimize the code duplication of this function, the
      size calculation has been moved to separate functions.
      
      Since I was modifying these calculations, I changed "int64"
      size calculations to "int". Blocks are of very limited size,
      so there is not any risk of overflows.
      This should mainly improve 32 bit performance, but amd64 also
      gets a slight boost:
      
      name                       old time/op    new time/op    delta
      EncodeDigitsHuffman1e4-8     49.9µs ± 1%    49.3µs ± 1%  -1.21%  (p=0.000 n=10+10)
      EncodeDigitsHuffman1e5-8      476µs ± 1%     471µs ± 3%    ~     (p=0.218 n=10+10)
      EncodeDigitsHuffman1e6-8     4.80ms ± 2%    4.75ms ± 2%    ~      (p=0.243 n=10+9)
      EncodeDigitsSpeed1e4-8        305µs ± 3%     300µs ± 1%  -1.86%  (p=0.005 n=10+10)
      EncodeDigitsSpeed1e5-8       3.67ms ± 2%    3.58ms ± 1%  -2.29%    (p=0.000 n=9+8)
      EncodeDigitsSpeed1e6-8       38.3ms ± 2%    37.0ms ± 1%  -3.45%    (p=0.000 n=9+9)
      EncodeDigitsDefault1e4-8      361µs ± 2%     353µs ± 1%  -2.21%  (p=0.000 n=10+10)
      EncodeDigitsDefault1e5-8     5.24ms ± 2%    5.19ms ± 2%    ~     (p=0.105 n=10+10)
      EncodeDigitsDefault1e6-8     56.5ms ± 3%    55.1ms ± 1%  -2.42%  (p=0.001 n=10+10)
      EncodeDigitsCompress1e4-8     362µs ± 2%     358µs ± 2%    ~     (p=0.123 n=10+10)
      EncodeDigitsCompress1e5-8    5.26ms ± 3%    5.20ms ± 1%    ~     (p=0.089 n=10+10)
      EncodeDigitsCompress1e6-8    56.0ms ± 4%    55.0ms ± 1%    ~      (p=0.065 n=10+9)
      EncodeTwainHuffman1e4-8      70.9µs ± 3%    67.6µs ± 2%  -4.59%  (p=0.000 n=10+10)
      EncodeTwainHuffman1e5-8       556µs ± 2%     533µs ± 1%  -4.20%  (p=0.000 n=10+10)
      EncodeTwainHuffman1e6-8      5.54ms ± 3%    5.29ms ± 1%  -4.37%   (p=0.000 n=10+9)
      EncodeTwainSpeed1e4-8         294µs ± 3%     293µs ± 1%    ~      (p=0.965 n=10+8)
      EncodeTwainSpeed1e5-8        2.59ms ± 2%    2.56ms ± 1%    ~     (p=0.353 n=10+10)
      EncodeTwainSpeed1e6-8        25.6ms ± 1%    24.9ms ± 1%  -2.62%   (p=0.000 n=9+10)
      EncodeTwainDefault1e4-8       419µs ± 2%     417µs ± 1%    ~      (p=0.780 n=10+9)
      EncodeTwainDefault1e5-8      6.23ms ± 4%    6.16ms ± 1%    ~     (p=0.218 n=10+10)
      EncodeTwainDefault1e6-8      66.2ms ± 2%    65.7ms ± 1%    ~     (p=0.529 n=10+10)
      EncodeTwainCompress1e4-8      426µs ± 1%     428µs ± 2%    ~      (p=0.549 n=9+10)
      EncodeTwainCompress1e5-8     6.80ms ± 1%    6.85ms ± 3%    ~      (p=0.156 n=9+10)
      EncodeTwainCompress1e6-8     74.6ms ± 3%    73.8ms ± 2%    ~     (p=0.280 n=10+10)
      
      name                       old speed      new speed      delta
      EncodeDigitsHuffman1e4-8    200MB/s ± 1%   203MB/s ± 1%  +1.23%  (p=0.000 n=10+10)
      EncodeDigitsHuffman1e5-8    210MB/s ± 1%   212MB/s ± 3%    ~      (p=0.356 n=10+9)
      EncodeDigitsHuffman1e6-8    208MB/s ± 2%   210MB/s ± 2%    ~      (p=0.243 n=10+9)
      EncodeDigitsSpeed1e4-8     32.8MB/s ± 3%  33.4MB/s ± 1%  +1.88%  (p=0.005 n=10+10)
      EncodeDigitsSpeed1e5-8     27.2MB/s ± 2%  27.9MB/s ± 1%  +2.60%   (p=0.000 n=10+8)
      EncodeDigitsSpeed1e6-8     26.1MB/s ± 2%  27.0MB/s ± 1%  +3.56%    (p=0.000 n=9+9)
      EncodeDigitsDefault1e4-8   27.7MB/s ± 2%  28.4MB/s ± 1%  +2.24%  (p=0.000 n=10+10)
      EncodeDigitsDefault1e5-8   19.1MB/s ± 2%  19.3MB/s ± 2%    ~     (p=0.101 n=10+10)
      EncodeDigitsDefault1e6-8   17.7MB/s ± 3%  18.1MB/s ± 1%  +2.46%  (p=0.001 n=10+10)
      EncodeDigitsCompress1e4-8  27.6MB/s ± 2%  27.9MB/s ± 2%    ~     (p=0.119 n=10+10)
      EncodeDigitsCompress1e5-8  19.0MB/s ± 3%  19.2MB/s ± 1%    ~     (p=0.085 n=10+10)
      EncodeDigitsCompress1e6-8  17.9MB/s ± 4%  18.1MB/s ± 3%    ~     (p=0.110 n=10+10)
      EncodeTwainHuffman1e4-8     141MB/s ± 3%   148MB/s ± 2%  +4.79%  (p=0.000 n=10+10)
      EncodeTwainHuffman1e5-8     180MB/s ± 2%   188MB/s ± 1%  +4.38%  (p=0.000 n=10+10)
      EncodeTwainHuffman1e6-8     181MB/s ± 3%   189MB/s ± 1%  +4.54%   (p=0.000 n=10+9)
      EncodeTwainSpeed1e4-8      34.0MB/s ± 3%  34.1MB/s ± 1%    ~      (p=0.948 n=10+8)
      EncodeTwainSpeed1e5-8      38.7MB/s ± 2%  39.0MB/s ± 1%    ~     (p=0.353 n=10+10)
      EncodeTwainSpeed1e6-8      39.1MB/s ± 1%  40.1MB/s ± 1%  +2.68%   (p=0.000 n=9+10)
      EncodeTwainDefault1e4-8    23.9MB/s ± 2%  24.0MB/s ± 1%    ~      (p=0.734 n=10+9)
      EncodeTwainDefault1e5-8    16.0MB/s ± 4%  16.2MB/s ± 1%    ~     (p=0.210 n=10+10)
      EncodeTwainDefault1e6-8    15.1MB/s ± 2%  15.2MB/s ± 1%    ~     (p=0.515 n=10+10)
      EncodeTwainCompress1e4-8   23.5MB/s ± 1%  23.4MB/s ± 2%    ~      (p=0.536 n=9+10)
      EncodeTwainCompress1e5-8   14.7MB/s ± 1%  14.6MB/s ± 3%    ~      (p=0.138 n=9+10)
      EncodeTwainCompress1e6-8   13.4MB/s ± 3%  13.5MB/s ± 2%    ~     (p=0.239 n=10+10)
      
      This improves "random input" to the dynamic writer, which is why the test data is
      updated. The output size goes from 1051 to 1005 bytes.
      
      Change-Id: I3ee11d2d2511b277d2dd16734aeea07c98bca450
      Reviewed-on: https://go-review.googlesource.com/21757Reviewed-by: 's avatarJoe Tsai <joetsai@digital-static.net>
      Run-TryBot: Joe Tsai <joetsai@digital-static.net>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarNigel Tao <nigeltao@golang.org>
      6ec481b0
    • David Symonds's avatar
      doc: link to iant's generics proposal from the FAQ. · 3629814c
      David Symonds authored
      Updates #15292.
      
      Change-Id: I229f66c2a41ae0738225f2ba7a574478f5d6d620
      Reviewed-on: https://go-review.googlesource.com/22163Reviewed-by: 's avatarAndrew Gerrand <adg@golang.org>
      3629814c
  2. 17 Apr, 2016 6 commits
  3. 16 Apr, 2016 10 commits
  4. 15 Apr, 2016 18 commits
    • Morten Siebuhr's avatar
      net: fix looking up port numbers starting with numbers. · 002c69e0
      Morten Siebuhr authored
      LookupPort() correctly parses service names beginning with numerals by
      implementing a new parser, mainly taken from strconv/atoi.go.
      
      Also testes some previously undefined behaviours around port numbers
      larger than 65535 that previously could lead to some tests fail with
      EOPNOTSUPP (Operation Not Supported).
      
      Fixes #14322
      
      Change-Id: I1b90dbed434494723e261d84e73fe705e5c0507a
      Reviewed-on: https://go-review.googlesource.com/19720
      Run-TryBot: Mikio Hara <mikioh.mikioh@gmail.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarMikio Hara <mikioh.mikioh@gmail.com>
      002c69e0
    • Brad Fitzpatrick's avatar
      net: context plumbing, add Dialer.DialContext · b6b4004d
      Brad Fitzpatrick authored
      For #12580 (http.Transport tracing/analytics)
      Updates #13021
      
      Change-Id: I126e494a7bd872e42c388ecb58499ecbf0f014cc
      Reviewed-on: https://go-review.googlesource.com/22101
      Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarIan Lance Taylor <iant@golang.org>
      Reviewed-by: 's avatarMikio Hara <mikioh.mikioh@gmail.com>
      b6b4004d
    • Ian Lance Taylor's avatar
      cmd/cgo: add missing formatting directive in error message · 1d0977a1
      Ian Lance Taylor authored
      Fixes #15310.
      
      Change-Id: I588b3c630a20a6878f7cd00f9af29b1dd8a4abf6
      Reviewed-on: https://go-review.googlesource.com/22100
      Run-TryBot: Ian Lance Taylor <iant@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      1d0977a1
    • Matthew Dempsky's avatar
      cmd/compile: remove dead flags · d57a118a
      Matthew Dempsky authored
      For some time now, the -d flag has been used to control various named
      debug options, rather than setting Debug['d']. Consequently, that
      means dflag() always returns false, which means the -y flag is also
      useless.
      
      Similarly, Debug['L'] is never used anywhere, so the -L flag can be
      dropped too.
      
      Change-Id: I4bb12454e462410115ec4f5565facf76c5c2f255
      Reviewed-on: https://go-review.googlesource.com/22121Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      d57a118a
    • Matthew Dempsky's avatar
      archive/tar: style nit: s/nano_buf/nanoBuf/ · 75c079cb
      Matthew Dempsky authored
      Pointed out during review of golang.org/cl/22104.
      
      Change-Id: If8842e7f8146441e918ec6a2b6e893b7cf88615c
      Reviewed-on: https://go-review.googlesource.com/22120
      Run-TryBot: Matthew Dempsky <mdempsky@google.com>
      Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      75c079cb
    • Mikio Hara's avatar
      runtime: don't always unblock all signals on dragonfly, freebsd and openbsd · 6f59ccb0
      Mikio Hara authored
      https://golang.org/cl/10173 intrduced msigsave, ensureSigM and
      _SigUnblock but didn't enable the new signal save/restore mechanism for
      SIG{HUP,INT,QUIT,ABRT,TERM} on DragonFly BSD, FreeBSD and OpenBSD.
      
      At present, it looks like they have the implementation. This change
      enables the new mechanism on DragonFly BSD, FreeBSD and OpenBSD the same
      as Darwin, NetBSD.
      
      Change-Id: Ifb4b4743b3b4f50bfcdc7cf1fe1b59c377fa2a41
      Reviewed-on: https://go-review.googlesource.com/18657
      Run-TryBot: Mikio Hara <mikioh.mikioh@gmail.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarIan Lance Taylor <iant@golang.org>
      6f59ccb0
    • Martin Möhrmann's avatar
      fmt: optimize struct layout and intbuf size · 7345fa54
      Martin Möhrmann authored
      Move boolean fields to the end of the pp struct for better packing.
      
      Increase the fmt.intbuf size to leave no padding space unused
      at the end of the fmt struct on 32 bit architectures.
      
      The size of the pp struct on amd64 is decreased from 192 byte
      to 184 byte and on 386 from 132 byte to 128 byte.
      
      Simplify buffer size calculation in fmt_integer.
      
      Consolidate test cases for intbuf overflow checks.
      
      amd64 Haswell:
      
      name                     old time/op  new time/op  delta
      SprintfPadding-2          227ns ± 2%   227ns ± 1%    ~     (p=0.941 n=25+25)
      SprintfEmpty-2           38.4ns ± 6%  35.8ns ±23%  -6.71%  (p=0.030 n=24+25)
      SprintfString-2           100ns ± 0%   101ns ± 0%  +1.00%  (p=0.000 n=19+18)
      SprintfTruncateString-2   142ns ± 1%   142ns ± 1%  +0.37%  (p=0.028 n=25+25)
      SprintfQuoteString-2      397ns ± 0%   393ns ± 0%  -0.82%  (p=0.000 n=21+24)
      SprintfInt-2              101ns ± 2%   102ns ± 4%    ~     (p=0.159 n=21+24)
      SprintfIntInt-2           155ns ± 3%   155ns ± 3%    ~     (p=0.934 n=25+25)
      SprintfPrefixedInt-2      252ns ± 2%   251ns ± 2%    ~     (p=0.198 n=25+25)
      SprintfFloat-2            184ns ± 3%   179ns ± 2%  -3.07%  (p=0.000 n=24+25)
      SprintfComplex-2          532ns ± 2%   535ns ± 2%  +0.64%  (p=0.046 n=25+24)
      SprintfBoolean-2         90.5ns ± 3%  91.6ns ± 2%  +1.17%  (p=0.000 n=22+22)
      SprintfHexString-2        164ns ± 2%   165ns ± 3%    ~     (p=0.066 n=25+25)
      SprintfHexBytes-2         171ns ± 3%   170ns ± 3%    ~     (p=0.941 n=25+24)
      SprintfBytes-2            320ns ± 1%   313ns ± 1%  -2.31%  (p=0.000 n=24+21)
      SprintfStringer-2         347ns ± 2%   348ns ± 2%    ~     (p=0.426 n=24+24)
      SprintfStructure-2        753ns ± 1%   742ns ± 1%  -1.49%  (p=0.000 n=24+25)
      FprintInt-2               145ns ± 0%   144ns ± 0%  -0.69%  (p=0.000 n=24+23)
      FprintfBytes-2            163ns ± 0%   163ns ± 0%  -0.27%  (p=0.000 n=25+25)
      FprintIntNoAlloc-2        108ns ± 0%   105ns ± 0%  -2.78%  (p=0.000 n=25+2
      
      386 Haswell:
      
      name                     old time/op  new time/op  delta
      SprintfPadding-2          426ns ± 2%   422ns ± 1%  -0.89%  (p=0.000 n=25+24)
      SprintfEmpty-2           24.6ns ± 1%  24.5ns ± 0%  -0.39%  (p=0.000 n=22+15)
      SprintfString-2          99.1ns ± 3%  95.6ns ± 0%  -3.52%  (p=0.000 n=25+24)
      SprintfTruncateString-2   156ns ± 4%   153ns ± 1%  -1.65%  (p=0.000 n=24+23)
      SprintfQuoteString-2      500ns ± 2%   493ns ± 1%  -1.49%  (p=0.000 n=25+24)
      SprintfInt-2             92.6ns ± 9%  88.3ns ± 1%  -4.72%  (p=0.000 n=25+25)
      SprintfIntInt-2           143ns ± 7%   137ns ± 2%  -4.01%  (p=0.000 n=23+25)
      SprintfPrefixedInt-2      268ns ±19%   264ns ±16%    ~     (p=0.826 n=24+24)
      SprintfFloat-2            242ns ± 4%   246ns ± 2%  +1.60%  (p=0.000 n=25+25)
      SprintfComplex-2         1.04µs ± 3%  1.03µs ± 1%  -0.89%  (p=0.026 n=25+25)
      SprintfBoolean-2         82.2ns ± 9%  80.7ns ± 2%    ~     (p=0.163 n=24+24)
      SprintfHexString-2        240ns ± 5%   224ns ± 2%  -6.94%  (p=0.000 n=25+25)
      SprintfHexBytes-2         245ns ± 3%   234ns ± 2%  -4.55%  (p=0.000 n=25+25)
      SprintfBytes-2            432ns ±13%   419ns ± 2%    ~     (p=0.081 n=23+25)
      SprintfStringer-2         356ns ± 4%   356ns ± 4%    ~     (p=0.988 n=25+25)
      SprintfStructure-2        968ns ± 5%   948ns ± 2%  -2.11%  (p=0.000 n=25+25)
      FprintInt-2               206ns ± 0%   201ns ± 0%  -2.43%  (p=0.000 n=25+21)
      FprintfBytes-2            187ns ± 1%   187ns ± 1%    ~     (p=0.420 n=25+25)
      FprintIntNoAlloc-2        173ns ± 0%   168ns ± 0%  -2.89%  (p=0.000 n=25+2
      
      amd64 Ivy Bridge:
      
      name                     old time/op  new time/op  delta
      SprintfPadding-4          203ns ± 4%   210ns ± 8%  +3.27%  (p=0.000 n=23+25)
      SprintfEmpty-4           24.4ns ± 2%  24.4ns ± 3%    ~     (p=0.487 n=24+25)
      SprintfString-4          92.4ns ± 2%  93.1ns ± 3%    ~     (p=0.087 n=22+25)
      SprintfTruncateString-4   137ns ± 3%   136ns ± 2%  -1.02%  (p=0.002 n=25+25)
      SprintfQuoteString-4      378ns ± 1%   373ns ± 1%  -1.32%  (p=0.000 n=24+22)
      SprintfInt-4             89.9ns ± 3%  90.3ns ± 4%    ~     (p=0.444 n=25+25)
      SprintfIntInt-4           137ns ± 4%   138ns ± 3%    ~     (p=0.112 n=25+23)
      SprintfPrefixedInt-4      155ns ±14%   154ns ±14%    ~     (p=0.791 n=25+25)
      SprintfFloat-4            154ns ± 2%   154ns ± 3%    ~     (p=0.789 n=25+25)
      SprintfComplex-4          396ns ± 2%   402ns ± 3%  +1.53%  (p=0.001 n=23+25)
      SprintfBoolean-4         71.0ns ± 3%  71.2ns ± 2%    ~     (p=0.515 n=25+24)
      SprintfHexString-4        156ns ± 3%   150ns ± 5%  -3.69%  (p=0.000 n=24+25)
      SprintfHexBytes-4         154ns ± 3%   157ns ± 5%  +1.72%  (p=0.003 n=24+25)
      SprintfBytes-4            297ns ± 4%   291ns ± 3%  -1.86%  (p=0.000 n=25+25)
      SprintfStringer-4         275ns ± 3%   265ns ± 3%  -3.51%  (p=0.000 n=25+25)
      SprintfStructure-4        878ns ± 2%   823ns ± 2%  -6.21%  (p=0.000 n=25+22)
      FprintInt-4               145ns ± 1%   147ns ± 2%  +0.94%  (p=0.001 n=23+25)
      FprintfBytes-4            166ns ± 1%   168ns ± 2%  +0.81%  (p=0.000 n=24+25)
      FprintIntNoAlloc-4        113ns ± 2%   109ns ± 2%  -3.79%  (p=0.000 n=24+25)
      
      386 Ivy Bridge:
      
      name                     old time/op  new time/op  delta
      SprintfPadding-4          353ns ± 4%   354ns ± 4%    ~     (p=0.769 n=25+24)
      SprintfEmpty-4           21.9ns ± 6%  21.1ns ± 3%  -3.45%  (p=0.000 n=24+25)
      SprintfString-4          94.7ns ± 1%  93.0ns ± 3%  -1.77%  (p=0.000 n=24+23)
      SprintfTruncateString-4   150ns ± 2%   147ns ± 0%  -1.71%  (p=0.000 n=25+21)
      SprintfQuoteString-4      472ns ± 1%   479ns ± 1%  +1.48%  (p=0.000 n=25+23)
      SprintfInt-4             87.0ns ± 2%  85.3ns ± 2%  -1.95%  (p=0.000 n=25+25)
      SprintfIntInt-4           137ns ± 2%   134ns ± 2%  -1.97%  (p=0.000 n=24+23)
      SprintfPrefixedInt-4      166ns ± 8%   161ns ± 8%  -3.07%  (p=0.023 n=24+24)
      SprintfFloat-4            226ns ± 1%   219ns ± 1%  -2.97%  (p=0.000 n=24+25)
      SprintfComplex-4          867ns ± 1%   784ns ± 1%  -9.47%  (p=0.000 n=24+23)
      SprintfBoolean-4         77.2ns ± 2%  76.0ns ± 2%  -1.63%  (p=0.000 n=25+25)
      SprintfHexString-4        212ns ± 2%   214ns ± 2%  +0.96%  (p=0.000 n=25+25)
      SprintfHexBytes-4         221ns ± 2%   218ns ± 1%  -1.42%  (p=0.000 n=25+24)
      SprintfBytes-4            423ns ± 3%   417ns ± 1%  -1.49%  (p=0.000 n=25+24)
      SprintfStringer-4         306ns ± 3%   298ns ± 3%  -2.57%  (p=0.000 n=24+25)
      SprintfStructure-4       1.00µs ± 2%  0.98µs ± 2%  -1.34%  (p=0.000 n=24+24)
      FprintInt-4               202ns ± 3%   197ns ± 2%  -2.04%  (p=0.000 n=25+25)
      FprintfBytes-4            186ns ± 2%   184ns ± 2%  -0.88%  (p=0.000 n=24+25)
      FprintIntNoAlloc-4        170ns ± 2%   166ns ± 2%  -2.26%  (p=0.000 n=24+25)
      
      Change-Id: I46e62bf8b6afa90a24f75b40f1d354b2084b910b
      Reviewed-on: https://go-review.googlesource.com/20984
      Run-TryBot: Rob Pike <r@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarRob Pike <r@golang.org>
      7345fa54
    • Conrad Irwin's avatar
      net/mail: allow utf-8 in ParseAddress · 7f52b439
      Conrad Irwin authored
      The existing implementation correctly supported RFC 5322, this
      change adds support for UTF-8 while parsing as specified by
      RFC 6532. The serialization code is unchanged, so emails created
      by go remain compatible with very legacy systems.
      
      Fixes #14260
      
      Change-Id: Ib57e510f5834d273605e1892679f2df19ea931b1
      Reviewed-on: https://go-review.googlesource.com/19687
      Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarAlexandre Cesaro <alexandre.cesaro@gmail.com>
      Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      7f52b439
    • Ilya Tocar's avatar
      hash/adler32: Unroll loop for extra performance. · 89a1f028
      Ilya Tocar authored
      name         old time/op    new time/op    delta
      Adler32KB-4     592ns ± 0%     447ns ± 0%  -24.49%  (p=0.000 n=19+20)
      
      name         old speed      new speed      delta
      Adler32KB-4  1.73GB/s ± 0%  2.29GB/s ± 0%  +32.41%  (p=0.000 n=20+20)
      
      Change-Id: I38990aa66ca4452a886200018a57c0bc3af30717
      Reviewed-on: https://go-review.googlesource.com/21880Reviewed-by: 's avatarKeith Randall <khr@golang.org>
      Run-TryBot: Ilya Tocar <ilya.tocar@intel.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      89a1f028
    • Martin Möhrmann's avatar
      image/color: order color computation to match rgb · 8955745b
      Martin Möhrmann authored
      The order of computation was switched unintentionally
      in https://go-review.googlesource.com/21910.
      
      Revert the order to first compute g then b.
      
      Change-Id: I8cedb5e45fbad2679246839f609bcac4f9052403
      Reviewed-on: https://go-review.googlesource.com/22016Reviewed-by: 's avatarNigel Tao <nigeltao@golang.org>
      8955745b
    • Matthew Dempsky's avatar
      all: remove unnecessary type conversions · 0da4dbe2
      Matthew Dempsky authored
      cmd and runtime were handled separately, and I'm intentionally skipped
      syscall. This is the rest of the standard library.
      
      CL generated mechanically with github.com/mdempsky/unconvert.
      
      Change-Id: I9e0eff886974dedc37adb93f602064b83e469122
      Reviewed-on: https://go-review.googlesource.com/22104Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      Run-TryBot: Matthew Dempsky <mdempsky@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      0da4dbe2
    • Nigel Tao's avatar
      compress/flate: fix a fmt.Fprintf style nit in a test. · 80e7dddf
      Nigel Tao authored
      It's not a big deal (the for loop drops from 130-ish to 120-ish
      milliseconds for me) but it's not a big change either.
      
      Change-Id: I161a49caab5cae5a2b87866ed1dfb93627be8013
      Reviewed-on: https://go-review.googlesource.com/22110Reviewed-by: 's avatarKlaus Post <klauspost@gmail.com>
      Reviewed-by: 's avatarNigel Tao <nigeltao@golang.org>
      80e7dddf
    • Matthew Dempsky's avatar
      cmd/internal/obj, cmd/link: random style cleanups · 106b9d39
      Matthew Dempsky authored
      Identified during review of golang.org/cl/22103.
      
      Change-Id: I86bab4cc17204df1e45deefdb0d0f9a8f6e17073
      Reviewed-on: https://go-review.googlesource.com/22106
      Run-TryBot: Matthew Dempsky <mdempsky@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      106b9d39
    • Matthew Dempsky's avatar
      cmd: remove unnecessary type conversions · 1441f769
      Matthew Dempsky authored
      CL generated mechanically with github.com/mdempsky/unconvert.
      
      Change-Id: Ic590315cbc7026163a1b3f8ea306ba35f1a53256
      Reviewed-on: https://go-review.googlesource.com/22103
      Run-TryBot: Matthew Dempsky <mdempsky@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarMichael Hudson-Doyle <michael.hudson@canonical.com>
      1441f769
    • Matthew Dempsky's avatar
      cmd/internal/sys: cleanup documentation · e7b96e1a
      Matthew Dempsky authored
      Expand description of ArchFamily, because it seems to be a common
      source of confusion.  Also, update InFamily's description to reflect
      current name.
      
      Change-Id: I66b7999aef64ab8fee39aec0f752ae4f3a08d36d
      Reviewed-on: https://go-review.googlesource.com/22102Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      e7b96e1a
    • Mikio Hara's avatar
      net: cache IPv6 zone information for applications using IPv6 link-local address · 1d214f70
      Mikio Hara authored
      This change reduces the overhead of calling routing information per IPv6
      link-local datagram read by caching IPv6 addressing scope zone
      information.
      
      Fixes #15237.
      
      name                    old time/op    new time/op    delta
      UDP6LinkLocalUnicast-8    64.9µs ± 0%    18.6µs ± 0%  -71.30%
      
      name                    old alloc/op   new alloc/op   delta
      UDP6LinkLocalUnicast-8    11.2kB ± 0%     0.2kB ± 0%  -98.42%
      
      name                    old allocs/op  new allocs/op  delta
      UDP6LinkLocalUnicast-8       101 ± 0%         3 ± 0%  -97.03%
      
      Change-Id: I5ae2ef5058df1028bbb7f4ab32b13edfb330c3a7
      Reviewed-on: https://go-review.googlesource.com/21952Reviewed-by: 's avatarIan Lance Taylor <iant@golang.org>
      1d214f70
    • Mikio Hara's avatar
      net: relax TestInterfaces and TestInterfaceAddrs for BSD variants · 19db7456
      Mikio Hara authored
      Fixes #15249.
      
      Change-Id: I91fc3d6a2df294b21a67d085da6fe661827a850e
      Reviewed-on: https://go-review.googlesource.com/22079Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      19db7456
    • Todd Neal's avatar
      cmd/compile: speed up dom checking in cse · 77d37494
      Todd Neal authored
      Process a slice of equivalent values by setting replaced values to nil
      instead of removing them from the slice to eliminate copying.  Also take
      advantage of the entry number sort to break early once we reach a value
      in a block that is not dominated.
      
      For the code in issue #15112:
      
      Before:
      real    0m52.603s
      user    0m56.957s
      sys     0m1.213s
      
      After:
      real    0m22.048s
      user    0m26.445s
      sys     0m0.939s
      
      Updates #15112
      
      Change-Id: I06d9e1e1f1ad85d7fa196c5d51f0dc163907376d
      Reviewed-on: https://go-review.googlesource.com/22068Reviewed-by: 's avatarDavid Chase <drchase@google.com>
      77d37494
  5. 14 Apr, 2016 1 commit
    • Joe Tsai's avatar
      compress/gzip: fix Reader to properly check FHCRC · d0e8d3a7
      Joe Tsai authored
      RFC 1952, section 3.2.3 says:
      >>>
      If FHCRC is set, a CRC16 for the gzip header is present,
      immediately before the compressed data. The CRC16 consists of the two
      least significant bytes of the CRC32 for all bytes of the
      gzip header up to and not including the CRC16.
      <<<
      
      Thus, instead of computing the CRC only over the first 10 bytes
      of the header, we compute it over the whole header (minus CRC16).
      
      Fixes #15070
      
      Change-Id: I55703fd30b535b12abeb5e3962d4da0a86ed615a
      Reviewed-on: https://go-review.googlesource.com/21466Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      d0e8d3a7