If a factored import group has a blank line, assume it is dividing
separate groups of imports (e.g. standard library vs. site-specific).
import (
"bytes"
"io"
"mycorp/package"
)
The most common case is inserting new standard library imports,
which are usually (stylistically) the first group, so we should drop
"net" in the above example immediately after "io".
Since this logic is getting non-trivial, add a test.
Shenghou Ma [Fri, 21 Sep 2012 19:54:16 +0000 (05:54 +1000)]
[release-branch.go1] log/syslog: don't append \n if there is one
««« backport 6556a8d85dd6
log/syslog: don't append \n if there is one
pkg log already appends a linefeed to the log message,
so log/syslog doesn't need to append another.
R=golang-dev, bradfitz, r
CC=golang-dev
https://golang.org/cl/6441048
Ian Lance Taylor [Fri, 21 Sep 2012 19:54:14 +0000 (05:54 +1000)]
[release-branch.go1] runtime: ignore signal 33 == SIGSETXID on GNU/Linux
««« backport bfa4e1f1027f
runtime: ignore signal 33 == SIGSETXID on GNU/Linux
When a cgo program calls setuid, setgid, etc., the GNU/Linux
pthread library sends signal SIGSETXID to each thread to tell
it to update its UID info. If Go is permitted to intercept
the default SIGSETXID signal handler, the program will hang.
This patch tells the runtime package to not try to intercept
SIGSETXID on GNU/Linux. This will be odd if a Go program
wants to try to use that signal, but it means that cgo
programs that call setuid, etc., won't hang.
Robert Griesemer [Fri, 21 Sep 2012 19:54:14 +0000 (05:54 +1000)]
[release-branch.go1] go/printer: don't crash if ast.FuncType.Params is nil
««« backport 7f6a0510d3c9
go/printer: don't crash if ast.FuncType.Params is nil
The go/ast comment for FuncType.Params says that the field may be nil.
Make sure the printer accepts such a value. The go/parser always sets
the field (to provide parenthesis position information), but a program
creating a Go AST from scatch may not.
Added corresponding test case.
Fixes #3870.
R=golang-dev, r
CC=golang-dev
https://golang.org/cl/6448060
Rob Pike [Fri, 21 Sep 2012 19:54:11 +0000 (05:54 +1000)]
[release-branch.go1] text/template: fix bug in map indexing
««« backport 0748cd92ed76
text/template: fix bug in map indexing
If the key is not present, return value of the type of the element
not the type of the key. Also fix a test that should have caught this case.
Rob Pike [Fri, 21 Sep 2012 19:54:11 +0000 (05:54 +1000)]
[release-branch.go1] encoding/gob: revert 6348067, which broke compatibility
««« backport 3357d8d34ab8
encoding/gob: revert 6348067, which broke compatibility
Add commentary to explain better what's going on, but the
code change is a simple one-line reversal to the previous
form.
OpenSSL requires that RSA signatures be exactly the same byte-length
as the modulus. Currently it'll reject ~1/256 of our signatures: those
that end up a byte shorter.
Fixes #3796.
R=golang-dev, edsrzf, r
CC=golang-dev
https://golang.org/cl/6352093
David G. Andersen [Fri, 21 Sep 2012 19:54:01 +0000 (05:54 +1000)]
[release-branch.go1] pkg: Removing duplicated words ("of of", etc.), mostly from comments.
««« backport ce3a981ad1ef
pkg: Removing duplicated words ("of of", etc.), mostly from comments.
Ran 'double.pl' on the pkg tree to identify doubled words.
One change to an error string return in x509; the rest are in comments.
Thanks to Matt Jibson for the idea.
««« backport 100ddb84c85d
misc/chrome/gophertool: fix manifest
according to http://code.google.com/chrome/extensions/browserAction.html,
it should use "default_popup" instead of "popup".
David G. Andersen [Fri, 21 Sep 2012 19:53:57 +0000 (05:53 +1000)]
[release-branch.go1] math/big: Remove unnecessary test from nat.go multiplication
««« backport c533f48701cb
math/big: Remove unnecessary test from nat.go multiplication
The switch at the beginning of the function already ensures n > 1,
so testing for n < 2 is redundant.
[release-branch.go1] cmd/dist: Make windows.c's fatal() print to stderr
««« backport 3f7501fdb220
cmd/dist: Make windows.c's fatal() print to stderr
Generating env.bat using dist env -wp > env.bat failed silently
if case of an error, because the message was redirected to env.bat.
Verbose messages still go to stdout, causing problems, but that's
a seperate change.
Made errprintf() identical to xprintf(), except for the output handle.
Yes, it's duplicate code, but most of the function is unpacking
the argument list and preparing it for WriteFile(), which has to be
done anyway.
Robert Griesemer [Fri, 21 Sep 2012 19:53:53 +0000 (05:53 +1000)]
[release-branch.go1] go spec: clean up section on selectors
««« backport eb24cee7f21b
go spec: clean up section on selectors
- point out difference between selectors and qualified identifiers
- differentiate between illegal selectors and run-time panics
- use "indirect" as opposed to "dereference" consistently
- add extra links
Fixes #3779.
R=r, rsc, iant, ken
CC=golang-dev
https://golang.org/cl/6326059
go/build section "Build Constraints", first paragraph said:
"... they must be appear near the top of the file ..."
fixed to:
"... they must appear near the top of the file ..."
Amir Mohammad Saied [Fri, 21 Sep 2012 19:53:49 +0000 (05:53 +1000)]
[release-branch.go1] misc/chrome/gophertool: Support for manifest version 1 is being phased out.
««« backport 0f017230e6b4
misc/chrome/gophertool: Support for manifest version 1 is being phased out.
Manifest version 1 was deprecated in Chrome 18, and support will be phased
out according to the schedule available at:
http://code.google.com/chrome/extensions/manifestVersion.html
This can only happen if the hash function we're using is getting
far more than it's fair share of collisions, but that has happened
to us repeatedly as we've expanded the allowed use cases for
hash tables (issue 1544, issue 2609, issue 2630, issue 2883, issue 3695).
Maybe this will help the next time we try something new.
R=golang-dev, r
CC=golang-dev
https://golang.org/cl/6306083
David G. Andersen [Fri, 21 Sep 2012 19:53:44 +0000 (05:53 +1000)]
[release-branch.go1] net/rpc: fix typo in documentation, clarify semantics of error return
««« backport ef713d7587f2
net/rpc: fix typo in documentation, clarify semantics of error return
Several of my students were confused by trying to use both the error
return and a reply return, so I figured it was worth explicitly clarifying
that returning an error overrides the reply.
R=golang-dev, r
CC=golang-dev
https://golang.org/cl/6327051
Shenghou Ma [Fri, 21 Sep 2012 19:53:41 +0000 (05:53 +1000)]
[release-branch.go1] runtime: fix struct Sigaction for Linux/ARM
««« backport 6eefce99091e
runtime: fix struct Sigaction for Linux/ARM
if we were to use sizeof(sa.sa_mask) instead of 8 as the last argument
to rt_sigaction, we would have already fixed this bug, so also updated
Linux/386 and Linux/amd64 files to use that; also test the return value
of rt_sigaction.
[release-branch.go1] net/http: clarify client return values in docs
««« backport f7839a55036e
net/http: clarify client return values in docs
Also, fixes one violation found during testing where both
response and error could be non-nil when a CheckRedirect test
failed. This is arguably a minor API (behavior, not
signature) change, but it wasn't documented either way and was
inconsistent & non-Go like. Any code depending on the old
behavior was wrong anyway.
[release-branch.go1] runtime: replace runtime·rnd function with ROUND macro
««« backport 722bb90ae3ee
runtime: replace runtime·rnd function with ROUND macro
It's sad to introduce a new macro, but rnd shows up consistently
in profiles, and the function call overwhelms the two arithmetic
instructions it performs.
[release-branch.go1] net/http: fix regression and mute known test failure for now
««« backport c3cbd6798cc7
net/http: fix regression and mute known test failure for now
Two tests added in 820ffde8c are expected to fail until the fix
for Issue 3540 goes back in (pending Windows net fixes), so
make those tests just Logf for now, with a TODO to re-enable.
Add a new client test.
Rearrange the transport code to be more readable, and fix the
bug from 820ffde8c where the persistConn was being closed before
the body was fully ready.
Fixes #3644
Updates #1967 (not yet fixed, but should be after Issue 3540)
James Gray [Fri, 21 Sep 2012 19:53:36 +0000 (05:53 +1000)]
[release-branch.go1] net/http: non-keepalive connections close successfully
««« backport 820ffde8c396
net/http: non-keepalive connections close successfully
Connections did not close if Request.Close or Response.Close was true. This meant that if the user wanted the connection to close, or if the server requested it via "Connection: close", the connection would not be closed.