@@ -155,13 +155,6 @@ <h2 id="performance">Performance</h2>
155
155
better generated code, and optimizations in the core library.
156
156
</ p >
157
157
158
- < p > <!-- CL 39203 -->
159
- TODO: There have been significant optimizations bringing more than 10% improvements
160
- to implementations in the
161
- < a href ="/pkg/encoding/gob "> < code > encoding/gob</ code > </ a > , and ...
162
- packages.
163
- </ p >
164
-
165
158
< h3 id ="gc "> Garbage Collector</ h3 >
166
159
167
160
< p > <!-- CL 37520 -->
@@ -357,6 +350,19 @@ <h3 id="minor_library_changes">Minor changes to the library</h3>
357
350
358
351
</ dl > <!-- encoding/base32 -->
359
352
353
+ < dl id ="encoding/csv "> < dt > < a href ="/pkg/encoding/csv/ "> encoding/csv</ a > </ dt >
354
+ < dd >
355
+ < p > <!-- CL 41730 -->
356
+ The new field
357
+ < a href ="/pkg/encoding/csv/#Reader.ReuseRecord "> < code > Reader.ReuseRecord</ code > </ a >
358
+ controls whether calls to
359
+ < a href ="/pkg/encoding/csv/#Reader.Read "> < code > Read</ code > </ a >
360
+ may return a slice sharing the backing array of the previous
361
+ call's returned slice for improved performance.
362
+ </ p >
363
+
364
+ </ dl > <!-- encoding/csv -->
365
+
360
366
< dl id ="fmt "> < dt > < a href ="/pkg/fmt/ "> fmt</ a > </ dt >
361
367
< dd >
362
368
< p > <!-- CL 37051 -->
@@ -459,22 +465,24 @@ <h3 id="minor_library_changes">Minor changes to the library</h3>
459
465
< dl id ="net "> < dt > < a href ="/pkg/net/ "> net</ a > </ dt >
460
466
< dd >
461
467
< p > <!-- CL 32572 -->
462
- TODO: < a href ="https://golang.org/cl/32572 "> https://golang.org/cl/32572</ a > : add Resolver.StrictErrors
468
+ The new
469
+ < a href ="/pkg/net/#Resolver.StrictErrors "> < code > Resolver.StrictErrors</ code > </ a >
470
+ provides control over how Go's built-in DNS resolver handles
471
+ temporary errors during queries composed of multiple sub-queries,
472
+ such as an A+AAAA address lookup.
463
473
</ p >
464
474
465
475
< p > <!-- CL 37260 -->
466
- TODO: < a href ="https://golang.org/cl/37260 "> https://golang.org/cl/37260</ a > : allow Resolver to use a custom dialer
476
+ The new
477
+ < a href ="/pkg/net/#Resolver.Dial "> < code > Resolver.Dial</ code > </ a >
478
+ allows a < code > Resolver</ code > to use a custom dial function.
467
479
</ p >
468
480
469
481
< p > <!-- CL 40510 -->
470
482
< a href ="/pkg/net/#JoinHostPort "> < code > JoinHostPort</ code > </ a > now only places an address in square brackets if the host contains a colon.
471
483
In previous releases it would also wrap addresses in square brackets if they contained a percent ('< code > %</ code > ') sign.
472
484
</ p >
473
485
474
- < p > <!-- CL 40512 -->
475
- TODO: < a href ="https://golang.org/cl/40512 "> https://golang.org/cl/40512</ a > : validate network in Dial{,IP} and Listen{Packet,IP} for IP networks
476
- </ p >
477
-
478
486
< p > <!-- CL 37913 -->
479
487
The new methods
480
488
< a href ="/pkg/net/#TCPConn.SyscallConn "> < code > TCPConn.SyscallConn</ code > </ a > ,
@@ -485,6 +493,13 @@ <h3 id="minor_library_changes">Minor changes to the library</h3>
485
493
provide access to the connections' underlying file descriptors.
486
494
</ p >
487
495
496
+ < p > <!-- 45088 -->
497
+ It is now safe to call < a href ="/pkg/net/#Dial "> < code > Dial</ code > </ a > with the address obtained from
498
+ < code > (*TCPListener).String()</ code > after creating the listener with
499
+ < code > < a href ="/pkg/net/#Listen "> Listen</ a > ("tcp", ":0")</ code > .
500
+ Previously it failed on some machines with half-configured IPv6 stacks.
501
+ </ p >
502
+
488
503
</ dl > <!-- net -->
489
504
490
505
< dl id ="net/http "> < dt > < a href ="/pkg/net/http/ "> net/http</ a > </ dt >
@@ -550,23 +565,13 @@ <h3 id="minor_library_changes">Minor changes to the library</h3>
550
565
551
566
</ dl > <!-- net/http/httptest -->
552
567
553
- < dl id ="net/rpc "> < dt > < a href ="/pkg/net/rpc/ "> net/rpc</ a > </ dt >
554
- < dd >
555
- < p > <!-- CL 38474 -->
556
- TODO: < a href ="https://golang.org/cl/38474 "> https://golang.org/cl/38474</ a > : Create empty maps and slices as return type
557
- </ p >
558
-
559
- </ dl > <!-- net/rpc -->
560
-
561
568
< dl id ="os "> < dt > < a href ="/pkg/os/ "> os</ a > </ dt >
562
569
< dd >
563
570
< p > <!-- CL 37915 -->
564
- TODO: < a href ="https://golang.org/cl/37915 "> https://golang.org/cl/37915</ a > : parse command line without shell32.dll
565
- </ p >
566
-
567
- < p > <!-- CL 41830 -->
568
- TODO: < a href ="https://golang.org/cl/41830 "> https://golang.org/cl/41830</ a > : do not report ModeDir for symlinks on windows
569
- </ p >
571
+ On Windows,
572
+ < a href ="/pkg/os/#Args "> < code > Args</ code > </ a >
573
+ is now populated without < code > shell32.dll</ code > , improving process start-up time by 1-7 ms.
574
+ </ p >
570
575
571
576
</ dl > <!-- os -->
572
577
@@ -648,6 +653,16 @@ <h3 id="minor_library_changes">Minor changes to the library</h3>
648
653
649
654
</ dl > <!-- runtime/pprof -->
650
655
656
+ < dl id ="runtime/debug "> < dt > < a href ="/pkg/runtime/debug/ "> runtime/debug</ a > </ dt >
657
+ < dd >
658
+ < p > <!-- CL 34013 -->
659
+ Calling
660
+ < a href ="/pkg/runtime/debug/#SetGCPercent "> < code > SetGCPercent</ code > </ a >
661
+ with a negative value no longer runs an immediate garbage collection.
662
+ </ p >
663
+
664
+ </ dl > <!-- runtime/debug -->
665
+
651
666
< dl id ="runtime/trace "> < dt > < a href ="/pkg/runtime/trace/ "> runtime/trace</ a > </ dt >
652
667
< dd >
653
668
< p > <!-- CL 36015 -->
@@ -739,5 +754,11 @@ <h3 id="minor_library_changes">Minor changes to the library</h3>
739
754
Retrieving the time and sleeping now work correctly under Wine.
740
755
</ p >
741
756
757
+ < p > <!-- CL 44832 -->
758
+ The included < code > tzdata</ code > timezone database has bene
759
+ updated to version 2017b. As always, it is only used if the
760
+ system does not already have the database available.
761
+ </ p >
762
+
742
763
</ dl > <!-- time -->
743
764
0 commit comments