1. 22 Aug, 2016 7 commits
  2. 21 Aug, 2016 18 commits
  3. 20 Aug, 2016 3 commits
  4. 19 Aug, 2016 12 commits
    • Jaana Burcu Dogan's avatar
      net/http/httptrace: test the order of hooks when ctx has multi ClientTraces · c10f8700
      Jaana Burcu Dogan authored
      Change-Id: I95cae14bb5561947ada9577fb05053f93321a4a8
      Reviewed-on: https://go-review.googlesource.com/27400
      Run-TryBot: Jaana Burcu Dogan <jbd@google.com>
      Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
      c10f8700
    • Michael Matloob's avatar
      cmd/link/internal: rename LSym to Symbol, and add a doc comment. · a072fc2e
      Michael Matloob authored
      I'd also like to document some of its fields, but I don't know
      what they are.
      
      Change-Id: I87d341e255f785d351a8a73e645be668e02b2689
      Reviewed-on: https://go-review.googlesource.com/27399Reviewed-by: default avatarDavid Crawshaw <crawshaw@golang.org>
      Run-TryBot: David Crawshaw <crawshaw@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      a072fc2e
    • Emmanuel Odeke's avatar
      encoding/gob: error out instead of panicking on nil dereference · 0a2a64d8
      Emmanuel Odeke authored
      Do not panic when we encounter nil interface values which are
      invalid values for gob. Previously this wasn't caught yet
      we were calling reflect.*.Type() on reflect.Invalid values
      thereby causing panic:
        `panic: reflect: call of reflect.Value.Type on zero Value.`
      which is a panic not enforced by encoding/gob itself.
      We can catch this and send back an error to the caller.
      
      Fixes #16204
      
      Change-Id: Ie646796db297759a74a02eee5267713adbe0c3a0
      Reviewed-on: https://go-review.googlesource.com/24989Reviewed-by: default avatarRob Pike <r@golang.org>
      Run-TryBot: Rob Pike <r@golang.org>
      0a2a64d8
    • Dmitry Vyukov's avatar
      runtime: increase malloc size classes · 14e59511
      Dmitry Vyukov authored
      When we calculate class sizes, in some cases we discard considerable
      amounts of memory without an apparent reason. For example, we choose
      size 8448 with 6 objects in 7 pages. But we can well use object
      size 9472, which is also 6 objects in 7 pages but +1024 bytes (+12.12%).
      
      Increase class sizes to the max value that leads to the same
      page count/number of objects. Full list of affected size classes:
      
      class 36: pages: 2 size: 1664->1792 +128 (7.69%)
      class 39: pages: 1 size: 2560->2688 +128 (5.0%)
      class 40: pages: 3 size: 2816->3072 +256 (9.9%)
      class 41: pages: 2 size: 3072->3200 +128 (4.16%)
      class 42: pages: 3 size: 3328->3456 +128 (3.84%)
      class 44: pages: 3 size: 4608->4864 +256 (5.55%)
      class 47: pages: 4 size: 6400->6528 +128 (2.0%)
      class 48: pages: 5 size: 6656->6784 +128 (1.92%)
      class 51: pages: 7 size: 8448->9472 +1024 (12.12%)
      class 52: pages: 6 size: 8704->9728 +1024 (11.76%)
      class 53: pages: 5 size: 9472->10240 +768 (8.10%)
      class 54: pages: 4 size: 10496->10880 +384 (3.65%)
      class 57: pages: 7 size: 14080->14336 +256 (1.81%)
      class 59: pages: 9 size: 16640->18432 +1792 (10.76%)
      class 60: pages: 7 size: 17664->19072 +1408 (7.97%)
      class 62: pages: 8 size: 21248->21760 +512 (2.40%)
      class 64: pages: 10 size: 24832->27264 +2432 (9.79%)
      class 65: pages: 7 size: 28416->28672 +256 (0.90%)
      
      name                      old time/op    new time/op    delta
      BinaryTree17-12              2.59s ± 5%     2.52s ± 4%    ~     (p=0.132 n=6+6)
      Fannkuch11-12                2.13s ± 3%     2.17s ± 3%    ~     (p=0.180 n=6+6)
      FmtFprintfEmpty-12          47.0ns ± 3%    46.6ns ± 1%    ~     (p=0.355 n=6+5)
      FmtFprintfString-12          131ns ± 0%     131ns ± 1%    ~     (p=0.476 n=4+6)
      FmtFprintfInt-12             121ns ± 6%     122ns ± 2%    ~     (p=0.511 n=6+6)
      FmtFprintfIntInt-12          182ns ± 2%     186ns ± 1%  +2.20%  (p=0.015 n=6+6)
      FmtFprintfPrefixedInt-12     184ns ± 5%     181ns ± 2%    ~     (p=0.645 n=6+6)
      FmtFprintfFloat-12           272ns ± 7%     265ns ± 1%    ~     (p=1.000 n=6+5)
      FmtManyArgs-12               783ns ± 2%     802ns ± 2%  +2.38%  (p=0.017 n=6+6)
      GobDecode-12                7.04ms ± 4%    7.00ms ± 2%    ~     (p=1.000 n=6+6)
      GobEncode-12                6.36ms ± 6%    6.17ms ± 6%    ~     (p=0.240 n=6+6)
      Gzip-12                      242ms ±14%     233ms ± 7%    ~     (p=0.310 n=6+6)
      Gunzip-12                   36.6ms ±22%    36.0ms ± 9%    ~     (p=0.841 n=5+5)
      HTTPClientServer-12         93.1µs ±29%    88.0µs ±32%    ~     (p=0.240 n=6+6)
      JSONEncode-12               27.1ms ±39%    26.2ms ±35%    ~     (p=0.589 n=6+6)
      JSONDecode-12               71.7ms ±36%    71.5ms ±36%    ~     (p=0.937 n=6+6)
      Mandelbrot200-12            4.78ms ±10%    4.70ms ±16%    ~     (p=0.394 n=6+6)
      GoParse-12                  4.86ms ±34%    4.95ms ±36%    ~     (p=1.000 n=6+6)
      RegexpMatchEasy0_32-12       110ns ±37%     110ns ±36%    ~     (p=0.660 n=6+6)
      RegexpMatchEasy0_1K-12       240ns ±38%     234ns ±47%    ~     (p=0.554 n=6+6)
      RegexpMatchEasy1_32-12      77.2ns ± 2%    77.2ns ±10%    ~     (p=0.699 n=6+6)
      RegexpMatchEasy1_1K-12       337ns ± 5%     331ns ± 4%    ~     (p=0.552 n=6+6)
      RegexpMatchMedium_32-12      125ns ±13%     132ns ±26%    ~     (p=0.561 n=6+6)
      RegexpMatchMedium_1K-12     35.9µs ± 3%    36.1µs ± 5%    ~     (p=0.818 n=6+6)
      RegexpMatchHard_32-12       1.81µs ± 4%    1.82µs ± 5%    ~     (p=0.452 n=5+5)
      RegexpMatchHard_1K-12       52.4µs ± 2%    54.4µs ± 3%  +3.84%  (p=0.002 n=6+6)
      Revcomp-12                   401ms ± 2%     390ms ± 1%  -2.82%  (p=0.002 n=6+6)
      Template-12                 54.5ms ± 3%    54.6ms ± 1%    ~     (p=0.589 n=6+6)
      TimeParse-12                 294ns ± 1%     298ns ± 2%    ~     (p=0.160 n=6+6)
      TimeFormat-12                323ns ± 4%     318ns ± 5%    ~     (p=0.297 n=6+6)
      
      name                      old speed      new speed      delta
      GobDecode-12               109MB/s ± 4%   110MB/s ± 2%    ~     (p=1.000 n=6+6)
      GobEncode-12               121MB/s ± 6%   125MB/s ± 6%    ~     (p=0.240 n=6+6)
      Gzip-12                   80.4MB/s ±12%  83.3MB/s ± 7%    ~     (p=0.310 n=6+6)
      Gunzip-12                  495MB/s ±41%   541MB/s ± 9%    ~     (p=0.931 n=6+5)
      JSONEncode-12             80.7MB/s ±39%  82.8MB/s ±34%    ~     (p=0.589 n=6+6)
      JSONDecode-12             30.4MB/s ±40%  31.0MB/s ±37%    ~     (p=0.937 n=6+6)
      GoParse-12                13.2MB/s ±33%  13.2MB/s ±35%    ~     (p=1.000 n=6+6)
      RegexpMatchEasy0_32-12     321MB/s ±34%   326MB/s ±34%    ~     (p=0.699 n=6+6)
      RegexpMatchEasy0_1K-12    4.49GB/s ±31%  4.74GB/s ±37%    ~     (p=0.589 n=6+6)
      RegexpMatchEasy1_32-12     414MB/s ± 2%   415MB/s ± 9%    ~     (p=0.699 n=6+6)
      RegexpMatchEasy1_1K-12    3.03GB/s ± 5%  3.09GB/s ± 4%    ~     (p=0.699 n=6+6)
      RegexpMatchMedium_32-12   7.99MB/s ±12%  7.68MB/s ±22%    ~     (p=0.589 n=6+6)
      RegexpMatchMedium_1K-12   28.5MB/s ± 3%  28.4MB/s ± 5%    ~     (p=0.818 n=6+6)
      RegexpMatchHard_32-12     17.7MB/s ± 4%  17.0MB/s ±15%    ~     (p=0.351 n=5+6)
      RegexpMatchHard_1K-12     19.6MB/s ± 2%  18.8MB/s ± 3%  -3.67%  (p=0.002 n=6+6)
      Revcomp-12                 634MB/s ± 2%   653MB/s ± 1%  +2.89%  (p=0.002 n=6+6)
      Template-12               35.6MB/s ± 3%  35.5MB/s ± 1%    ~     (p=0.615 n=6+6)
      
      Change-Id: I465a47f74227f316e3abea231444f48c7a30ef85
      Reviewed-on: https://go-review.googlesource.com/24493
      Run-TryBot: Dmitry Vyukov <dvyukov@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarKeith Randall <khr@golang.org>
      Reviewed-by: default avatarAustin Clements <austin@google.com>
      14e59511
    • Jaana Burcu Dogan's avatar
      context: test WithCancel with canceled parent · ab9137dd
      Jaana Burcu Dogan authored
      Change-Id: I32079cc12cfffb8520f0073a8b5119705dc0cd1b
      Reviewed-on: https://go-review.googlesource.com/27401Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
      Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      ab9137dd
    • Austin Clements's avatar
      runtime: fix check for vacuous page boundary rounding again · 3de7dbb1
      Austin Clements authored
      The previous fix for this, commit 336dad2a, had everything right in
      the commit message, but reversed the test in the code. Fix the test in
      the code.
      
      This reversal effectively disabled the scavenger on large page systems
      *except* in the rare cases where this code was originally wrong, which
      is why it didn't obviously show up in testing.
      
      Fixes #16644. Again. :(
      
      Change-Id: I27cce4aea13de217197db4b628f17860f27ce83e
      Reviewed-on: https://go-review.googlesource.com/27402
      Run-TryBot: Austin Clements <austin@google.com>
      Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
      3de7dbb1
    • Dmitry Vyukov's avatar
      internal/trace: fix analysis of EvGoWaiting/EvGoInSyscall events · a50f9859
      Dmitry Vyukov authored
      When tracing is started in the middle of program execution,
      we already have a number of runnable goroutines and a number
      of blocked/in syscall goroutines. In order to reflect these
      goroutines in the trace, we emit EvGoCreate for all existing
      goroutines. Then for blocked/in syscall goroutines we additionally
      emit EvGoWaiting/EvGoInSyscall events. These events don't reset g.ev
      during trace analysis. So next EvGoStart finds g.ev set to the
      previous EvGoCreate. As the result time between EvGoCreate and
      EvGoStart is accounted as scheduler latency. While in reality
      it is blocking/syscall time.
      
      Properly reset g.ev for EvGoWaiting/EvGoInSyscall events.
      
      Change-Id: I0615ba31ed7567600a0667ebb27458481da73adb
      Reviewed-on: https://go-review.googlesource.com/25572Reviewed-by: default avatarHyang-Ah Hana Kim <hyangah@gmail.com>
      a50f9859
    • Brad Fitzpatrick's avatar
      io: fix infinite loop bug in MultiReader · 93372673
      Brad Fitzpatrick authored
      If an io.Reader returned (non-zero, EOF), MultiReader would yield
      bytes forever.
      
      This bug has existed before Go 1 (!!), introduced in the original
      MultiReader implementation in https://golang.org/cl/1764043 and also
      survived basically the only update to this code since then
      (https://golang.org/cl/17873, git rev ccdca832), which was added in
      Go 1.7.
      
      This just bit me when writing a test for some unrelated code.
      
      Fixes #16795
      
      Change-Id: I36e6a701269793935d19a47ac12f67b07179fbff
      Reviewed-on: https://go-review.googlesource.com/27397
      Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarKeith Randall <khr@golang.org>
      Reviewed-by: default avatarJoe Tsai <thebrokentoaster@gmail.com>
      93372673
    • Austin Clements's avatar
      runtime: fix out of date comments · 244efebe
      Austin Clements authored
      The transition from mark 1 to mark 2 no longer enqueues new root
      marking jobs, but some of the comments still refer to this. Fix these
      comments.
      
      Change-Id: I3f98628dba32c5afe30495ab495da42b32291e9e
      Reviewed-on: https://go-review.googlesource.com/24965Reviewed-by: default avatarRick Hudson <rlh@golang.org>
      244efebe
    • Adam Langley's avatar
      crypto/x509: allow a leaf certificate to be specified directly as root. · 8ad70a54
      Adam Langley authored
      In other systems, putting a leaf certificate in the root store works to
      express that exactly that certificate is acceptable. This change makes
      that work in Go too.
      
      Fixes #16763.
      
      Change-Id: I5c0a8dbc47aa631b23dd49061fb217ed8b0c719c
      Reviewed-on: https://go-review.googlesource.com/27393
      Run-TryBot: Adam Langley <agl@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
      8ad70a54
    • Adam Langley's avatar
      crypto/x509: recognise ISO OID for RSA+SHA1 · bcd54f6c
      Adam Langley authored
      For some reason, ISO decided to duplicate the OID for RSA+SHA1. Most
      pertinantly, the makecert.exe utility on Windows is known to have used
      this OID.
      
      This change makes the ISO OID an alias for the normal one.
      
      Change-Id: I60b76265bf1721282bdb0d5c99c98d227c18a878
      Reviewed-on: https://go-review.googlesource.com/27394
      Run-TryBot: Adam Langley <agl@golang.org>
      Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      bcd54f6c
    • Adam Langley's avatar
      encoding/pem: be stricter about the ending line. · 0da545d1
      Adam Langley authored
      Previously the code didn't check the type and final five dashes of the
      ending line of a PEM block.
      
      Fixes #16335.
      
      Change-Id: Ia544e8739ea738d767cfe56c8d46204214ec0b5a
      Reviewed-on: https://go-review.googlesource.com/27391
      Run-TryBot: Adam Langley <agl@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
      0da545d1