@@ -27,8 +27,9 @@ <h2 id="introduction">DRAFT RELEASE NOTES - Introduction to Go 1.9</h2>
27
27
after < a href ="go1.8 "> Go 1.8</ a > and is the tenth release in
28
28
the < a href ="https://golang.org/doc/devel/release.html "> Go 1.x
29
29
series</ a > .
30
- There is one < a href ="#language "> change to the language</ a > , adding
31
- support for type aliases.
30
+ There are two < a href ="#language "> changes to the language</ a > ,
31
+ adding support for type aliases, and defining when implementations
32
+ may fuse floating point operations.
32
33
Most of the changes are in the implementation of the toolchain,
33
34
runtime, and libraries.
34
35
As always, the release maintains the Go 1
@@ -49,7 +50,9 @@ <h2 id="introduction">DRAFT RELEASE NOTES - Introduction to Go 1.9</h2>
49
50
< h2 id ="language "> Changes to the language</ h2 >
50
51
51
52
< p >
52
- There is one change to the language.
53
+ There are two changes to the language.
54
+ </ p >
55
+ < p >
53
56
Go now supports type aliases to support gradual code repair while
54
57
moving a type between packages.
55
58
The < a href ="https://golang.org/design/18130-type-alias "> type alias
@@ -69,6 +72,16 @@ <h2 id="language">Changes to the language</h2>
69
72
both < code > T1</ code > and < code > T2</ code > denote the same type.
70
73
</ p >
71
74
75
+ < p > <!-- CL 40391 -->
76
+ A smaller language change is that the
77
+ < a href ="/ref/spec#Floating_point_operators "> language specification
78
+ now states</ a > when implementations are allowed to fuse floating
79
+ point operations together, such as by using an architecture's "fused
80
+ multiply and add" (FMA) instruction to compute < code > x*y + z</ code >
81
+ without rounding the intermediate result < code > x*y</ code > .
82
+ To force the intermediate rounding, write < code > float64(x*y) + z</ code > .
83
+ </ p >
84
+
72
85
< h2 id ="ports "> Ports</ h2 >
73
86
74
87
< p >
0 commit comments