summaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
...
* math/rand: add concurrency warning to overview commentAditya Mukerjee2017-07-151-1/+2
| | | | | | Change-Id: I52efa7aa72a23256e5ca56470ffeba975ed8f739 Reviewed-on: https://go-review.googlesource.com/48760 Reviewed-by: Bryan Mills <bcmills@google.com>
* strings: add example for LastIndexAnyEvan Hicks2017-07-151-0/+10
| | | | | | | | Change-Id: I69d1359d8868d4c5b173e4d831e38cea7dfeb713 Reviewed-on: https://go-review.googlesource.com/48859 Reviewed-by: Ian Lance Taylor <iant@golang.org> Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
* math: add a Sqrt exampleMartynas Budriƫnas2017-07-151-0/+20
| | | | | | | | Change-Id: I259e25b9d0b069912053a250e9739e04fafca54d Reviewed-on: https://go-review.googlesource.com/48892 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
* strconv: adds missing comment to neg flag, formats comment on trunc flagAdam Kisala2017-07-151-2/+2
| | | | | | Change-Id: Ibdd57489543d57a24d1e3c41210abd9fbc930b8f Reviewed-on: https://go-review.googlesource.com/48867 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
* io: Add example to io.Seeker's Seek() method.Greg Poirier2017-07-151-0/+22
| | | | | | | | | | | | | | | While there's an example for SectionReader.Seek, if someone is seeking documentation specifically about Seeker.Seek, they may not immediately find the SectionReader example. Offset and whence may not be entirely intuitive to new developers either, so include examples of both positive/negative offsets and SeekStart/SeekEnd. Change-Id: I5b7442ccf683d9706e9261c11bc0ea31a1ac21d4 Reviewed-on: https://go-review.googlesource.com/48873 Reviewed-by: Kevin Burke <kev@inburke.com> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
* cmd/compile: fix comment typoJamie Kerr2017-07-151-2/+2
| | | | | | Change-Id: If581bd4e9d9b4421e2ae20582c596fccb73d9aed Reviewed-on: https://go-review.googlesource.com/48866 Reviewed-by: Ian Lance Taylor <iant@golang.org>
* strings: add example for ContainsRuneKate Manson2017-07-151-0/+10
| | | | | | | Change-Id: I994f003c97a14d194df5f07dd217c0ff3b214741 Reviewed-on: https://go-review.googlesource.com/48874 Reviewed-by: Matt Layher <mdlayher@gmail.com> Run-TryBot: Matt Layher <mdlayher@gmail.com>
* os: use Fstat instead of Stat in FileMode exampleTaro Aoki2017-07-151-1/+1
| | | | | | | | | | The existing example for FileMode using Stat to get FileInfo. But, Stat cannot get symlink info, it need to use Fstat instead. Change-Id: I5cc38cd10caaa5912946abe2a2b90995a91ee10f Reviewed-on: https://go-review.googlesource.com/47370 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
* cmd/dist: don't run moved_goroot test on android, iOS, Plan 9Ian Lance Taylor2017-07-151-1/+5
| | | | | | | | | | | | | | | | | | | | Fails on iOS because CC_FOR_TARGET points to clangwrap.sh in the original GOROOT. We could fix that but it doesn't seem worth it. Fails on Android with "exec format error". I'm not sure why but I doubt it is interesting. Fails on Plan 9 because the original GOROOT is being preserved in some unknown way. This is issue #21016. Updates #21016 Change-Id: I4e7115d734fc7bf21e5a2ba18fb6ad0bfa31c735 Reviewed-on: https://go-review.googlesource.com/48650 Run-TryBot: Ian Lance Taylor <iant@golang.org> Reviewed-by: David du Colombier <0intro@gmail.com> Reviewed-by: Elias Naur <elias.naur@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
* log: fix commentmapeiqi2017-07-151-1/+1
| | | | | | | | | | I just want to experience the whole Gerrit Flow, so I make this simple commit as my first commit to golang src repo. Change-Id: Ie744573beac7a8b9361f898fac269c9d88010493 Reviewed-on: https://go-review.googlesource.com/48630 Reviewed-by: Ma Peiqi <mapeiqi2017@gmail.com> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
* reflect: make StructOf panic for methods that don't workIan Lance Taylor2017-07-152-32/+69
| | | | | | | | | | | | | | | | When StructOf is used with an anonymous field that has methods, and that anonymous field is not the first field, the methods we generate are incorrect because they do not offset to the field as required. If we encounter that case, panic rather than doing the wrong thing. Fixes #20824 Updates #15924 Change-Id: I3b0901ddbc6d58af5f7e84660b5e3085a431035d Reviewed-on: https://go-review.googlesource.com/47035 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
* net/http: clarify Handler panic behavior across HTTP versionsBrad Fitzpatrick2017-07-141-3/+4
| | | | | | | | | Updates #18997 Change-Id: Ib1961a4c26b42f99b98b255beb7e2a74b632e0c1 Reviewed-on: https://go-review.googlesource.com/48551 Reviewed-by: Joe Shaw <joe@joeshaw.org> Reviewed-by: Tom Bergan <tombergan@google.com>
* syscall: skip TestUnshare on Linux upon permission errorBrad Fitzpatrick2017-07-141-0/+6
| | | | | | | | | | Fixes #17206 Change-Id: Id0ebc3a55ea1c5f52608decffee04c8398a8774b Reviewed-on: https://go-review.googlesource.com/48571 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
* cmd/go: update BuildContext.GOROOT and build.Tooldir with computed GOROOTIan Lance Taylor2017-07-143-13/+51
| | | | | | | | | | | | This is necessary to make a relocated GOROOT work correctly. Fixes #20997 Change-Id: I18624bd2e109721066cd9e4a887a12583ab79f5d Reviewed-on: https://go-review.googlesource.com/48550 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
* crypto/x509: load all trusted certs on darwin (nocgo)Nathaniel Caza2017-07-142-2/+22
| | | | | | | | | | | | | | | | | | The current implementation ignores certificates that exist in the login and System keychains. This change adds the missing System and login keychain files to the `/usr/bin/security` command in `execSecurityRoots`. If the current user cannot be obtained, the login keychain is ignored. Refs #16532 Change-Id: I8594a6b8940c58df8a8015b274fa45c39e18862c Reviewed-on: https://go-review.googlesource.com/36941 Run-TryBot: Emmanuel Odeke <emm.odeke@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
* html/template: use the same escaper across multiple template executionsSamuel Tan2017-07-143-32/+79
| | | | | | | | | | | | | | | | | | | | | | The escaper contains information about which templates have already been visited and escaped. This information is necessary to prevent templates that have already been escaped from being over-escaped. However, since we currently create a new escaper each time we execute a template, this information does not persist across multiple template executions. Fix this by saving an escaper in each template name space which is shared by all templates in that name space. While there, fix error message formatting for an escaping unit test. Fixes #20842 Change-Id: Ie392c3e7ce0e0a9947bdf56c99e926e7c7db76e4 Reviewed-on: https://go-review.googlesource.com/47256 Reviewed-by: Mike Samuel <mikesamuel@gmail.com> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
* cmd/compile: fix phi-function updates for preemptible loopsDavid Chase2017-07-142-21/+69
| | | | | | | | | | | | | | | | | | Previous code failed to account for particular control flow involving nested loops when updating phi function inputs. Fix involves: 1) remove incorrect shortcut 2) generate a "better" order for children in dominator tree 3) note inner-loop updates and check before applying outer-loop updates. Fixes #20675. Change-Id: I2fe21470604b5c259e777ad8b15de95f7706894d Reviewed-on: https://go-review.googlesource.com/45791 Run-TryBot: David Chase <drchase@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Cherry Zhang <cherryyz@google.com>
* internal/poll: don't wait for unpollable filesIan Lance Taylor2017-07-144-9/+51
| | | | | | | | | | | | | | | | | | | If we get an EAGAIN error on an unpollable file, don't try to wait for it to be ready; just return EAGAIN. It's possible that we should instead ensure that when Stdin is a pipe in non-blocking mode, we wait for data to appear. For now take the conservative approach of doing what we did in previous releases. Based on https://golang.org/cl/47555 by Totoro W. Fixes #20915 Change-Id: Icc9e97a5a877b0a3583ec056c35412d1afab62d1 Reviewed-on: https://go-review.googlesource.com/48490 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
* testing: roll back CL 44352 (show in-progress tests upon SIGINT)Ian Lance Taylor2017-07-137-123/+4
| | | | | | | | | | | | | | | | CL 44352 changed the behavior of SIGINT, which can break tests that themselves use SIGINT. I think we can only implement this if the testing package has a way to know whether the code under test is using SIGINT, but os/signal does not provide an API for that. Roll back for 1.9 and think about this again for 1.10. Updates #19397 Change-Id: I021c314db2b9d0a80d0088b120a6ade685459990 Reviewed-on: https://go-review.googlesource.com/48370 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
* runtime: don't call t.Parallel in TestCgoSignalDeadlockIan Lance Taylor2017-07-131-1/+4
| | | | | | | | | | | | | | | It seems that when too much other code is running on the system, the testprogcgo code can overrun its timeouts. Updates #18598. Not marking the issue as fixed until it doesn't recur for some time. Change-Id: Ieaf106b41986fdda76b1d027bb9d5e3fb805cc3b Reviewed-on: https://go-review.googlesource.com/48233 Run-TryBot: Ian Lance Taylor <iant@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
* syscall: use correct go binary in testBrad Fitzpatrick2017-07-121-1/+2
| | | | | | | | | | | | | Usually this test is skipped (on builders and when not root), so people are unlikely to see this error. Updates #19296 Change-Id: I3acb81260034dad8776c305f83d7cbac4b718e75 Reviewed-on: https://go-review.googlesource.com/48191 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
* runtime: pass CLONE_SYSVSEM to cloneAustin Clements2017-07-121-0/+1
| | | | | | | | | | | | | | | | | | SysV semaphore undo lists should be shared by threads, just like several other resources listed in cloneFlags. Currently we don't do this, but it probably doesn't affect anything because 1) probably nobody uses SysV semaphores from Go and 2) Go-created threads never exit until the process does. Beyond being the right thing to do, user-level QEMU requires this flag because it depends on glibc to create new threads and glibc uses this flag. Fixes #20763. Change-Id: I1d1dafec53ed87e0f4d4d432b945e8e68bb72dcd Reviewed-on: https://go-review.googlesource.com/48170 Run-TryBot: Austin Clements <austin@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
* runtime: make TestStackGrowth a serial testAustin Clements2017-07-111-1/+3
| | | | | | | | | | | | | | | | | | | | | | | TestStackGrowth is currently a parallel test. However, it depends on a 20 second timeout, which is already dubious in a parallel test, and became really problematic on slow builders when runtime.GC switched to triggering concurrent GC instead of STW GC. Before that change, the test spent much of its time in STW GC, so it wasn't *really* parallel. After that change, it was competing with all of the other parallel tests and GC likely started taking ~4 times longer. On most builders the whole test runs in well under a second, but on the slow builders that was enough to push it over the 20 second timeout. Fix this by making the test serial. Updates #19381 (probably fixes it, but we'll have to wait and see). Change-Id: I21af7cf543ab07f1ec1c930bfcb355b0df75672d Reviewed-on: https://go-review.googlesource.com/48110 Run-TryBot: Austin Clements <austin@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Elias Naur <elias.naur@gmail.com> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
* sync/atomic: clarify 64-bit alignment bugAustin Clements2017-07-111-2/+2
| | | | | | | | | | | | | Local variables can also be relied on the be 64-bit aligned, since they will be escaped to the heap if used with any atomic operations. Also, allocated arrays are also aligned, just like structs and slices. Fixes #18955. Change-Id: I8a1897f6ff78922c8bfcf20d6eb4bcb17a70ba2d Reviewed-on: https://go-review.googlesource.com/48112 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
* runtime: simplify description of FuncForPC behavior in case of inliningCostin Chirvasuta2017-07-111-1/+1
| | | | | | | | | The current description refers to the outermost "frame" which can be misleading. A user reading it can think it means a stack frame. Change-Id: Ie2c7cb4b4db8f41572df206478ce3b46a0245a5d Reviewed-on: https://go-review.googlesource.com/47850 Reviewed-by: Austin Clements <austin@google.com>
* cmd/compile: fix lexical scope of escaped variablesAlessandro Arzilli2017-07-102-0/+12
| | | | | | | | | | | | | | | | When a local variable is moved to the heap the declaration position should be preserved so that later on we can assign it to the correct DW_TAG_lexical_block. Fixes #20959 Change-Id: I3700ef53c68ccd506d0633f11374ad88a52b2898 Reviewed-on: https://go-review.googlesource.com/47852 Run-TryBot: Emmanuel Odeke <emm.odeke@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com> Reviewed-by: David Chase <drchase@google.com> Reviewed-by: Matthew Dempsky <mdempsky@google.com>
* cmd/link: skip R_ADDR relocs in .rela.plt for internal PIEMichael Pratt2017-07-091-1/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ld.addpltsym adds an R_X86_64_JMP_SLOT dynamic relocation to .rela.plt and uses Addaddrplus to reference the GOT in Elf64_Rela.r_offset. Addaddrplus results in an R_ADDR relocation, which here we transform into an R_X86_64_64 dynamic relocation. This is wrong for several reasons: 1. .rela.plt is not a writable, relro section. It is mapped read-only, causing the dynamic linker to segfault when it tried to handle the relocation. This was the immediate cause of internal PIE cgo crashes. 2. Relocations targetting other reloc sections are, as far as I can tell, undefined behavior in the ELF spec and are unlikely to be a good idea. 3. Even if the relocation did work, it isn't what we want. The relocation, if successfully handled, would have put an absolute address as the JMP_SLOT offset, but it should be the offset from the beginning of the binary, just like any other relocation. What we want is a statically resolved R_ADDR relocation, just as is used below for the R_X86_64_64 relocation. Skipping the .rela.plt allows reloc() to handle these R_ADDR relocations. With this CL, internal PIE cgo binaries work. Updates #18968 Change-Id: Ie74e6fe249e88150baa0e340b1cb128cf7f28673 Reviewed-on: https://go-review.googlesource.com/47837 Reviewed-by: Ian Lance Taylor <iant@golang.org>
* runtime: use next timer to decide whether to relaxAustin Clements2017-07-074-21/+24
| | | | | | | | | | | | | | | | | | | Currently, sysmon waits 60 ms during idle before relaxing. This is primarily to avoid reducing the precision of short-duration timers. Of course, if there are no short-duration timers, this wastes 60 ms running the timer at high resolution. Improve this by instead inspecting the time until the next timer fires and relaxing the timer resolution immediately if the next timer won't fire for a while. Updates #20937. Change-Id: If4ad0a565b65a9b3e8c4cdc2eff1486968c79f24 Reviewed-on: https://go-review.googlesource.com/47833 Run-TryBot: Austin Clements <austin@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
* runtime: delay before osRelaxingAustin Clements2017-07-073-3/+30
| | | | | | | | | | | | | | | | | | | | | | Currently, sysmon relaxes the Windows timer resolution as soon as the Go process becomes idle. However, if it's going idle because of a short sleep (< 15.6 ms), this can turn that short sleep into a long sleep (15.6 ms). To address this, wait for 60 ms of idleness before relaxing the timer resolution. It would be better to check the time until the next wakeup and relax immediately if it makes sense, but there's currently no interaction between sysmon and the timer subsystem, so adding this simple delay is a much simpler and safer change for late in the release cycle. Fixes #20937. Change-Id: I817db24c3bdfa06dba04b7bc197cfd554363c379 Reviewed-on: https://go-review.googlesource.com/47832 Run-TryBot: Austin Clements <austin@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
* Revert "cmd/dist: disable plugin test on linux-arm with GOARM=5"Austin Clements2017-07-071-8/+0
| | | | | | | | | | | | This reverts commit 168eb9cf3395583541224af0227c19ddb13e35be. CL 47831 fixes the issue with plugins on ARMv5, so we can re-enable the test. Updates #19674. Change-Id: Idcb29f93ffb0460413f1fab5bb82fa2605795038 Reviewed-on: https://go-review.googlesource.com/47834 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
* runtime: save r11 in ARM addmoduledataAustin Clements2017-07-071-1/+3
| | | | | | | | | | | | | | | | | | R11 is callee-save in the C ABI, but the temporary register in the Go ABI. Currently it's being clobbered by runtime.addmoduledata, which has to follow the C ABI. The observed effect of this was that dl_open_worker was returning to a bad PC because after it failed to restore its SP because it was using R11 as a frame pointer. Fix this by saving R11 around addmoduledata. Fixes #19674. Change-Id: Iaacbcc76809a3aa536e9897770831dcbcb6c8245 Reviewed-on: https://go-review.googlesource.com/47831 Run-TryBot: Austin Clements <austin@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Cherry Zhang <cherryyz@google.com>
* runtime: document FuncForPC behavior with inliningAustin Clements2017-07-071-0/+3
| | | | | | | Change-Id: I1c02aa4f7131ae984fda66b32e8a993c0a40b8f4 Reviewed-on: https://go-review.googlesource.com/47690 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Reviewed-by: Russ Cox <rsc@golang.org>
* cmd/doc: print Go syntax when printing struct.field docsBrad Fitzpatrick2017-07-063-17/+37
| | | | | | | | | | Fixes #20928 Change-Id: I7f7aafb8ff4b5deb50c286a9ae81c34ee85e56a9 Reviewed-on: https://go-review.googlesource.com/47730 Reviewed-by: Rob Pike <r@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
* encoding/base32: make NoPadding Encoding's DecodedLen return exact sizeGustav Westling2017-07-062-8/+11
| | | | | | | | | | | | | | | | | | | | CL 47341 added support for decoding non-padded messages. But DecodedLen still returned a multiple of 5 for messages without a padding, even though it is possible to calculate the len exactly when using NoPadding. This change makes DecodedLen return the exact number of bytes that will be written. A change to the decoding logic is also made so that it can handle this case. DecodedLen now has the same behaviour as DecodedLen in encoding/base64. Fixes #20854 Change-Id: I729e0b1c0946c866fb675c854f835f366dd4b5a4 Reviewed-on: https://go-review.googlesource.com/47710 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
* os/exec: clarify Cmd.Wait documentation a bit more explicitlyBrad Fitzpatrick2017-07-061-2/+4
| | | | | | | | | | | | | It already implied that Cmd.Wait is more than os.Process.Wait, but say so explicitly. See https://github.com/golang/go/issues/18874#issuecomment-309921486 Updates #18874 Change-Id: Iaa46defd776ae0be817d9f4466a99ac78cfd672b Reviewed-on: https://go-review.googlesource.com/47650 Reviewed-by: Russ Cox <rsc@golang.org>
* encoding/base32: support custom and disabled padding when decodingGustav Westling2017-07-062-4/+108
| | | | | | | | | | | | | | CL 38634 added support for custom (and disabled) padding characters when encoding, but didn't update the decoding paths. This adds decoding support. Fixes #20854 Change-Id: I9fb1a0aaebb27f1204c9f726a780d5784eb71024 Reviewed-on: https://go-review.googlesource.com/47341 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
* runtime: prevent descheduling while holding rwmutex read lockAustin Clements2017-07-062-14/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | Currently only the rwmutex write lock prevents descheduling. The read lock does not. This leads to the following situation: 1. A reader acquires the lock and gets descheduled. 2. GOMAXPROCS writers attempt to acquire the lock (or at least one writer does, followed by readers). This blocks all of the Ps. 3. There is no 3. The descheduled reader never gets to run again because there are no Ps, so it never releases the lock and the system deadlocks. Fix this by preventing descheduling while holding the read lock. This requires also rewriting TestParallelRWMutexReaders to always create enough GOMAXPROCS and to use non-blocking operations for synchronization. Fixes #20903. Change-Id: Ibd460663a7e5a555be5490e13b2eaaa295fac39f Reviewed-on: https://go-review.googlesource.com/47632 Run-TryBot: Austin Clements <austin@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
* net: clarify the length limit for service nameMikio Hara2017-07-061-2/+10
| | | | | | | | Change-Id: If5495f66d175bdacebd599abf1e064d2343669c2 Reviewed-on: https://go-review.googlesource.com/34430 Run-TryBot: Mikio Hara <mikioh.mikioh@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
* net: don't return IPv4 unspecified addr for Resolve*Addr of [::] or [::]:nBrad Fitzpatrick2017-07-065-4/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ResolveTCPAddr, ResolveUDPAddr, and ResolveIPAddr return at most one address. When given a name like "golang.org" to resolve that might have more than 1 address, the net package has historically preferred IPv4 addresses, with the assumption that many users don't yet have IPv6 connectivity and randomly selecting between an IPv4 address and an IPv6 address at runtime wouldn't be a good experience for IPv4-only users. In CL 45088 (78cf0e56) I modified the resolution of the unspecified/empty address to internally resolve to both IPv6 "::" and 0.0.0.0 to fix issue #18806. That code has 3 other callers I hadn't considered, though: the Resolve*Addr functions. Since they preferred IPv4, any Resolve*Addr of "[::]:port" or "::" (for ResolveIPAddr) would internally resolve both "::" and 0.0.0.0 and then prefer 0.0.0.0, even though the user was looking up an IPv6 literal. Add tests and fix it, not by undoing the fix to #18806 but by selecting the preference function for Resolve*Addr more explicitly: we still prefer IPv4, but if the address being looked up was an IPv6 literal, prefer IPv6. The tests are skipped on machines without IPv6. Fixes #20911 Change-Id: Ib7036cc43182ae4118cd1390c254e17c04a251a3 Reviewed-on: https://go-review.googlesource.com/47554 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> Reviewed-by: Russ Cox <rsc@golang.org>
* cmd/go: fix docs for -timeoutRuss Cox2017-07-062-4/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | The text before CL 45816 was: -timeout t If a test runs longer than t, panic. The default is 10 minutes (10m). CL 45816 was supposed to be about clarifying test vs test binary, and it did add the clarification of referring to "duration d", but it also introduced incorrect text about timeout 0. The new text in this CL preserves the good change and eliminates the incorrect one: -timeout d If a test binary runs longer than duration d, panic. The default is 10 minutes (10m). For #14780. Change-Id: I4f79d6e48ed9295bc9f34a36aa90d3b03b40d7f5 Reviewed-on: https://go-review.googlesource.com/47571 Run-TryBot: Russ Cox <rsc@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
* reflect: match MakeMapWithSize docs about initial capacity with specEmmanuel Odeke2017-07-061-3/+4
| | | | | | | | | | | | | Following the spec clarification in CL 40393, copy that text to reflect docs to state that the initial capacity of MakeMapWithSize is a hint/approximate. Fixes #19903 Change-Id: I6b3315b8183cafaa61fbb2839a4e42b76fd71544 Reviewed-on: https://go-review.googlesource.com/46270 Reviewed-by: Robert Griesemer <gri@golang.org> Reviewed-by: Russ Cox <rsc@golang.org>
* time: document the Time.String is meant for debuggingBrad Fitzpatrick2017-07-061-0/+4
| | | | | | | | | Fixes #20876 Change-Id: Ic62c4f59e3ddcae891aa9526f9693d233dd524fc Reviewed-on: https://go-review.googlesource.com/47552 Reviewed-by: Russ Cox <rsc@golang.org> Reviewed-by: Joe Tsai <thebrokentoaster@gmail.com>
* os/exec: document lack of implicit shell usage or globbingBrad Fitzpatrick2017-07-061-0/+9
| | | | | | | | Fixes #20894 Change-Id: I0c0e906964bbd789317d07f245e64e3d61ecfa8c Reviewed-on: https://go-review.googlesource.com/47550 Reviewed-by: Russ Cox <rsc@golang.org>
* Revert "bufio: make Reader.Peek invalidate Unreads"Russ Cox2017-07-062-21/+0
| | | | | | | | | | | | Go 1.9 beta 2 is already out. It's too late to break code with a change like this. This can be rolled forward for Go 1.10. This reverts commit ae238688d2813e83f16050408487ea34ba1c2fff. Change-Id: Ib67b8629e3deac5d50d76581aba6a91ca7a7853e Reviewed-on: https://go-review.googlesource.com/47570 Reviewed-by: Russ Cox <rsc@golang.org>
* runtime/pprof: Fix type name in function commentFabian Wickborn2017-07-051-1/+1
| | | | | | | | | | | | | The name LabelList was changed to LabelSet during the development of the proposal [1], except in one function comment. This commit fixes that. Fixes #20905. [1] https://github.com/golang/go/issues/17280 Change-Id: Id4f48d59d7d513fa24b2e42795c2baa5ceb78f36 Reviewed-on: https://go-review.googlesource.com/47470 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
* go/printer: fix typoKale Blankenship2017-07-041-1/+1
| | | | | | Change-Id: Idf89559c9945c5a8743539658fe92e860fcc6a92 Reviewed-on: https://go-review.googlesource.com/47362 Reviewed-by: Matt Layher <mdlayher@gmail.com>
* runtime: clean up mheap.allocLargeAustin Clements2017-07-031-9/+4
| | | | | | | | | | | | | | mheap.allocLarge just calls bestFitTreap and is the only caller of bestFitTreap. Flatten these into a single function. Also fix their comments: allocLarge claims to return exactly npages but can in fact return a larger span, and h.freelarge is not in fact indexed by span start address. Change-Id: Ia20112bdc46643a501ea82ea77c58596bc96f125 Reviewed-on: https://go-review.googlesource.com/47315 Run-TryBot: Austin Clements <austin@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Rick Hudson <rlh@golang.org>
* net/http/httptest: allow creation of Server manuallyJoe Tsai2017-06-302-16/+59
| | | | | | | | | | | | | | | | | | | | | | The Server struct has exported fields, which allows users to manually create a Server object without using using NewServer or NewTLSServer and directly call Start or StartTLS on their object. In order to ensure that manual creation of Server works, the NewUnstartedServer function should not initialize Server in any way that the user was not able to do themselves. For example, the setting of a unexported filed, client, is not something a user can do. Thus, rather than setting the client field in NewUnstartedServer, we lazily initialize it when Start or StartTLS is called. Otherwise, the Server logic can nil panic later when it assumes that this field has been initialized. Fixes #20871 Change-Id: I65c6a9f893ea963b0fbad0990b33af08007c1140 Reviewed-on: https://go-review.googlesource.com/47353 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
* runtime: allow calling Func.Name on nil pointerJoe Tsai2017-06-302-0/+14
| | | | | | | | | | | | | | | The Func type has allowed calling the Func.Name method on a nil pointer since Go1.2, where it returned an empty string. A regression caused by CL/37331 caused this behavior to change. This breaks code that lazily does runtime.FuncForPC(myPtr).Name() without first checking that myPtr is actually non-nil. Fixes #20872 Change-Id: Iae9a2ebabca5e9d1f5a2cdaf2f30e9c6198fec4f Reviewed-on: https://go-review.googlesource.com/47354 Reviewed-by: Marvin Stenger <marvin.stenger94@gmail.com> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
* database/sql: fix outdated package name in doc.txtMartin Garton2017-06-301-1/+1
| | | | | | Change-Id: I4417c5a8537095a6464ce919b2e5cb250e179939 Reviewed-on: https://go-review.googlesource.com/47332 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>