1. 26 Feb, 2016 28 commits
  2. 25 Feb, 2016 12 commits
    • kortschak's avatar
      cmd/dist: don't run fortran test if fortran compilation fails · a337e306
      kortschak authored
      Fixes #14498.
      
      Change-Id: I4cfab3e45898466179cefbd31c6f7f796da82363
      Reviewed-on: https://go-review.googlesource.com/19874Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      a337e306
    • Austin Clements's avatar
      runtime: eliminate unused _Genqueue state · cbe849fc
      Austin Clements authored
      _Genqueue and _Gscanenqueue were introduced as part of the GC quiesce
      code. The quiesce code was removed by 197aa9e6, but these states and
      some associated code stuck around. Remove them.
      
      Change-Id: I69df81881602d4a431556513dac2959668d27c20
      Reviewed-on: https://go-review.googlesource.com/19638Reviewed-by: 's avatarRick Hudson <rlh@golang.org>
      Run-TryBot: Austin Clements <austin@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      cbe849fc
    • Austin Clements's avatar
      runtime: eliminate a conditional branch from heapBits.bits · 4eb33f6b
      Austin Clements authored
      Change-Id: I1fa5e629b2890a8509559ce4ea17b74f47d71925
      Reviewed-on: https://go-review.googlesource.com/19637Reviewed-by: 's avatarIan Lance Taylor <iant@golang.org>
      Run-TryBot: Austin Clements <austin@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      4eb33f6b
    • Austin Clements's avatar
      runtime: use only per-P gcWork · 0168c267
      Austin Clements authored
      Currently most uses of gcWork use the per-P gcWork, but there are two
      places that still use a stack-based gcWork. Simplify things by making
      these instead use the per-P gcWork.
      
      Change-Id: I712d012cce9dd5757c8541824e9641ac1c2a329c
      Reviewed-on: https://go-review.googlesource.com/19636Reviewed-by: 's avatarRick Hudson <rlh@golang.org>
      Run-TryBot: Austin Clements <austin@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      0168c267
    • Austin Clements's avatar
      runtime: pass gcWork to markroot · 7b229001
      Austin Clements authored
      Currently markroot uses a gcWork on the stack and disposes of it
      immediately after marking one root. This used to be necessary because
      markroot was called from the depths of parfor, but now that we call it
      directly and have ready access to a gcWork at the call site, pass the
      gcWork in, use it directly in markroot, and share it across calls to
      markroot from the same P.
      
      Change-Id: Id7c3b811bfb944153760e01873c07c8d18909be1
      Reviewed-on: https://go-review.googlesource.com/19635Reviewed-by: 's avatarRick Hudson <rlh@golang.org>
      Run-TryBot: Austin Clements <austin@google.com>
      7b229001
    • Austin Clements's avatar
      runtime: remove noescape hacks from gcWork · 98130b39
      Austin Clements authored
      When gcWork was first introduced, the compiler's escape analysis
      wasn't good enough to detect that that method receiver didn't escape,
      so we had to hack around this.
      
      Now that the compiler can figure out this for itself, remove these
      hacks.
      
      Change-Id: I9f73fab721e272410b8b6905b564e7abc03c0dfe
      Reviewed-on: https://go-review.googlesource.com/19634Reviewed-by: 's avatarRick Hudson <rlh@golang.org>
      Run-TryBot: Austin Clements <austin@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      98130b39
    • Austin Clements's avatar
      runtime: remove unnecessary clears of the heap bitmap · 0d26efb1
      Austin Clements authored
      Currently we clear the heap bitmap of a span both when we allocate
      that span *and* when we free it. There's no point in doing both, and
      we definitely have to write the heap bitmap when we allocate a span
      for pointer-sized objects, so switch to clearing only when we allocate
      a span.
      
      This results in a slight overall performance improvement; however,
      most of the benchmarks that get slower are very short, while the
      longer benchmarks generally got faster.
      
      name              old time/op  new time/op  delta
      XBenchGarbage-12  2.48ms ± 1%  2.47ms ± 1%  -0.58%  (p=0.000 n=91+91)
      
      name                      old time/op    new time/op    delta
      BinaryTree17-12              2.85s ± 2%     2.85s ± 2%    ~     (p=0.550 n=20+19)
      Fannkuch11-12                2.54s ± 0%     2.47s ± 1%  -2.72%  (p=0.000 n=19+18)
      FmtFprintfEmpty-12          51.3ns ± 4%    51.0ns ± 3%    ~     (p=0.223 n=20+20)
      FmtFprintfString-12          169ns ± 0%     167ns ± 0%  -1.18%  (p=0.000 n=17+16)
      FmtFprintfInt-12             160ns ± 0%     161ns ± 0%  +0.63%  (p=0.000 n=16+15)
      FmtFprintfIntInt-12          267ns ± 0%     269ns ± 1%  +0.62%  (p=0.000 n=17+20)
      FmtFprintfPrefixedInt-12     234ns ± 1%     240ns ± 0%  +2.80%  (p=0.000 n=20+20)
      FmtFprintfFloat-12           316ns ± 0%     313ns ± 0%  -0.76%  (p=0.000 n=20+19)
      FmtManyArgs-12              1.04µs ± 0%    1.05µs ± 0%  +0.45%  (p=0.000 n=19+16)
      GobDecode-12                7.90ms ± 1%    7.81ms ± 0%  -1.10%  (p=0.000 n=18+18)
      GobEncode-12                6.61ms ± 1%    6.58ms ± 0%  -0.46%  (p=0.000 n=20+15)
      Gzip-12                      320ms ± 1%     322ms ± 1%  +0.47%  (p=0.030 n=20+20)
      Gunzip-12                   42.4ms ± 1%    42.6ms ± 0%  +0.37%  (p=0.000 n=20+20)
      HTTPClientServer-12         70.7µs ± 1%    70.6µs ± 2%    ~     (p=0.784 n=18+20)
      JSONEncode-12               16.9ms ± 1%    16.8ms ± 0%  -0.64%  (p=0.000 n=20+20)
      JSONDecode-12               60.8ms ± 0%    58.6ms ± 1%  -3.50%  (p=0.000 n=17+18)
      Mandelbrot200-12            3.92ms ± 0%    3.91ms ± 0%  -0.25%  (p=0.000 n=19+19)
      GoParse-12                  3.65ms ± 0%    3.68ms ± 1%  +0.67%  (p=0.000 n=17+16)
      RegexpMatchEasy0_32-12       102ns ± 1%     102ns ± 2%  +0.67%  (p=0.009 n=19+19)
      RegexpMatchEasy0_1K-12       350ns ± 0%     351ns ± 1%  +0.34%  (p=0.002 n=20+20)
      RegexpMatchEasy1_32-12      84.1ns ± 2%    84.2ns ± 2%    ~     (p=0.799 n=20+18)
      RegexpMatchEasy1_1K-12       510ns ± 1%     508ns ± 1%  -0.45%  (p=0.000 n=20+17)
      RegexpMatchMedium_32-12      132ns ± 1%     134ns ± 1%  +0.85%  (p=0.000 n=20+19)
      RegexpMatchMedium_1K-12     40.0µs ± 1%    39.9µs ± 1%  -0.29%  (p=0.014 n=19+18)
      RegexpMatchHard_32-12       2.09µs ± 1%    2.05µs ± 0%  -1.76%  (p=0.000 n=20+18)
      RegexpMatchHard_1K-12       62.7µs ± 1%    61.8µs ± 1%  -1.39%  (p=0.000 n=20+19)
      Revcomp-12                   541ms ± 1%     534ms ± 0%  -1.16%  (p=0.000 n=19+20)
      Template-12                 71.1ms ± 0%    69.1ms ± 0%  -2.83%  (p=0.000 n=18+19)
      TimeParse-12                 356ns ± 0%     357ns ± 0%  +0.36%  (p=0.000 n=17+19)
      TimeFormat-12                358ns ± 0%     372ns ± 1%  +3.74%  (p=0.000 n=15+18)
      [Geo mean]                  62.6µs         62.5µs       -0.25%
      
      Change-Id: Ied190b77c7a4d91ec7b2218c592fc31cf7acf362
      Reviewed-on: https://go-review.googlesource.com/19633Reviewed-by: 's avatarRick Hudson <rlh@golang.org>
      Run-TryBot: Austin Clements <austin@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      0d26efb1
    • Austin Clements's avatar
      runtime: document non-obvious requirement on sudog.elem · 1e91e2a2
      Austin Clements authored
      The channel code must not allow stack splits between when it assigns a
      potential stack pointer to sudog.elem (or sudog.selectdone) and when
      it makes the sudog visible to copystack by putting it on the g.waiting
      list. We do get this right everywhere, but add a comment about this
      subtlety for future eyes.
      
      Change-Id: I941da150437167acff37b0e56983c793f40fcf79
      Reviewed-on: https://go-review.googlesource.com/19632Reviewed-by: 's avatarRick Hudson <rlh@golang.org>
      Run-TryBot: Austin Clements <austin@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      1e91e2a2
    • Austin Clements's avatar
      runtime: improve initSpan documentation · 39f2bd73
      Austin Clements authored
      Change-Id: I9c45aad1c35a99da4c3b8990649dcd962fd23b81
      Reviewed-on: https://go-review.googlesource.com/19631Reviewed-by: 's avatarRick Hudson <rlh@golang.org>
      Run-TryBot: Austin Clements <austin@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      39f2bd73
    • Austin Clements's avatar
      runtime: fix heapBitsSweepSpan comment · e1024b60
      Austin Clements authored
      Currently the heapBitsSweepSpan comment claims that heapBitsSweepSpan
      sets the heap bitmap for the first two words to dead. In fact, it sets
      the first *four* words to scalar/dead. This is important because first
      two words don't actually have a dead bit, so for objects larger than
      two words it *must* set a dead bit in third word to reset the object
      to a "noscan" state. For example, we use this in heapBits.hasPointers
      to detect that an object larger than two words is noscan.
      
      Change-Id: Ie166a628bed5060851db083475c7377adb349d6c
      Reviewed-on: https://go-review.googlesource.com/19630Reviewed-by: 's avatarRick Hudson <rlh@golang.org>
      Run-TryBot: Austin Clements <austin@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      e1024b60
    • Dmitriy Dudkin's avatar
      cmd/go: clear cmd cache to avoid duplicate loads errors · ca42f1f5
      Dmitriy Dudkin authored
      go get -u all command updates all packages including standard
      commands. We need to get commands evicted from their cache to
      avoid loading old versions of the packages evicted from the
      packages cache.
      
      Fixes #14444
      
      Change-Id: Icd581a26e1db34ca634aba595fed62b097094c2f
      Reviewed-on: https://go-review.googlesource.com/19899Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      ca42f1f5
    • Brad Fitzpatrick's avatar
      net/textproto: permit all valid token chars in CanonicalMIMEHeaderKey input · b24c6fbf
      Brad Fitzpatrick authored
      Fixes #13767
      
      Change-Id: Ib743db7d9d72022ea911bc5ac535243489425642
      Reviewed-on: https://go-review.googlesource.com/18725Reviewed-by: 's avatarAndrew Gerrand <adg@golang.org>
      Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      b24c6fbf