1. 09 Jul, 2014 3 commits
    • Aram Hăvărneanu's avatar
      os: fix failing test on Plan 9 · a6cc6347
      Aram Hăvărneanu authored
      LGTM=0intro, r
      R=0intro, r
      CC=ality, dave, golang-codereviews, jas, mischief, rsc
      https://golang.org/cl/105580044
      a6cc6347
    • Cristian Staretu's avatar
      syscall: NetlinkRIB, avoid allocation in loop · 8aea9a00
      Cristian Staretu authored
      NetlinkRIB is currently allocating a page sized slice of bytes in a
      for loop and it's also calling Getpagesize() in the same for loop.
      
      This CL changes NetlinkRIB to preallocate the page sized slice of
      bytes before reaching the for loop. This reduces memory allocations
      and lowers the number of calls to Getpagesize() to 1 per NetlinkRIB
      call.
      
      This CL reduces the allocated memory from 141.5 MB down to 52 MB in
      a test.
      
      LGTM=crawshaw, dave
      R=dave, dsymonds, crawshaw
      CC=bradfitz, dsymonds, golang-codereviews
      https://golang.org/cl/110920043
      8aea9a00
    • Dmitri Shuralyov's avatar
      cmd/go: fix build -o panic when import path pattern matches 0 pkgs · 3e801416
      Dmitri Shuralyov authored
      Fixes #8165.
      
      After this change, the panic is replaced by a message:
      
              $ go build -o out ...doesntexist
              warning: "...doesntexist" matched no packages
              no packages to build
      
      The motivation to return 1 exit error code is to allow -o flag
      to be used to guarantee that the output binary is written to
      when exit status is 0. If someone uses an import path pattern
      to specify a single package and suddenly that matches no packages,
      it's better to return exit code 1 instead of silently doing nothing.
      This is consistent with the case when -o flag is given and multiple
      packages are matched.
      It's also somewhat consistent with the current behavior with the
      panic, except that gave return code 2. But it's similar in
      that it's also non-zero (indicating failure).
      I've changed the language to be similar to output of go test
      when an import path pattern matches no packages (it also has a return status of
      1):
      
              $ go test ...doesntexist
              warning: "...doesntexist" matched no packages
              no packages to test
      
      LGTM=adg
      R=golang-codereviews, josharian, gobot, adg
      CC=golang-codereviews
      https://golang.org/cl/107140043
      3e801416
  2. 08 Jul, 2014 14 commits
  3. 07 Jul, 2014 4 commits
  4. 05 Jul, 2014 2 commits
  5. 04 Jul, 2014 1 commit
  6. 03 Jul, 2014 6 commits
  7. 02 Jul, 2014 9 commits
    • Cristian Staretu's avatar
      archive/tar: reuse temporary buffer in readHeader · 61ccc1f0
      Cristian Staretu authored
      A temporary 512 bytes buffer is allocated for every call to
      readHeader. This buffer isn't returned to the caller and it could
      be reused to lower the number of memory allocations.
      
      This CL improves it by using a pool and zeroing out the buffer before
      putting it back into the pool.
      
      benchmark                  old ns/op     new ns/op     delta
      BenchmarkListFiles100k     545249903     538832687     -1.18%
      
      benchmark                  old allocs    new allocs    delta
      BenchmarkListFiles100k     2105167       2005692       -4.73%
      
      benchmark                  old bytes     new bytes     delta
      BenchmarkListFiles100k     105903472     54831527      -48.22%
      
      This improvement is very important if your code has to deal with a lot
      of tarballs which contain a lot of files.
      
      LGTM=dsymonds
      R=golang-codereviews, dave, dsymonds, bradfitz
      CC=golang-codereviews
      https://golang.org/cl/108240044
      61ccc1f0
    • Cristian Staretu's avatar
      archive/tar: reuse temporary buffer in writeHeader · fe5a358a
      Cristian Staretu authored
      A temporary 512 bytes buffer is allocated for every call to
      writeHeader. This buffer could be reused the lower the number
      of memory allocations.
      
      benchmark                   old ns/op     new ns/op     delta
      BenchmarkWriteFiles100k     634622051     583810847     -8.01%
      
      benchmark                   old allocs     new allocs     delta
      BenchmarkWriteFiles100k     2701920        2602621        -3.68%
      
      benchmark                   old bytes     new bytes     delta
      BenchmarkWriteFiles100k     115383884     64349922      -44.23%
      
      This change is very important if your code has to write a lot of
      tarballs with a lot of files.
      
      LGTM=dsymonds
      R=golang-codereviews, dave, dsymonds
      CC=golang-codereviews
      https://golang.org/cl/107440043
      fe5a358a
    • Adam Langley's avatar
      crypto/rsa: fix out-of-bound access with short session keys. · 372f399e
      Adam Langley authored
      Thanks to Cedric Staub for noting that a short session key would lead
      to an out-of-bounds access when conditionally copying the too short
      buffer over the random session key.
      
      LGTM=davidben, bradfitz
      R=davidben, bradfitz
      CC=golang-codereviews
      https://golang.org/cl/102670044
      372f399e
    • Russ Cox's avatar
      build: annotations and modifications for c2go · ebce7944
      Russ Cox authored
      The main changes fall into a few patterns:
      
      1. Replace #define with enum.
      
      2. Add /*c2go */ comment giving effect of #define.
      This is necessary for function-like #defines and
      non-enum-able #defined constants.
      (Not all compilers handle negative or large enums.)
      
      3. Add extra braces in struct initializer.
      (c2go does not implement the full rules.)
      
      This is enough to let c2go typecheck the source tree.
      There may be more changes once it is doing
      other semantic analyses.
      
      LGTM=minux, iant
      R=minux, dave, iant
      CC=golang-codereviews
      https://golang.org/cl/106860045
      ebce7944
    • Preetam Jinka's avatar
      crypto/cipher: fix typo in example comment · 4fedb59a
      Preetam Jinka authored
      LGTM=josharian
      R=golang-codereviews, josharian
      CC=golang-codereviews
      https://golang.org/cl/110330043
      4fedb59a
    • Timo Truyts's avatar
      bufio: Fixed call to Fatal, should be Fatalf. · 22c3f67c
      Timo Truyts authored
      LGTM=iant
      R=golang-codereviews, iant, bradfitz
      CC=golang-codereviews
      https://golang.org/cl/107390044
      22c3f67c
    • Brad Fitzpatrick's avatar
      A+C: Timo Truyts (individual CLA) · ab341e58
      Brad Fitzpatrick authored
      Generated by a+c.
      
      R=gobot
      CC=golang-codereviews
      https://golang.org/cl/111820043
      ab341e58
    • Brad Fitzpatrick's avatar
      A+C: Cristian Staretu (individual CLA) · ffb0c53a
      Brad Fitzpatrick authored
      Generated by a+c.
      
      R=gobot
      CC=golang-codereviews
      https://golang.org/cl/107450043
      ffb0c53a
    • Aram Hăvărneanu's avatar
      liblink, runtime: preliminary support for plan9/amd64 · decd8109
      Aram Hăvărneanu authored
      A TLS slot is reserved by _rt0_.*_plan9 as an automatic and
      its address (which is static on Plan 9) is saved in the
      global _privates symbol. The startup linkage now is exactly
      like that from Plan 9 libc, and the way we access g is
      exactly as if we'd have used privalloc(2).
      
      Aside from making the code more standard, this change
      drastically simplifies it, both for 386 and for amd64, and
      makes the Plan 9 code in liblink common for both 386 and
      amd64.
      
      The amd64 runtime code was cleared of nxm assumptions, and
      now runs on the standard Plan 9 kernel.
      
      Note handling fixes will follow in a separate CL.
      
      LGTM=rsc
      R=golang-codereviews, rsc, bradfitz, dave
      CC=0intro, ality, golang-codereviews, jas, minux.ma, mischief
      https://golang.org/cl/101510049
      decd8109
  8. 01 Jul, 2014 1 commit