1. 12 Feb, 2014 16 commits
    • Anthony Martin's avatar
      cmd/cc, cmd/gc, cmd/ld: consolidate print format routines · 2cae0591
      Anthony Martin authored
      We now use the %A, %D, %P, and %R routines from liblink
      across the board.
      
      Fixes #7178.
      Fixes #7055.
      
      LGTM=iant
      R=golang-codereviews, gobot, rsc, dave, iant, remyoudompheng
      CC=golang-codereviews
      https://golang.org/cl/49170043
      2cae0591
    • Brad Fitzpatrick's avatar
      crypto/sha1: always test the portable block function too · 14c5c8a9
      Brad Fitzpatrick authored
      So it doesn't bitrot.
      
      LGTM=agl
      R=golang-codereviews, agl
      CC=golang-codereviews
      https://golang.org/cl/62270043
      14c5c8a9
    • Dmitriy Vyukov's avatar
      runtime: more precise mprof sampling · bf0d71af
      Dmitriy Vyukov authored
      Better sampling of objects that are close in size to sampling rate.
      See the comment for details.
      
      LGTM=rsc
      R=golang-codereviews, rsc
      CC=golang-codereviews
      https://golang.org/cl/43830043
      bf0d71af
    • Dmitriy Vyukov's avatar
      runtime: improve cpu profiles for GC/syscalls/cgo · 5e72fae9
      Dmitriy Vyukov authored
      Current "System->etext" is not very informative.
      Add parent "GC" frame.
      Replace un-unwindable syscall/cgo frames with Go stack that leads to the call.
      
      LGTM=rsc
      R=rsc, alex.brainman, ality
      CC=golang-codereviews
      https://golang.org/cl/61270043
      5e72fae9
    • Nick Craig-Wood's avatar
      An ARM version of sha1block.go with a big improvement in throughput · 44c252bd
      Nick Craig-Wood authored
      (up to 2.8x).
      
      This is a partially unrolled version which performs better for small
      hashes and only sacrifices a small amount of ultimate speed to a fully
      unrolled version which uses 5k of code.
      
      Code size
      
        Before 1636 bytes
        After 1880 bytes
        15% larger
      
      Benchmarks on Samsung Exynos 5 ARMv7 Chromebook
      
      benchmark              old ns/op    new ns/op    delta
      BenchmarkHash8Bytes         1907         1136  -40.43%
      BenchmarkHash1K            20280         7547  -62.79%
      BenchmarkHash8K           148469        52576  -64.59%
      
      benchmark               old MB/s     new MB/s  speedup
      BenchmarkHash8Bytes         4.19         7.04    1.68x
      BenchmarkHash1K            50.49       135.68    2.69x
      BenchmarkHash8K            55.18       155.81    2.82x
      
      LGTM=dave, agl
      R=dave, bradfitz, agl, adg, nick
      CC=golang-codereviews
      https://golang.org/cl/56990044
      44c252bd
    • Dmitriy Vyukov's avatar
      runtime: refactor level-triggered IO support · 2ea859a7
      Dmitriy Vyukov authored
      Remove GOOS_solaris ifdef from netpoll code,
      instead introduce runtime edge/level triggered IO flag.
      Replace armread/armwrite with a single arm(mode) function,
      that's how all other interfaces look like and these functions
      will need to do roughly the same thing anyway.
      
      LGTM=rsc
      R=golang-codereviews, dave, rsc
      CC=golang-codereviews
      https://golang.org/cl/55500044
      2ea859a7
    • Dmitriy Vyukov's avatar
      runtime: refactor chan code · e1ee0482
      Dmitriy Vyukov authored
      1. Make internal chan functions static.
      2. Move selgen local variable instead of a member of G struct.
      3. Change "bool *pres/selected" parameter of chansend/chanrecv to "bool block",
         which is simpler, faster and less code.
      -37 lines total.
      
      LGTM=rsc
      R=golang-codereviews, dave, gobot, rsc
      CC=bradfitz, golang-codereviews, iant, khr
      https://golang.org/cl/58610043
      e1ee0482
    • Dmitriy Vyukov's avatar
      runtime: concurrent GC sweep · 3c3be622
      Dmitriy Vyukov authored
      Moves sweep phase out of stoptheworld by adding
      background sweeper goroutine and lazy on-demand sweeping.
      
      It turned out to be somewhat trickier than I expected,
      because there is no point in time when we know size of live heap
      nor consistent number of mallocs and frees.
      So everything related to next_gc, mprof, memstats, etc becomes trickier.
      
      At the end of GC next_gc is conservatively set to heap_alloc*GOGC,
      which is much larger than real value. But after every sweep
      next_gc is decremented by freed*GOGC. So when everything is swept
      next_gc becomes what it should be.
      
      For mprof I had to introduce 3-generation scheme (allocs, revent_allocs, prev_allocs),
      because by the end of GC we know number of frees for the *previous* GC.
      
      Significant caution is required to not cross yet-unknown real value of next_gc.
      This is achieved by 2 means:
      1. Whenever I allocate a span from MCentral, I sweep a span in that MCentral.
      2. Whenever I allocate N pages from MHeap, I sweep until at least N pages are
      returned to heap.
      This provides quite strong guarantees that heap does not grow when it should now.
      
      http-1
      allocated                    7036         7033      -0.04%
      allocs                         60           60      +0.00%
      cputime                     51050        46700      -8.52%
      gc-pause-one             34060569      1777993     -94.78%
      gc-pause-total               2554          133     -94.79%
      latency-50                 178448       170926      -4.22%
      latency-95                 284350       198294     -30.26%
      latency-99                 345191       220652     -36.08%
      rss                     101564416    101007360      -0.55%
      sys-gc                    6606832      6541296      -0.99%
      sys-heap                 88801280     87752704      -1.18%
      sys-other                 7334208      7405928      +0.98%
      sys-stack                  524288       524288      +0.00%
      sys-total               103266608    102224216      -1.01%
      time                        50339        46533      -7.56%
      virtual-mem             292990976    293728256      +0.25%
      
      garbage-1
      allocated                 2983818      2990889      +0.24%
      allocs                      62880        62902      +0.03%
      cputime                  16480000     16190000      -1.76%
      gc-pause-one            828462467    487875135     -41.11%
      gc-pause-total            4142312      2439375     -41.11%
      rss                    1151709184   1153712128      +0.17%
      sys-gc                   66068352     66068352      +0.00%
      sys-heap               1039728640   1039728640      +0.00%
      sys-other                37776064     40770176      +7.93%
      sys-stack                 8781824      8781824      +0.00%
      sys-total              1152354880   1155348992      +0.26%
      time                     16496998     16199876      -1.80%
      virtual-mem            1409564672   1402281984      -0.52%
      
      LGTM=rsc
      R=golang-codereviews, sameer, rsc, iant, jeremyjackins, gobot
      CC=golang-codereviews, khr
      https://golang.org/cl/46430043
      3c3be622
    • Dmitriy Vyukov's avatar
      encoding/json: fix test failure · 3b85f9b7
      Dmitriy Vyukov authored
      $ go test -cpu=1,1,1,1,1,1,1,1,1 encoding/json
      --- FAIL: TestIndentBig (0.00 seconds)
              scanner_test.go:131: Indent(jsonBig) did not get bigger
      On 4-th run initBig generates an empty array.
      
      LGTM=bradfitz
      R=golang-codereviews, bradfitz
      CC=golang-codereviews
      https://golang.org/cl/49930051
      3b85f9b7
    • Adam Langley's avatar
      crypto/subtle: panic if slices of different lengths are passed to ConstantTimeCompare. · 384f4380
      Adam Langley authored
      ConstantTimeCompare has always been documented to take equal length
      slices but perhaps this is too subtle, even for 'subtle'.
      
      Fixes #7304.
      
      LGTM=hanwen, bradfitz
      R=golang-codereviews, hanwen, bradfitz
      CC=golang-codereviews
      https://golang.org/cl/62190043
      384f4380
    • Adam Langley's avatar
      crypto/tls: better error messages. · 6b29f7bf
      Adam Langley authored
      LGTM=bradfitz
      R=golang-codereviews, bradfitz
      CC=golang-codereviews
      https://golang.org/cl/60580046
      6b29f7bf
    • Rick Arnold's avatar
      net/http: make responseAndError satisfy the net.Error interface · 5e711b47
      Rick Arnold authored
      Allow clients to check for timeouts without relying on error substring
      matching.
      
      Fixes #6185.
      
      LGTM=bradfitz
      R=golang-codereviews, bradfitz
      CC=golang-codereviews
      https://golang.org/cl/55470048
      5e711b47
    • Robert Dinu's avatar
      debug/pe: delete unnecessary type conversions · c5076011
      Robert Dinu authored
      Fixes #7104.
      
      LGTM=iant
      R=golang-dev, iant
      CC=golang-codereviews
      https://golang.org/cl/61480049
      c5076011
    • David Symonds's avatar
      A+C: Alexander Larsson (individual CLA) · 375b8ea4
      David Symonds authored
      Generated by addca.
      
      R=gobot
      CC=golang-codereviews
      https://golang.org/cl/53410046
      375b8ea4
    • Robert Griesemer's avatar
      go/parser: better error messages for if/switch/for conditions/expressions · 947aaf27
      Robert Griesemer authored
      Fixes #7102.
      
      LGTM=adonovan
      R=adonovan
      CC=golang-codereviews
      https://golang.org/cl/56770045
      947aaf27
    • Shenghou Ma's avatar
      api: update next.txt · ba559474
      Shenghou Ma authored
      LGTM=bradfitz
      R=golang-codereviews, bradfitz
      CC=golang-codereviews
      https://golang.org/cl/54830045
      ba559474
  2. 11 Feb, 2014 12 commits
  3. 10 Feb, 2014 10 commits
  4. 09 Feb, 2014 2 commits
    • Dave Cheney's avatar
      cmd/go: fix test.bash · 414b45d9
      Dave Cheney authored
      Fixes #7260.
      
      Fix three broken tests in test.bash
      
      The test for issue 4568 was confused by go $ACTION . producing a package root of "", avoiding this mode fixes the test but weakens the test.
      
      The test for issue 4773 was broken on linux because math/Rand would fail to resolve as a package causing the test for duplicates to be skipped.
      
      Finally, the last breakage was a small change in the error message.
      
      Also, add test for foldDup.
      
      LGTM=iant
      R=iant, rsc
      CC=golang-codereviews
      https://golang.org/cl/61070044
      414b45d9
    • Brad Fitzpatrick's avatar
      archive/zip: add flate writing benchmark · 730f51ab
      Brad Fitzpatrick authored
      LGTM=adg
      R=adg
      CC=golang-codereviews
      https://golang.org/cl/60530049
      730f51ab