aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2015-02-18[release-branch.go1.4] go1.4.2go1.4.2Andrew Gerrand
Change-Id: I0f198e4a94c50a11228c15d6aaac0cea890b5b58 Reviewed-on: https://go-review.googlesource.com/5111 Reviewed-by: Rob Pike <r@golang.org>
2015-02-18[release-branch.go1.4] doc: document Go 1.4.2Andrew Gerrand
Change-Id: Ia87047cbc720fb03d2f67aec48abe18bce8dbf78 Reviewed-on: https://go-review.googlesource.com/5112 Reviewed-by: Russ Cox <rsc@golang.org> Reviewed-on: https://go-review.googlesource.com/5113 Reviewed-by: Andrew Gerrand <adg@golang.org>
2015-02-17[release-branch.go1.4] runtime: don't fail if we find a pointer to an ↵Keith Randall
invalid span on 32 bit The 32-bit heap may have holes in it. Pointers to (non-heap) objects in those holes shouldn't cause the GC to throw. This change is somewhat of a band-aid fix for 1.4.2. We should do a more thorough fix for tip (keep track of the holes in the heap with special MSpans, say). Update #9872 Change-Id: Ife9ba27b77ae6ac5a6792d249c68893b3df62134 Reviewed-on: https://go-review.googlesource.com/4920 Run-TryBot: Keith Randall <khr@golang.org> Reviewed-by: Russ Cox <rsc@golang.org>
2015-02-17[release-branch.go1.4] cmd/gc: treat non-local vars inlined into wrapper as ↵Ian Lance Taylor
escaping The compiler has a phase ordering problem. Escape analysis runs before wrapper generation. When a generated wrapper calls a method defined in a different package, if that call is inlined, there will be no escape information for the variables defined in the inlined call. Those variables will be placed on the stack, which fails if they actually do escape. There are probably various complex ways to fix this. This is a simple way to avoid it: when a generated wrapper calls a method defined in a different package, treat all local variables as escaping. Fixes #9537. Change-Id: I530f39346de16ad173371c6c3f69cc189351a4e9 Reviewed-on: https://go-review.googlesource.com/3092 Reviewed-by: Russ Cox <rsc@golang.org> (cherry picked from commit ec0ebc2281f79294c299ece35c5a690a6415e0e0) Reviewed-on: https://go-review.googlesource.com/5003 Run-TryBot: Andrew Gerrand <adg@golang.org> Reviewed-by: Andrew Gerrand <adg@golang.org>
2015-02-17[release-branch.go1.4] cmd/gc: don't recurse infinitely when a recursive ↵Shenghou Ma
type references itself more than once Fixes #9432 Change-Id: I08c92481afa7c7fac890aa780efc1cb2fabad528 Reviewed-on: https://go-review.googlesource.com/2115 Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com> Reviewed-by: Russ Cox <rsc@golang.org> (cherry picked from commit fcff3ba740ed6638cece4dea8478bd1dfb2411bf) Reviewed-on: https://go-review.googlesource.com/5004 Run-TryBot: Andrew Gerrand <adg@golang.org> Reviewed-by: Andrew Gerrand <adg@golang.org>
2015-02-17[release-branch.go1.4] runtime: don't panic when given a callback with no ↵Shenghou Ma
input params on windows Fixes #9871 for Go 1.4. Change-Id: I550a5bdb29e9a872652e0dd468a434227d7d9502 Reviewed-on: https://go-review.googlesource.com/4937 Run-TryBot: Minux Ma <minux@golang.org> Reviewed-by: Rob Pike <r@golang.org> Reviewed-by: Alex Brainman <alex.brainman@gmail.com> Reviewed-by: Andrew Gerrand <adg@golang.org>
2015-02-17[release-branch.go1.4] cmd/gc: don't unpack struct arguments to appendChris Manghane
Fixes #9634. Change-Id: I7b18f26c2fb812978fc7adc5bfd39ebfffe48701 Reviewed-on: https://go-review.googlesource.com/3080 Reviewed-by: Minux Ma <minux@golang.org> (cherry picked from commit f5b8813e93f3d61556ecc0ba112478fa319e4e30) Reviewed-on: https://go-review.googlesource.com/5000 Run-TryBot: Andrew Gerrand <adg@golang.org>
2015-02-17[release-branch.go1.4] cmd/5g: make sure we normalize after unary ops on ↵Keith Randall
small types We were failing ^uint16(0xffff) == 0, as we computed 0xffff0000 instead. I could only trigger a failure for the above case, the other two tests ^uint16(0xfffe) == 1 and -uint16(0xffff) == 1 didn't seem to fail previously. Somehow they get MOVHUs inserted for other reasons (used by CMP instead of TST?). I fixed OMINUS anyway, better safe than sorry. Fixes #9604 Change-Id: I4c2d5bdc667742873ac029fdbe3db0cf12893c27 Reviewed-on: https://go-review.googlesource.com/2940 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Reviewed-by: Minux Ma <minux@golang.org> (cherry picked from commit daa64ddfe64dda368e80cf224dc485fa63386f81) Reviewed-on: https://go-review.googlesource.com/5002
2015-02-17[release-branch.go1.4] math/big: bug in AndNot(x,y) for x>0,y<0.Keith Randall
The comment says to use (y-1), but then we did add(y.abs, natOne). We meant sub. Fixes #9609 Change-Id: I4fe4783326ca082c05588310a0af7895a48fc779 Reviewed-on: https://go-review.googlesource.com/2961 Reviewed-by: Robert Griesemer <gri@golang.org> (cherry picked from commit c6ddca2aec4218e1af7f51fad3b761afb33b4c20) Reviewed-on: https://go-review.googlesource.com/5001
2015-02-17[release-branch.go1.4] cmd/go: handle \r in input textRob Pike
Remove carriage returns from //go:generate lines. Carriage returns are the predecessor of BOMs and still live on Windows. Fixes #9264 Change-Id: I637748c74335c696b3630f52f2100061153fcdb4 Reviewed-on: https://go-review.googlesource.com/1564 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Reviewed-by: Andrew Gerrand <adg@golang.org> (cherry picked from commit fde3ab843faaf4ba7a741bfdc192dbb5f2ddf209) Reviewed-on: https://go-review.googlesource.com/4999 Reviewed-by: David Symonds <dsymonds@golang.org>
2015-02-17[release-branch.go1.4] cmd/go: document that -run isn't implementedRob Pike
I am an idiot but the failure to implement this means we can decide exactly what its design should be for 1.5 Change-Id: Ie2b025fcd899d306ddeddd09d1d0e8f9a99ab7a8 Reviewed-on: https://go-review.googlesource.com/4291 Reviewed-by: Minux Ma <minux@golang.org> (cherry picked from commit 1e5d8bb5444368a7b6f2f169bbbb43452a0479d9) Reviewed-on: https://go-review.googlesource.com/4998 Reviewed-by: David Symonds <dsymonds@golang.org>
2015-01-15[release-branch.go1.4] go1.4.1go1.4.1Andrew Gerrand
Change-Id: If275a5caa07cfd16b7052ad50709e1d0f1258223 Reviewed-on: https://go-review.googlesource.com/2856 Reviewed-by: Rob Pike <r@golang.org>
2015-01-15[release-branch.go1.4] doc: document Go 1.4.1Andrew Gerrand
Change-Id: I4e9737497f4995657c46e52e0722d921499f8d17 Reviewed-on: https://go-review.googlesource.com/2854 Reviewed-by: Rob Pike <r@golang.org> (cherry picked from commit 7785be8f2227df881e7ab3a4e81a2fc69a165cf8) Reviewed-on: https://go-review.googlesource.com/2855
2015-01-15[release-branch.go1.4] doc: update source install instruction to use tag ↵Andrew Gerrand
'go1.4.1' Change-Id: I12e531fc0d92d3b6fc7ec2bbd8c029f63f55fbe1 Reviewed-on: https://go-review.googlesource.com/2798 Reviewed-by: Russ Cox <rsc@golang.org>
2015-01-14[release-branch.go1.4] syscall: fix the deprecated way of parsing routing ↵Mikio Hara
message on openbsd OpenBSD 5.5 changed its kernel ABI and OpenBSD 5.6 enabled it. This CL works on both 5.5 and 5.6. Fixes #9102. Change-Id: I4a295be9ab8acbc99e550d8cb7e8f8dacf3a03c5 Reviewed-on: https://go-review.googlesource.com/1932 Reviewed-by: Ian Lance Taylor <iant@golang.org> (cherry picked from commit 13e16b39fc269fcba3383bd6c133da3e0e0345e9) Reviewed-on: https://go-review.googlesource.com/2826 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2015-01-14[release-branch.go1.4] runtime: fix nacl build, hashmap overflow field ↵Keith Randall
offset was incorrect. Change-Id: Ieb305b2a4d4ef28d70a8b8ece703f495c5af0529 Reviewed-on: https://go-review.googlesource.com/2051 Reviewed-by: Keith Randall <khr@golang.org> (cherry picked from commit c6669e7af58cb9406226c038b1cadef6e754dc74) Reviewed-on: https://go-review.googlesource.com/2820 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2015-01-14[release-branch.go1.4] cmd/go: adjust error for custom import checkout mismatchRuss Cox
Before: ... imports golang.org/x/net/context: /Users/rsc/g/src/golang.org/x/net is from https://code.google.com/p/go.net, should be from https://go.googlesource.com/net After: ... imports golang.org/x/net/context: golang.org/x/net is a custom import path for https://go.googlesource.com/net, but /Users/rsc/g/src/golang.org/x/net is checked out from https://code.google.com/p/go.net Change-Id: I93c35b85f955c7de684f71fbd4baecc717405318 Reviewed-on: https://go-review.googlesource.com/2808 Reviewed-by: Andrew Gerrand <adg@golang.org> Reviewed-by: Rob Pike <r@golang.org> (cherry picked from commit b8d67596f67ea13525e752a02f45c9d9f346472d) Reviewed-on: https://go-review.googlesource.com/2813 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2015-01-14[release-branch.go1.4] runtime: fix deadlock in runtime.StackKeith Randall
It shouldn't semacquire() inside an acquirem(), the runtime thinks that means deadlock. It actually isn't a deadlock, but it looks like it because acquirem() does m.locks++. Candidate for inclusion in 1.4.1. runtime.Stack with all=true is pretty unuseable in GOMAXPROCS>1 environment. fixes #9321 Change-Id: Iac6b664217d24763b9878c20e49229a1ecffc805 Reviewed-on: https://go-review.googlesource.com/1600 Reviewed-by: Dmitry Vyukov <dvyukov@google.com> (cherry picked from commit 50bc3d5bbc6710663c082aa72c8ba4f9ee515ab3) Reviewed-on: https://go-review.googlesource.com/2807 Reviewed-by: Andrew Gerrand <adg@golang.org>
2015-01-14[release-branch.go1.4] runtime: fix SIGPROF changeRuss Cox
CL 2789 backported a change that required a barrage of followup CLs. This CL backports all the followup CLs together. There are manual edits to os_plan9.go and syscall_windows.go to take the place of edits to defs_windows_{amd64,386}.go and os2_plan9.go in the original. Those files do not exist in the release branch, but the definition being added must go somewhere. Original change descriptions below. --- runtime/cgo: initialize our pthread_create wrapper earlier on openbsd This is a genuine bug exposed by our test for issue 9456: our wrapper for pthread_create is not initialized until we initialize cgo itself, but it is possible that a static constructor could call pthread_create, and in that case, it will be calling a nil function pointer. Fix that by also initializing the sys_pthread_create function pointer inside our pthread_create wrapper function, and use a pthread_once to make sure it is only initialized once. Fix build for openbsd. Change-Id: Ica4da2c21fcaec186fdd3379128ef46f0e767ed7 Reviewed-on: https://go-review.googlesource.com/2232 Reviewed-by: David Crawshaw <crawshaw@golang.org> (cherry picked from commit 77cd6197d7561ab7ccbf5d892efb6f97d929546a) --- runtime: provide a dummy value of _SIGPROF on plan9 and windows Fixes build on plan9 and windows. Change-Id: Ic9b02c641ab84e4f6d8149de71b9eb495e3343b2 Reviewed-on: https://go-review.googlesource.com/2233 Reviewed-by: Alex Brainman <alex.brainman@gmail.com> (cherry picked from commit 1f282385579fc404f1246fd7ffa8b4e517401d19) --- runtime/cgo: remove unused variable I missed this one in golang.org/cl/2232 and only tested the patch on openbsd/amd64. Change-Id: I4ff437ae0bfc61c989896c01904b6d33f9bdf0ec Reviewed-on: https://go-review.googlesource.com/2234 Reviewed-by: Minux Ma <minux@golang.org> (cherry picked from commit 0b2a74e89cf940e1c4cd91785ff3d744684edc49) --- runtime: skip TestCgoExternalThreadSIGPROF on OS X 10.6 The test program requires static constructor, which in turn needs external linking to work, but external linking never works on 10.6. This should fix the darwin-{386,amd64} builders. Change-Id: I714fdd3e35f9a7e5f5659cf26367feec9412444f Reviewed-on: https://go-review.googlesource.com/2235 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> (cherry picked from commit 2cbe27a27202dca5a643b75c79e25d4cccc3ae67) --- runtime: fix TestCgoExternalThreadSIGPROF again Shell out to `uname -r` this time, so that the test will compile even if the platform doesn't have syscall.Sysctl. Change-Id: I3a19ab5d820bdb94586a97f4507b3837d7040525 Reviewed-on: https://go-review.googlesource.com/2271 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> (cherry picked from commit 865e5e98b685eb3a7888f5263021049c0694d16f) --- runtime: remove unnecessary GOOS switch Change-Id: I8f518e273c02110042b08f7c50c3d38a648c8b6e Reviewed-on: https://go-review.googlesource.com/2281 Reviewed-by: Minux Ma <minux@golang.org> (cherry picked from commit 1ebfb082a7a5cc31efd572fd88549048a82a5c1c) --- Change-Id: Ifee9667ca90eda2b074817c319b1b7c66d4f741d Reviewed-on: https://go-review.googlesource.com/2805 Reviewed-by: Minux Ma <minux@golang.org> Reviewed-by: Andrew Gerrand <adg@golang.org>
2015-01-14[release-branch.go1.4] all: copy master .gitattributes and .gitignoreRuss Cox
Change-Id: I10e60fb6bf2cf3daa2bc1184df7ded0a712a1905 Reviewed-on: https://go-review.googlesource.com/2806 Reviewed-by: Andrew Gerrand <adg@golang.org>
2015-01-14[release-branch.go1.4] cmd/ld: put .bss from external objects into real .bss ↵Shenghou Ma
section Fixes #9359. Change-Id: Iba62935b5a14de23d914f433a09a40417d7e88ed Signed-off-by: Shenghou Ma <minux@golang.org> Reviewed-on: https://go-review.googlesource.com/1889 Reviewed-by: Russ Cox <rsc@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org> (cherry picked from commit 1c0c611fc2a7e1ce7eb39626ca7b120b62aac557) Reviewed-on: https://go-review.googlesource.com/2802 Reviewed-by: Andrew Gerrand <adg@golang.org>
2015-01-14[release-branch.go1.4] runtime: hashmap: move overflow pointer to end of bucketKeith Randall
Pointers to zero-sized values may end up pointing to the next object in memory, and possibly off the end of a span. This can cause memory leaks and/or confuse the garbage collector. By putting the overflow pointer at the end of the bucket, we make sure that pointers to any zero-sized keys or values don't accidentally point to the next object in memory. fixes #9384 Change-Id: I5d434df176984cb0210b4d0195dd106d6eb28f73 Reviewed-on: https://go-review.googlesource.com/1869 Reviewed-by: Russ Cox <rsc@golang.org> (cherry picked from commit fbc56cf05015899aba236d5a68096a770de3ad0a) Reviewed-on: https://go-review.googlesource.com/2801 Reviewed-by: Andrew Gerrand <adg@golang.org>
2015-01-14[release-branch.go1.4] reflect: add kindNoPointers if a function layout has ↵Keith Randall
no pointers. malloc checks kindNoPointers and if it is not set and the object is one pointer in size, it assumes it contains a pointer. So we must set kindNoPointers correctly; it isn't just a hint. Fixes #9425 Change-Id: Ia43da23cc3298d6e3d6dbdf66d32e9678f0aedcf Reviewed-on: https://go-review.googlesource.com/2055 Reviewed-by: Russ Cox <rsc@golang.org> (cherry picked from commit d11f41118116e0b5c2fb3b3296323d888dff2d6e) Reviewed-on: https://go-review.googlesource.com/2800 Reviewed-by: Andrew Gerrand <adg@golang.org>
2015-01-14[release-branch.go1.4] runtime: ignore SIGPROF to foreign threads before ↵Shenghou Ma
cgocallback is fully initialized Some libraries, for example, OpenBLAS, create work threads in a global constructor. If we're doing cpu profiling, it's possible that SIGPROF might come to some of the worker threads before we make our first cgo call. Cgocallback used to terminate the process when that happens, but it's better to miss a couple profiling signals than to abort in this case. Fixes #9456. Change-Id: I112b8e1a6e10e6cc8ac695a4b518c0f577309b6b Reviewed-on: https://go-review.googlesource.com/2141 Reviewed-by: Ian Lance Taylor <iant@golang.org> (cherry picked from commit 5da9c8cd0a0427d1771b3a9a6d8d931430ce50dd) Reviewed-on: https://go-review.googlesource.com/2789 Reviewed-by: Andrew Gerrand <adg@golang.org>
2015-01-14[release-branch.go1.4] doc: copy contribute.html and install-source.html ↵Russ Cox
from master This incorporates the various git-related updates that have happened since the Go 1.4 release. Since Go 1.4.1 will be issued from Git, it is appropriate to replace the Mercurial instructions with Git instructions. Change-Id: Idec041002c7f325c4eee6f25c50423b088b11468 Reviewed-on: https://go-review.googlesource.com/2788 Reviewed-by: Andrew Gerrand <adg@golang.org>
2014-12-12cmd/dist: convert dist from Hg to Git.David Symonds
Change-Id: Ic25d46df6a79c4a18ed3f0a7e900591a115e48e3 Reviewed-on: https://go-review.googlesource.com/1403 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2014-12-11go1.4go1.4Andrew Gerrand
LGTM=bradfitz, minux, dsymonds R=rsc, bradfitz, iant, dsymonds, minux CC=golang-codereviews https://golang.org/cl/188920043
2014-12-11doc: tweak Go 1.4 release notesAndrew Gerrand
LGTM=dave, dsymonds R=golang-codereviews, dave, dsymonds CC=golang-codereviews https://golang.org/cl/184350043
2014-12-11doc: document go1.4Andrew Gerrand
LGTM=bradfitz R=rsc, bradfitz CC=golang-codereviews https://golang.org/cl/189810043
2014-12-11doc: remove TODO from go1.4 release notesAndrew Gerrand
LGTM=bradfitz R=iant, rsc, bradfitz CC=golang-codereviews https://golang.org/cl/191750043
2014-12-10misc/makerelease: handle git sub-repositoriesAndrew Gerrand
Also: checkout sub-repos from Mercurial manually instead of using "go get". (for the 1.4 release) LGTM=rsc R=rsc CC=golang-codereviews https://golang.org/cl/190720043
2014-12-10[release-branch.go1.4] api: create go1.4.txtRuss Cox
I read through and vetted these but others should look too. LGTM=bradfitz, adg R=r, minux, bradfitz, adg CC=adg, golang-codereviews, gri, iant https://golang.org/cl/182560043
2014-12-10[release-branch.go1.4] [release-branch.go1.4] doc: scrub references to ↵Andrew Gerrand
code.google.com These are the references that affect current Go users. I left intact references in older release notes; we can figure out what to do with them later. LGTM=rsc R=rsc CC=golang-codereviews https://golang.org/cl/186140043
2014-12-10[release-branch.go1.4] [release-branch.go1.4] doc: update contribution ↵Andrew Gerrand
guidelines LGTM=minux, adg, rsc R=rsc, r, dsymonds, minux, bradfitz, adg, dave, iant CC=golang-codereviews https://golang.org/cl/185190043
2014-12-10[release-branch.go1.4] [release-branch.go1.4] misc/cgo/test: skip test8694 ↵Andrew Gerrand
on ARM. ««« CL 185130043 / 586738173884 misc/cgo/test: skip test8694 on ARM. LGTM=dave, bradfitz, rsc R=golang-codereviews, dave, bradfitz, rsc CC=golang-codereviews https://golang.org/cl/185130043 »»» LGTM=minux R=golang-codereviews, minux, bradfitz CC=golang-codereviews https://golang.org/cl/188870043
2014-12-08[release-branch.go1.4] cmd/go: document import path checkingRuss Cox
LGTM=adg R=adg CC=golang-codereviews https://golang.org/cl/189760043
2014-12-05[release-branch.go1.4] [release-branch.go1.4] encoding/xml: remove ↵Russ Cox
SyntaxError.Byte ««« CL 182580043 / 2d1ab17a670a encoding/xml: remove SyntaxError.Byte It is unused. It was introduced in the CL that added InputOffset. I suspect it was an editing mistake. LGTM=bradfitz R=bradfitz CC=golang-codereviews https://golang.org/cl/182580043 »»» TBR=bradfitz CC=golang-codereviews https://golang.org/cl/180630043
2014-12-05[release-branch.go1.4] codereview: add release-branch.go1.4 prefix, like for ↵Russ Cox
dev branches TBR=bradfitz R=bradfitz CC=golang-codereviews https://golang.org/cl/178710043
2014-12-05[release-branch.go1.4] cmd/api: make API check fail for undeclared API in ↵Russ Cox
release branch We forgot to do the usual API review. Make that not possible in the future. I'll pull this change over to the main branch too, but it's more important (and only testable) here. LGTM=bradfitz R=bradfitz CC=golang-codereviews https://golang.org/cl/185050043
2014-12-05codereview: release-branch.go1.4 is now a work branchRuss Cox
(That is, changes can originate in the branch. The main branch has diverged enough that this may be necessary.) LGTM=bradfitz R=adg, bradfitz CC=golang-codereviews https://golang.org/cl/187810043
2014-12-04[release-branch.go1.4] cmd/go: fix buildRuss Cox
««« CL 182480043 / 8d42099cdc23 cmd/go: fix build The new semantics of split require the newline be present. The test was stale. LGTM=adg R=golang-codereviews, adg CC=golang-codereviews https://golang.org/cl/182480043 »»» TBR=r CC=golang-codereviews https://golang.org/cl/178690043
2014-12-04[release-branch.go1.4] cmd/go: avoid use of bufio.Scanner in generateRuss Cox
««« CL 182970043 / 573a7b5178c4 cmd/go: avoid use of bufio.Scanner in generate Scanner can't handle stupid long lines and there are reports of stupid long lines in production. Note the issue isn't long "//go:generate" lines, but any long line in any Go source file. To be fair, if you're going to have a stupid long line it's not a bad bet you'll want to run it through go generate, because it's some embeddable asset that has been machine generated. (One could ask why that generation process didn't add a newline or two, but we should cope anyway.) Rewrite the file scanner in "go generate" so it can handle arbitrarily long lines, and only stores in memory those lines that start "//go:generate". Also: Adjust the documentation to make clear that it does not parse the file. Fixes #9143. Fixes #9196. LGTM=rsc, dominik.honnef R=rsc, cespare, minux, dominik.honnef CC=golang-codereviews https://golang.org/cl/182970043 »»» TBR=r CC=golang-codereviews https://golang.org/cl/183060044
2014-12-04[release-branch.go1.4] cmd/pprof/internal/commands: add command to open ↵Russ Cox
browser on windows ««« CL 180380043 / d56c648b069f cmd/pprof/internal/commands: add command to open browser on windows While we're at there, also add a message to prompt the user to install Graphviz if "dot" command is not found. Fixes #9178. LGTM=adg, alex.brainman, cookieo9, rsc R=rsc, adg, bradfitz, alex.brainman, cookieo9, smyrman CC=golang-codereviews https://golang.org/cl/180380043 »»» TBR=minux CC=golang-codereviews https://golang.org/cl/186760043
2014-12-04[release-branch.go1.4] lib/time: update to ICANN time zone database 2014jAndrew Gerrand
««« CL 178660043 / ac865d86fc2a lib/time: update to ICANN time zone database 2014j Fixes #9189. LGTM=dsymonds R=golang-codereviews, dsymonds CC=golang-codereviews https://golang.org/cl/178660043 »»» LGTM=minux, dsymonds R=dsymonds, r, minux CC=golang-codereviews https://golang.org/cl/182460043
2014-12-03[release-branch.go1.4] cmd/pprof: fix symbol resolution for remote profilesRuss Cox
««« CL 183080043 / b663cc7e6c15 cmd/pprof: fix symbol resolution for remote profiles Fixes #9199. LGTM=iant R=golang-codereviews, iant CC=austin, golang-codereviews, minux https://golang.org/cl/183080043 »»» TBR=iant CC=golang-codereviews https://golang.org/cl/176680043
2014-12-03[release-branch.go1.4] cmd/go: regenerate doc.goAndrew Gerrand
««« CL 183000043 / 871468f5ceaf cmd/go: regenerate doc.go Move change from CL 170770043 to correct file and regenerate docs for changes from CL 164120043. LGTM=adg R=golang-codereviews, adg, bradfitz CC=golang-codereviews https://golang.org/cl/183000043 »»» LGTM=minux R=bradfitz, minux CC=golang-codereviews https://golang.org/cl/181490043
2014-12-02go1.4rc2go1.4rc2Andrew Gerrand
LGTM=rsc R=rsc CC=golang-codereviews https://golang.org/cl/179700043
2014-12-01[release-branch.go1.4] runtime: fix hang in GC due to shrinkstack vs netpoll ↵Russ Cox
race ««« CL 179680043 / 752cd9199639 runtime: fix hang in GC due to shrinkstack vs netpoll race During garbage collection, after scanning a stack, we think about shrinking it to reclaim some memory. The shrinking code (called while the world is stopped) checked that the status was Gwaiting or Grunnable and then changed the state to Gcopystack, to essentially lock the stack so that no other GC thread is scanning it. The same locking happens for stack growth (and is more necessary there). oldstatus = runtime·readgstatus(gp); oldstatus &= ~Gscan; if(oldstatus == Gwaiting || oldstatus == Grunnable) runtime·casgstatus(gp, oldstatus, Gcopystack); // oldstatus is Gwaiting or Grunnable else runtime·throw("copystack: bad status, not Gwaiting or Grunnable"); Unfortunately, "stop the world" doesn't stop everything. It stops all normal goroutine execution, but the network polling thread is still blocked in epoll and may wake up. If it does, and it chooses a goroutine to mark runnable, and that goroutine is the one whose stack is shrinking, then it can happen that between readgstatus and casgstatus, the status changes from Gwaiting to Grunnable. casgstatus assumes that if the status is not what is expected, it is a transient change (like from Gwaiting to Gscanwaiting and back, or like from Gwaiting to Gcopystack and back), and it loops until the status has been restored to the expected value. In this case, the status has changed semi-permanently from Gwaiting to Grunnable - it won't change again until the GC is done and the world can continue, but the GC is waiting for the status to change back. This wedges the program. To fix, call a special variant of casgstatus that accepts either Gwaiting or Grunnable as valid statuses. Without the fix bug with the extra check+throw in casgstatus, the program below dies in a few seconds (2-10) with GOMAXPROCS=8 on a 2012 Retina MacBook Pro. With the fix, it runs for minutes and minutes. package main import ( "io" "log" "net" "runtime" ) func main() { const N = 100 for i := 0; i < N; i++ { l, err := net.Listen("tcp", "127.0.0.1:0") if err != nil { log.Fatal(err) } ch := make(chan net.Conn, 1) go func() { var err error c1, err := net.Dial("tcp", l.Addr().String()) if err != nil { log.Fatal(err) } ch <- c1 }() c2, err := l.Accept() if err != nil { log.Fatal(err) } c1 := <-ch l.Close() go netguy(c1, c2) go netguy(c2, c1) c1.Write(make([]byte, 100)) } for { runtime.GC() } } func netguy(r, w net.Conn) { buf := make([]byte, 100) for { bigstack(1000) _, err := io.ReadFull(r, buf) if err != nil { log.Fatal(err) } w.Write(buf) } } var g int func bigstack(n int) { var buf [100]byte if n > 0 { bigstack(n - 1) } g = int(buf[0]) + int(buf[99]) } Fixes #9186. LGTM=rlh R=austin, rlh CC=dvyukov, golang-codereviews, iant, khr, r https://golang.org/cl/179680043 »»» TBR=rlh CC=golang-codereviews https://golang.org/cl/184030043
2014-12-01[release-branch.go1.4] reflect: Fix reflect.funcLayout. The GC bitmap has ↵Russ Cox
two bits per ««« CL 182160043 / 321d04dea9d6 reflect: Fix reflect.funcLayout. The GC bitmap has two bits per pointer, not one. Fixes #9179 LGTM=iant, rsc R=golang-codereviews, iant, rsc CC=golang-codereviews https://golang.org/cl/182160043 »»» TBR=khr CC=golang-codereviews https://golang.org/cl/180440044
2014-11-26[release-branch.go1.4] doc: tidy up "Projects" page; add Go 1.4Andrew Gerrand
««« CL 182750043 / ffe33f1f1f17 doc: tidy up "Projects" page; add Go 1.4 LGTM=r R=r CC=golang-codereviews https://golang.org/cl/182750043 »»» TBR=r CC=golang-codereviews https://golang.org/cl/176350043