1. 26 Sep, 2012 18 commits
  2. 25 Sep, 2012 8 commits
  3. 24 Sep, 2012 14 commits
    • Mikio Hara's avatar
      net: add read, write message methods to IPConn, UDPConn · 4b9e8415
      Mikio Hara authored
      Both methods allow to access the IP ancillary data through
      socket control messages.
      
      This CL is required for CL 6482044; go.net/ipv4: new package.
      
      R=rsc, r, dave
      CC=golang-dev
      https://golang.org/cl/6426047
      4b9e8415
    • Rémy Oudompheng's avatar
      cmd/{5g,6g,8g,6c}: remove unused macro, use %E to print etype. · 33cceb09
      Rémy Oudompheng authored
      R=golang-dev, rsc, dave
      CC=golang-dev
      https://golang.org/cl/6569044
      33cceb09
    • Rémy Oudompheng's avatar
      cmd/6g, cmd/8g: add OINDREG, ODOT, ODOTPTR cases to igen. · f4e76d5e
      Rémy Oudompheng authored
      Apart from reducing the number of LEAL/LEAQ instructions by about
      30%, it gives 8g easier registerization in several cases,
      for example in strconv. Performance with 6g is not affected.
      
      Before (386):
      src/pkg/strconv/decimal.go:22   TEXT  (*decimal).String+0(SB),$240-12
      src/pkg/strconv/extfloat.go:540 TEXT  (*extFloat).ShortestDecimal+0(SB),$584-20
      
      After (386):
      src/pkg/strconv/decimal.go:22   TEXT  (*decimal).String+0(SB),$196-12
      src/pkg/strconv/extfloat.go:540 TEXT  (*extFloat).ShortestDecimal+0(SB),$420-20
      
      Benchmarks with GOARCH=386 (on a Core 2).
      
      benchmark                 old ns/op    new ns/op    delta
      BenchmarkBinaryTree17    7110191000   7079644000   -0.43%
      BenchmarkFannkuch11      7769274000   7766514000   -0.04%
      BenchmarkGobDecode         33454820     34755400   +3.89%
      BenchmarkGobEncode         11675710     11007050   -5.73%
      BenchmarkGzip            2013519000   1593855000  -20.84%
      BenchmarkGunzip           253368200    242667600   -4.22%
      BenchmarkJSONEncode       152443900    120763400  -20.78%
      BenchmarkJSONDecode       304112800    247461800  -18.63%
      BenchmarkMandelbrot200     29245520     29240490   -0.02%
      BenchmarkParse              8484105      8088660   -4.66%
      BenchmarkRevcomp         2695688000   2841263000   +5.40%
      BenchmarkTemplate         363759800    277271200  -23.78%
      
      benchmark                       old ns/op    new ns/op    delta
      BenchmarkAtof64Decimal                127          129   +1.57%
      BenchmarkAtof64Float                  166          164   -1.20%
      BenchmarkAtof64FloatExp               308          300   -2.60%
      BenchmarkAtof64Big                    584          571   -2.23%
      BenchmarkAppendFloatDecimal           440          430   -2.27%
      BenchmarkAppendFloat                  995          776  -22.01%
      BenchmarkAppendFloatExp               897          746  -16.83%
      BenchmarkAppendFloatNegExp            900          752  -16.44%
      BenchmarkAppendFloatBig              1528         1228  -19.63%
      BenchmarkAppendFloat32Integer         443          453   +2.26%
      BenchmarkAppendFloat32ExactFraction   812          661  -18.60%
      BenchmarkAppendFloat32Point          1002          773  -22.85%
      BenchmarkAppendFloat32Exp             858          725  -15.50%
      BenchmarkAppendFloat32NegExp          848          728  -14.15%
      BenchmarkAppendFloat64Fixed1          447          431   -3.58%
      BenchmarkAppendFloat64Fixed2          480          462   -3.75%
      BenchmarkAppendFloat64Fixed3          461          457   -0.87%
      BenchmarkAppendFloat64Fixed4          509          484   -4.91%
      
      Update #1914.
      
      R=rsc, nigeltao
      CC=golang-dev, remy
      https://golang.org/cl/6494107
      f4e76d5e
    • Adam Langley's avatar
      crypto/tls: support session ticket resumption. · 65c7dc4a
      Adam Langley authored
      Session resumption saves a round trip and removes the need to perform
      the public-key operations of a TLS handshake when both the client and
      server support it (which is true of Firefox and Chrome, at least).
      
      R=golang-dev, bradfitz, rsc
      CC=golang-dev
      https://golang.org/cl/6555051
      65c7dc4a
    • Francesc Campoy's avatar
      testing: document -test.bench flag · b7cbfe6a
      Francesc Campoy authored
      Fixes #4080.
      
      R=rsc, adg
      CC=golang-dev
      https://golang.org/cl/6553068
      b7cbfe6a
    • Russ Cox's avatar
      cmd/gc: fix escape analysis bug · 54af7528
      Russ Cox authored
      Was not handling &x.y[0] and &x.y.z correctly where
      y is an array or struct-valued field (not a pointer).
      
      R=ken2
      CC=golang-dev
      https://golang.org/cl/6551059
      54af7528
    • Russ Cox's avatar
      regexp/syntax: define accepted syntax · c7e0b8ba
      Russ Cox authored
      Update #3953.
      
      R=bradfitz, campoy
      CC=golang-dev
      https://golang.org/cl/6543068
      c7e0b8ba
    • Rémy Oudompheng's avatar
      cmd/8g: don't create redundant temporaries in bgen. · 14f3276c
      Rémy Oudompheng authored
      Comparisons used to create temporaries for arguments
      even if they were already variables or addressable.
      Removing the extra ones reduces pressure on regopt.
      
      benchmark                 old ns/op    new ns/op    delta
      BenchmarkGobDecode         50787620     49908980   -1.73%
      BenchmarkGobEncode         19870190     19473030   -2.00%
      BenchmarkGzip            3214321000   3067929000   -4.55%
      BenchmarkGunzip           496792800    465828600   -6.23%
      BenchmarkJSONEncode       232524800    263864400  +13.48%
      BenchmarkJSONDecode       622038400    506600600  -18.56%
      BenchmarkMandelbrot200     23937310     45913060  +91.81%
      BenchmarkParse             14364450     13997010   -2.56%
      BenchmarkRevcomp         6919028000   6480009000   -6.35%
      BenchmarkTemplate         594458800    539528200   -9.24%
      
      benchmark                  old MB/s     new MB/s  speedup
      BenchmarkGobDecode            15.11        15.38    1.02x
      BenchmarkGobEncode            38.63        39.42    1.02x
      BenchmarkGzip                  6.04         6.33    1.05x
      BenchmarkGunzip               39.06        41.66    1.07x
      BenchmarkJSONEncode            8.35         7.35    0.88x
      BenchmarkJSONDecode            3.12         3.83    1.23x
      BenchmarkParse                 4.03         4.14    1.03x
      BenchmarkRevcomp              36.73        39.22    1.07x
      BenchmarkTemplate              3.26         3.60    1.10x
      
      R=mtj, daniel.morsing, rsc
      CC=golang-dev
      https://golang.org/cl/6547064
      14f3276c
    • Eric Roshan-Eisner's avatar
      testing: add memory allocation stats to benchmark · 74a1a8ae
      Eric Roshan-Eisner authored
      R=rsc, nigeltao, dave, bradfitz, r, rogpeppe
      CC=golang-dev
      https://golang.org/cl/6497084
      74a1a8ae
    • Russ Cox's avatar
      cmd/gc: prepare for 64-bit ints · 650160e3
      Russ Cox authored
      This CL makes the compiler understand that the type of
      the len or cap of a map, slice, or string is 'int', not 'int32'.
      It does not change the meaning of int, but it should make
      the eventual change of the meaning of int in 6g a bit smoother.
      
      Update #2188.
      
      R=ken, dave, remyoudompheng
      CC=golang-dev
      https://golang.org/cl/6542059
      650160e3
    • Russ Cox's avatar
      cmd/ld: prepare for 64-bit ints · 0bf46d0c
      Russ Cox authored
      Use explicit IntSize constant instead of 4.
      
      This CL does not change the meaning of int, but it should make
      the eventual change of the meaning of int on amd64 a bit
      smoother.
      
      Update #2188.
      
      R=ken, dave
      CC=golang-dev
      https://golang.org/cl/6554076
      0bf46d0c
    • Russ Cox's avatar
      cmd/cgo: prepare for 64-bit ints · 5501a097
      Russ Cox authored
      This CL makes the size of an int controlled by a variable
      in cgo instead of hard-coding 4 (or 32 bits) in various places.
      
      Update #2188.
      
      R=iant, r, dave
      CC=golang-dev
      https://golang.org/cl/6548061
      5501a097
    • Russ Cox's avatar
      misc/cgo: prepare for 64-bit ints · 0a006b49
      Russ Cox authored
      In a few places, the existing cgo tests assume that a
      Go int is the same as a C int. Making int 64 bits wide
      on 64-bit platforms violates this assumption.
      Change that code to assume that Go int32 and C int
      are the same instead. That's still not great, but it's better,
      and I am unaware of any systems we run on where it is not true.
      
      Update #2188.
      
      R=iant, r
      CC=golang-dev
      https://golang.org/cl/6552064
      0a006b49
    • Russ Cox's avatar
      runtime: prepare for 64-bit ints · 0b08c948
      Russ Cox authored
      This CL makes the runtime understand that the type of
      the len or cap of a map, slice, or string is 'int', not 'int32',
      and it is also careful to distinguish between function arguments
      and results of type 'int' vs type 'int32'.
      
      In the runtime, the new typedefs 'intgo' and 'uintgo' refer
      to Go int and uint. The C types int and uint continue to be
      unavailable (cause intentional compile errors).
      
      This CL does not change the meaning of int, but it should make
      the eventual change of the meaning of int on amd64 a bit
      smoother.
      
      Update #2188.
      
      R=iant, r, dave, remyoudompheng
      CC=golang-dev
      https://golang.org/cl/6551067
      0b08c948