1. 24 May, 2012 19 commits
  2. 23 May, 2012 10 commits
  3. 22 May, 2012 11 commits
    • Ugorji Nwoke's avatar
      text/template: exec should accept interface value as valid. · 4f7c33cd
      Ugorji Nwoke authored
      Currently, if you pass some data to a template as an interface (e.g. interface{})
      and extract that value that value as a parameter for a function, it fails, saying
      wrong type.
      
      This is because it is only looking at the interface type, not the interface content.
      
      This CL uses the underlying content as the parameter to the func.
      
      Fixes #3642.
      
      R=golang-dev, r, r
      CC=golang-dev
      https://golang.org/cl/6218052
      4f7c33cd
    • Shenghou Ma's avatar
      cmd/ld, cmd/6l, cmd/8l, cmd/5l: fix hidden/local symbol import for ELF systems · 576d648b
      Shenghou Ma authored
         Introduce a newsym() to cmd/lib.c to add a symbol but don't add
      them to hash table.
         Introduce a new bit flag SHIDDEN and bit mask SMASK to handle hidden
      and/or local symbols in ELF symbol tables. Though we still need to order
      the symbol table entries correctly.
         Fix for issue 3261 comment #9.
         For CL 5822049.
      
      R=iant, rsc
      CC=golang-dev
      https://golang.org/cl/5823055
      576d648b
    • Shenghou Ma's avatar
      cmd/ld: take section symbols' value into account for PE · 1c4b77a7
      Shenghou Ma authored
          ld -r could generate multiple section symbols for the same section,
      but with different values, we have to take that into account.
          Fixes #3322.
          Part of issue 3261.
          For CL 5822049.
      
      R=golang-dev, iant, rsc, iant
      CC=golang-dev
      https://golang.org/cl/5823059
      1c4b77a7
    • Shenghou Ma's avatar
      sync/atomic: use cas64 to implement {Load,Store,Add}{Uint,Int}64 on Linux/ARM · 090f9fc3
      Shenghou Ma authored
              Now with GOARM=5 our all.bash should pass on ARMv5 systems.
              Fixes #3331.
      
      R=golang-dev, rsc, dvyukov
      CC=golang-dev
      https://golang.org/cl/6210071
      090f9fc3
    • Shenghou Ma's avatar
      runtime: support conditional execution in ARM softfloat · fb3a1b68
      Shenghou Ma authored
              Fixes #3638.
      
      R=golang-dev, dave, rsc
      CC=golang-dev
      https://golang.org/cl/6213057
      fb3a1b68
    • Russ Cox's avatar
      undo CL 6112054 / 2eec2501961c · 3d03ec88
      Russ Cox authored
      Now that we've fixed the Expect: test, this CL should be okay.
      
      ««« original CL description
      net/http: revert 97d027b3aa68
      
      Revert the following change set:
      
              changeset:   13018:97d027b3aa68
              user:        Gustavo Niemeyer <gustavo@niemeyer.net>
              date:        Mon Apr 23 22:00:16 2012 -0300
              summary:     net/http: allow clients to disable keep-alive
      
      This broke a test on Windows 64 and somebody else
      will have to check.
      
      R=golang-dev, r
      CC=golang-dev
      https://golang.org/cl/6112054
      »»»
      
      Fixes #3540.
      
      R=golang-dev, bradfitz
      CC=golang-dev
      https://golang.org/cl/6228046
      3d03ec88
    • Russ Cox's avatar
      unicode: fix comment about variable types · 77f00e5e
      Russ Cox authored
      In both the web and command line tool,
      the comment is shown after the declaration.
      But in the code the comment is obviously before.
      Make the text not refer to a specific order.
      
      R=r, dsymonds
      CC=golang-dev
      https://golang.org/cl/6206094
      77f00e5e
    • Jan Ziak's avatar
      cmd/gc: export constants in hexadecimal · fbaf59bf
      Jan Ziak authored
      R=golang-dev, r, rsc, iant, remyoudompheng, dave
      CC=golang-dev
      https://golang.org/cl/6206077
      fbaf59bf
    • Russ Cox's avatar
      crypto/md5: faster inner loop, 3x faster overall · 15436da2
      Russ Cox authored
      The speedup is a combination of unrolling/specializing
      the actual code and also making the compiler generate better code.
      
      Go 1.0.1 (size: 1239 code + 320 data = 1559 total)
      md5.BenchmarkHash1K   1000000	   7178 ns/op	 142.64 MB/s
      md5.BenchmarkHash8K    200000	  56834 ns/op	 144.14 MB/s
      
      Partial unroll  (size: 1115 code + 256 data = 1371 total)
      md5.BenchmarkHash1K   5000000	   2513 ns/op	 407.37 MB/s
      md5.BenchmarkHash8K    500000	  19406 ns/op	 422.13 MB/s
      
      Complete unroll  (size: 1900 code + 0 data = 1900 code)
      md5.BenchmarkHash1K   5000000	   2442 ns/op	 419.18 MB/s
      md5.BenchmarkHash8K    500000	  18957 ns/op	 432.13 MB/s
      
      Comparing Go 1.0.1 and the complete unroll (this CL):
      
      benchmark               old MB/s     new MB/s  speedup
      md5.BenchmarkHash1K       142.64       419.18    2.94x
      md5.BenchmarkHash8K       144.14       432.13    3.00x
      
      On the same machine, 'openssl speed md5' reports 441 MB/s
      and 531 MB/s for our two cases, so this CL is at 90% and 80% of
      those speeds, which is at least in the right ballpark.
      OpenSSL is using carefully engineered assembly, so we are
      unlikely to catch up completely.
      
      Measurements on a Mid-2010 MacPro5,1.
      
      R=golang-dev, bradfitz, agl
      CC=golang-dev
      https://golang.org/cl/6220046
      15436da2
    • Russ Cox's avatar
      net/http: refactor body logic in test · 1c445755
      Russ Cox authored
      This just eliminates some duplication.
      Also add a pointer to RFC 1122, in case
      this comes up again.
      
      R=golang-dev, bradfitz
      CC=golang-dev
      https://golang.org/cl/6229044
      1c445755
    • Dmitriy Vyukov's avatar
      runtime: faster GC sweep phase · 845aa1fc
      Dmitriy Vyukov authored
      benchmark                              old ns/op    new ns/op    delta
      
      garbage.BenchmarkParser               3731065750   3715543750   -0.41%
      garbage.BenchmarkParser-2             3631299750   3495248500   -3.75%
      garbage.BenchmarkParser-4             3386486000   3339353000   -1.39%
      garbage.BenchmarkParser-8             3267632000   3286422500   +0.58%
      garbage.BenchmarkParser-16            3299203000   3316081750   +0.51%
      
      garbage.BenchmarkTree                  977532888    919453833   -5.94%
      garbage.BenchmarkTree-2                919948555    853478000   -7.23%
      garbage.BenchmarkTree-4                841329000    790207000   -6.08%
      garbage.BenchmarkTree-8                787792777    740380666   -6.01%
      garbage.BenchmarkTree-16               899257166    846594555   -5.86%
      
      garbage.BenchmarkTree2                 574876300    571885800   -0.52%
      garbage.BenchmarkTree2-2               348162700    345888900   -0.65%
      garbage.BenchmarkTree2-4               184912500    179137000   -3.22%
      garbage.BenchmarkTree2-8               104243900    103485600   -0.73%
      garbage.BenchmarkTree2-16               97269500     85137100  -14.25%
      
      garbage.BenchmarkParserPause           141101976    157746974  +11.80%
      garbage.BenchmarkParserPause-2         103096051     83043048  -19.45%
      garbage.BenchmarkParserPause-4          52153133     45951111  -11.89%
      garbage.BenchmarkParserPause-8          36730190     38901024   +5.91%
      garbage.BenchmarkParserPause-16         32678875     29578585   -9.49%
      
      garbage.BenchmarkTreePause              29487065     29648439   +0.55%
      garbage.BenchmarkTreePause-2            22443494     21306159   -5.07%
      garbage.BenchmarkTreePause-4            15799691     14985647   -5.15%
      garbage.BenchmarkTreePause-8            10768112     9531420   -12.97%
      garbage.BenchmarkTreePause-16           16329891     15205158   -6.89%
      
      garbage.BenchmarkTree2Pause           2586957240   2577533200   -0.36%
      garbage.BenchmarkTree2Pause-2         1683383760   1673923800   -0.56%
      garbage.BenchmarkTree2Pause-4         1102860320   1074040280   -2.68%
      garbage.BenchmarkTree2Pause-8          902627920    886122400   -1.86%
      garbage.BenchmarkTree2Pause-16         856470920    804152320   -6.50%
      
      garbage.BenchmarkParserLastPause       277316000    280839000   +1.25%
      garbage.BenchmarkParserLastPause-2     179446000    163687000   -8.78%
      garbage.BenchmarkParserLastPause-4     106752000     94144000  -11.81%
      garbage.BenchmarkParserLastPause-8      57758000     61640000   +6.72%
      garbage.BenchmarkParserLastPause-16     51235000     42552000  -16.95%
      
      garbage.BenchmarkTreeLastPause          45244000     50786000  +12.25%
      garbage.BenchmarkTreeLastPause-2        37163000     34654000   -6.75%
      garbage.BenchmarkTreeLastPause-4        24178000     21967000   -9.14%
      garbage.BenchmarkTreeLastPause-8        20390000     15648000  -30.30%
      garbage.BenchmarkTreeLastPause-16       22398000     20180000   -9.90%
      
      garbage.BenchmarkTree2LastPause       5748706000   5718809000   -0.52%
      garbage.BenchmarkTree2LastPause-2     3481570000   3458844000   -0.65%
      garbage.BenchmarkTree2LastPause-4     1849073000   1791330000   -3.22%
      garbage.BenchmarkTree2LastPause-8     1042375000   1034811000   -0.73%
      garbage.BenchmarkTree2LastPause-16     972637000    851323000  -14.25%
      
      There is also visible improvement in consumed CPU time:
      tree2 -heapsize=8000000000 -cpus=12
      before: 248.74user 6.36system 0:52.74elapsed 483%CPU
      after:  229.86user 6.33system 0:51.08elapsed 462%CPU
      -1.66s of real time, but -18.91s of consumed CPU time
      
      R=golang-dev
      CC=golang-dev
      https://golang.org/cl/6215065
      845aa1fc