1. 01 Jul, 2014 3 commits
    • Rémy Oudompheng's avatar
      cmd/8g: don't allocate a register early for cap(CHAN). · 1ec56062
      Rémy Oudompheng authored
      There is no reason to generate different code for cap and len.
      
      Fixes #8025.
      Fixes #8026.
      
      LGTM=rsc
      R=rsc, iant, khr
      CC=golang-codereviews
      https://golang.org/cl/93570044
      1ec56062
    • Keith Randall's avatar
      undo CL 104200047 / 318b04f28372 · 3cf83c18
      Keith Randall authored
      Breaks windows and race detector.
      TBR=rsc
      
      ««« original CL description
      runtime: stack allocator, separate from mallocgc
      
      In order to move malloc to Go, we need to have a
      separate stack allocator.  If we run out of stack
      during malloc, malloc will not be available
      to allocate a new stack.
      
      Stacks are the last remaining FlagNoGC objects in the
      GC heap.  Once they are out, we can get rid of the
      distinction between the allocated/blockboundary bits.
      (This will be in a separate change.)
      
      Fixes #7468
      Fixes #7424
      
      LGTM=rsc, dvyukov
      R=golang-codereviews, dvyukov, khr, dave, rsc
      CC=golang-codereviews
      https://golang.org/cl/104200047
      »»»
      
      TBR=rsc
      CC=golang-codereviews
      https://golang.org/cl/101570044
      3cf83c18
    • Keith Randall's avatar
      runtime: stack allocator, separate from mallocgc · 7c13860c
      Keith Randall authored
      In order to move malloc to Go, we need to have a
      separate stack allocator.  If we run out of stack
      during malloc, malloc will not be available
      to allocate a new stack.
      
      Stacks are the last remaining FlagNoGC objects in the
      GC heap.  Once they are out, we can get rid of the
      distinction between the allocated/blockboundary bits.
      (This will be in a separate change.)
      
      Fixes #7468
      Fixes #7424
      
      LGTM=rsc, dvyukov
      R=golang-codereviews, dvyukov, khr, dave, rsc
      CC=golang-codereviews
      https://golang.org/cl/104200047
      7c13860c
  2. 30 Jun, 2014 5 commits
    • David Crawshaw's avatar
      runtime: update arm comments now register m is gone · 54951023
      David Crawshaw authored
      LGTM=minux
      R=golang-codereviews, minux
      CC=golang-codereviews
      https://golang.org/cl/109220046
      54951023
    • Rob Pike's avatar
      encoding/gob: simplify allocation in decode. · ce5bbfdd
      Rob Pike authored
      The old code's structure needed to track indirections because of the
      use of unsafe. That is no longer necessary, so we can remove all
      that tracking. The code cleans up considerably but is a little slower.
      We may be able to recover that performance drop. I believe the
      code quality improvement is worthwhile regardless.
      
      BenchmarkEndToEndPipe           5610          5780          +3.03%
      BenchmarkEndToEndByteBuffer     3156          3222          +2.09%
      
      LGTM=rsc
      R=rsc
      CC=golang-codereviews
      https://golang.org/cl/103700043
      ce5bbfdd
    • Robert Griesemer's avatar
      gofmt: remove redundant check in rewriter · 6a228239
      Robert Griesemer authored
      If the actual types of two reflect values are
      the same and the values are structs, they must
      have the same number of fields.
      
      LGTM=rsc
      R=rsc
      CC=golang-codereviews
      https://golang.org/cl/108280043
      6a228239
    • Rob Pike's avatar
      doc/go1.4.txt: encoding/gob is now safe · 1abab32c
      Rob Pike authored
      CC=golang-codereviews
      https://golang.org/cl/103690043
      1abab32c
    • Rob Pike's avatar
      encoding/gob: remove unsafe, use reflection. · 3050a0a7
      Rob Pike authored
      This removes a major unsafe thorn in our side, a perennial obstacle
      to clean garbage collection.
      Not coincidentally: In cleaning this up, several bugs were found,
      including code that reached inside by-value interfaces to create
      pointers for pointer-receiver methods. Unsafe code is just as
      advertised.
      
      Performance of course suffers, but not too badly. The Pipe number
      is more indicative, since it's doing I/O that simulates a network
      connection. Plus these are end-to-end, so each end suffers
      only half of this pain.
      
      The edit is pretty much a line-by-line conversion, with a few
      simplifications and a couple of new tests. There may be more
      performance to gain.
      
      BenchmarkEndToEndByteBuffer     2493          3033          +21.66%
      BenchmarkEndToEndPipe           4953          5597          +13.00%
      
      Fixes #5159.
      
      LGTM=rsc
      R=rsc
      CC=golang-codereviews, khr
      https://golang.org/cl/102680045
      3050a0a7
  3. 29 Jun, 2014 2 commits
  4. 28 Jun, 2014 6 commits
  5. 27 Jun, 2014 4 commits
  6. 26 Jun, 2014 6 commits
  7. 25 Jun, 2014 4 commits
  8. 24 Jun, 2014 10 commits