1. 28 Jul, 2013 5 commits
    • Rémy Oudompheng's avatar
      effective_go.html: make snippets look formatted. · d26d5e64
      Rémy Oudompheng authored
      R=golang-dev, bradfitz
      CC=golang-dev
      https://golang.org/cl/11991043
      d26d5e64
    • Rémy Oudompheng's avatar
      compress/flate: reduce tiny allocs done by encoder. · 05026c4e
      Rémy Oudompheng authored
      benchmark                          old allocs   new allocs    delta
      BenchmarkEncodeDigitsSpeed1e4             942           91  -90.34%
      BenchmarkEncodeDigitsSpeed1e5            1919          178  -90.72%
      BenchmarkEncodeDigitsSpeed1e6           18539         1517  -91.82%
      BenchmarkEncodeDigitsDefault1e4           734          100  -86.38%
      BenchmarkEncodeDigitsDefault1e5          1958          193  -90.14%
      BenchmarkEncodeDigitsDefault1e6         17338         1426  -91.78%
      BenchmarkEncodeDigitsCompress1e4          734          100  -86.38%
      BenchmarkEncodeDigitsCompress1e5         1958          193  -90.14%
      BenchmarkEncodeDigitsCompress1e6        17338         1426  -91.78%
      BenchmarkEncodeTwainSpeed1e4             1865          109  -94.16%
      BenchmarkEncodeTwainSpeed1e5             3943          211  -94.65%
      BenchmarkEncodeTwainSpeed1e6            31279         1595  -94.90%
      BenchmarkEncodeTwainDefault1e4           1811          103  -94.31%
      BenchmarkEncodeTwainDefault1e5           3708          199  -94.63%
      BenchmarkEncodeTwainDefault1e6          26738         1330  -95.03%
      BenchmarkEncodeTwainCompress1e4          1811          103  -94.31%
      BenchmarkEncodeTwainCompress1e5          3693          190  -94.86%
      BenchmarkEncodeTwainCompress1e6         26902         1333  -95.04%
      
      benchmark                           old bytes    new bytes    delta
      BenchmarkEncodeDigitsSpeed1e4         1469438      1453920   -1.06%
      BenchmarkEncodeDigitsSpeed1e5         1490898      1458961   -2.14%
      BenchmarkEncodeDigitsSpeed1e6         1858819      1542407  -17.02%
      BenchmarkEncodeDigitsDefault1e4       1465903      1454160   -0.80%
      BenchmarkEncodeDigitsDefault1e5       1491841      1459361   -2.18%
      BenchmarkEncodeDigitsDefault1e6       1825424      1531545  -16.10%
      BenchmarkEncodeDigitsCompress1e4      1465903      1454160   -0.80%
      BenchmarkEncodeDigitsCompress1e5      1491681      1459361   -2.17%
      BenchmarkEncodeDigitsCompress1e6      1825424      1531545  -16.10%
      BenchmarkEncodeTwainSpeed1e4          1485308      1454400   -2.08%
      BenchmarkEncodeTwainSpeed1e5          1526065      1459878   -4.34%
      BenchmarkEncodeTwainSpeed1e6          2066627      1536296  -25.66%
      BenchmarkEncodeTwainDefault1e4        1484380      1454240   -2.03%
      BenchmarkEncodeTwainDefault1e5        1521793      1459558   -4.09%
      BenchmarkEncodeTwainDefault1e6        1977504      1523388  -22.96%
      BenchmarkEncodeTwainCompress1e4       1484380      1454240   -2.03%
      BenchmarkEncodeTwainCompress1e5       1521457      1459318   -4.08%
      BenchmarkEncodeTwainCompress1e6       1980000      1523609  -23.05%
      
      benchmark                           old ns/op    new ns/op    delta
      BenchmarkEncodeDigitsSpeed1e4         1472128      1384343   -5.96%
      BenchmarkEncodeDigitsSpeed1e5         8283663      8112304   -2.07%
      BenchmarkEncodeDigitsSpeed1e6        77459311     76364216   -1.41%
      BenchmarkEncodeDigitsDefault1e4       1813090      1746552   -3.67%
      BenchmarkEncodeDigitsDefault1e5      26221292     26052516   -0.64%
      BenchmarkEncodeDigitsDefault1e6     286512472    286099039   -0.14%
      BenchmarkEncodeDigitsCompress1e4      1809373      1747230   -3.43%
      BenchmarkEncodeDigitsCompress1e5     26231580     26038456   -0.74%
      BenchmarkEncodeDigitsCompress1e6    286140002    286025372   -0.04%
      BenchmarkEncodeTwainSpeed1e4          1594094      1438600   -9.75%
      BenchmarkEncodeTwainSpeed1e5          7669724      7316288   -4.61%
      BenchmarkEncodeTwainSpeed1e6         68731353     65938994   -4.06%
      BenchmarkEncodeTwainDefault1e4        2063497      1866488   -9.55%
      BenchmarkEncodeTwainDefault1e5       22602689     22221377   -1.69%
      BenchmarkEncodeTwainDefault1e6      233376842    232114297   -0.54%
      BenchmarkEncodeTwainCompress1e4       2062441      1949676   -5.47%
      BenchmarkEncodeTwainCompress1e5      28264344     27930627   -1.18%
      BenchmarkEncodeTwainCompress1e6     304369641    303704330   -0.22%
      
      benchmark                            old MB/s     new MB/s  speedup
      BenchmarkEncodeDigitsSpeed1e4            6.79         7.22    1.06x
      BenchmarkEncodeDigitsSpeed1e5           12.07        12.33    1.02x
      BenchmarkEncodeDigitsSpeed1e6           12.91        13.10    1.01x
      BenchmarkEncodeDigitsDefault1e4          5.52         5.73    1.04x
      BenchmarkEncodeDigitsDefault1e5          3.81         3.84    1.01x
      BenchmarkEncodeDigitsDefault1e6          3.49         3.50    1.00x
      BenchmarkEncodeDigitsCompress1e4         5.53         5.72    1.03x
      BenchmarkEncodeDigitsCompress1e5         3.81         3.84    1.01x
      BenchmarkEncodeDigitsCompress1e6         3.49         3.50    1.00x
      BenchmarkEncodeTwainSpeed1e4             6.27         6.95    1.11x
      BenchmarkEncodeTwainSpeed1e5            13.04        13.67    1.05x
      BenchmarkEncodeTwainSpeed1e6            14.55        15.17    1.04x
      BenchmarkEncodeTwainDefault1e4           4.85         5.36    1.11x
      BenchmarkEncodeTwainDefault1e5           4.42         4.50    1.02x
      BenchmarkEncodeTwainDefault1e6           4.28         4.31    1.01x
      BenchmarkEncodeTwainCompress1e4          4.85         5.13    1.06x
      BenchmarkEncodeTwainCompress1e5          3.54         3.58    1.01x
      BenchmarkEncodeTwainCompress1e6          3.29         3.29    1.00x
      
      R=imkrasin, golang-dev, bradfitz, r
      CC=golang-dev
      https://golang.org/cl/10006043
      05026c4e
    • Mikio Hara's avatar
      net: make UnixAddr implement sockaddr interface · a64bea5c
      Mikio Hara authored
      This is in preparation for runtime-integrated network pollster for BSD
      variants.
      
      Update #5199
      
      R=golang-dev, dave
      CC=golang-dev
      https://golang.org/cl/11932044
      a64bea5c
    • Mikio Hara's avatar
      net: extend sockaddr interface to the all address families · e257cd8a
      Mikio Hara authored
      This CL extends existing sockaddr interface to accommodate not only
      internet protocol family endpoint addressess but unix network family
      endpoint addresses.
      
      This is in preparation for runtime-integrated network pollster for BSD
      variants.
      
      Update #5199
      
      R=golang-dev, dave
      CC=golang-dev
      https://golang.org/cl/11979043
      e257cd8a
    • Mikio Hara's avatar
      net: simplify socket option helpers · bf61a97f
      Mikio Hara authored
      Also consolidates syscall.IPPROTO_TCP level option helper files.
      
      R=golang-dev, dave, alex.brainman
      CC=golang-dev
      https://golang.org/cl/8637049
      bf61a97f
  2. 27 Jul, 2013 4 commits
  3. 26 Jul, 2013 8 commits
  4. 25 Jul, 2013 10 commits
    • Robert Griesemer's avatar
      go/parser: restrict ParseDir to files with suffix ".go" · 4a695d2c
      Robert Griesemer authored
      Fixes #5956.
      
      R=rsc, r
      CC=golang-dev
      https://golang.org/cl/11813043
      4a695d2c
    • Robert Griesemer's avatar
      spec: update prose in Constants section · f3310124
      Robert Griesemer authored
      Fixes #5952.
      
      R=r, rsc
      CC=golang-dev
      https://golang.org/cl/11812043
      f3310124
    • Mikio Hara's avatar
      net: give more detail when test panics · cdd35983
      Mikio Hara authored
      R=golang-dev, dave
      CC=golang-dev
      https://golang.org/cl/11811043
      cdd35983
    • Peter Mundy's avatar
      syscall: prlimit argument error for Getrlimit and Setrlimit on Linux 32-bit · 58527600
      Peter Mundy authored
      The rlimit arguments for prlimit are reversed for linux 32-bit (386 and arm).
      Getrlimit becomes Setrlimit and vice versa.
      Fixes #5949.
      
      R=iant, mikioh.mikioh, rsc
      CC=golang-dev
      https://golang.org/cl/11803043
      58527600
    • Ian Lance Taylor's avatar
      cmd/cgo: gccgo fixes · d9d3debe
      Ian Lance Taylor authored
      Don't require a full-scale callback for calls to the special
      prologue functions.
      
      Always use a simple wrapper function for C functions, so that
      we can handle static functions defined in the import "C"
      comment.
      
      Disable a test that relies on gc-specific function names.
      
      Fixes #5905.
      
      R=golang-dev, rsc
      CC=golang-dev
      https://golang.org/cl/11406047
      d9d3debe
    • Rémy Oudompheng's avatar
      cmd/gc: avoid passing unevaluated constant expressions to backends. · d7c99cdf
      Rémy Oudompheng authored
      Backends do not exactly expect receiving binary operators with
      constant operands or use workarounds to move them to
      register/stack in order to handle them.
      
      Fixes #5841.
      
      R=golang-dev, daniel.morsing, rsc
      CC=golang-dev
      https://golang.org/cl/11107044
      d7c99cdf
    • Mikio Hara's avatar
      net: simplify probeIPv6Stack · c0a4ce52
      Mikio Hara authored
      R=golang-dev, dave
      CC=golang-dev
      https://golang.org/cl/11807043
      c0a4ce52
    • Nick Craig-Wood's avatar
      crypto/md5: native arm assembler version · 085159da
      Nick Craig-Wood authored
      An ARM version of md5block.go with a big improvement in
      throughput (up to 2.5x) and a reduction in object size (21%).
      
      Code size
      
        Before 3100 bytes
        After 2424 bytes
        21% smaller
      
      Benchmarks on Rasperry Pi
      
      benchmark                       old ns/op    new ns/op    delta
      BenchmarkHash8Bytes                 11703         6636  -43.30%
      BenchmarkHash1K                     38057        21881  -42.50%
      BenchmarkHash8K                    208131       142735  -31.42%
      BenchmarkHash8BytesUnaligned        11457         6570  -42.66%
      BenchmarkHash1KUnaligned            69334        26841  -61.29%
      BenchmarkHash8KUnaligned           455120       182223  -59.96%
      
      benchmark                        old MB/s     new MB/s  speedup
      BenchmarkHash8Bytes                  0.68         1.21    1.78x
      BenchmarkHash1K                     26.91        46.80    1.74x
      BenchmarkHash8K                     39.36        57.39    1.46x
      BenchmarkHash8BytesUnaligned         0.70         1.22    1.74x
      BenchmarkHash1KUnaligned            14.77        38.15    2.58x
      BenchmarkHash8KUnaligned            18.00        44.96    2.50x
      
      benchmark                      old allocs   new allocs    delta
      BenchmarkHash8Bytes                     1            0  -100.00%
      BenchmarkHash1K                         2            0  -100.00%
      BenchmarkHash8K                         2            0  -100.00%
      BenchmarkHash8BytesUnaligned            1            0  -100.00%
      BenchmarkHash1KUnaligned                2            0  -100.00%
      BenchmarkHash8KUnaligned                2            0  -100.00%
      
      benchmark                       old bytes    new bytes    delta
      BenchmarkHash8Bytes                    64            0  -100.00%
      BenchmarkHash1K                       128            0  -100.00%
      BenchmarkHash8K                       128            0  -100.00%
      BenchmarkHash8BytesUnaligned           64            0  -100.00%
      BenchmarkHash1KUnaligned              128            0  -100.00%
      BenchmarkHash8KUnaligned              128            0  -100.00%
      
      This also adds another test which makes sure that the sums
      over larger blocks work properly. I wrote this test when I was
      worried about memory corruption.
      
      R=golang-dev, dave, bradfitz, rsc, ajstarks
      CC=golang-dev, minux.ma, remyoudompheng
      https://golang.org/cl/11648043
      085159da
    • Andrew Gerrand's avatar
      bufio: check buffer availability before reading in ReadFrom · 93c6d0ef
      Andrew Gerrand authored
      Fixes #5947.
      
      R=golang-dev, bradfitz
      CC=golang-dev
      https://golang.org/cl/11801043
      93c6d0ef
    • Kevin Klues's avatar
      cmd/cgo: Fix issue with cgo cdefs · f7dfeea9
      Kevin Klues authored
      The problem is that the cdecl() function in cmd/cgo/godefs.go isn't
      properly translating the Go array type to a C array type when an
      asterisk follows the [] in the array type declaration (it is perfectly
      legal to put the asterisk on either side of the [] in go syntax,
      depending on how you set up your pointers).
      
      That said, the cdefs tool is only designed to translate from Go types
      generated using the cgo *godefs* tool -- where the godefs tool is
      designed to translate gcc-style C types into Go types. In essence, the
      cdefs tool translates from gcc-style C types to Go types (via the godefs
      tool), then back to kenc-style C types. Because of this, cdefs does not
      need to know how to translate arbitraty Go types into C, just the ones
      produced by godefs.
      
      The problem is that during this translation process, the logic is
      slightly wrong when going from (e.g.):
      
      char *array[10];
      to:
      array [10]*int8;
      back to:
      int8 *array[10];
      
      In the current implementation of cdecl(), the translation from the Go
      type declaration back to the kenc-style declaration looks for Go
      types of the form:
      
      name *[]type;
      rather than the actual generated Go type declaration of:
      name []*type;
      
      Both are valid Go syntax, with slightly different semantics, but the
      latter is the only one that can ever be generated by the godefs tools.
      (The semantics of the former are not directly expressible in a
      single C statement -- you would have to have to first typedef the array
      type, then declare a pointer to that typedef'd type in a separate
      statement).
      
      This commit changes the logic of cdecl() to look properly for, and
      translate, Go type declarations of the form:
      name []*type;
      
      Additionally, the original implementation only allowed for a single
      asterisk and a single sized aray (i.e. only a single level of pointer
      indirection, and only one set of []) on the type, whereas the patched
      version allows for an arbitrary number of both.
      
      Tests are included in misc/cgo/testcdefs and the all.bash script has been
      updated to account for these.
      
      R=golang-dev, bradfitz, dave, iant
      CC=golang-dev
      https://golang.org/cl/11377043
      f7dfeea9
  5. 24 Jul, 2013 13 commits