1. 15 Nov, 2012 6 commits
  2. 14 Nov, 2012 11 commits
  3. 13 Nov, 2012 12 commits
    • Robert Griesemer's avatar
      reflect: fix FieldByNameFunc · aa388017
      Robert Griesemer authored
      The existing algorithm did not properly propagate the type
      count from one level to the next, and as a consequence it
      missed collisions.
      
      Properly propagate multiplicity (count) information to the
      next level.
      
      benchmark                old ns/op    new ns/op    delta
      BenchmarkFieldByName1          182          180   -1.10%
      BenchmarkFieldByName2         6273         6183   -1.43%
      BenchmarkFieldByName3        49267        46784   -5.04%
      
      Fixes #4355.
      
      R=rsc
      CC=golang-dev
      https://golang.org/cl/6821094
      aa388017
    • Russ Cox's avatar
      cmd/ld: fix build on elf systems · 2e77bc48
      Russ Cox authored
      TBR=iant
      CC=golang-dev
      https://golang.org/cl/6843050
      2e77bc48
    • Russ Cox's avatar
      reflect: add ArrayOf, ChanOf, MapOf, SliceOf · 11209825
      Russ Cox authored
      In order to add these, we need to be able to find references
      to such types that already exist in the binary. To do that, introduce
      a new linker section holding a list of the types corresponding to
      arrays, chans, maps, and slices.
      
      To offset the storage cost of this list, and to simplify the code,
      remove the interface{} header from the representation of a
      runtime type. It was used in early versions of the code but was
      made obsolete by the kind field: a switch on kind is more efficient
      than a type switch.
      
      In the godoc binary, removing the interface{} header cuts two
      words from each of about 10,000 types. Adding back the list of pointers
      to array, chan, map, and slice types reintroduces one word for
      each of about 500 types. On a 64-bit machine, then, this CL *removes*
      a net 156 kB of read-only data from the binary.
      
      This CL does not include the needed support for precise garbage
      collection. I have created issue 4375 to track that.
      
      This CL also does not set the 'algorithm' - specifically the equality
      and copy functions - for a new array correctly, so I have unexported
      ArrayOf for now. That is also part of issue 4375.
      
      Fixes #2339.
      
      R=r, remyoudompheng, mirtchovski, iant
      CC=golang-dev
      https://golang.org/cl/6572043
      11209825
    • Brad Fitzpatrick's avatar
      cmd/api: use one token.FileSet for all contexts · 0eb42fa6
      Brad Fitzpatrick authored
      Prep for future CL.
      
      R=gri
      CC=golang-dev
      https://golang.org/cl/6843048
      0eb42fa6
    • Russ Cox's avatar
      runtime: allow up to 128 GB of allocated memory · 9799a5a4
      Russ Cox authored
      Incorporates code from CL 6828055.
      
      Fixes #2142.
      
      R=golang-dev, iant, devon.odell
      CC=golang-dev
      https://golang.org/cl/6826088
      9799a5a4
    • Joel Sing's avatar
      syscall: regenerate z-files for openbsd/amd64 · fc5e64cb
      Joel Sing authored
      Regenerate z-files for OpenBSD/amd64 on OpenBSD 5.2.
      
      R=golang-dev, bradfitz, mikioh.mikioh
      CC=golang-dev
      https://golang.org/cl/6843045
      fc5e64cb
    • Andrew Gerrand's avatar
      doc: link to Go coding screencast · 6f9609ab
      Andrew Gerrand authored
      R=golang-dev, r
      CC=golang-dev
      https://golang.org/cl/6849046
      6f9609ab
    • Mikio Hara's avatar
      net: consolidate common socket functions for Plan 9 · 306afc77
      Mikio Hara authored
      This CL extends changeset 13126:fc4a62e14aba to Plan 9.
      
      R=ality, golang-dev, dave, rsc
      CC=golang-dev
      https://golang.org/cl/6820124
      306afc77
    • Rémy Oudompheng's avatar
      cmd/8g: eliminate obviously useless temps before regopt. · fa316ba4
      Rémy Oudompheng authored
      This patch introduces a sort of pre-regopt peephole optimization.
      When a temporary is introduced that just holds a value for the
      duration of the next instruction and is otherwise unused, we
      elide it to make the job of regopt easier.
      
      Since x86 has very few registers, this situation happens very
      often. The result is large savings in stack variables for
      arithmetic-heavy functions.
      
      crypto/aes
      
      benchmark                 old ns/op    new ns/op    delta
      BenchmarkEncrypt               1301          392  -69.87%
      BenchmarkDecrypt               1309          368  -71.89%
      BenchmarkExpand                2913         1036  -64.44%
      benchmark                  old MB/s     new MB/s  speedup
      BenchmarkEncrypt              12.29        40.74    3.31x
      BenchmarkDecrypt              12.21        43.37    3.55x
      
      crypto/md5
      
      benchmark                 old ns/op    new ns/op    delta
      BenchmarkHash8Bytes            1761          914  -48.10%
      BenchmarkHash1K               16912         5570  -67.06%
      BenchmarkHash8K              123895        38286  -69.10%
      benchmark                  old MB/s     new MB/s  speedup
      BenchmarkHash8Bytes            4.54         8.75    1.93x
      BenchmarkHash1K               60.55       183.83    3.04x
      BenchmarkHash8K               66.12       213.97    3.24x
      
      bench/go1
      
      benchmark                 old ns/op    new ns/op    delta
      BenchmarkBinaryTree17    8364835000   8303154000   -0.74%
      BenchmarkFannkuch11      7511723000   6381729000  -15.04%
      BenchmarkGobDecode         27764090     27103270   -2.38%
      BenchmarkGobEncode         11240880     11184370   -0.50%
      BenchmarkGzip            1470224000    856668400  -41.73%
      BenchmarkGunzip           240660800    201697300  -16.19%
      BenchmarkJSONEncode       155225800    185571900  +19.55%
      BenchmarkJSONDecode       243347900    282123000  +15.93%
      BenchmarkMandelbrot200     12240970     12201880   -0.32%
      BenchmarkParse              8837445      8765210   -0.82%
      BenchmarkRevcomp         2556310000   1868566000  -26.90%
      BenchmarkTemplate         389298000    379792000   -2.44%
      benchmark                  old MB/s     new MB/s  speedup
      BenchmarkGobDecode            27.64        28.32    1.02x
      BenchmarkGobEncode            68.28        68.63    1.01x
      BenchmarkGzip                 13.20        22.65    1.72x
      BenchmarkGunzip               80.63        96.21    1.19x
      BenchmarkJSONEncode           12.50        10.46    0.84x
      BenchmarkJSONDecode            7.97         6.88    0.86x
      BenchmarkParse                 6.55         6.61    1.01x
      BenchmarkRevcomp              99.43       136.02    1.37x
      BenchmarkTemplate              4.98         5.11    1.03x
      
      Fixes #4035.
      
      R=golang-dev, minux.ma, rsc
      CC=golang-dev
      https://golang.org/cl/6828056
      fa316ba4
    • Rémy Oudompheng's avatar
      cmd/gc: fix typos in clearslim. · 0a47d2ef
      Rémy Oudompheng authored
      Fixes build failure.
      
      R=golang-dev, bradfitz, dave
      CC=golang-dev
      https://golang.org/cl/6847043
      0a47d2ef
    • Mikio Hara's avatar
      net: protocol specific listen functions return a proper local socket address · 677c6e6e
      Mikio Hara authored
      When a nil listener address is passed to some protocol specific
      listen function, it will create an unnamed, unbound socket because
      of the nil listener address. Other listener functions may return
      invalid address error.
      
      This CL allows to pass a nil listener address to all protocol
      specific listen functions to fix above inconsistency. Also make it
      possible to return a proper local socket address in case of a nil
      listner address.
      
      Fixes #4190.
      Fixes #3847.
      
      R=rsc, iant
      CC=golang-dev
      https://golang.org/cl/6525048
      677c6e6e
    • Mikio Hara's avatar
      net: make LocalAddr on multicast UDPConn return a listening address · 0ae80785
      Mikio Hara authored
      The package go.net/ipv4 allows to exist a single UDP listener
      that join multiple different group addresses. That means that
      LocalAddr on multicast UDPConn returns a first joined group
      address is not desirable.
      
      R=golang-dev, rsc
      CC=golang-dev
      https://golang.org/cl/6822108
      0ae80785
  4. 12 Nov, 2012 11 commits