From d62809096ae13bd6caf00f5b604188c528376ed5 Mon Sep 17 00:00:00 2001
From: Russ Cox
+As announced in the Go 1.9 release notes, +Go 1.10 now requires FreeBSD 10.3 or later; +support for FreeBSD 9.3 has been removed. +
+ +
+On 32-bit MIPS systems, the new environment variable settings
+GOMIPS=hardfloat
(the default) and
+GOMIPS=softfloat
select whether to use
+hardware instructions or software emulation for floating-point computations.
+
PAUSE
and CONT
status update
lines to make clearer when parallel tests pause and continue.
+
+The new go
test
-failfast
flag
+disables running additional tests after any test fails.
+Note that tests running in parallel with the failing test are allowed to complete.
+
Finally, the new go
test
-json
flag
filters test output through the new command
go
tool
test2json
to produce a machine-readable JSON-formatted description of test execution.
-This should allow the creation of rich presentations of test execution
+This allows the creation of rich presentations of test execution
in IDEs and other tools.
For more details about all these changes,
-see go
help
test
+see go
help
test
and the test2json documentation.
+TODO: CL 70890 "permit passing string values directly between Go and C."
+
+TODO: CL 66332 "special case C ptr types to use uintptr."
+
During toolchain bootstrap, the environment variables CC
and CC_FOR_TARGET
specify
the default C compiler that the resulting toolchain will use for host and target builds, respectively.
@@ -235,6 +260,9 @@ Note that these variables only apply during toolchain bootstrap,
to set the defaults used by the resulting toolchain.
Later go
build
commands refer to the CC
environment
variable or else the built-in default.
+
For more details, see the cgo documentation.
@@ -317,14 +345,13 @@ This release includes a new overview of availabl
-A few minor details of the default formatting of Go source code have changed.
-First, some complex three-index slice expressions previously formatted like
+Two minor details of the default formatting of Go source code have changed.
+First, certain complex three-index slice expressions previously formatted like
x[i+1
:
j:k]
and now
format with more consistent spacing: x[i+1
:
j
:
k]
.
Second, single-method interface literals written on a single line,
which are sometimes used in type assertions,
are no longer split onto multiple lines.
-Third, blank lines following an opening brace are now always elided.
@@ -540,11 +567,6 @@ Now it also records the user and group names corresponding to those IDs, as well as the major and minor device numbers for device files.
-Errors created by the package now begin with a consistent âtar:â prefix. -(Previously they almost all began with a consistent âarchive/tar:â prefix.) -TODO: Why are we changing these? (#22740) -
-
The new Header.Format
field
of type Format
controls which tar header format the Writer
uses.
@@ -584,13 +606,12 @@ In Go 1.10, the Reader
and <
now support the widely-understood Info-Zip extension that encodes the time separately in the 32-bit Unix âseconds since epochâ form.
The FileHeader
's new Modified
field of type time.Time
obsoletes the ModifiedTime
and ModifiedDate
fields, which continue to hold the MS-DOS encoding.
-The ModTime
and
-SetModTime
methods
-now simply read and write the new Modified
field.
The Reader
and Writer
now adopt the common
convention that ZIP archive storing the Unix time encoding store the local time
in the MS-DOS field, so that the time zone offset can be inferred.
-TODO: These last bits are not true but probably should be (#22738)
+For compatibility, the ModTime
and
+SetModTime
methods
+behave the same as in earlier releases; new code should use Modified
directly.
The header for each file in a ZIP archive has a flag bit indicating whether
@@ -606,10 +627,8 @@ Setting a FileHeader
's new NonUTF8
field to true
disables the heuristic entirely for that file.
-The Writer
also now support setting the end-of-central-directory record's comment field,
-by setting the Writer
's new Comment
field
-before calling the Close
method.
-TODO: May change (#22737).
+The Writer
also now supports setting the end-of-central-directory record's comment field,
+by calling the Writer
's new SetComment
method.
PermittedURIDomains
, and ExcludedURIDomains
.
+
+The new MarshalPKCS1PublicKey
+and ParsePKCS1PublicKey
+functions convert an RSA public key to and from PKCS#1-encoded form.
+
The new MarshalPKCS8PrivateKey
-function converts a private key to PKCS#8 encoded form.
+function converts a private key to PKCS#8-encoded form.
+(ParsePKCS8PrivateKey
+has existed since Go 1.)
sql.Open
.
+Drivers that want to parse the configuration string only once per sql.DB
+instead of once per sql.Conn
,
+or that want access to each sql.Conn
's underlying context,
+can make their Driver
+implementations also implement DriverContext
's
+new OpenConnector
method.
+
Drivers that implement ExecerContext
no longer need to implement Execer
;
similarly, drivers that implement QueryerContext
@@ -762,10 +797,19 @@ unless the string is in a struct field with a tag forcing the use of PrintableSt
Marshal
also now respects struct tags containing application
directives.
+The new MarshalWithParams
+function marshals its argument as if the additional params were its associated
+struct field tag.
+
Unmarshal
now respects
struct field tags using the explicit
and tag
directives.
+Both Marshal
and Unmarshal
now support a new struct field tag
+numeric
, indicating an ASN.1 NumericString.
+
Comma
and Comment
equal to each other.
In the case of a syntax error in a CSV record that spans multiple input lines, Reader
now reports the line on which the record started in the ParseError
's new StartLine
field.
-
-Reader
also no longer strips carriage return characters
-appearing before newline characters in multiline quoted strings.
-TODO: Maybe not (#22746).
-
+Encode
+and
+EncodeToMemory
+no longer generate partial output when presented with a
+block that is impossible to encode as PEM data.
+
@@ -939,6 +989,19 @@ compute square roots.
+Branch cuts and other boundary cases in
+Asin
,
+Asinh
,
+Atan
,
+and
+Sqrt
+have been corrected to match the definitions used in the C99 standard.
+
@@ -946,13 +1009,6 @@ The new function and corresponding
Rand.Shuffle
method
shuffle an input sequence.
-The existing function and corresponding
-Rand.Perm
method
-have been updated to use a more efficient algorithm, with the result
-that the specific permutations they return have changed.
-TODO: Remove? (#22744)
-
FileServer
and its single-file equivalent ServeFile
now apply If-Range
checks to HEAD
requests.
FileServer
also now reports directory read failures to the Server
's ErrorLog
.
+The content-serving handlers also now omit the Content-Type
header when serving zero-length content.
+
+
+ResponseWriter
's WriteHeader
method now panics
+if passed an invalid (non-3-digit) status code.
+
+Redirect
now sets the Content-Type
header before writing its HTTP response.
+
+The ReverseProxy now invokes
+the
+On the client side, an HTTP proxy (most commonly configured by
+
ProxyFromEnvironment
)
+can now be specified as an https://
URL,
+meaning that the client connects to the proxy over HTTPS before issuing a standard, proxied HTTP request.
+(Previously, HTTP proxy URLs were required to begin with http://
or socks5://
.)
+
+On the server side, FileServer
and its single-file equivalent ServeFile
+now apply If-Range
checks to HEAD
requests.
+FileServer
also now reports directory read failures to the Server
's ErrorLog
.
Redirect
now sets the Content-Type
header before writing its HTTP response.
@@ -1073,7 +1155,9 @@ and Verify
methods.
ReadMIMEHeader
-now discards continuation (indented) header lines that appear before the first actual (unindented) header line.
+now rejects any header that begins with a continuation (indented) header line.
+Previously a header with an indented first line was treated as if the first line
+were not indented.
http://host/
to a path like /my/api
,
resulting in a URL with a doubled slash: http://host//my/api
.
+
+
+UserInfo
's methods
+now treat a nil receiver as equivalent to a pointer to a zero UserInfo
.
+Previously, they panicked.
+
$GOROOT/lib/time/zoneinfo.zip
.
-TODO: Maybe CL 68890.
+The new function LoadLocationFromTZData
+allows conversion of IANA time zone file data to a Location
.