aboutsummaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/go1.19.html25
-rw-r--r--doc/go_spec.html18
2 files changed, 39 insertions, 4 deletions
diff --git a/doc/go1.19.html b/doc/go1.19.html
index a813d59cb82..51b5a54e167 100644
--- a/doc/go1.19.html
+++ b/doc/go1.19.html
@@ -92,6 +92,16 @@ Do not send CLs removing the interior tags from such phrases.
TODO: complete this section
</p>
+<dl id="crypto/tls"><dt><a href="/pkg/crypto/tls/">crypto/tls</a></dt>
+ <dd>
+ <p><!-- CL 400974 -->
+ The <code>tls10default</code> <code>GODEBUG</code> option has been
+ removed. It is still possible to enable TLS 1.0 client-side by setting
+ <code>Config.MinVersion</code>.
+ </p>
+ </dd>
+</dl><!-- crypto/tls -->
+
<dl id="image/draw"><dt><a href="/pkg/image/draw/">image/draw</a></dt>
<dd>
<p><!-- CL 396795 -->
@@ -132,6 +142,21 @@ Do not send CLs removing the interior tags from such phrases.
</dd>
</dl><!-- net -->
+<dl id="os/exec"><dt><a href="/pkg/os/exec/">os/exec</a></dt>
+ <dd><!-- https://go.dev/issue/50599 -->
+ <p>
+ An <code>exec.Cmd</code> with a non-empty <code>Dir</code> and a
+ nil <code>Env</code> now implicitly sets the <code>PWD</code> environment
+ variable for the subprocess to match <code>Dir</code>.
+ </p>
+ <p>
+ The new method <code>(*exec.Cmd).Environ</code> reports the
+ environment that would be used to run the command, including the
+ aforementioned <code>PWD</code> variable.
+ </p>
+ </dd>
+</dl> <!-- os/exec -->
+
<dl id="runtime"><dt><a href="/pkg/runtime/">runtime</a></dt>
<dd>
<p><!-- https://go.dev/issue/51461 -->
diff --git a/doc/go_spec.html b/doc/go_spec.html
index b496e9e48f0..b272cb5df6e 100644
--- a/doc/go_spec.html
+++ b/doc/go_spec.html
@@ -1,6 +1,6 @@
<!--{
"Title": "The Go Programming Language Specification",
- "Subtitle": "Version of March 30, 2022",
+ "Subtitle": "Version of April 19, 2022",
"Path": "/ref/spec"
}-->
@@ -1278,7 +1278,8 @@ then the <code>File</code> interface is implemented by both <code>S1</code> and
<p>
Every type that is a member of the type set of an interface implements that interface.
Any given type may implement several distinct interfaces.
-For instance, all types implement the <i>empty interface</i> which stands for the set of all types:
+For instance, all types implement the <i>empty interface</i> which stands for the set
+of all (non-interface) types:
</p>
<pre>
@@ -1380,7 +1381,7 @@ definition of an interface's type set as follows:
of its interface elements.
</li>
- <li>The type set of a method specification is the set of types
+ <li>The type set of a method specification is the set of all non-interface types
whose method sets include that method.
</li>
@@ -1389,7 +1390,7 @@ definition of an interface's type set as follows:
</li>
<li>The type set of a term of the form <code>~T</code>
- is the set of types whose underlying type is <code>T</code>.
+ is the set of all types whose underlying type is <code>T</code>.
</li>
<li>The type set of a <i>union</i> of terms
@@ -1399,6 +1400,15 @@ definition of an interface's type set as follows:
</ul>
<p>
+The quantification "the set of all non-interface types" refers not just to all (non-interface)
+types declared in the program at hand, but all possible types in all possible programs, and
+hence is infinite.
+Similarly, given the set of all non-interface types that implement a particular method, the
+intersection of the method sets of those types will contain exactly that method, even if all
+types in the program at hand always pair that method with another method.
+</p>
+
+<p>
By construction, an interface's type set never contains an interface type.
</p>