---
doc/go1.7.html | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/doc/go1.7.html b/doc/go1.7.html
index d209a5ab0e..2dfa64da61 100644
--- a/doc/go1.7.html
+++ b/doc/go1.7.html
@@ -74,6 +74,12 @@ This change has no effect on the correctness of existing programs.
Ports
+
+Go 1.7 adds support for macOS 10.12 Sierra.
+Binaries built with previous versions of Go will not work correctly on
+Sierra.
+
+
Go 1.7 adds an experimental port to Linux on z Systems (linux/s390x)
and the beginning of a port to Plan 9 on ARM (plan9/arm).
From 4d00937cecdea85b6f1eb894a6d28a53f5f2ff8a Mon Sep 17 00:00:00 2001
From: Brad Fitzpatrick
Date: Wed, 13 Jul 2016 10:49:48 -0600
Subject: [PATCH 04/47] all: rename vendored golang.org/x/net packages to
golang_org
Regression from Go 1.6 to Go 1.7rc1: we had broken the ability for
users to vendor "golang.org/x/net/http2" or "golang.org/x/net/route"
because we were vendoring them ourselves and cmd/go and cmd/compile do
not understand multiple vendor directories across multiple GOPATH
workspaces (e.g. user's $GOPATH and default $GOROOT).
As a short-term fix, since fixing cmd/go and cmd/compile is too
invasive at this point in the cycle, just rename "golang.org" to
"golang_org" for the standard library's vendored copy.
Fixes #16333
Change-Id: I9bfaed91e9f7d4ca6bab07befe80d71d437a21af
Reviewed-on: https://go-review.googlesource.com/24902
Run-TryBot: Brad Fitzpatrick
TryBot-Result: Gobot Gobot
Reviewed-by: Ian Lance Taylor
---
src/cmd/api/goapi.go | 2 +-
src/go/build/build_test.go | 8 ++++----
src/go/build/deps_test.go | 8 ++++----
src/net/http/h2_bundle.go | 4 ++--
src/net/http/http.go | 2 +-
src/net/http/server.go | 2 +-
src/net/http/transfer.go | 2 +-
src/net/http/transport.go | 2 +-
src/net/interface_bsd.go | 2 +-
src/net/interface_bsdvar.go | 2 +-
src/net/interface_darwin.go | 2 +-
src/net/interface_freebsd.go | 2 +-
.../x/net/http2/hpack/encode.go | 0
.../x/net/http2/hpack/encode_test.go | 0
.../{golang.org => golang_org}/x/net/http2/hpack/hpack.go | 0
.../x/net/http2/hpack/hpack_test.go | 0
.../x/net/http2/hpack/huffman.go | 0
.../x/net/http2/hpack/tables.go | 0
.../x/net/lex/httplex/httplex.go | 0
.../x/net/lex/httplex/httplex_test.go | 0
.../{golang.org => golang_org}/x/net/route/address.go | 0
.../x/net/route/address_darwin_test.go | 0
.../x/net/route/address_test.go | 0
.../{golang.org => golang_org}/x/net/route/binary.go | 0
.../{golang.org => golang_org}/x/net/route/defs_darwin.go | 0
.../x/net/route/defs_dragonfly.go | 0
.../x/net/route/defs_freebsd.go | 0
.../{golang.org => golang_org}/x/net/route/defs_netbsd.go | 0
.../x/net/route/defs_openbsd.go | 0
.../{golang.org => golang_org}/x/net/route/interface.go | 0
.../x/net/route/interface_announce.go | 0
.../x/net/route/interface_classic.go | 0
.../x/net/route/interface_freebsd.go | 0
.../x/net/route/interface_multicast.go | 0
.../x/net/route/interface_openbsd.go | 0
.../{golang.org => golang_org}/x/net/route/message.go | 0
.../x/net/route/message_darwin_test.go | 0
.../x/net/route/message_freebsd_test.go | 0
.../x/net/route/message_test.go | 0
.../{golang.org => golang_org}/x/net/route/route.go | 0
.../x/net/route/route_classic.go | 0
.../x/net/route/route_openbsd.go | 0
.../{golang.org => golang_org}/x/net/route/route_test.go | 0
src/vendor/{golang.org => golang_org}/x/net/route/sys.go | 0
.../{golang.org => golang_org}/x/net/route/sys_darwin.go | 0
.../x/net/route/sys_dragonfly.go | 0
.../{golang.org => golang_org}/x/net/route/sys_freebsd.go | 0
.../{golang.org => golang_org}/x/net/route/sys_netbsd.go | 0
.../{golang.org => golang_org}/x/net/route/sys_openbsd.go | 0
.../{golang.org => golang_org}/x/net/route/syscall.go | 0
.../{golang.org => golang_org}/x/net/route/syscall.s | 0
.../{golang.org => golang_org}/x/net/route/zsys_darwin.go | 0
.../x/net/route/zsys_dragonfly.go | 0
.../x/net/route/zsys_freebsd_386.go | 0
.../x/net/route/zsys_freebsd_amd64.go | 0
.../x/net/route/zsys_freebsd_arm.go | 0
.../{golang.org => golang_org}/x/net/route/zsys_netbsd.go | 0
.../x/net/route/zsys_openbsd.go | 0
58 files changed, 19 insertions(+), 19 deletions(-)
rename src/vendor/{golang.org => golang_org}/x/net/http2/hpack/encode.go (100%)
rename src/vendor/{golang.org => golang_org}/x/net/http2/hpack/encode_test.go (100%)
rename src/vendor/{golang.org => golang_org}/x/net/http2/hpack/hpack.go (100%)
rename src/vendor/{golang.org => golang_org}/x/net/http2/hpack/hpack_test.go (100%)
rename src/vendor/{golang.org => golang_org}/x/net/http2/hpack/huffman.go (100%)
rename src/vendor/{golang.org => golang_org}/x/net/http2/hpack/tables.go (100%)
rename src/vendor/{golang.org => golang_org}/x/net/lex/httplex/httplex.go (100%)
rename src/vendor/{golang.org => golang_org}/x/net/lex/httplex/httplex_test.go (100%)
rename src/vendor/{golang.org => golang_org}/x/net/route/address.go (100%)
rename src/vendor/{golang.org => golang_org}/x/net/route/address_darwin_test.go (100%)
rename src/vendor/{golang.org => golang_org}/x/net/route/address_test.go (100%)
rename src/vendor/{golang.org => golang_org}/x/net/route/binary.go (100%)
rename src/vendor/{golang.org => golang_org}/x/net/route/defs_darwin.go (100%)
rename src/vendor/{golang.org => golang_org}/x/net/route/defs_dragonfly.go (100%)
rename src/vendor/{golang.org => golang_org}/x/net/route/defs_freebsd.go (100%)
rename src/vendor/{golang.org => golang_org}/x/net/route/defs_netbsd.go (100%)
rename src/vendor/{golang.org => golang_org}/x/net/route/defs_openbsd.go (100%)
rename src/vendor/{golang.org => golang_org}/x/net/route/interface.go (100%)
rename src/vendor/{golang.org => golang_org}/x/net/route/interface_announce.go (100%)
rename src/vendor/{golang.org => golang_org}/x/net/route/interface_classic.go (100%)
rename src/vendor/{golang.org => golang_org}/x/net/route/interface_freebsd.go (100%)
rename src/vendor/{golang.org => golang_org}/x/net/route/interface_multicast.go (100%)
rename src/vendor/{golang.org => golang_org}/x/net/route/interface_openbsd.go (100%)
rename src/vendor/{golang.org => golang_org}/x/net/route/message.go (100%)
rename src/vendor/{golang.org => golang_org}/x/net/route/message_darwin_test.go (100%)
rename src/vendor/{golang.org => golang_org}/x/net/route/message_freebsd_test.go (100%)
rename src/vendor/{golang.org => golang_org}/x/net/route/message_test.go (100%)
rename src/vendor/{golang.org => golang_org}/x/net/route/route.go (100%)
rename src/vendor/{golang.org => golang_org}/x/net/route/route_classic.go (100%)
rename src/vendor/{golang.org => golang_org}/x/net/route/route_openbsd.go (100%)
rename src/vendor/{golang.org => golang_org}/x/net/route/route_test.go (100%)
rename src/vendor/{golang.org => golang_org}/x/net/route/sys.go (100%)
rename src/vendor/{golang.org => golang_org}/x/net/route/sys_darwin.go (100%)
rename src/vendor/{golang.org => golang_org}/x/net/route/sys_dragonfly.go (100%)
rename src/vendor/{golang.org => golang_org}/x/net/route/sys_freebsd.go (100%)
rename src/vendor/{golang.org => golang_org}/x/net/route/sys_netbsd.go (100%)
rename src/vendor/{golang.org => golang_org}/x/net/route/sys_openbsd.go (100%)
rename src/vendor/{golang.org => golang_org}/x/net/route/syscall.go (100%)
rename src/vendor/{golang.org => golang_org}/x/net/route/syscall.s (100%)
rename src/vendor/{golang.org => golang_org}/x/net/route/zsys_darwin.go (100%)
rename src/vendor/{golang.org => golang_org}/x/net/route/zsys_dragonfly.go (100%)
rename src/vendor/{golang.org => golang_org}/x/net/route/zsys_freebsd_386.go (100%)
rename src/vendor/{golang.org => golang_org}/x/net/route/zsys_freebsd_amd64.go (100%)
rename src/vendor/{golang.org => golang_org}/x/net/route/zsys_freebsd_arm.go (100%)
rename src/vendor/{golang.org => golang_org}/x/net/route/zsys_netbsd.go (100%)
rename src/vendor/{golang.org => golang_org}/x/net/route/zsys_openbsd.go (100%)
diff --git a/src/cmd/api/goapi.go b/src/cmd/api/goapi.go
index e9c91477c6..936f9e5511 100644
--- a/src/cmd/api/goapi.go
+++ b/src/cmd/api/goapi.go
@@ -425,7 +425,7 @@ func (w *Walker) Import(name string) (*types.Package, error) {
w.imported[name] = &importing
root := w.root
- if strings.HasPrefix(name, "golang.org/x/") {
+ if strings.HasPrefix(name, "golang_org/x/") {
root = filepath.Join(root, "vendor")
}
diff --git a/src/go/build/build_test.go b/src/go/build/build_test.go
index c9f906a7da..198a649b15 100644
--- a/src/go/build/build_test.go
+++ b/src/go/build/build_test.go
@@ -303,11 +303,11 @@ func TestImportVendor(t *testing.T) {
testenv.MustHaveGoBuild(t) // really must just have source
ctxt := Default
ctxt.GOPATH = ""
- p, err := ctxt.Import("golang.org/x/net/http2/hpack", filepath.Join(ctxt.GOROOT, "src/net/http"), 0)
+ p, err := ctxt.Import("golang_org/x/net/http2/hpack", filepath.Join(ctxt.GOROOT, "src/net/http"), 0)
if err != nil {
- t.Fatalf("cannot find vendored golang.org/x/net/http2/hpack from net/http directory: %v", err)
+ t.Fatalf("cannot find vendored golang_org/x/net/http2/hpack from net/http directory: %v", err)
}
- want := "vendor/golang.org/x/net/http2/hpack"
+ want := "vendor/golang_org/x/net/http2/hpack"
if p.ImportPath != want {
t.Fatalf("Import succeeded but found %q, want %q", p.ImportPath, want)
}
@@ -333,7 +333,7 @@ func TestImportVendorParentFailure(t *testing.T) {
ctxt := Default
ctxt.GOPATH = ""
// This import should fail because the vendor/golang.org/x/net/http2 directory has no source code.
- p, err := ctxt.Import("golang.org/x/net/http2", filepath.Join(ctxt.GOROOT, "src/net/http"), 0)
+ p, err := ctxt.Import("golang_org/x/net/http2", filepath.Join(ctxt.GOROOT, "src/net/http"), 0)
if err == nil {
t.Fatalf("found empty parent in %s", p.Dir)
}
diff --git a/src/go/build/deps_test.go b/src/go/build/deps_test.go
index 335e774a7c..5b2529129c 100644
--- a/src/go/build/deps_test.go
+++ b/src/go/build/deps_test.go
@@ -297,7 +297,7 @@ var pkgDeps = map[string][]string{
"context", "math/rand", "os", "sort", "syscall", "time",
"internal/nettrace",
"internal/syscall/windows", "internal/singleflight", "internal/race",
- "golang.org/x/net/route",
+ "golang_org/x/net/route",
},
// NET enables use of basic network-related packages.
@@ -378,8 +378,8 @@ var pkgDeps = map[string][]string{
"context", "compress/gzip", "container/list", "crypto/tls",
"mime/multipart", "runtime/debug",
"net/http/internal",
- "golang.org/x/net/http2/hpack",
- "golang.org/x/net/lex/httplex",
+ "golang_org/x/net/http2/hpack",
+ "golang_org/x/net/lex/httplex",
"internal/nettrace",
"net/http/httptrace",
},
@@ -443,7 +443,7 @@ func listStdPkgs(goroot string) ([]string, error) {
}
name := filepath.ToSlash(path[len(src):])
- if name == "builtin" || name == "cmd" || strings.Contains(name, ".") {
+ if name == "builtin" || name == "cmd" || strings.Contains(name, "golang_org") {
return filepath.SkipDir
}
diff --git a/src/net/http/h2_bundle.go b/src/net/http/h2_bundle.go
index 352a41d414..47e5f577e6 100644
--- a/src/net/http/h2_bundle.go
+++ b/src/net/http/h2_bundle.go
@@ -41,8 +41,8 @@ import (
"sync"
"time"
- "golang.org/x/net/http2/hpack"
- "golang.org/x/net/lex/httplex"
+ "golang_org/x/net/http2/hpack"
+ "golang_org/x/net/lex/httplex"
)
// ClientConnPool manages a pool of HTTP/2 client connections.
diff --git a/src/net/http/http.go b/src/net/http/http.go
index 4d088a5bb1..b34ae41ec5 100644
--- a/src/net/http/http.go
+++ b/src/net/http/http.go
@@ -7,7 +7,7 @@ package http
import (
"strings"
- "golang.org/x/net/lex/httplex"
+ "golang_org/x/net/lex/httplex"
)
// maxInt64 is the effective "infinite" value for the Server and
diff --git a/src/net/http/server.go b/src/net/http/server.go
index 9bf4d667e2..7b2b4b2f42 100644
--- a/src/net/http/server.go
+++ b/src/net/http/server.go
@@ -28,7 +28,7 @@ import (
"sync/atomic"
"time"
- "golang.org/x/net/lex/httplex"
+ "golang_org/x/net/lex/httplex"
)
// Errors used by the HTTP server.
diff --git a/src/net/http/transfer.go b/src/net/http/transfer.go
index b27ace638a..c653467098 100644
--- a/src/net/http/transfer.go
+++ b/src/net/http/transfer.go
@@ -18,7 +18,7 @@ import (
"strings"
"sync"
- "golang.org/x/net/lex/httplex"
+ "golang_org/x/net/lex/httplex"
)
// ErrLineTooLong is returned when reading request or response bodies
diff --git a/src/net/http/transport.go b/src/net/http/transport.go
index f7904b4a89..0c81b55e12 100644
--- a/src/net/http/transport.go
+++ b/src/net/http/transport.go
@@ -27,7 +27,7 @@ import (
"sync"
"time"
- "golang.org/x/net/lex/httplex"
+ "golang_org/x/net/lex/httplex"
)
// DefaultTransport is the default implementation of Transport and is
diff --git a/src/net/interface_bsd.go b/src/net/interface_bsd.go
index d791cb3016..35b1c26815 100644
--- a/src/net/interface_bsd.go
+++ b/src/net/interface_bsd.go
@@ -9,7 +9,7 @@ package net
import (
"syscall"
- "golang.org/x/net/route"
+ "golang_org/x/net/route"
)
// If the ifindex is zero, interfaceTable returns mappings of all
diff --git a/src/net/interface_bsdvar.go b/src/net/interface_bsdvar.go
index a809b5f5ce..0b84ca37d4 100644
--- a/src/net/interface_bsdvar.go
+++ b/src/net/interface_bsdvar.go
@@ -9,7 +9,7 @@ package net
import (
"syscall"
- "golang.org/x/net/route"
+ "golang_org/x/net/route"
)
func interfaceMessages(ifindex int) ([]route.Message, error) {
diff --git a/src/net/interface_darwin.go b/src/net/interface_darwin.go
index bb4fd73a98..2ec8e1cc6e 100644
--- a/src/net/interface_darwin.go
+++ b/src/net/interface_darwin.go
@@ -7,7 +7,7 @@ package net
import (
"syscall"
- "golang.org/x/net/route"
+ "golang_org/x/net/route"
)
func interfaceMessages(ifindex int) ([]route.Message, error) {
diff --git a/src/net/interface_freebsd.go b/src/net/interface_freebsd.go
index 45badd6495..8a7d6f67c0 100644
--- a/src/net/interface_freebsd.go
+++ b/src/net/interface_freebsd.go
@@ -7,7 +7,7 @@ package net
import (
"syscall"
- "golang.org/x/net/route"
+ "golang_org/x/net/route"
)
func interfaceMessages(ifindex int) ([]route.Message, error) {
diff --git a/src/vendor/golang.org/x/net/http2/hpack/encode.go b/src/vendor/golang_org/x/net/http2/hpack/encode.go
similarity index 100%
rename from src/vendor/golang.org/x/net/http2/hpack/encode.go
rename to src/vendor/golang_org/x/net/http2/hpack/encode.go
diff --git a/src/vendor/golang.org/x/net/http2/hpack/encode_test.go b/src/vendor/golang_org/x/net/http2/hpack/encode_test.go
similarity index 100%
rename from src/vendor/golang.org/x/net/http2/hpack/encode_test.go
rename to src/vendor/golang_org/x/net/http2/hpack/encode_test.go
diff --git a/src/vendor/golang.org/x/net/http2/hpack/hpack.go b/src/vendor/golang_org/x/net/http2/hpack/hpack.go
similarity index 100%
rename from src/vendor/golang.org/x/net/http2/hpack/hpack.go
rename to src/vendor/golang_org/x/net/http2/hpack/hpack.go
diff --git a/src/vendor/golang.org/x/net/http2/hpack/hpack_test.go b/src/vendor/golang_org/x/net/http2/hpack/hpack_test.go
similarity index 100%
rename from src/vendor/golang.org/x/net/http2/hpack/hpack_test.go
rename to src/vendor/golang_org/x/net/http2/hpack/hpack_test.go
diff --git a/src/vendor/golang.org/x/net/http2/hpack/huffman.go b/src/vendor/golang_org/x/net/http2/hpack/huffman.go
similarity index 100%
rename from src/vendor/golang.org/x/net/http2/hpack/huffman.go
rename to src/vendor/golang_org/x/net/http2/hpack/huffman.go
diff --git a/src/vendor/golang.org/x/net/http2/hpack/tables.go b/src/vendor/golang_org/x/net/http2/hpack/tables.go
similarity index 100%
rename from src/vendor/golang.org/x/net/http2/hpack/tables.go
rename to src/vendor/golang_org/x/net/http2/hpack/tables.go
diff --git a/src/vendor/golang.org/x/net/lex/httplex/httplex.go b/src/vendor/golang_org/x/net/lex/httplex/httplex.go
similarity index 100%
rename from src/vendor/golang.org/x/net/lex/httplex/httplex.go
rename to src/vendor/golang_org/x/net/lex/httplex/httplex.go
diff --git a/src/vendor/golang.org/x/net/lex/httplex/httplex_test.go b/src/vendor/golang_org/x/net/lex/httplex/httplex_test.go
similarity index 100%
rename from src/vendor/golang.org/x/net/lex/httplex/httplex_test.go
rename to src/vendor/golang_org/x/net/lex/httplex/httplex_test.go
diff --git a/src/vendor/golang.org/x/net/route/address.go b/src/vendor/golang_org/x/net/route/address.go
similarity index 100%
rename from src/vendor/golang.org/x/net/route/address.go
rename to src/vendor/golang_org/x/net/route/address.go
diff --git a/src/vendor/golang.org/x/net/route/address_darwin_test.go b/src/vendor/golang_org/x/net/route/address_darwin_test.go
similarity index 100%
rename from src/vendor/golang.org/x/net/route/address_darwin_test.go
rename to src/vendor/golang_org/x/net/route/address_darwin_test.go
diff --git a/src/vendor/golang.org/x/net/route/address_test.go b/src/vendor/golang_org/x/net/route/address_test.go
similarity index 100%
rename from src/vendor/golang.org/x/net/route/address_test.go
rename to src/vendor/golang_org/x/net/route/address_test.go
diff --git a/src/vendor/golang.org/x/net/route/binary.go b/src/vendor/golang_org/x/net/route/binary.go
similarity index 100%
rename from src/vendor/golang.org/x/net/route/binary.go
rename to src/vendor/golang_org/x/net/route/binary.go
diff --git a/src/vendor/golang.org/x/net/route/defs_darwin.go b/src/vendor/golang_org/x/net/route/defs_darwin.go
similarity index 100%
rename from src/vendor/golang.org/x/net/route/defs_darwin.go
rename to src/vendor/golang_org/x/net/route/defs_darwin.go
diff --git a/src/vendor/golang.org/x/net/route/defs_dragonfly.go b/src/vendor/golang_org/x/net/route/defs_dragonfly.go
similarity index 100%
rename from src/vendor/golang.org/x/net/route/defs_dragonfly.go
rename to src/vendor/golang_org/x/net/route/defs_dragonfly.go
diff --git a/src/vendor/golang.org/x/net/route/defs_freebsd.go b/src/vendor/golang_org/x/net/route/defs_freebsd.go
similarity index 100%
rename from src/vendor/golang.org/x/net/route/defs_freebsd.go
rename to src/vendor/golang_org/x/net/route/defs_freebsd.go
diff --git a/src/vendor/golang.org/x/net/route/defs_netbsd.go b/src/vendor/golang_org/x/net/route/defs_netbsd.go
similarity index 100%
rename from src/vendor/golang.org/x/net/route/defs_netbsd.go
rename to src/vendor/golang_org/x/net/route/defs_netbsd.go
diff --git a/src/vendor/golang.org/x/net/route/defs_openbsd.go b/src/vendor/golang_org/x/net/route/defs_openbsd.go
similarity index 100%
rename from src/vendor/golang.org/x/net/route/defs_openbsd.go
rename to src/vendor/golang_org/x/net/route/defs_openbsd.go
diff --git a/src/vendor/golang.org/x/net/route/interface.go b/src/vendor/golang_org/x/net/route/interface.go
similarity index 100%
rename from src/vendor/golang.org/x/net/route/interface.go
rename to src/vendor/golang_org/x/net/route/interface.go
diff --git a/src/vendor/golang.org/x/net/route/interface_announce.go b/src/vendor/golang_org/x/net/route/interface_announce.go
similarity index 100%
rename from src/vendor/golang.org/x/net/route/interface_announce.go
rename to src/vendor/golang_org/x/net/route/interface_announce.go
diff --git a/src/vendor/golang.org/x/net/route/interface_classic.go b/src/vendor/golang_org/x/net/route/interface_classic.go
similarity index 100%
rename from src/vendor/golang.org/x/net/route/interface_classic.go
rename to src/vendor/golang_org/x/net/route/interface_classic.go
diff --git a/src/vendor/golang.org/x/net/route/interface_freebsd.go b/src/vendor/golang_org/x/net/route/interface_freebsd.go
similarity index 100%
rename from src/vendor/golang.org/x/net/route/interface_freebsd.go
rename to src/vendor/golang_org/x/net/route/interface_freebsd.go
diff --git a/src/vendor/golang.org/x/net/route/interface_multicast.go b/src/vendor/golang_org/x/net/route/interface_multicast.go
similarity index 100%
rename from src/vendor/golang.org/x/net/route/interface_multicast.go
rename to src/vendor/golang_org/x/net/route/interface_multicast.go
diff --git a/src/vendor/golang.org/x/net/route/interface_openbsd.go b/src/vendor/golang_org/x/net/route/interface_openbsd.go
similarity index 100%
rename from src/vendor/golang.org/x/net/route/interface_openbsd.go
rename to src/vendor/golang_org/x/net/route/interface_openbsd.go
diff --git a/src/vendor/golang.org/x/net/route/message.go b/src/vendor/golang_org/x/net/route/message.go
similarity index 100%
rename from src/vendor/golang.org/x/net/route/message.go
rename to src/vendor/golang_org/x/net/route/message.go
diff --git a/src/vendor/golang.org/x/net/route/message_darwin_test.go b/src/vendor/golang_org/x/net/route/message_darwin_test.go
similarity index 100%
rename from src/vendor/golang.org/x/net/route/message_darwin_test.go
rename to src/vendor/golang_org/x/net/route/message_darwin_test.go
diff --git a/src/vendor/golang.org/x/net/route/message_freebsd_test.go b/src/vendor/golang_org/x/net/route/message_freebsd_test.go
similarity index 100%
rename from src/vendor/golang.org/x/net/route/message_freebsd_test.go
rename to src/vendor/golang_org/x/net/route/message_freebsd_test.go
diff --git a/src/vendor/golang.org/x/net/route/message_test.go b/src/vendor/golang_org/x/net/route/message_test.go
similarity index 100%
rename from src/vendor/golang.org/x/net/route/message_test.go
rename to src/vendor/golang_org/x/net/route/message_test.go
diff --git a/src/vendor/golang.org/x/net/route/route.go b/src/vendor/golang_org/x/net/route/route.go
similarity index 100%
rename from src/vendor/golang.org/x/net/route/route.go
rename to src/vendor/golang_org/x/net/route/route.go
diff --git a/src/vendor/golang.org/x/net/route/route_classic.go b/src/vendor/golang_org/x/net/route/route_classic.go
similarity index 100%
rename from src/vendor/golang.org/x/net/route/route_classic.go
rename to src/vendor/golang_org/x/net/route/route_classic.go
diff --git a/src/vendor/golang.org/x/net/route/route_openbsd.go b/src/vendor/golang_org/x/net/route/route_openbsd.go
similarity index 100%
rename from src/vendor/golang.org/x/net/route/route_openbsd.go
rename to src/vendor/golang_org/x/net/route/route_openbsd.go
diff --git a/src/vendor/golang.org/x/net/route/route_test.go b/src/vendor/golang_org/x/net/route/route_test.go
similarity index 100%
rename from src/vendor/golang.org/x/net/route/route_test.go
rename to src/vendor/golang_org/x/net/route/route_test.go
diff --git a/src/vendor/golang.org/x/net/route/sys.go b/src/vendor/golang_org/x/net/route/sys.go
similarity index 100%
rename from src/vendor/golang.org/x/net/route/sys.go
rename to src/vendor/golang_org/x/net/route/sys.go
diff --git a/src/vendor/golang.org/x/net/route/sys_darwin.go b/src/vendor/golang_org/x/net/route/sys_darwin.go
similarity index 100%
rename from src/vendor/golang.org/x/net/route/sys_darwin.go
rename to src/vendor/golang_org/x/net/route/sys_darwin.go
diff --git a/src/vendor/golang.org/x/net/route/sys_dragonfly.go b/src/vendor/golang_org/x/net/route/sys_dragonfly.go
similarity index 100%
rename from src/vendor/golang.org/x/net/route/sys_dragonfly.go
rename to src/vendor/golang_org/x/net/route/sys_dragonfly.go
diff --git a/src/vendor/golang.org/x/net/route/sys_freebsd.go b/src/vendor/golang_org/x/net/route/sys_freebsd.go
similarity index 100%
rename from src/vendor/golang.org/x/net/route/sys_freebsd.go
rename to src/vendor/golang_org/x/net/route/sys_freebsd.go
diff --git a/src/vendor/golang.org/x/net/route/sys_netbsd.go b/src/vendor/golang_org/x/net/route/sys_netbsd.go
similarity index 100%
rename from src/vendor/golang.org/x/net/route/sys_netbsd.go
rename to src/vendor/golang_org/x/net/route/sys_netbsd.go
diff --git a/src/vendor/golang.org/x/net/route/sys_openbsd.go b/src/vendor/golang_org/x/net/route/sys_openbsd.go
similarity index 100%
rename from src/vendor/golang.org/x/net/route/sys_openbsd.go
rename to src/vendor/golang_org/x/net/route/sys_openbsd.go
diff --git a/src/vendor/golang.org/x/net/route/syscall.go b/src/vendor/golang_org/x/net/route/syscall.go
similarity index 100%
rename from src/vendor/golang.org/x/net/route/syscall.go
rename to src/vendor/golang_org/x/net/route/syscall.go
diff --git a/src/vendor/golang.org/x/net/route/syscall.s b/src/vendor/golang_org/x/net/route/syscall.s
similarity index 100%
rename from src/vendor/golang.org/x/net/route/syscall.s
rename to src/vendor/golang_org/x/net/route/syscall.s
diff --git a/src/vendor/golang.org/x/net/route/zsys_darwin.go b/src/vendor/golang_org/x/net/route/zsys_darwin.go
similarity index 100%
rename from src/vendor/golang.org/x/net/route/zsys_darwin.go
rename to src/vendor/golang_org/x/net/route/zsys_darwin.go
diff --git a/src/vendor/golang.org/x/net/route/zsys_dragonfly.go b/src/vendor/golang_org/x/net/route/zsys_dragonfly.go
similarity index 100%
rename from src/vendor/golang.org/x/net/route/zsys_dragonfly.go
rename to src/vendor/golang_org/x/net/route/zsys_dragonfly.go
diff --git a/src/vendor/golang.org/x/net/route/zsys_freebsd_386.go b/src/vendor/golang_org/x/net/route/zsys_freebsd_386.go
similarity index 100%
rename from src/vendor/golang.org/x/net/route/zsys_freebsd_386.go
rename to src/vendor/golang_org/x/net/route/zsys_freebsd_386.go
diff --git a/src/vendor/golang.org/x/net/route/zsys_freebsd_amd64.go b/src/vendor/golang_org/x/net/route/zsys_freebsd_amd64.go
similarity index 100%
rename from src/vendor/golang.org/x/net/route/zsys_freebsd_amd64.go
rename to src/vendor/golang_org/x/net/route/zsys_freebsd_amd64.go
diff --git a/src/vendor/golang.org/x/net/route/zsys_freebsd_arm.go b/src/vendor/golang_org/x/net/route/zsys_freebsd_arm.go
similarity index 100%
rename from src/vendor/golang.org/x/net/route/zsys_freebsd_arm.go
rename to src/vendor/golang_org/x/net/route/zsys_freebsd_arm.go
diff --git a/src/vendor/golang.org/x/net/route/zsys_netbsd.go b/src/vendor/golang_org/x/net/route/zsys_netbsd.go
similarity index 100%
rename from src/vendor/golang.org/x/net/route/zsys_netbsd.go
rename to src/vendor/golang_org/x/net/route/zsys_netbsd.go
diff --git a/src/vendor/golang.org/x/net/route/zsys_openbsd.go b/src/vendor/golang_org/x/net/route/zsys_openbsd.go
similarity index 100%
rename from src/vendor/golang.org/x/net/route/zsys_openbsd.go
rename to src/vendor/golang_org/x/net/route/zsys_openbsd.go
From 29ed5da5f2804cab0f6f1c97309673ac5d22a99d Mon Sep 17 00:00:00 2001
From: Ian Lance Taylor
Date: Wed, 13 Jul 2016 13:22:47 -0700
Subject: [PATCH 05/47] runtime/pprof: don't print extraneous 0 after goexit
This fixes erroneous handling of the more result parameter of
runtime.Frames.Next.
Fixes #16349.
Change-Id: I4f1c0263dafbb883294b31dbb8922b9d3e650200
Reviewed-on: https://go-review.googlesource.com/24911
Run-TryBot: Ian Lance Taylor
TryBot-Result: Gobot Gobot
Reviewed-by: Brad Fitzpatrick
---
src/runtime/pprof/pprof.go | 5 +----
src/runtime/pprof/pprof_test.go | 4 ++++
2 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/src/runtime/pprof/pprof.go b/src/runtime/pprof/pprof.go
index f2cd81adb1..b7c41f13de 100644
--- a/src/runtime/pprof/pprof.go
+++ b/src/runtime/pprof/pprof.go
@@ -353,12 +353,9 @@ func printStackRecord(w io.Writer, stk []uintptr, allFrames bool) {
if name == "" {
show = true
fmt.Fprintf(w, "#\t%#x\n", frame.PC)
- } else {
+ } else if name != "runtime.goexit" && (show || !strings.HasPrefix(name, "runtime.")) {
// Hide runtime.goexit and any runtime functions at the beginning.
// This is useful mainly for allocation traces.
- if name == "runtime.goexit" || !show && strings.HasPrefix(name, "runtime.") {
- continue
- }
show = true
fmt.Fprintf(w, "#\t%#x\t%s+%#x\t%s:%d\n", frame.PC, name, frame.PC-frame.Entry, frame.File, frame.Line)
}
diff --git a/src/runtime/pprof/pprof_test.go b/src/runtime/pprof/pprof_test.go
index a6f5eda458..a0930155a5 100644
--- a/src/runtime/pprof/pprof_test.go
+++ b/src/runtime/pprof/pprof_test.go
@@ -497,6 +497,10 @@ func TestBlockProfile(t *testing.T) {
t.Fatalf("Bad profile header:\n%v", prof)
}
+ if strings.HasSuffix(prof, "#\t0x0\n\n") {
+ t.Errorf("Useless 0 suffix:\n%v", prof)
+ }
+
for _, test := range tests {
if !regexp.MustCompile(strings.Replace(test.re, "\t", "\t+", -1)).MatchString(prof) {
t.Fatalf("Bad %v entry, expect:\n%v\ngot:\n%v", test.name, test.re, prof)
From 4054769a31f66039f5fd74ca3164e9233f724da8 Mon Sep 17 00:00:00 2001
From: Josh Bleecher Snyder
Date: Thu, 14 Jul 2016 07:25:05 -0700
Subject: [PATCH 06/47] runtime/internal/atomic: fix assembly arg sizes
Change-Id: I80ccf40cd3930aff908ee64f6dcbe5f5255198d3
Reviewed-on: https://go-review.googlesource.com/24914
Run-TryBot: Josh Bleecher Snyder
TryBot-Result: Gobot Gobot
Reviewed-by: Ian Lance Taylor
---
src/runtime/internal/atomic/asm_386.s | 6 +++---
src/runtime/internal/atomic/asm_amd64.s | 2 +-
src/runtime/internal/atomic/asm_amd64p32.s | 4 ++--
src/runtime/internal/atomic/asm_arm.s | 6 +++---
src/runtime/internal/atomic/asm_arm64.s | 4 ++--
src/runtime/internal/atomic/asm_ppc64x.s | 2 +-
6 files changed, 12 insertions(+), 12 deletions(-)
diff --git a/src/runtime/internal/atomic/asm_386.s b/src/runtime/internal/atomic/asm_386.s
index ebecd0b4cb..357d830289 100644
--- a/src/runtime/internal/atomic/asm_386.s
+++ b/src/runtime/internal/atomic/asm_386.s
@@ -32,13 +32,13 @@ TEXT runtime∕internal∕atomic·Loaduint(SB), NOSPLIT, $0-8
TEXT runtime∕internal∕atomic·Storeuintptr(SB), NOSPLIT, $0-8
JMP runtime∕internal∕atomic·Store(SB)
-TEXT runtime∕internal∕atomic·Xadduintptr(SB), NOSPLIT, $0-8
+TEXT runtime∕internal∕atomic·Xadduintptr(SB), NOSPLIT, $0-12
JMP runtime∕internal∕atomic·Xadd(SB)
-TEXT runtime∕internal∕atomic·Loadint64(SB), NOSPLIT, $0-16
+TEXT runtime∕internal∕atomic·Loadint64(SB), NOSPLIT, $0-12
JMP runtime∕internal∕atomic·Load64(SB)
-TEXT runtime∕internal∕atomic·Xaddint64(SB), NOSPLIT, $0-16
+TEXT runtime∕internal∕atomic·Xaddint64(SB), NOSPLIT, $0-20
JMP runtime∕internal∕atomic·Xadd64(SB)
diff --git a/src/runtime/internal/atomic/asm_amd64.s b/src/runtime/internal/atomic/asm_amd64.s
index 94d4ac2698..0001d2301c 100644
--- a/src/runtime/internal/atomic/asm_amd64.s
+++ b/src/runtime/internal/atomic/asm_amd64.s
@@ -52,7 +52,7 @@ TEXT runtime∕internal∕atomic·Storeuintptr(SB), NOSPLIT, $0-16
TEXT runtime∕internal∕atomic·Loadint64(SB), NOSPLIT, $0-16
JMP runtime∕internal∕atomic·Load64(SB)
-TEXT runtime∕internal∕atomic·Xaddint64(SB), NOSPLIT, $0-16
+TEXT runtime∕internal∕atomic·Xaddint64(SB), NOSPLIT, $0-24
JMP runtime∕internal∕atomic·Xadd64(SB)
// bool Casp(void **val, void *old, void *new)
diff --git a/src/runtime/internal/atomic/asm_amd64p32.s b/src/runtime/internal/atomic/asm_amd64p32.s
index 74c79d08fd..22c707c325 100644
--- a/src/runtime/internal/atomic/asm_amd64p32.s
+++ b/src/runtime/internal/atomic/asm_amd64p32.s
@@ -29,10 +29,10 @@ TEXT runtime∕internal∕atomic·Loaduintptr(SB), NOSPLIT, $0-12
TEXT runtime∕internal∕atomic·Loaduint(SB), NOSPLIT, $0-12
JMP runtime∕internal∕atomic·Load(SB)
-TEXT runtime∕internal∕atomic·Storeuintptr(SB), NOSPLIT, $0-12
+TEXT runtime∕internal∕atomic·Storeuintptr(SB), NOSPLIT, $0-8
JMP runtime∕internal∕atomic·Store(SB)
-TEXT runtime∕internal∕atomic·Loadint64(SB), NOSPLIT, $0-24
+TEXT runtime∕internal∕atomic·Loadint64(SB), NOSPLIT, $0-16
JMP runtime∕internal∕atomic·Load64(SB)
TEXT runtime∕internal∕atomic·Xaddint64(SB), NOSPLIT, $0-24
diff --git a/src/runtime/internal/atomic/asm_arm.s b/src/runtime/internal/atomic/asm_arm.s
index 235e8bfd20..12da22390d 100644
--- a/src/runtime/internal/atomic/asm_arm.s
+++ b/src/runtime/internal/atomic/asm_arm.s
@@ -61,11 +61,11 @@ TEXT runtime∕internal∕atomic·Loaduint(SB),NOSPLIT,$0-8
TEXT runtime∕internal∕atomic·Storeuintptr(SB),NOSPLIT,$0-8
B runtime∕internal∕atomic·Store(SB)
-TEXT runtime∕internal∕atomic·Xadduintptr(SB),NOSPLIT,$0-8
+TEXT runtime∕internal∕atomic·Xadduintptr(SB),NOSPLIT,$0-12
B runtime∕internal∕atomic·Xadd(SB)
-TEXT runtime∕internal∕atomic·Loadint64(SB),NOSPLIT,$0-16
+TEXT runtime∕internal∕atomic·Loadint64(SB),NOSPLIT,$0-12
B runtime∕internal∕atomic·Load64(SB)
-TEXT runtime∕internal∕atomic·Xaddint64(SB),NOSPLIT,$0-16
+TEXT runtime∕internal∕atomic·Xaddint64(SB),NOSPLIT,$0-20
B runtime∕internal∕atomic·Xadd64(SB)
diff --git a/src/runtime/internal/atomic/asm_arm64.s b/src/runtime/internal/atomic/asm_arm64.s
index c255677f78..929bf7189c 100644
--- a/src/runtime/internal/atomic/asm_arm64.s
+++ b/src/runtime/internal/atomic/asm_arm64.s
@@ -38,13 +38,13 @@ TEXT runtime∕internal∕atomic·Loaduint(SB), NOSPLIT, $-8-16
TEXT runtime∕internal∕atomic·Storeuintptr(SB), NOSPLIT, $0-16
B runtime∕internal∕atomic·Store64(SB)
-TEXT runtime∕internal∕atomic·Xadduintptr(SB), NOSPLIT, $0-16
+TEXT runtime∕internal∕atomic·Xadduintptr(SB), NOSPLIT, $0-24
B runtime∕internal∕atomic·Xadd64(SB)
TEXT runtime∕internal∕atomic·Loadint64(SB), NOSPLIT, $0-16
B runtime∕internal∕atomic·Load64(SB)
-TEXT runtime∕internal∕atomic·Xaddint64(SB), NOSPLIT, $0-16
+TEXT runtime∕internal∕atomic·Xaddint64(SB), NOSPLIT, $0-24
B runtime∕internal∕atomic·Xadd64(SB)
// bool Casp(void **val, void *old, void *new)
diff --git a/src/runtime/internal/atomic/asm_ppc64x.s b/src/runtime/internal/atomic/asm_ppc64x.s
index de4f895efd..aa6067e15b 100644
--- a/src/runtime/internal/atomic/asm_ppc64x.s
+++ b/src/runtime/internal/atomic/asm_ppc64x.s
@@ -77,7 +77,7 @@ TEXT runtime∕internal∕atomic·Xadduintptr(SB), NOSPLIT, $0-24
TEXT runtime∕internal∕atomic·Loadint64(SB), NOSPLIT, $0-16
BR runtime∕internal∕atomic·Load64(SB)
-TEXT runtime∕internal∕atomic·Xaddint64(SB), NOSPLIT, $0-16
+TEXT runtime∕internal∕atomic·Xaddint64(SB), NOSPLIT, $0-24
BR runtime∕internal∕atomic·Xadd64(SB)
// bool casp(void **val, void *old, void *new)
From 2b6eb276517ecba08985d59b6b1928e29743d3e0 Mon Sep 17 00:00:00 2001
From: Ian Lance Taylor
Date: Thu, 14 Jul 2016 08:50:44 -0700
Subject: [PATCH 07/47] doc/go1.7.html: remove erroneous note about ppc64 and
power8
We decided that ppc64 should maintain power5 compatibility.
ppc64le requires power8.
Fixes #16372.
Change-Id: If5b309a0563f55a3c1fe9c853d29a463f5b71101
Reviewed-on: https://go-review.googlesource.com/24915
Reviewed-by: Minux Ma
Run-TryBot: Ian Lance Taylor
TryBot-Result: Gobot Gobot
---
doc/go1.7.html | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/doc/go1.7.html b/doc/go1.7.html
index 2dfa64da61..77cf579e27 100644
--- a/doc/go1.7.html
+++ b/doc/go1.7.html
@@ -91,8 +91,10 @@ added in Go 1.6 now have full support for cgo and external linking.
-The experimental port to Linux on big-endian 64-bit PowerPC (linux/ppc64)
+The experimental port to Linux on little-endian 64-bit PowerPC (linux/ppc64le)
now requires the POWER8 architecture or later.
+Big-endian 64-bit PowerPC (linux/ppc64) only requires the
+POWER5 architecture.
From 510fb6397dfc93067dc90d42c58dfc5f8b995285 Mon Sep 17 00:00:00 2001
From: Joe Tsai
Date: Sat, 16 Jul 2016 02:42:52 -0700
Subject: [PATCH 08/47] fmt: properly handle early io.EOF Reads in
readRune.readByte
Change https://golang.org/cl/19895 caused a regression
where the last character in a string would be dropped if it was
accompanied by an io.EOF.
This change fixes the logic so that the last byte is still returned
without a problem.
Fixes #16393
Change-Id: I7a4d0abf761c2c15454136a79e065fe002d736ea
Reviewed-on: https://go-review.googlesource.com/24981
Reviewed-by: Ian Lance Taylor
Run-TryBot: Ian Lance Taylor
TryBot-Result: Gobot Gobot
---
src/fmt/scan.go | 6 +--
src/fmt/scan_test.go | 101 ++++++++++++++++++-------------------------
2 files changed, 46 insertions(+), 61 deletions(-)
diff --git a/src/fmt/scan.go b/src/fmt/scan.go
index 08b0bf96a6..fdf419795d 100644
--- a/src/fmt/scan.go
+++ b/src/fmt/scan.go
@@ -325,9 +325,9 @@ func (r *readRune) readByte() (b byte, err error) {
r.pending--
return
}
- _, err = r.reader.Read(r.pendBuf[:1])
- if err != nil {
- return
+ n, err := io.ReadFull(r.reader, r.pendBuf[:1])
+ if n != 1 {
+ return 0, err
}
return r.pendBuf[0], err
}
diff --git a/src/fmt/scan_test.go b/src/fmt/scan_test.go
index 364d4fb42a..e36b62e78a 100644
--- a/src/fmt/scan_test.go
+++ b/src/fmt/scan_test.go
@@ -15,6 +15,7 @@ import (
"regexp"
"strings"
"testing"
+ "testing/iotest"
"unicode/utf8"
)
@@ -118,20 +119,6 @@ func (s *IntString) Scan(state ScanState, verb rune) error {
var intStringVal IntString
-// myStringReader implements Read but not ReadRune, allowing us to test our readRune wrapper
-// type that creates something that can read runes given only Read().
-type myStringReader struct {
- r *strings.Reader
-}
-
-func (s *myStringReader) Read(p []byte) (n int, err error) {
- return s.r.Read(p)
-}
-
-func newReader(s string) *myStringReader {
- return &myStringReader{strings.NewReader(s)}
-}
-
var scanTests = []ScanTest{
// Basic types
{"T\n", &boolVal, true}, // boolean test vals toggle to be sure they are written
@@ -363,25 +350,38 @@ var multiTests = []ScanfMultiTest{
{"%v%v", "FALSE23", args(&truth, &i), args(false, 23), ""},
}
-func testScan(name string, t *testing.T, scan func(r io.Reader, a ...interface{}) (int, error)) {
+var readers = []struct {
+ name string
+ f func(string) io.Reader
+}{
+ {"StringReader", func(s string) io.Reader {
+ return strings.NewReader(s)
+ }},
+ {"ReaderOnly", func(s string) io.Reader {
+ return struct{ io.Reader }{strings.NewReader(s)}
+ }},
+ {"OneByteReader", func(s string) io.Reader {
+ return iotest.OneByteReader(strings.NewReader(s))
+ }},
+ {"DataErrReader", func(s string) io.Reader {
+ return iotest.DataErrReader(strings.NewReader(s))
+ }},
+}
+
+func testScan(t *testing.T, f func(string) io.Reader, scan func(r io.Reader, a ...interface{}) (int, error)) {
for _, test := range scanTests {
- var r io.Reader
- if name == "StringReader" {
- r = strings.NewReader(test.text)
- } else {
- r = newReader(test.text)
- }
+ r := f(test.text)
n, err := scan(r, test.in)
if err != nil {
m := ""
if n > 0 {
m = Sprintf(" (%d fields ok)", n)
}
- t.Errorf("%s got error scanning %q: %s%s", name, test.text, err, m)
+ t.Errorf("got error scanning %q: %s%s", test.text, err, m)
continue
}
if n != 1 {
- t.Errorf("%s count error on entry %q: got %d", name, test.text, n)
+ t.Errorf("count error on entry %q: got %d", test.text, n)
continue
}
// The incoming value may be a pointer
@@ -391,25 +391,25 @@ func testScan(name string, t *testing.T, scan func(r io.Reader, a ...interface{}
}
val := v.Interface()
if !reflect.DeepEqual(val, test.out) {
- t.Errorf("%s scanning %q: expected %#v got %#v, type %T", name, test.text, test.out, val, val)
+ t.Errorf("scanning %q: expected %#v got %#v, type %T", test.text, test.out, val, val)
}
}
}
func TestScan(t *testing.T) {
- testScan("StringReader", t, Fscan)
-}
-
-func TestMyReaderScan(t *testing.T) {
- testScan("myStringReader", t, Fscan)
+ for _, r := range readers {
+ t.Run(r.name, func(t *testing.T) {
+ testScan(t, r.f, Fscan)
+ })
+ }
}
func TestScanln(t *testing.T) {
- testScan("StringReader", t, Fscanln)
-}
-
-func TestMyReaderScanln(t *testing.T) {
- testScan("myStringReader", t, Fscanln)
+ for _, r := range readers {
+ t.Run(r.name, func(t *testing.T) {
+ testScan(t, r.f, Fscanln)
+ })
+ }
}
func TestScanf(t *testing.T) {
@@ -500,15 +500,10 @@ func TestInf(t *testing.T) {
}
}
-func testScanfMulti(name string, t *testing.T) {
+func testScanfMulti(t *testing.T, f func(string) io.Reader) {
sliceType := reflect.TypeOf(make([]interface{}, 1))
for _, test := range multiTests {
- var r io.Reader
- if name == "StringReader" {
- r = strings.NewReader(test.text)
- } else {
- r = newReader(test.text)
- }
+ r := f(test.text)
n, err := Fscanf(r, test.format, test.in...)
if err != nil {
if test.err == "" {
@@ -539,11 +534,11 @@ func testScanfMulti(name string, t *testing.T) {
}
func TestScanfMulti(t *testing.T) {
- testScanfMulti("StringReader", t)
-}
-
-func TestMyReaderScanfMulti(t *testing.T) {
- testScanfMulti("myStringReader", t)
+ for _, r := range readers {
+ t.Run(r.name, func(t *testing.T) {
+ testScanfMulti(t, r.f)
+ })
+ }
}
func TestScanMultiple(t *testing.T) {
@@ -818,20 +813,10 @@ func TestMultiLine(t *testing.T) {
}
}
-// simpleReader is a strings.Reader that implements only Read, not ReadRune.
-// Good for testing readahead.
-type simpleReader struct {
- sr *strings.Reader
-}
-
-func (s *simpleReader) Read(b []byte) (n int, err error) {
- return s.sr.Read(b)
-}
-
// TestLineByLineFscanf tests that Fscanf does not read past newline. Issue
// 3481.
func TestLineByLineFscanf(t *testing.T) {
- r := &simpleReader{strings.NewReader("1\n2\n")}
+ r := struct{ io.Reader }{strings.NewReader("1\n2\n")}
var i, j int
n, err := Fscanf(r, "%v\n", &i)
if n != 1 || err != nil {
@@ -1000,7 +985,7 @@ func BenchmarkScanRecursiveIntReaderWrapper(b *testing.B) {
ints := makeInts(intCount)
var r RecursiveInt
for i := b.N - 1; i >= 0; i-- {
- buf := newReader(string(ints))
+ buf := struct{ io.Reader }{strings.NewReader(string(ints))}
b.StartTimer()
Fscan(buf, &r)
b.StopTimer()
From a6dbfc12c640c90e8dc552443d3ece04cbae4a9c Mon Sep 17 00:00:00 2001
From: Brad Fitzpatrick
Date: Sat, 16 Jul 2016 23:56:45 +0000
Subject: [PATCH 09/47] net: demote TestDialerDualStack to a flaky test
Only run TestDialerDualStack on the builders, as to not annoy or
otherwise distract users when it's not their fault.
Even though the intention is to only run this on the builders, very
few of the builders have IPv6 support. Oh well. We'll get some
coverage.
Updates #13324
Change-Id: I13e7e3bca77ac990d290cabec88984cc3d24fb67
Reviewed-on: https://go-review.googlesource.com/24985
Run-TryBot: Brad Fitzpatrick
TryBot-Result: Gobot Gobot
Reviewed-by: Mikio Hara
---
src/net/dial_test.go | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/src/net/dial_test.go b/src/net/dial_test.go
index 9fe507e901..8b21e6b088 100644
--- a/src/net/dial_test.go
+++ b/src/net/dial_test.go
@@ -695,6 +695,11 @@ func TestDialerLocalAddr(t *testing.T) {
}
func TestDialerDualStack(t *testing.T) {
+ // This test is known to be flaky. Don't frighten regular
+ // users about it; only fail on the build dashboard.
+ if testenv.Builder() == "" {
+ testenv.SkipFlaky(t, 13324)
+ }
if !supportsIPv4 || !supportsIPv6 {
t.Skip("both IPv4 and IPv6 are required")
}
From 2837c395526476e31fb15dbb948ed77389cdc75b Mon Sep 17 00:00:00 2001
From: Austin Clements
Date: Sun, 17 Jul 2016 23:12:41 -0400
Subject: [PATCH 10/47] doc/go1.7.html: mention specific runtime improvements
Most of the runtime improvements are hard to quantify or summarize,
but it's worth mentioning some of the substantial improvements in STW
time, and that the scavenger now actually works on ARM64, PPC64, and
MIPS.
Change-Id: I0e951038516378cc3f95b364716ef1c183f3445a
Reviewed-on: https://go-review.googlesource.com/24966
Reviewed-by: Brad Fitzpatrick
---
doc/go1.7.html | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/doc/go1.7.html b/doc/go1.7.html
index 77cf579e27..b5f08d012e 100644
--- a/doc/go1.7.html
+++ b/doc/go1.7.html
@@ -375,6 +375,12 @@ and
packages.
+
+Stop-the-world times should be significantly lower for programs with
+large numbers of idle goroutines, substantial stack size fluctuation,
+or large package-level variables.
+
+
Core library
Context
@@ -470,6 +476,12 @@ eliminating the
common in some environments.