1. 30 Aug, 2012 4 commits
    • Rob Pike's avatar
      cmd/gc: string conversion for surrogates · 363ec80d
      Rob Pike authored
      This is required by the spec to produce the replacement char.
      The fix lies in lib9's rune code.
      
      R=golang-dev, nigeltao, rsc
      CC=golang-dev
      https://golang.org/cl/6443109
      363ec80d
    • Rob Pike's avatar
      path: improve documentation for Dir · b7627d3d
      Rob Pike authored
      R=golang-dev, bradfitz
      CC=golang-dev
      https://golang.org/cl/6495059
      b7627d3d
    • Dmitriy Vyukov's avatar
      net/rpc: protect serviceMap with RWMutex · e61c047c
      Dmitriy Vyukov authored
      R=r, r
      CC=golang-dev
      https://golang.org/cl/6494044
      e61c047c
    • Rob Pike's avatar
      text/template: make spaces significant · de13e8dc
      Rob Pike authored
      Other than catching an error case that was missed before, this
      CL introduces no changes to the template language or API.
      
      For simplicity, templates use spaces as argument separators.
      This means that spaces are significant: .x .y is not the same as .x.y.
      In the existing code, these cases are discriminated by the lexer,
      but that means for instance that (a b).x cannot be distinguished
      from (a b) .x, which is lousy. Although that syntax is not
      supported yet, we want to support it and this CL is a necessary
      step.
      
      This CL emits a "space" token (actually a run of spaces) from
      the lexer so the parser can discriminate these cases. It therefore
      fixes a couple of undisclosed bugs ("hi".x is now an error) but
      doesn't otherwise change the language. Later CLs will amend
      the grammar to make .X a proper operator.
      
      There is one unpleasantness: With space a token, three-token
      lookahead is now required when parsing variable declarations
      to discriminate them from plain variable references. Otherwise
      the change isn't bad.
      
      The CL also moves the debugging print code out of the lexer
      into the test, which is the only place it's needed or useful.
      
      Step towards resolving issue 3999.
      It still remains to move field chaining out of the lexer
      and into the parser and make field access an operator.
      
      R=golang-dev, dsymonds
      CC=golang-dev
      https://golang.org/cl/6492054
      de13e8dc
  2. 29 Aug, 2012 5 commits
  3. 28 Aug, 2012 4 commits
    • Dave Cheney's avatar
      net/http/httputil: fix race in DumpRequestOut · f8d4bb88
      Dave Cheney authored
      Fixes #3892.
      
      Swapping the order of the writers inside the MultiWriter ensures
      the request will be written to buf before http.ReadRequest completes.
      
      The fencedBuffer is not required to make the test pass on
      any machine that I have access too, but as the buf is shared
      across goroutines, I think it is necessary for correctness.
      
      R=bradfitz, fullung, franciscossouza
      CC=golang-dev
      https://golang.org/cl/6483061
      f8d4bb88
    • Rob Pike's avatar
      test/bench/shootout: pidigits is much faster · d199c34c
      Rob Pike authored
      Also fix a bug in the script (s/runonly/run/)
      
      R=golang-dev, bradfitz
      CC=golang-dev
      https://golang.org/cl/6501051
      d199c34c
    • Mikio Hara's avatar
      net: delete unused socket-level option helpers · ddbc85ce
      Mikio Hara authored
      R=golang-dev, bradfitz
      CC=golang-dev
      https://golang.org/cl/6499043
      ddbc85ce
    • Christopher Swenson's avatar
      math/big: Replace RCLQ + ANDQ with SETCS in unrolled arithmetic assembly. · baf426f1
      Christopher Swenson authored
      benchmark             old ns/op    new ns/op    delta
      BenchmarkAddVW_1              8            8   +0.60%
      BenchmarkAddVW_2             10            9   -8.64%
      BenchmarkAddVW_3             10           10   -4.63%
      BenchmarkAddVW_4             10           11   +3.67%
      BenchmarkAddVW_5             11           12   +5.98%
      BenchmarkAddVW_1e1           18           20   +6.38%
      BenchmarkAddVW_1e2          129          115  -10.85%
      BenchmarkAddVW_1e3         1270         1089  -14.25%
      BenchmarkAddVW_1e4        13376        12145   -9.20%
      BenchmarkAddVW_1e5       130392       125260   -3.94%
      
      benchmark              old MB/s     new MB/s  speedup
      BenchmarkAddVW_1        7709.10      7661.92    0.99x
      BenchmarkAddVW_2       12451.10     13604.00    1.09x
      BenchmarkAddVW_3       17727.81     18721.54    1.06x
      BenchmarkAddVW_4       23552.64     22708.81    0.96x
      BenchmarkAddVW_5       27411.40     25816.22    0.94x
      BenchmarkAddVW_1e1     34063.19     32023.06    0.94x
      BenchmarkAddVW_1e2     49529.97     55360.55    1.12x
      BenchmarkAddVW_1e3     50380.44     58764.18    1.17x
      BenchmarkAddVW_1e4     47843.59     52696.10    1.10x
      BenchmarkAddVW_1e5     49082.60     51093.66    1.04x
      
      R=gri, rsc, r
      CC=golang-dev
      https://golang.org/cl/6480063
      baf426f1
  4. 27 Aug, 2012 3 commits
  5. 26 Aug, 2012 2 commits
  6. 25 Aug, 2012 1 commit
  7. 24 Aug, 2012 13 commits
    • Robert Griesemer's avatar
      math/big: fix broken comment · 74c63251
      Robert Griesemer authored
      R=iant, iant
      CC=golang-dev
      https://golang.org/cl/6485064
      74c63251
    • Rob Pike's avatar
      VERSION: check in a version file for the development branch · 5a297fa0
      Rob Pike authored
      That way "go version" will talk about "devel" rather than weekly.2012-03-27
      
      R=golang-dev, rsc
      CC=golang-dev
      https://golang.org/cl/6478061
      5a297fa0
    • Rob Pike's avatar
      text/template: catch (A).X as a parse error · 8b230662
      Rob Pike authored
      This shouldn't be an error (see issue 3999), but until it's handled
      correctly, treat it as one to avoid confusion. Without this CL,
      (A).X parses as two arguments.
      
      R=golang-dev, rsc
      CC=golang-dev
      https://golang.org/cl/6473059
      8b230662
    • Rob Pike's avatar
      text/template: allow grouping of pipelines using parentheses · cc842c73
      Rob Pike authored
      Based on work by Russ Cox. From his CL:
      
              This is generally useful but especially helpful when trying
              to use the built-in boolean operators.  It lets you write:
      
              {{if not (f 1)}} foo {{end}}
              {{if and (f 1) (g 2)}} bar {{end}}
              {{if or (f 1) (g 2)}} quux {{end}}
      
              instead of
      
              {{if f 1 | not}} foo {{end}}
              {{if f 1}}{{if g 2}} bar {{end}}{{end}}
              {{$do := 0}}{{if f 1}}{{$do := 1}}{{else if g 2}}{{$do := 1}}{{end}}{{if $do}} quux {{end}}
      
      The result can be a bit LISPy but the benefit in expressiveness and readability
      for such a small change justifies it.
      
      I believe no changes are required to html/template.
      
      Fixes #3276.
      
      R=golang-dev, adg, rogpeppe, minux.ma
      CC=golang-dev
      https://golang.org/cl/6482056
      cc842c73
    • Robert Griesemer's avatar
      math/big: minor tweaks to assembly code (slightly better performance) · 3bd8684f
      Robert Griesemer authored
      Benchmarks run on 2.8GHz Quad-Code Intel Xeon,
      4GB 800MHz DDR2 FB-DIMM ("PowerMac").
      
      benchmark             old ns/op    new ns/op    delta
      BenchmarkAddVV_1              7            7   -0.82%
      BenchmarkAddVV_2              8            8   -3.46%
      BenchmarkAddVV_3             10            9   -4.81%
      BenchmarkAddVV_4              9            9   -1.89%
      BenchmarkAddVV_5             11           10   -5.22%
      BenchmarkAddVV_1e1           17           18   +4.05%
      BenchmarkAddVV_1e2          117          115   -1.71%
      BenchmarkAddVV_1e3         1095         1090   -0.46%
      BenchmarkAddVV_1e4        13149        12679   -3.57%
      BenchmarkAddVV_1e5       135133       129482   -4.18%
      BenchmarkAddVW_1              6            6   -1.14%
      BenchmarkAddVW_2              7            7   +3.78%
      BenchmarkAddVW_3              8            8   +0.12%
      BenchmarkAddVW_4              8            8   -6.52%
      BenchmarkAddVW_5              9            8   -3.70%
      BenchmarkAddVW_1e1           14           13   -4.29%
      BenchmarkAddVW_1e2           97           96   -1.33%
      BenchmarkAddVW_1e3          953          940   -1.36%
      BenchmarkAddVW_1e4         9776         9527   -2.55%
      BenchmarkAddVW_1e5       102396        97738   -4.55%
      
      benchmark              old MB/s     new MB/s  speedup
      BenchmarkAddVV_1        8702.84      8774.56    1.01x
      BenchmarkAddVV_2       14739.60     15277.82    1.04x
      BenchmarkAddVV_3       18375.37     19398.16    1.06x
      BenchmarkAddVV_4       26935.44     27464.68    1.02x
      BenchmarkAddVV_5       27754.04     29423.30    1.06x
      BenchmarkAddVV_1e1     37050.89     35629.72    0.96x
      BenchmarkAddVV_1e2     54289.15     55533.24    1.02x
      BenchmarkAddVV_1e3     58428.83     58682.53    1.00x
      BenchmarkAddVV_1e4     48670.55     50475.99    1.04x
      BenchmarkAddVV_1e5     47360.54     49427.66    1.04x
      BenchmarkAddVW_1       10397.27     10502.23    1.01x
      BenchmarkAddVW_2       17279.03     16654.13    0.96x
      BenchmarkAddVW_3       23858.39     23825.89    1.00x
      BenchmarkAddVW_4       29799.42     31895.06    1.07x
      BenchmarkAddVW_5       34781.83     36105.11    1.04x
      BenchmarkAddVW_1e1     45629.88     47597.42    1.04x
      BenchmarkAddVW_1e2     65341.93     66240.04    1.01x
      BenchmarkAddVW_1e3     67153.67     68069.83    1.01x
      BenchmarkAddVW_1e4     65464.60     67173.83    1.03x
      BenchmarkAddVW_1e5     62501.88     65480.66    1.05x
      
      R=iant
      CC=golang-dev
      https://golang.org/cl/6484056
      3bd8684f
    • Robert Griesemer's avatar
      math/big: faster (add|sub)V(V|W) routines · 35422bc1
      Robert Griesemer authored
      Benchmarks run on 3.06GHz Intel Core 2 Duo,
      4GB 800MHz DDR2 SDRAM ("iMac").
      
      benchmark             old ns/op    new ns/op    delta
      BenchmarkAddVV_1              6            6   +2.75%
      BenchmarkAddVV_2              9            7  -19.71%
      BenchmarkAddVV_3              9            9   +2.25%
      BenchmarkAddVV_4             10            8  -20.46%
      BenchmarkAddVV_5             12           10  -19.53%
      BenchmarkAddVV_1e1           23           15  -32.48%
      BenchmarkAddVV_1e2          213          107  -49.77%
      BenchmarkAddVV_1e3         2088          993  -52.44%
      BenchmarkAddVV_1e4        20874        12027  -42.38%
      BenchmarkAddVV_1e5       209858       121480  -42.11%
      BenchmarkAddVW_1              5            5   +0.90%
      BenchmarkAddVW_2             11           11   -3.51%
      BenchmarkAddVW_3              7            7   -0.27%
      BenchmarkAddVW_4              8            7   -6.32%
      BenchmarkAddVW_5              9            8  -10.89%
      BenchmarkAddVW_1e1           17           12  -26.01%
      BenchmarkAddVW_1e2          155           89  -42.32%
      BenchmarkAddVW_1e3         1479          873  -40.97%
      BenchmarkAddVW_1e4        13838         8764  -36.67%
      BenchmarkAddVW_1e5       147353        89560  -39.22%
      
      benchmark              old MB/s     new MB/s  speedup
      BenchmarkAddVV_1        9765.57      9508.55    0.97x
      BenchmarkAddVV_2       13077.63     16284.97    1.25x
      BenchmarkAddVV_3       20599.58     20156.67    0.98x
      BenchmarkAddVV_4       23591.58     29516.02    1.25x
      BenchmarkAddVV_5       24920.95     31194.10    1.25x
      BenchmarkAddVV_1e1     27393.76     40621.71    1.48x
      BenchmarkAddVV_1e2     29911.96     59592.99    1.99x
      BenchmarkAddVV_1e3     30650.73     64429.84    2.10x
      BenchmarkAddVV_1e4     30660.09     53213.08    1.74x
      BenchmarkAddVV_1e5     30496.74     52683.46    1.73x
      BenchmarkAddVW_1       11503.39     11405.98    0.99x
      BenchmarkAddVW_2       11203.56     11586.92    1.03x
      BenchmarkAddVW_3       26173.45     26224.75    1.00x
      BenchmarkAddVW_4       30560.30     32621.94    1.07x
      BenchmarkAddVW_5       33183.81     37269.94    1.12x
      BenchmarkAddVW_1e1     36991.75     50098.53    1.35x
      BenchmarkAddVW_1e2     41087.14     71549.93    1.74x
      BenchmarkAddVW_1e3     43266.42     73279.83    1.69x
      BenchmarkAddVW_1e4     46246.74     73021.97    1.58x
      BenchmarkAddVW_1e5     43433.00     71459.96    1.65x
      
      Benchmarks run on 2.8GHz Quad-Code Intel Xeon,
      4GB 800MHz DDR2 FB-DIMM ("PowerMac").
      
      benchmark             old ns/op    new ns/op    delta
      BenchmarkAddVV_1              7            7   +2.51%
      BenchmarkAddVV_2              8            8   +3.70%
      BenchmarkAddVV_3             10           10   +4.00%
      BenchmarkAddVV_4             11            9  -19.49%
      BenchmarkAddVV_5             14           11  -18.44%
      BenchmarkAddVV_1e1           23           17  -27.00%
      BenchmarkAddVV_1e2          234          117  -50.00%
      BenchmarkAddVV_1e3         2284         1095  -52.06%
      BenchmarkAddVV_1e4        22906        13149  -42.60%
      BenchmarkAddVV_1e5       229860       135133  -41.21%
      BenchmarkAddVW_1              6            6   +1.15%
      BenchmarkAddVW_2              7            7   +1.37%
      BenchmarkAddVW_3              7            8   +1.00%
      BenchmarkAddVW_4              9            8   -6.93%
      BenchmarkAddVW_5             10            9  -13.21%
      BenchmarkAddVW_1e1           18           14  -24.32%
      BenchmarkAddVW_1e2          170           97  -42.41%
      BenchmarkAddVW_1e3         1619          953  -41.14%
      BenchmarkAddVW_1e4        15142         9776  -35.44%
      BenchmarkAddVW_1e5       160835       102396  -36.33%
      
      benchmark              old MB/s     new MB/s  speedup
      BenchmarkAddVV_1        8928.95      8702.84    0.97x
      BenchmarkAddVV_2       15298.84     14739.60    0.96x
      BenchmarkAddVV_3       19116.52     18375.37    0.96x
      BenchmarkAddVV_4       21644.30     26935.44    1.24x
      BenchmarkAddVV_5       22771.64     27754.04    1.22x
      BenchmarkAddVV_1e1     27017.62     37050.89    1.37x
      BenchmarkAddVV_1e2     27326.09     54289.15    1.99x
      BenchmarkAddVV_1e3     28016.84     58428.83    2.09x
      BenchmarkAddVV_1e4     27939.38     48670.55    1.74x
      BenchmarkAddVV_1e5     27843.00     47360.54    1.70x
      BenchmarkAddVW_1       10510.97     10397.27    0.99x
      BenchmarkAddVW_2       17499.71     17279.03    0.99x
      BenchmarkAddVW_3       24093.93     23858.39    0.99x
      BenchmarkAddVW_4       27733.08     29799.42    1.07x
      BenchmarkAddVW_5       30267.17     34781.83    1.15x
      BenchmarkAddVW_1e1     34566.78     45629.88    1.32x
      BenchmarkAddVW_1e2     37521.89     65341.93    1.74x
      BenchmarkAddVW_1e3     39513.18     67153.67    1.70x
      BenchmarkAddVW_1e4     42263.80     65464.60    1.55x
      BenchmarkAddVW_1e5     39792.21     62501.88    1.57x
      
      R=iant, remyoudompheng, nightlyone, minux.ma
      CC=golang-dev
      https://golang.org/cl/6482062
      35422bc1
    • Marcel van Lohuizen's avatar
      exp/locale/collate: add code to ignore tests with (unpaired) surrogates. · c61a185f
      Marcel van Lohuizen authored
      In the regtest data, surrogates are assigned primary weights based on
      the surrogate code point value.  Go now converts surrogates to FFFD, however,
      meaning that the primary weight is based on this code point instead.
      This change drops tests with surrogates and lets the tests pass.
      
      R=r
      CC=golang-dev
      https://golang.org/cl/6461100
      c61a185f
    • Dmitriy Vyukov's avatar
      net/http: add parallel client/server benchmark · 75af0132
      Dmitriy Vyukov authored
      R=bradfitz@golang.org
      
      R=bradfitz
      CC=bradfitz, dave, dsymonds, gobot, golang-dev
      https://golang.org/cl/6441134
      75af0132
    • Nigel Tao's avatar
      exp/html: remove unused forTag function. · 8eb05b38
      Nigel Tao authored
      R=adg
      CC=golang-dev
      https://golang.org/cl/6480051
      8eb05b38
    • Julien Schmidt's avatar
      database/sql: stop reuse of bad connections · 37b40dab
      Julien Schmidt authored
      The second parameter for sql.putConn() (err) is always nil. As a result bad
      connections are reused, even if the driver returns an driver.ErrBadConn.
      Unsing a pointer to err instead achievs the desired behavior.
      See http://code.google.com/p/go/issues/detail?id=3777 for more details.
      Fixes #3777.
      
      R=golang-dev, dave, bradfitz, jameshuachow, BlakeSGentry
      CC=golang-dev
      https://golang.org/cl/6348069
      37b40dab
    • Brad Fitzpatrick's avatar
      A+C: Add Julien Schmidt (Individual CLA) · c39509a3
      Brad Fitzpatrick authored
      R=golang-dev, iant
      CC=golang-dev
      https://golang.org/cl/6459050
      c39509a3
    • David Symonds's avatar
      A+C: Tobias Columbus (individual CLA) · e6815c53
      David Symonds authored
      R=golang-dev, iant
      CC=golang-dev
      https://golang.org/cl/6480058
      e6815c53
    • Robert Griesemer's avatar
      go/scanner: don't drop identifiers starting with non-ASCII letter... · 77e98fb8
      Robert Griesemer authored
      Bug introduced with CL 6454150.
      
      Fixes #4000.
      
      R=r
      CC=golang-dev
      https://golang.org/cl/6474061
      77e98fb8
  8. 23 Aug, 2012 8 commits