1. 16 Sep, 2014 16 commits
    • Russ Cox's avatar
      liblink: make GO_ARGS the default for functions beginning with · · 653fb6d8
      Russ Cox authored
      If there is a leading ·, assume there is a Go prototype and
      attach the Go prototype information to the function.
      If the function is not called from Go and does not need a
      Go prototype, it can be made file-local instead (using name<>(SB)).
      
      This fixes the current BSD build failures, by giving functions like
      sync/atomic.StoreUint32 argument stack map information.
      
      Fixes #8753.
      
      LGTM=khr, iant
      R=golang-codereviews, iant, khr, bradfitz
      CC=golang-codereviews, r, rlh
      https://golang.org/cl/142150043
      653fb6d8
    • Josh Bleecher Snyder's avatar
      sync: simplify TestOncePanic · f1abe0d0
      Josh Bleecher Snyder authored
      Follow-up to CL 137350043.
      
      LGTM=r
      R=r
      CC=golang-codereviews
      https://golang.org/cl/141620043
      f1abe0d0
    • Rob Pike's avatar
      sync/once: panicking functions still marked as complete · b22dc638
      Rob Pike authored
      This is a corner case, and one that was even tested, but this
      CL changes the behavior to say that f is "complete" even if it panics.
      But don't think of it that way, think of it as sync.Once runs
      the function only the first time it is called, rather than
      repeatedly until a run of the function completes.
      
      Fixes #8118.
      
      LGTM=dvyukov
      R=golang-codereviews, dvyukov
      CC=golang-codereviews
      https://golang.org/cl/137350043
      b22dc638
    • Keith Randall's avatar
      runtime: make it clear that Goexit cannot be recover'd. · 15274e5c
      Keith Randall authored
      LGTM=r
      R=r, bradfitz, khr
      CC=golang-codereviews
      https://golang.org/cl/136660044
      15274e5c
    • Russ Cox's avatar
      os/signal: increase timeout from 10ms to 100ms · c1e33202
      Russ Cox authored
      Might make test less flaky.
      Fixes #8682.
      
      LGTM=bradfitz
      R=bradfitz
      CC=golang-codereviews
      https://golang.org/cl/143160043
      c1e33202
    • Russ Cox's avatar
      net: make TestSelfConnect less fragile · 95c899f0
      Russ Cox authored
      We believe TestSelfConnect can accidentally connect to
      something else listening on or dialing from that port.
      
      Fixes #8680.
      
      LGTM=bradfitz
      R=bradfitz
      CC=golang-codereviews, rlh
      https://golang.org/cl/136700043
      95c899f0
    • Russ Cox's avatar
      cmd/5g, cmd/8g: make 'out of registers' a fatal error · c1c5d479
      Russ Cox authored
      There's no point in continuing. We will only get confused.
      6g already makes this fatal.
      
      LGTM=dave, minux, iant
      R=iant, dave, minux
      CC=golang-codereviews
      https://golang.org/cl/140660043
      c1c5d479
    • Russ Cox's avatar
      runtime: fix 386 build · 99e8f404
      Russ Cox authored
      mark finalizer1 as having no pointers
      
      TBR=iant
      CC=golang-codereviews
      https://golang.org/cl/141570045
      99e8f404
    • Russ Cox's avatar
      runtime: remove uses of ScanConservatively · d208361c
      Russ Cox authored
      Along with CLs 139610043 and 141490043,
      this removes all conservative scanning during
      garbage collection, except _cgo_allocate,
      which is SWIG-only.
      
      LGTM=rlh, khr
      R=golang-codereviews, dvyukov, rlh, khr
      CC=golang-codereviews, iant
      https://golang.org/cl/144860043
      d208361c
    • Russ Cox's avatar
      runtime: remove untyped allocation of ParFor · fc469314
      Russ Cox authored
      Now it's two allocations. I don't see much downside to that,
      since the two pieces were in different cache lines anyway.
      
      Rename 'conservative' to 'cgo_conservative_type' and make
      clear that _cgo_allocate is the only allowed user.
      
      This depends on CL 141490043, which removes the other
      use of conservative (in defer).
      
      LGTM=dvyukov, iant
      R=khr, dvyukov, iant
      CC=golang-codereviews, rlh
      https://golang.org/cl/139610043
      fc469314
    • Russ Cox's avatar
      runtime: use traceback to traverse defer structures · f95beae6
      Russ Cox authored
      This makes the GC and the stack copying agree about how
      to interpret the defer structures. Previously, only the stack
      copying treated them precisely.
      This removes an untyped memory allocation and fixes
      at least three copystack bugs.
      
      To make sure the GC can find the deferred argument
      frame until it has been copied, keep a Defer on the defer list
      during its execution.
      
      In addition to making it possible to remove the untyped
      memory allocation, keeping the Defer on the list fixes
      two races between copystack and execution of defers
      (in both gopanic and Goexit). The problem is that once
      the defer has been taken off the list, a stack copy that
      happens before the deferred arguments have been copied
      back to the stack will not update the arguments correctly.
      The new tests TestDeferPtrsPanic and TestDeferPtrsGoexit
      (variations on the existing TestDeferPtrs) pass now but
      failed before this CL.
      
      In addition to those fixes, keeping the Defer on the list
      helps correct a dangling pointer error during copystack.
      The traceback routines walk the Defer chain to provide
      information about where a panic may resume execution.
      When the executing Defer was not on the Defer chain
      but instead linked from the Panic chain, the traceback
      had to walk the Panic chain too. But Panic structs are
      on the stack and being updated by copystack.
      Traceback's use of the Panic chain while copystack is
      updating those structs means that it can follow an
      updated pointer and find itself reading from the new stack.
      The new stack is usually all zeros, so it sees an incorrect
      early end to the chain. The new TestPanicUseStack makes
      this happen at tip and dies when adjustdefers finds an
      unexpected argp. The new StackCopyPoison mode
      causes an earlier bad dereference instead.
      By keeping the Defer on the list, traceback can avoid
      walking the Panic chain at all,  making it okay for copystack
      to update the Panics.
      
      We'd have the same problem for any Defers on the stack.
      There was only one: gopanic's dabort. Since we are not
      taking the executing Defer off the chain, we can use it
      to do what dabort was doing, and then there are no
      Defers on the stack ever, so it is okay for traceback to use
      the Defer chain even while copystack is executing:
      copystack cannot modify the Defer chain.
      
      LGTM=khr
      R=khr
      CC=dvyukov, golang-codereviews, iant, rlh
      https://golang.org/cl/141490043
      f95beae6
    • Russ Cox's avatar
      runtime: remove duplicated Go constants · d2574e2a
      Russ Cox authored
      The C header files are the single point of truth:
      every C enum constant Foo is available to Go as _Foo.
      Remove or redirect duplicate Go declarations so they
      cannot be out of sync.
      
      Eventually we will need to put constants in Go, but for now having
      them be out of sync with C is too risky. These predate the build
      support for auto-generating Go constants from the C definitions.
      
      LGTM=iant
      R=iant
      CC=golang-codereviews
      https://golang.org/cl/141510043
      d2574e2a
    • Russ Cox's avatar
      cmd/gc: say 'non-constant array bound' instead of 'invalid array bound' · 8d61334d
      Russ Cox authored
      Fixes #8196.
      
      LGTM=adonovan
      R=adonovan
      CC=golang-codereviews
      https://golang.org/cl/141510044
      8d61334d
    • Russ Cox's avatar
      io: clarify Reader returning 0, nil · 3d2321f6
      Russ Cox authored
      Fixes #8317.
      
      LGTM=bradfitz
      R=bradfitz, iant, r
      CC=golang-codereviews
      https://golang.org/cl/143100043
      3d2321f6
    • Russ Cox's avatar
      cmd/gc: make runtime escape an error, not a fatal error · 337fe413
      Russ Cox authored
      It is more useful to report all the errors instead of just the first.
      
      LGTM=dave, khr
      R=khr, dave
      CC=golang-codereviews
      https://golang.org/cl/143940043
      337fe413
    • Josh Bleecher Snyder's avatar
      cmd/ld: document that -X overwrites initialized variables · c3dbf56a
      Josh Bleecher Snyder authored
      Fixes #7626.
      
      LGTM=iant
      R=rsc, iant
      CC=golang-codereviews
      https://golang.org/cl/144870045
      c3dbf56a
  2. 15 Sep, 2014 12 commits
  3. 14 Sep, 2014 3 commits
  4. 12 Sep, 2014 9 commits