@@ -33,7 +33,6 @@ <h2 id="introduction">DRAFT RELEASE NOTES - Introduction to Go 1.8</h2>
33
33
< p >
34
34
The release < a href ="#ports "> adds support for 32-bit MIPS</ a > ,
35
35
< a href ="#compiler "> updates the compiler back end</ a > to generate more efficient code,
36
- produces smaller binaries (TODO: link/numbers),
37
36
< a href ="#gc "> reduces GC pauses</ a > by eliminating stop-the-world stack rescanning,
38
37
< a href ="#h2push "> adds HTTP/2 Push support</ a > ,
39
38
< a href ="#httpshutdown "> adds HTTP graceful shutdown</ a > ,
@@ -268,6 +267,7 @@ <h3 id="gc">Garbage Collector</h3>
268
267
269
268
< h3 id ="defer "> Defer</ h3 >
270
269
270
+ <!-- CL 29656, CL 29656 -->
271
271
< p > < code > defer</ code > calls are now about twice as fast.</ p >
272
272
273
273
< h3 id ="cgoperf "> Cgo</ h3 >
@@ -327,7 +327,7 @@ <h3 id="minor_library_changes">Minor changes to the library</h3>
327
327
< dl id ="archive_tar "> < dt > < a href ="/pkg/archive/tar/ "> archive/tar</ a > </ dt >
328
328
< dd >
329
329
330
- < p >
330
+ < p > <!-- CL 28471, CL 31440, CL 31441, CL 31444, CL 28418, CL 31439 -->
331
331
The tar implementation corrects many bugs in corner cases of the file format.
332
332
The < a href ="/pkg/archive/tar/#Reader "> < code > Reader</ code > </ a > is now able to process tar files in the PAX format with entries larger than 8GB.
333
333
The < a href ="/pkg/archive/tar/#Writer "> < code > Writer</ code > </ a > no longer produces invalid tar files in some situations involving long pathnames.
@@ -336,11 +336,24 @@ <h3 id="minor_library_changes">Minor changes to the library</h3>
336
336
</ dd >
337
337
</ dl >
338
338
339
+ < dl id ="archive_zip "> < dt > < a href ="/pkg/archive/zip/ "> archive/zip</ a > </ dt >
340
+ < dd >
341
+
342
+ < p > <!-- CL 18274 -->
343
+ The zip < code > Reader</ code > now supports modification times in
344
+ the NTFS, UNIX, and Extended Time Stamp metadata fields.
345
+ <!-- CL 30811 -->
346
+ When writing zip files, the Extended Time Stamp field is written
347
+ if TODO: validate implementation.
348
+ </ p >
349
+
350
+ </ dd >
351
+ </ dl >
339
352
340
353
< dl id ="compress_flate "> < dt > < a href ="/pkg/compress/flate/ "> compress/flate</ a > </ dt >
341
354
< dd >
342
355
343
- < p >
356
+ < p > <!-- CL 31640, CL 31174, CL 32149 -->
344
357
There have been some minor fixes to the encoder to improve the
345
358
compression ratio in certain situations. As a result, the exact
346
359
encoded output of DEFLATE may be different from Go 1.7. Since
@@ -357,6 +370,11 @@ <h3 id="minor_library_changes">Minor changes to the library</h3>
357
370
method.
358
371
</ p >
359
372
373
+ < p > <!-- CL 28216 -->
374
+ The decoder, upon encountering an error, now returns any
375
+ buffered data it had uncompressed along with the error.
376
+ </ p >
377
+
360
378
</ dd >
361
379
</ dl >
362
380
@@ -393,7 +411,33 @@ <h3 id="minor_library_changes">Minor changes to the library</h3>
393
411
</ dd >
394
412
</ dl >
395
413
396
- < dl id ="encoding_binary "> < dt > < a href ="/pkg/encoding/ "> encoding/binary</ a > </ dt >
414
+ < dl id ="debug_pe "> < dt > < a href ="/pkg/debug/pe/ "> debug/pe</ a > </ dt >
415
+ < dd >
416
+ < p > <!-- CL 22720, CL 27212, CL 22181, CL 22332, CL 22336, Issue 15345 -->
417
+ TODO: describe Issue 15345 and CL 22181, CL 22332, CL 22336
418
+ < pre > pkg debug/pe, method (*COFFSymbol) FullName(StringTable) (string, error)
419
+ pkg debug/pe, method (StringTable) String(uint32) (string, error)
420
+ pkg debug/pe, type File struct, COFFSymbols []COFFSymbol
421
+ pkg debug/pe, type File struct, StringTable StringTable
422
+ pkg debug/pe, type Reloc struct
423
+ pkg debug/pe, type Reloc struct, SymbolTableIndex uint32
424
+ pkg debug/pe, type Reloc struct, Type uint16
425
+ pkg debug/pe, type Reloc struct, VirtualAddress uint32
426
+ pkg debug/pe, type Section struct, Relocs []Reloc
427
+ pkg debug/pe, type StringTable []uint8</ pre >
428
+ </ p >
429
+ </ dd >
430
+ </ dl >
431
+
432
+ < dl id ="encoding_base64 "> < dt > < a href ="/pkg/encoding/base64/ "> encoding/base64</ a > </ dt >
433
+ < dd >
434
+ < p > <!-- CL 24964 -->
435
+ The new < a href ="/pkg/encoding/base64/#Encoding.Strict "> < code > Encoding.Strict</ code > </ a > method returns an < code > Encoding</ code > that causes the decoder to return an error when the trailing padding bits are not zero.
436
+ </ p >
437
+ </ dd >
438
+ </ dl >
439
+
440
+ < dl id ="encoding_binary "> < dt > < a href ="/pkg/encoding/binary/ "> encoding/binary</ a > </ dt >
397
441
< dd >
398
442
< p > <!-- CL 28514 -->
399
443
The package now supports boolean values.
@@ -403,6 +447,46 @@ <h3 id="minor_library_changes">Minor changes to the library</h3>
403
447
</ dd >
404
448
</ dl >
405
449
450
+ < dl id ="encoding_json "> < dt > < a href ="/pkg/encoding/json/ "> encoding/json</ a > </ dt >
451
+ < dd >
452
+
453
+ < p > <!-- CL 18692 -->
454
+ < a href ="/pkg/encoding/json/#UnmarshalTypeError "> < code > UnmarshalTypeError</ code > </ a >
455
+ now includes the struct and field name.
456
+ </ p >
457
+
458
+ < p > <!-- CL 31932 -->
459
+ A < code > nil</ code > < a href ="/pkg/encoding/json/#Marshaler "> < code > Marshaler</ code > </ a >
460
+ now marshals as a JSON "< code > null</ code > " value.
461
+ </ p >
462
+
463
+ < p > <!-- CL 21811 -->
464
+ A < a href ="/pkg/encoding/json/#RawMessage "> < code > RawMessage</ code > </ a > value now
465
+ marshals the same as its pointer type.
466
+ </ p >
467
+
468
+ < p > <!-- CL 30371 -->
469
+ Numbers are now formatted in the same floating point format as they are in ES6.
470
+ </ p >
471
+
472
+ < p > <!-- CL 30944 -->
473
+ Implementations
474
+ of < a href ="/pkg/encoding/json/#Unmarshaler "> < code > Unmarshaler</ code > </ a >
475
+ are now called with the literal "< code > null</ code > " and can
476
+ decide what to do with it.
477
+ </ p >
478
+
479
+ </ dd >
480
+ </ dl >
481
+
482
+ < dl id ="encoding_pem "> < dt > < a href ="/pkg/encoding/pem/ "> encoding/pem</ a > </ dt >
483
+ < dd >
484
+ < p > <!-- CL 27391 -->
485
+ The PEM decoder is now strict about the format of the ending line.
486
+ </ p >
487
+ </ dd >
488
+ </ dl >
489
+
406
490
< dl id ="expvar "> < dt > < a href ="/pkg/expvar/ "> expvar</ a > </ dt >
407
491
< dd >
408
492
< p > <!-- CL 30917 -->
@@ -423,6 +507,7 @@ <h3 id="minor_library_changes">Minor changes to the library</h3>
423
507
</ dd >
424
508
</ dl >
425
509
510
+
426
511
< dl id ="image_png "> < dt > < a href ="/pkg/image/png/ "> image/png</ a > </ dt >
427
512
< dd >
428
513
< p > <!-- CL 32143, CL 32140 -->
@@ -512,7 +597,8 @@ <h3 id="minor_library_changes">Minor changes to the library</h3>
512
597
< a href ="/pkg/net/url/#PathEscape "> < code > PathEscape</ code > </ a >
513
598
and
514
599
< a href ="/pkg/net/url/#PathUnescape "> < code > PathUnescape</ code > </ a >
515
- deal with path escaping.</ p >
600
+ are similar to the query escaping and unescaping functions but
601
+ don't treat spaces specially.</ p >
516
602
517
603
< p > <!-- CL 28933 --> The new methods
518
604
< a href ="/pkg/net/url/#URL.Hostname "> < code > URL.Hostname</ code > </ a >
@@ -581,6 +667,12 @@ <h3 id="minor_library_changes">Minor changes to the library</h3>
581
667
addition to days that are too large.
582
668
</ p >
583
669
670
+ < p > <!-- CL 33029 -->
671
+ The < code > tzdata</ code > database has been updated to version
672
+ 2016i for systems that don't already have a local time zone
673
+ database.
674
+ </ p >
675
+
584
676
< p >
585
677
</ dd >
586
678
</ dl >
0 commit comments