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.