1. 03 Oct, 2012 2 commits
  2. 02 Oct, 2012 4 commits
    • Robert Griesemer's avatar
      go/parser: correctly parse <-chan T(x) as <-(chan T)(x) · 05dc3bf5
      Robert Griesemer authored
      Fixes #4110.
      
      R=iant
      CC=golang-dev
      https://golang.org/cl/6597069
      05dc3bf5
    • Robert Hencke's avatar
      codereview.py: suggest installing Mercurial from official website · 10ea3254
      Robert Hencke authored
      Continuation of https://golang.org/cl/6499053/
      
      R=golang-dev, minux.ma
      CC=golang-dev
      https://golang.org/cl/6584059
      10ea3254
    • Rémy Oudompheng's avatar
      cmd/8g: do not take the address of string/slice for &s[i] · 2de064b6
      Rémy Oudompheng authored
      A similar change was made in 6g recently.
      
      LEALs in cmd/go: 31440 before, 27867 after.
      
      benchmark                 old ns/op    new ns/op    delta
      BenchmarkBinaryTree17    7065794000   6723617000   -4.84%
      BenchmarkFannkuch11      7767395000   7477945000   -3.73%
      BenchmarkGobDecode         34708140     34857820   +0.43%
      BenchmarkGobEncode         10998780     10960060   -0.35%
      BenchmarkGzip            1603630000   1471052000   -8.27%
      BenchmarkGunzip           242573900    240650400   -0.79%
      BenchmarkJSONEncode       120842200    117966100   -2.38%
      BenchmarkJSONDecode       247254900    249103100   +0.75%
      BenchmarkMandelbrot200     29237330     29241790   +0.02%
      BenchmarkParse              8111320      8096865   -0.18%
      BenchmarkRevcomp         2595780000   2694153000   +3.79%
      BenchmarkTemplate         276679600    264497000   -4.40%
      
      benchmark                              old ns/op    new ns/op    delta
      BenchmarkAppendFloatDecimal                  429          416   -3.03%
      BenchmarkAppendFloat                         780          740   -5.13%
      BenchmarkAppendFloatExp                      746          700   -6.17%
      BenchmarkAppendFloatNegExp                   752          694   -7.71%
      BenchmarkAppendFloatBig                     1228         1108   -9.77%
      BenchmarkAppendFloat32Integer                457          416   -8.97%
      BenchmarkAppendFloat32ExactFraction          662          631   -4.68%
      BenchmarkAppendFloat32Point                  771          735   -4.67%
      BenchmarkAppendFloat32Exp                    722          672   -6.93%
      BenchmarkAppendFloat32NegExp                 724          659   -8.98%
      BenchmarkAppendFloat64Fixed1                 429          400   -6.76%
      BenchmarkAppendFloat64Fixed2                 463          442   -4.54%
      
      Update #1914.
      
      R=golang-dev, daniel.morsing, rsc
      CC=golang-dev
      https://golang.org/cl/6574043
      2de064b6
    • Dmitriy Vyukov's avatar
      race: gc changes · 041fc8bf
      Dmitriy Vyukov authored
      This is the first part of a bigger change that adds data race detection feature:
      https://golang.org/cl/6456044
      This change makes gc compiler instrument memory accesses when supplied with -b flag.
      
      R=rsc, nigeltao, lvd
      CC=golang-dev
      https://golang.org/cl/6497074
      041fc8bf
  3. 01 Oct, 2012 9 commits
  4. 30 Sep, 2012 3 commits
  5. 29 Sep, 2012 2 commits
  6. 28 Sep, 2012 8 commits
    • Robert Griesemer's avatar
      go spec: arguments for append may overlap · 0c494718
      Robert Griesemer authored
      Fixes #4142.
      
      R=rsc, r, iant, ken, remyoudompheng
      CC=golang-dev
      https://golang.org/cl/6567062
      0c494718
    • Paul Chang's avatar
      cmd/godoc: fix minor bug in FormatSelections. · 7c8e26ee
      Paul Chang authored
      FormatSelections tries to call a nil function value if lw is nil
      and the final entry in the selections array is non-nil. Luckily,
      this doesn't actually happen in practice since godoc doesn't use
      this combination (no line numbers, but with selections).
      
      R=gri
      CC=gobot, golang-dev
      https://golang.org/cl/6488106
      7c8e26ee
    • Robert Griesemer's avatar
      CONTRIBUTORS: added Paul Chang (Google CLA) · 32eb1102
      Robert Griesemer authored
      R=golang-dev, iant
      CC=golang-dev
      https://golang.org/cl/6569078
      32eb1102
    • Robert Griesemer's avatar
      container/list: slightly better code factoring · de782dd1
      Robert Griesemer authored
      R=golang-dev, adg
      CC=golang-dev
      https://golang.org/cl/6569077
      de782dd1
    • Robert Griesemer's avatar
      container/list: Correctly maintain internal invariants · 0e9daef2
      Robert Griesemer authored
      The previous implementation was a mess with invariants
      maintained inconsistently. Essentially reimplemented
      the package:
      
      - used a circular list as internal representation for
        significantly simpler implementation with fewer
        special cases while maintaining the illusion of
        a nil-terminated doubly linked list externally
      
      - more precise documentation
      
      - cleaned up and simplified tests, added test case
        for issue 4103.
      
      No changes to the API or documented semantics.
      
      All this said, I would be in favor of removing
      this package eventually. container/ring provides
      a faster implementation and a simpler and more
      powerful API.
      
      Fixes #4103.
      
      R=r
      CC=golang-dev
      https://golang.org/cl/6569072
      0e9daef2
    • Ian Lance Taylor's avatar
      test: match gccgo error messages · 6ed800c0
      Ian Lance Taylor authored
      const1.go:31:12: error: integer constant overflow
      const1.go:31:12: error: integer constant overflow
      const1.go:33:12: error: integer constant overflow
      const1.go:33:12: error: integer constant overflow
      const1.go:34:14: error: integer constant overflow
      const1.go:35:17: error: integer constant overflow
      const1.go:35:17: error: integer constant overflow
      const1.go:35:17: error: integer constant overflow
      const1.go:35:17: error: integer constant overflow
      const1.go:35:17: error: integer constant overflow
      const1.go:36:19: error: integer constant overflow
      const1.go:37:15: error: integer constant overflow
      const1.go:37:15: error: integer constant overflow
      const1.go:37:24: error: integer constant overflow
      const1.go:37:15: error: integer constant overflow
      const1.go:37:15: error: integer constant overflow
      const1.go:37:15: error: integer constant overflow
      const1.go:37:24: error: integer constant overflow
      const1.go:37:15: error: integer constant overflow
      const1.go:38:12: error: integer constant overflow
      const1.go:38:12: error: integer constant overflow
      const1.go:38:12: error: integer constant overflow
      const1.go:38:12: error: integer constant overflow
      const1.go:41:20: error: integer constant overflow
      const1.go:41:20: error: integer constant overflow
      const1.go:42:20: error: integer constant overflow
      const1.go:42:20: error: integer constant overflow
      const1.go:44:28: error: integer constant overflow
      const1.go:44:28: error: integer constant overflow
      const1.go:45:14: error: integer constant overflow
      const1.go:49:14: error: integer constant overflow
      const1.go:50:14: error: integer constant overflow
      const1.go:51:14: error: integer constant overflow
      const1.go:54:23: error: integer constant overflow
      const1.go:54:23: error: integer constant overflow
      const1.go:54:23: error: integer constant overflow
      const1.go:54:23: error: integer constant overflow
      const1.go:56:14: error: integer constant overflow
      const1.go:57:24: error: integer constant overflow
      const1.go:57:24: error: integer constant overflow
      const1.go:58:24: error: integer constant overflow
      const1.go:58:24: error: integer constant overflow
      const1.go:59:22: error: integer constant overflow
      const1.go:59:22: error: integer constant overflow
      const1.go:61:24: error: integer constant overflow
      const1.go:62:20: error: division by zero
      const1.go:65:19: error: floating point constant overflow
      const1.go:65:19: error: floating point constant overflow
      const1.go:66:28: error: floating point constant overflow
      const1.go:66:28: error: floating point constant overflow
      const1.go:67:19: error: floating point constant overflow
      const1.go:67:19: error: floating point constant overflow
      const1.go:68:19: error: division by zero
      const1.go:33:14: error: integer constant overflow
      const1.go:35:19: error: integer constant overflow
      const1.go:42:22: error: integer constant overflow
      const1.go:53:17: error: integer constant overflow
      const1.go:55:14: error: integer constant overflow
      const1.go:59:24: error: integer constant overflow
      const1.go:69:20: error: expected integer type
      const1.go:75:4: error: argument 1 has incompatible type (cannot use type int8 as type int)
      const1.go:76:4: error: argument 1 has incompatible type (cannot use type int8 as type int)
      const1.go:77:4: error: argument 1 has incompatible type (cannot use type uint8 as type int)
      const1.go:79:4: error: argument 1 has incompatible type (cannot use type float32 as type int)
      const1.go:80:4: error: argument 1 has incompatible type (cannot use type float64 as type int)
      const1.go:81:4: error: floating point constant truncated to integer
      const1.go:83:4: error: argument 1 has incompatible type (cannot use type float64 as type int)
      const1.go:84:4: error: argument 1 has incompatible type (cannot use type string as type int)
      const1.go:85:4: error: argument 1 has incompatible type (cannot use type bool as type int)
      const1.go:88:7: error: const initializer cannot be nil
      
      const2.go:14:8: error: expected ‘=’
      
      const5.go:27:7: error: expression is not constant
      const5.go:28:7: error: expression is not constant
      const5.go:30:7: error: expression is not constant
      const5.go:31:7: error: expression is not constant
      
      ddd1.go:57:23: error: invalid use of ‘...’ in type conversion
      ddd1.go:59:6: error: invalid use of ‘...’ in type conversion
      ddd1.go:60:12: error: use of ‘[...]’ outside of array literal
      ddd1.go:21:15: error: argument 1 has incompatible type
      ddd1.go:22:10: error: argument 1 has incompatible type
      ddd1.go:30:6: error: invalid use of ‘...’ with non-slice
      ddd1.go:30:6: error: invalid use of ‘...’ with non-slice
      ddd1.go:46:2: error: invalid use of %<...%> with builtin function
      ddd1.go:47:2: error: invalid use of %<...%> with builtin function
      ddd1.go:49:2: error: invalid use of %<...%> with builtin function
      ddd1.go:50:6: error: invalid use of %<...%> with builtin function
      ddd1.go:51:6: error: invalid use of %<...%> with builtin function
      ddd1.go:53:6: error: invalid use of %<...%> with builtin function
      ddd1.go:58:13: error: invalid use of %<...%> with builtin function
      ddd1.go:20:10: error: floating point constant truncated to integer
      ddd1.go:32:6: error: invalid use of ‘...’ calling non-variadic function
      
      declbad.go:20:3: error: variables redeclared but no variable is new
      declbad.go:38:3: error: variables redeclared but no variable is new
      declbad.go:44:3: error: variables redeclared but no variable is new
      declbad.go:51:3: error: variables redeclared but no variable is new
      declbad.go:57:3: error: variables redeclared but no variable is new
      declbad.go:63:3: error: variables redeclared but no variable is new
      declbad.go:26:3: error: incompatible types in assignment (cannot use type float32 as type int)
      declbad.go:32:3: error: incompatible types in assignment (cannot use type int as type float32)
      declbad.go:44:3: error: incompatible types in assignment (different number of results)
      
      fixedbugs/bug223.go:21:5: error: initialization expression for ‘m’ depends upon itself
      
      fixedbugs/bug412.go:10:2: error: duplicate field name ‘x’
      
      fixedbugs/bug413.go:11:5: error: initialization expression for ‘i’ depends upon itself
      
      fixedbugs/bug416.go:13:1: error: method ‘X’ redeclares struct field name
      
      fixedbugs/bug435.go:15:49: error: missing ‘)’
      fixedbugs/bug435.go:15:2: error: reference to undefined name ‘bar’
      
      fixedbugs/bug451.go:9:9: error: expected package
      
      typeswitch3.go:39:9: error: no new variables on left side of ‘:=’
      typeswitch3.go:24:2: error: impossible type switch case (type has no methods)
      
      R=golang-dev, rsc
      CC=golang-dev
      https://golang.org/cl/6560063
      6ed800c0
    • Eric Roshan-Eisner's avatar
      strings: implement a faster single-string Replacer · 631a0e71
      Eric Roshan-Eisner authored
      The string searching is implemented separately so other functions
      may make use of it in the future.
      
      benchmark                        old ns/op    new ns/op    delta
      BenchmarkSingleMaxSkipping          125889         2474  -98.03%
      BenchmarkSingleLongSuffixFail        16252         1996  -87.72%
      BenchmarkSingleMatch                260793       136266  -47.75%
      
      benchmark                         old MB/s     new MB/s  speedup
      BenchmarkSingleMaxSkipping           79.43      4041.57   50.88x
      BenchmarkSingleLongSuffixFail        61.65       501.81    8.14x
      BenchmarkSingleMatch                 57.52       110.08    1.91x
      
      R=nigeltao
      CC=golang-dev
      https://golang.org/cl/6545049
      631a0e71
    • Eric Roshan-Eisner's avatar
      testing: remove redundant whitespace in output · 4bf6249b
      Eric Roshan-Eisner authored
      R=golang-dev, r
      CC=golang-dev
      https://golang.org/cl/6565061
      4bf6249b
  7. 27 Sep, 2012 9 commits
  8. 26 Sep, 2012 3 commits
    • Rob Pike's avatar
      fmt: allow # and x together for strings · ffea835b
      Rob Pike authored
      Silly and small but easy to be consistent.
      To make it worthwhile, I eliminated an allocation when using
      %x on a byte slice.
      
      Fixes #4149.
      
      R=golang-dev, rsc
      CC=golang-dev
      https://golang.org/cl/6574046
      ffea835b
    • Sébastien Paolacci's avatar
      net: spread fd over several pollservers. · 7014bc64
      Sébastien Paolacci authored
      Lighten contention without preventing further improvements on pollservers.
      Connections are spread over Min(GOMAXPROCS, NumCPU, 8) pollserver instances.
      
      Median of 10 runs, 4 cores @ 3.4GHz, amd/linux-3.2:
      
      BenchmarkTCPOneShot                171917 ns/op   175194 ns/op      1.91%
      BenchmarkTCPOneShot-2              101413 ns/op   109462 ns/op      7.94%
      BenchmarkTCPOneShot-4               91796 ns/op    35712 ns/op    -61.10%
      BenchmarkTCPOneShot-6               90938 ns/op    30607 ns/op    -66.34%
      BenchmarkTCPOneShot-8               90374 ns/op    29150 ns/op    -67.75%
      BenchmarkTCPOneShot-16             101089 ns/op   111526 ns/op     10.32%
      
      BenchmarkTCPOneShotTimeout         174986 ns/op   178606 ns/op      2.07%
      BenchmarkTCPOneShotTimeout-2       101585 ns/op   110678 ns/op      8.95%
      BenchmarkTCPOneShotTimeout-4        91547 ns/op    35931 ns/op    -60.75%
      BenchmarkTCPOneShotTimeout-6        91496 ns/op    31019 ns/op    -66.10%
      BenchmarkTCPOneShotTimeout-8        90670 ns/op    29531 ns/op    -67.43%
      BenchmarkTCPOneShotTimeout-16      101013 ns/op   106026 ns/op      4.96%
      
      BenchmarkTCPPersistent              51731 ns/op    53324 ns/op      3.08%
      BenchmarkTCPPersistent-2            32888 ns/op    30678 ns/op     -6.72%
      BenchmarkTCPPersistent-4            25751 ns/op    15595 ns/op    -39.44%
      BenchmarkTCPPersistent-6            26737 ns/op     9805 ns/op    -63.33%
      BenchmarkTCPPersistent-8            26850 ns/op     9730 ns/op    -63.76%
      BenchmarkTCPPersistent-16          104449 ns/op   102838 ns/op     -1.54%
      
      BenchmarkTCPPersistentTimeout       51806 ns/op    53281 ns/op      2.85%
      BenchmarkTCPPersistentTimeout-2     32956 ns/op    30895 ns/op     -6.25%
      BenchmarkTCPPersistentTimeout-4     25994 ns/op    18111 ns/op    -30.33%
      BenchmarkTCPPersistentTimeout-6     26679 ns/op     9846 ns/op    -63.09%
      BenchmarkTCPPersistentTimeout-8     26810 ns/op     9727 ns/op    -63.72%
      BenchmarkTCPPersistentTimeout-16   101652 ns/op   104410 ns/op      2.71%
      
      R=rsc, dvyukov, dave, mikioh.mikioh, bradfitz, remyoudompheng
      CC=golang-dev
      https://golang.org/cl/6496054
      7014bc64
    • Rémy Oudompheng's avatar
      cmd/6g, cmd/8g: fix two "out of fixed registers" cases. · 6feb6132
      Rémy Oudompheng authored
      In two cases, registers were allocated too early resulting
      in exhausting of available registers when nesting these
      operations.
      
      The case of method calls was due to missing cases in igen,
      which only makes calls but doesn't allocate a register for
      the result.
      
      The case of 8-bit multiplication was due to a wrong order
      in register allocation when Ullman numbers were bigger on the
      RHS.
      
      Fixes #3907.
      Fixes #4156.
      
      R=rsc
      CC=golang-dev, remy
      https://golang.org/cl/6560054
      6feb6132