summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* [release-branch.go1.4] doc: fix antiquated source install instructionsrelease-branch.go1.4Andrew Gerrand2015-01-081-2/+4
| | | | | | | | | Related to https://golang.org/issue/9529 LGTM=r R=r CC=golang-codereviews https://codereview.appspot.com/194050043
* [release-branch.go1.4] [release-branch.go1.4] doc: fix contribution docsAndrew Gerrand2014-12-181-3/+3
| | | | | | | LGTM=bradfitz R=bradfitz CC=golang-codereviews https://codereview.appspot.com/187420043
* [release-branch.go1.4] [release-branch.go1.4] doc: use 'git-codereview' in ↵Andrew Gerrand2014-12-181-20/+21
| | | | | | | | | contribution docs LGTM=rsc R=rsc CC=golang-codereviews https://codereview.appspot.com/187400043
* go1.4go1.4Andrew Gerrand2014-12-111-1/+1
| | | | | | | LGTM=bradfitz, minux, dsymonds R=rsc, bradfitz, iant, dsymonds, minux CC=golang-codereviews https://codereview.appspot.com/188920043
* doc: tweak Go 1.4 release notesAndrew Gerrand2014-12-111-5/+14
| | | | | | | LGTM=dave, dsymonds R=golang-codereviews, dave, dsymonds CC=golang-codereviews https://codereview.appspot.com/184350043
* doc: document go1.4Andrew Gerrand2014-12-111-0/+7
| | | | | | | LGTM=bradfitz R=rsc, bradfitz CC=golang-codereviews https://codereview.appspot.com/189810043
* doc: remove TODO from go1.4 release notesAndrew Gerrand2014-12-111-4/+1
| | | | | | | LGTM=bradfitz R=iant, rsc, bradfitz CC=golang-codereviews https://codereview.appspot.com/191750043
* misc/makerelease: handle git sub-repositoriesAndrew Gerrand2014-12-101-10/+33
| | | | | | | | | | 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://codereview.appspot.com/190720043
* [release-branch.go1.4] api: create go1.4.txtRuss Cox2014-12-102-2/+607
| | | | | | | | | | | 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://codereview.appspot.com/182560043 Committer: Andrew Gerrand <adg@golang.org>
* [release-branch.go1.4] [release-branch.go1.4] doc: scrub references to ↵Andrew Gerrand2014-12-108-42/+15
| | | | | | | | | | | | | 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://codereview.appspot.com/186140043
* [release-branch.go1.4] [release-branch.go1.4] doc: update contribution ↵Andrew Gerrand2014-12-101-327/+333
| | | | | | | | | guidelines LGTM=minux, adg, rsc R=rsc, r, dsymonds, minux, bradfitz, adg, dave, iant CC=golang-codereviews https://codereview.appspot.com/185190043
* [release-branch.go1.4] [release-branch.go1.4] misc/cgo/test: skip test8694 ↵Andrew Gerrand2014-12-101-1/+7
| | | | | | | | | | | | | | | | | | | | 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://codereview.appspot.com/185130043 Committer: Russ Cox <rsc@golang.org> ??? LGTM=minux R=golang-codereviews, minux, bradfitz CC=golang-codereviews https://codereview.appspot.com/188870043
* [release-branch.go1.4] cmd/go: document import path checkingRuss Cox2014-12-083-3/+41
| | | | | | | LGTM=adg R=adg CC=golang-codereviews https://codereview.appspot.com/189760043
* [release-branch.go1.4] [release-branch.go1.4] encoding/xml: remove ↵Russ Cox2014-12-051-1/+0
| | | | | | | | | | | | | | | | | | | | 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://codereview.appspot.com/182580043 ??? TBR=bradfitz CC=golang-codereviews https://codereview.appspot.com/180630043
* [release-branch.go1.4] codereview: add release-branch.go1.4 prefix, like for ↵Russ Cox2014-12-051-3/+7
| | | | | | | | | dev branches TBR=bradfitz R=bradfitz CC=golang-codereviews https://codereview.appspot.com/178710043
* [release-branch.go1.4] cmd/api: make API check fail for undeclared API in ↵Russ Cox2014-12-051-5/+9
| | | | | | | | | | | | | | | 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://codereview.appspot.com/185050043
* codereview: release-branch.go1.4 is now a work branchRuss Cox2014-12-051-1/+1
| | | | | | | | | | | (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://codereview.appspot.com/187810043
* [release-branch.go1.4] cmd/go: fix buildRuss Cox2014-12-042-2/+2
| | | | | | | | | | | | | | | | | ??? 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://codereview.appspot.com/182480043 ??? TBR=r CC=golang-codereviews https://codereview.appspot.com/178690043
* [release-branch.go1.4] cmd/go: avoid use of bufio.Scanner in generateRuss Cox2014-12-042-22/+70
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ??? 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 issue 9143. Fixes issue 9196. LGTM=rsc, dominik.honnef R=rsc, cespare, minux, dominik.honnef CC=golang-codereviews https://codereview.appspot.com/182970043 ??? TBR=r CC=golang-codereviews https://codereview.appspot.com/183060044
* [release-branch.go1.4] cmd/pprof/internal/commands: add command to open ↵Russ Cox2014-12-041-4/+22
| | | | | | | | | | | | | | | | | | | | | | | | 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 issue 9178. LGTM=adg, alex.brainman, cookieo9, rsc R=rsc, adg, bradfitz, alex.brainman, cookieo9, smyrman CC=golang-codereviews https://codereview.appspot.com/180380043 Committer: Russ Cox <rsc@golang.org> ??? TBR=minux CC=golang-codereviews https://codereview.appspot.com/186760043
* [release-branch.go1.4] lib/time: update to ICANN time zone database 2014jAndrew Gerrand2014-12-042-2/+2
| | | | | | | | | | | | | | | | | | ??? CL 178660043 / ac865d86fc2a lib/time: update to ICANN time zone database 2014j Fixes issue 9189. LGTM=dsymonds R=golang-codereviews, dsymonds CC=golang-codereviews https://codereview.appspot.com/178660043 ??? LGTM=minux, dsymonds R=dsymonds, r, minux CC=golang-codereviews https://codereview.appspot.com/182460043
* [release-branch.go1.4] cmd/pprof: fix symbol resolution for remote profilesRuss Cox2014-12-031-0/+4
| | | | | | | | | | | | | | | | | ??? CL 183080043 / b663cc7e6c15 cmd/pprof: fix symbol resolution for remote profiles Fixes issue 9199. LGTM=iant R=golang-codereviews, iant CC=austin, golang-codereviews, minux https://codereview.appspot.com/183080043 ??? TBR=iant CC=golang-codereviews https://codereview.appspot.com/176680043
* [release-branch.go1.4] cmd/go: regenerate doc.goAndrew Gerrand2014-12-032-2/+7
| | | | | | | | | | | | | | | | | | | | | ??? 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://codereview.appspot.com/183000043 Committer: Andrew Gerrand <adg@golang.org> ??? LGTM=minux R=bradfitz, minux CC=golang-codereviews https://codereview.appspot.com/181490043
* go1.4rc2go1.4rc2Andrew Gerrand2014-12-021-1/+1
| | | | | | | LGTM=rsc R=rsc CC=golang-codereviews https://codereview.appspot.com/179700043
* [release-branch.go1.4] runtime: fix hang in GC due to shrinkstack vs netpoll ↵Russ Cox2014-12-013-6/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 issue 9186. LGTM=rlh R=austin, rlh CC=dvyukov, golang-codereviews, iant, khr, r https://codereview.appspot.com/179680043 ??? TBR=rlh CC=golang-codereviews https://codereview.appspot.com/184030043
* [release-branch.go1.4] reflect: Fix reflect.funcLayout. The GC bitmap has ↵Russ Cox2014-12-013-2/+122
| | | | | | | | | | | | | | | | | | | | two bits per ??? CL 182160043 / 321d04dea9d6 reflect: Fix reflect.funcLayout. The GC bitmap has two bits per pointer, not one. Fixes issue 9179 LGTM=iant, rsc R=golang-codereviews, iant, rsc CC=golang-codereviews https://codereview.appspot.com/182160043 ??? TBR=khr CC=golang-codereviews https://codereview.appspot.com/180440044
* [release-branch.go1.4] doc: tidy up "Projects" page; add Go 1.4Andrew Gerrand2014-11-261-13/+8
| | | | | | | | | | | | | | | ??? CL 182750043 / ffe33f1f1f17 doc: tidy up "Projects" page; add Go 1.4 LGTM=r R=r CC=golang-codereviews https://codereview.appspot.com/182750043 ??? TBR=r CC=golang-codereviews https://codereview.appspot.com/176350043
* [release-branch.go1.4] go/build: build $GOOS_test.go alwaysRuss Cox2014-11-242-3/+6
| | | | | | | | | | | | | | | | | | | | | ??? CL 176290043 / 8025b7d1e6c9 go/build: build $GOOS_test.go always We decided to build $GOOS.go always but forgot to test $GOOS_test.go. Fixes issue 9159. LGTM=r R=r CC=golang-codereviews https://codereview.appspot.com/176290043 ??? LGTM=r R=r CC=golang-codereviews https://codereview.appspot.com/182740043
* [release-branch.go1.4] image/jpeg: handle Read returning n > 0, err != nil ↵Russ Cox2014-11-232-0/+49
| | | | | | | | | | | | | | | | | | | in d.fill ??? CL 178120043 / 95f5614b4648 image/jpeg: handle Read returning n > 0, err != nil in d.fill Fixes issue 9127. LGTM=r R=bradfitz, r CC=golang-codereviews, nigeltao https://codereview.appspot.com/178120043 ??? TBR=r CC=golang-codereviews https://codereview.appspot.com/181870043
* [release-branch.go1.4] cmd/go: fix running pprof on windows.Russ Cox2014-11-221-11/+1
| | | | | | | | | | | | | | | | | | | ??? CL 176170043 / 61bbf19823d5 cmd/go: fix running pprof on windows. Fixes issue 9149. LGTM=alex.brainman, rsc R=rsc, dave, alex.brainman CC=golang-codereviews https://codereview.appspot.com/176170043 Committer: Russ Cox <rsc@golang.org> ??? TBR=minux CC=golang-codereviews https://codereview.appspot.com/175550043
* [release-branch.go1.4] runtime: fix atomic operations on non-heap addressesRuss Cox2014-11-203-13/+73
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ??? CL 179030043 / e4ab8f908aac runtime: fix atomic operations on non-heap addresses Race detector runtime does not tolerate operations on addresses that was not previously declared with __tsan_map_shadow (namely, data, bss and heap). The corresponding address checks for atomic operations were removed in https://codereview.appspot.com/111310044 Restore these checks. It's tricker than just not calling into race runtime, because it is the race runtime that makes the atomic operations themselves (if we do not call into race runtime we skip the atomic operation itself as well). So instead we call __tsan_go_ignore_sync_start/end around the atomic operation. This forces race runtime to skip all other processing except than doing the atomic operation itself. Fixes issue 9136. LGTM=rsc R=rsc CC=golang-codereviews https://codereview.appspot.com/179030043 Committer: Russ Cox <rsc@golang.org> ??? TBR=dvyukov CC=golang-codereviews https://codereview.appspot.com/180030043
* [release-branch.go1.4] build: disable race external linking test on OS X ↵Russ Cox2014-11-191-13/+24
| | | | | | | | | | | | | | | | | | | | 10.6 and earlier ??? CL 176070043 / 500cb52e08e6 build: disable race external linking test on OS X 10.6 and earlier External linking doesn't work there at all. LGTM=bradfitz R=adg, bradfitz CC=golang-codereviews https://codereview.appspot.com/176070043 ??? LGTM=bradfitz, adg R=adg, bradfitz CC=golang-codereviews https://codereview.appspot.com/175400043
* [release-branch.go1.4] runtime: remove assumption that noptrdata data bss ↵Russ Cox2014-11-193-9/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | noptrbss are ordered and contiguous ??? CL 179980043 / d71cc7e8a0e0 runtime: remove assumption that noptrdata data bss noptrbss are ordered and contiguous The assumption can be violated by external linkers reordering them or inserting non-Go sections in between them. I looked briefly at trying to write out the _go_.o in external linking mode in a way that forced the ordering, but no matter what there's no way to force Go's data and Go's bss to be next to each other. If there is any data or bss from non-Go objects, it's very likely to get stuck in between them. Instead, rewrite the two places we know about that make the assumption. I grepped for noptrdata to look for more and didn't find any. The added race test (os/exec in external linking mode) fails without the changes in the runtime. It crashes with an invalid pointer dereference. Fixes issue 9133. LGTM=dneil R=dneil CC=dvyukov, golang-codereviews, iant https://codereview.appspot.com/179980043 ??? LGTM=dneil R=dneil CC=golang-codereviews https://codereview.appspot.com/173510043
* [release-branch.go1.4] undo CL 131750044 / 2d6d44ceb80eRuss Cox2014-11-192-73/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ??? CL 174450043 / 699cc091a16d undo CL 131750044 / 2d6d44ceb80e Breaks reading from stdin in parent after exec with SysProcAttr{Setpgid: true}. package main import ( "fmt" "os" "os/exec" "syscall" ) func main() { cmd := exec.Command("true") cmd.SysProcAttr = &syscall.SysProcAttr{Setpgid: true} cmd.Run() fmt.Printf("Hit enter:") os.Stdin.Read(make([]byte, 100)) fmt.Printf("Bye\n") } In go1.3, I type enter at the prompt and the program exits. With the CL being rolled back, the program wedges at the prompt. ??? original CL description syscall: SysProcAttr job control changes Making the child's process group the foreground process group and placing the child in a specific process group involves co-ordination between the parent and child that must be done post-fork but pre-exec. LGTM=iant R=golang-codereviews, gobot, iant, mikioh.mikioh CC=golang-codereviews https://codereview.appspot.com/131750044 Committer: Ian Lance Taylor <iant@golang.org> ??? LGTM=minux, dneil R=dneil, minux CC=golang-codereviews, iant, michael.p.macinnis https://codereview.appspot.com/174450043 ??? LGTM=minux R=dneil, minux CC=golang-codereviews https://codereview.appspot.com/179970043
* [release-branch.go1.4] doc/go1.4.html: rewrite first sentence to make it clearerAndrew Gerrand2014-11-191-5/+5
| | | | | | | | | | | | | | | | | ??? CL 178910043 / 3916b070c5f3 doc/go1.4.html: rewrite first sentence to make it clearer The grammar was atrocious, probably the victim of an editing error. LGTM=bradfitz R=bradfitz CC=golang-codereviews https://codereview.appspot.com/178910043 ??? LGTM=r R=r CC=golang-codereviews https://codereview.appspot.com/175310043
* [release-branch.go1.4] remove cmd/link from nacl test zipgo1.4rc1Andrew Gerrand2014-11-171-3/+0
| | | | | | | LGTM=dsymonds R=rsc, dsymonds CC=golang-codereviews https://codereview.appspot.com/179830043
* [release-branch.go1.4] remove cmd/linkAndrew Gerrand2014-11-1739-5270/+0
| | | | | | | LGTM=dsymonds, minux R=rsc, dsymonds, minux CC=golang-codereviews https://codereview.appspot.com/176910043
* [release-branch.go1.4] debug/goobj: move to cmd/internal/goobjAndrew Gerrand2014-11-1714-13/+13
| | | | | | | | | | | | | | | | | | | | | | | | ??? CL 174250043 / c16349455e05 debug/goobj: move to cmd/internal/goobj debug/goobj is not ready to be published but it is needed for the various binary-reading commands. Move to cmd/internal/goobj. (The Go 1.3 release branch deleted it, but that's not an option anymore due to the command dependencies. The API is still not vetted nor terribly well designed.) LGTM=adg, dsymonds R=adg, dsymonds CC=golang-codereviews https://codereview.appspot.com/174250043 ??? LGTM=rsc R=rsc CC=golang-codereviews https://codereview.appspot.com/177890043
* go1.4rc1Andrew Gerrand2014-11-171-0/+1
|
* runtime: fix sudog leakRuss Cox2014-11-166-0/+121
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The SudoG used to sit on the stack, so it was cheap to allocated and didn't need to be cleaned up when finished. For the conversion to Go, we had to move sudog off the stack for a few reasons, so we added a cache of recently used sudogs to keep allocation cheap. But we didn't add any of the necessary cleanup before adding a SudoG to the new cache, and so the cached SudoGs had stale pointers inside them that have caused all sorts of awful, hard to debug problems. CL 155760043 made sure SudoG.elem is cleaned up. CL 150520043 made sure SudoG.selectdone is cleaned up. This CL makes sure SudoG.next, SudoG.prev, and SudoG.waitlink are cleaned up. I should have done this when I did the other two fields; instead I wasted a week tracking down a leak they caused. A dangling SudoG.waitlink can point into a sudogcache list that has been "forgotten" in order to let the GC collect it, but that dangling .waitlink keeps the list from being collected. And then the list holding the SudoG with the dangling waitlink can find itself in the same situation, and so on. We end up with lists of lists of unusable SudoGs that are still linked into the object graph and never collected (given the right mix of non-trivial selects and non-channel synchronization). More details in golang.org/issue/9110. Fixes issue 9110. LGTM=r R=r CC=dvyukov, golang-codereviews, iant, khr https://codereview.appspot.com/177870043
* runtime: update URL for heap dump formatRuss Cox2014-11-161-1/+1
| | | | | | | | | | I just created that redirect, so we can change it once the wiki moves. LGTM=bradfitz, khr R=khr, bradfitz CC=golang-codereviews https://codereview.appspot.com/177780043
* C: add Nick Cooper (Google CLA).Nigel Tao2014-11-141-0/+1
| | | | | | | | | LGTM=dsymonds R=dsymonds CC=golang-codereviews, nmvc https://codereview.appspot.com/169580043 Committer: David Symonds <dsymonds@golang.org>
* doc: fix small typo in docYasuhiro Matsumoto2014-11-141-1/+1
| | | | | | | | | LGTM=adg R=golang-codereviews, adg CC=golang-codereviews https://codereview.appspot.com/170660043 Committer: Andrew Gerrand <adg@golang.org>
* net/http: add comment to clarify whether Dir is '/' or '\'.Nigel Tao2014-11-141-2/+6
| | | | | | | LGTM=bradfitz R=bradfitz, alex.brainman CC=golang-codereviews https://codereview.appspot.com/168600044
* net/url: add example of using URL.Opaque with http.RequestBrad Fitzpatrick2014-11-121-0/+30
| | | | | | | | | | | Per private thread soliciting help. I realized part of this is documented in several places, but we lacked a unifying example. LGTM=rsc R=golang-codereviews CC=adg, golang-codereviews, iant, rsc https://codereview.appspot.com/171620043
* A+C: add another email address for Emil HessmanEmil Hessman2014-11-122-2/+2
| | | | | | | | | LGTM=bradfitz R=golang-codereviews, bradfitz CC=golang-codereviews https://codereview.appspot.com/143470043 Committer: Brad Fitzpatrick <bradfitz@golang.org>
* hash/crc32: fix comment that the IEEE polynomial applies to MPEG-2.Nigel Tao2014-11-121-2/+2
| | | | | | | LGTM=minux R=adg, minux CC=golang-codereviews https://codereview.appspot.com/170520043
* regexp/syntax: Clarify comment of OpAnyCharNotNL.Robin Eklind2014-11-111-1/+1
| | | | | | | | | LGTM=iant R=golang-codereviews, iant CC=golang-codereviews https://codereview.appspot.com/171560043 Committer: Ian Lance Taylor <iant@golang.org>
* spec: method selectors don't auto-deref named pointer typesRobert Griesemer2014-11-111-26/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Language clarification. The existing rules for selector expressions imply automatic dereferencing of pointers to struct fields. They also implied automatic dereferencing of selectors denoting methods. In almost all cases, such automatic dereferencing does indeed take place for methods but the reason is not the selector rules but the fact that method sets include both methods with T and *T receivers; so for a *T actual receiver, a method expecting a formal T receiver, also accepts a *T (and the invocation or method value expression is the reason for the auto-derefering). However, the rules as stated so far implied that even in case of a variable p of named pointer type P, a selector expression p.f would always be shorthand for (*p).f. This is true for field selectors f, but cannot be true for method selectors since a named pointer type always has an empty method set. Named pointer types may never appear as anonymous field types (and method receivers, for that matter), so this only applies to variables declared of a named pointer type. This is exceedingly rare and perhaps shouldn't be permitted in the first place (but we cannot change that). Amended the selector rules to make auto-deref of values of named pointer types an exception to the general rules and added corresponding examples with explanations. Both gc and gccgo have a bug where they do auto-deref pointers of named types in method selectors where they should not: See http://play.golang.org/p/c6VhjcIVdM , line 45. Fixes issue 5769. Fixes issue 8989. LGTM=r, rsc R=r, rsc, iant, ken CC=golang-codereviews https://codereview.appspot.com/168790043
* doc/gopher: add jpgs of the 5th anniversary imageRob Pike2014-11-111-0/+0
| | | | | | | LGTM=adg R=golang-codereviews, adg CC=golang-codereviews https://codereview.appspot.com/172980043