1. 29 Mar, 2016 17 commits
  2. 28 Mar, 2016 16 commits
  3. 27 Mar, 2016 6 commits
    • Martin Möhrmann's avatar
      fmt: unify array and slice formatting for bytes and other types · 9149aa10
      Martin Möhrmann authored
      Make verbs b,c,o and U work for any array and slice of integer
      type including byte and uint8.
      
      Fix a bug that triggers badverb for []uint8 and []byte type
      on the slice/array level instead of on each element like for
      any other slice or array type.
      
      Add tests that make sure we do not accidentally alter the
      behavior of printing []byte for []byte and []uint8 type
      if they are used at the top level when formatting with %#v.
      
      name               old time/op  new time/op  delta
      SprintfHexBytes-2   177ns ± 2%   176ns ± 2%   ~     (p=0.066 n=48+49)
      SprintfBytes-2      330ns ± 1%   329ns ± 1%   ~     (p=0.118 n=45+47)
      
      Fixes #13478
      
      Change-Id: I99328a184973ae219bcc0f69c3978cb1ff462888
      Reviewed-on: https://go-review.googlesource.com/20686
      Run-TryBot: Rob Pike <r@golang.org>
      Reviewed-by: 's avatarRob Pike <r@golang.org>
      9149aa10
    • Josh Bleecher Snyder's avatar
      cmd/compile: rename T_old_DARRAY and update comments · a637717e
      Josh Bleecher Snyder authored
      Change-Id: Ifa3b1b1e5458e4f109828a476d37f1caf96fe14b
      Reviewed-on: https://go-review.googlesource.com/21211
      Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      a637717e
    • Josh Bleecher Snyder's avatar
      cmd/compile: remove pointless conversions in copytype · fcca9d26
      Josh Bleecher Snyder authored
      Passes toolstash -cmp.
      
      Change-Id: I8b000d4e90e6aa1a0e60bd46fb7cba2ddc1774b5
      Reviewed-on: https://go-review.googlesource.com/21210
      Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
      Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      fcca9d26
    • Matthew Dempsky's avatar
      cmd/compile: fix stringtoslicebytetmp optimization · 995fb031
      Matthew Dempsky authored
      Fixes #14973.
      
      Change-Id: Iea68c9deca9429bde465c9ae05639209fe0ccf72
      Reviewed-on: https://go-review.googlesource.com/21175Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      995fb031
    • Dominik Honnef's avatar
      cmd/vet: don't treat fields like variables in rangeloop check · 4ffa5eb8
      Dominik Honnef authored
      Fixes #13236
      
      Change-Id: If902ac66718e0a0790fab9835921ce4ef980965b
      Reviewed-on: https://go-review.googlesource.com/21183
      Run-TryBot: Rob Pike <r@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarRob Pike <r@golang.org>
      4ffa5eb8
    • Martin Möhrmann's avatar
      fmt: cleanup reflect value handling · d170d3ed
      Martin Möhrmann authored
      Merge printReflectValue into printValue. Determine if handleMethods
      was already called in printArg by checking if depth is 0. Do not
      call handleMethods on depth 0 again in printValue to not introduce
      a performance regression. handleMethods is called already in printArg
      to not introduce a performance penalty for top-level Stringer,
      GoStringer, Errors and Formatters by using reflect.ValueOf on them
      just to retrieve them again as interface{} values in printValue.
      
      Clear p.arg in printValue after handleMethods to print the type
      of the value inside the reflect.Value when a bad verb is encountered
      on the top level instead of printing "reflect.Value=" as the type of
      the argument. This also fixes a bug that incorrectly prints the
      whole map instead of just the value for a key if the returned value
      by the map for the key is an invalid reflect value.
      
      name                     old time/op  new time/op  delta
      SprintfPadding-2          229ns ± 2%   227ns ± 1%  -0.50%  (p=0.013 n=20+20)
      SprintfEmpty-2           36.4ns ± 6%  37.2ns ±14%    ~     (p=0.091 n=18+20)
      SprintfString-2           102ns ± 1%   102ns ± 0%    ~     (p=0.751 n=20+20)
      SprintfTruncateString-2   142ns ± 0%   141ns ± 1%  -0.95%  (p=0.000 n=16+20)
      SprintfQuoteString-2      389ns ± 0%   388ns ± 0%  -0.12%  (p=0.019 n=20+20)
      SprintfInt-2              100ns ± 2%   100ns ± 1%    ~     (p=0.188 n=20+15)
      SprintfIntInt-2           155ns ± 3%   154ns ± 2%    ~     (p=0.092 n=20+20)
      SprintfPrefixedInt-2      250ns ± 2%   251ns ± 3%    ~     (p=0.559 n=20+20)
      SprintfFloat-2            177ns ± 2%   175ns ± 1%  -1.30%  (p=0.000 n=20+20)
      SprintfComplex-2          516ns ± 1%   510ns ± 1%  -1.13%  (p=0.000 n=19+16)
      SprintfBoolean-2         90.9ns ± 3%  90.6ns ± 1%    ~     (p=0.193 n=19+19)
      SprintfHexString-2        171ns ± 1%   169ns ± 1%  -1.44%  (p=0.000 n=19+20)
      SprintfHexBytes-2         180ns ± 1%   180ns ± 1%    ~     (p=0.060 n=19+18)
      SprintfBytes-2            330ns ± 1%   329ns ± 1%  -0.42%  (p=0.003 n=20+20)
      SprintfStringer-2         354ns ± 3%   352ns ± 3%    ~     (p=0.525 n=20+19)
      SprintfStructure-2        804ns ± 3%   776ns ± 2%  -3.56%  (p=0.000 n=20+20)
      FprintInt-2               155ns ± 0%   151ns ± 1%  -2.35%  (p=0.000 n=19+20)
      FprintfBytes-2            169ns ± 0%   170ns ± 1%  +0.81%  (p=0.000 n=18+19)
      FprintIntNoAlloc-2        112ns ± 0%   109ns ± 1%  -2.28%  (p=0.000 n=20+20)
      
      Change-Id: Ib9a39082ed1be0f1f7499ee6fb6c9530f043e43a
      Reviewed-on: https://go-review.googlesource.com/20923
      Run-TryBot: Rob Pike <r@golang.org>
      Reviewed-by: 's avatarRob Pike <r@golang.org>
      d170d3ed
  4. 26 Mar, 2016 1 commit
    • Josh Bleecher Snyder's avatar
      cmd/compile: don’t generate a new Node for convas · 68884059
      Josh Bleecher Snyder authored
      This removes about 3% of the Nodes allocated
      while compiling std+cmd.
      
      Passes toolstash -cmp.
      
      name       old time/op     new time/op     delta
      Template       320ms ± 3%      316ms ± 5%    ~           (p=0.063 n=21+23)
      Unicode        162ms ± 9%      161ms ± 6%    ~           (p=0.788 n=25+25)
      GoTypes        1.03s ± 4%      1.03s ± 4%    ~           (p=0.929 n=24+25)
      Compiler       4.99s ± 3%      4.95s ± 2%  -0.84%        (p=0.011 n=25+23)
      MakeBash       40.3s ± 1%      40.3s ± 1%    ~           (p=0.468 n=24+24)
      
      name       old alloc/op    new alloc/op    delta
      Template      57.3MB ± 0%     57.0MB ± 0%  -0.51%        (p=0.000 n=25+23)
      Unicode       41.1MB ± 0%     41.0MB ± 0%  -0.27%        (p=0.000 n=25+24)
      GoTypes        191MB ± 0%      190MB ± 0%  -0.46%        (p=0.000 n=25+25)
      Compiler       839MB ± 0%      834MB ± 0%  -0.62%        (p=0.000 n=24+24)
      
      name       old allocs/op   new allocs/op   delta
      Template        500k ± 0%       498k ± 0%  -0.42%        (p=0.000 n=25+25)
      Unicode         400k ± 0%       399k ± 0%  -0.22%        (p=0.000 n=24+25)
      GoTypes        1.50M ± 0%      1.49M ± 0%  -0.41%        (p=0.000 n=23+25)
      Compiler       6.04M ± 0%      6.00M ± 0%  -0.59%        (p=0.000 n=25+25)
      
      Change-Id: I7d3f177d1ab4a75a4c047fa465f2eee38747603f
      Reviewed-on: https://go-review.googlesource.com/21178
      Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
      Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      68884059