aboutsummaryrefslogtreecommitdiffstats
path: root/release-notes/OTP-18.1.README.txt
blob: 51f1be72c8d4b6e482e83f2804c344e247399d2d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
Patch Package:           OTP 18.1
Git Tag:                 OTP-18.1
Date:                    2015-09-22
Trouble Report Id:       OTP-11397, OTP-11531, OTP-12230, OTP-12622,
                         OTP-12671, OTP-12672, OTP-12831, OTP-12832,
                         OTP-12853, OTP-12858, OTP-12864, OTP-12865,
                         OTP-12866, OTP-12870, OTP-12871, OTP-12875,
                         OTP-12879, OTP-12891, OTP-12898, OTP-12901,
                         OTP-12902, OTP-12911, OTP-12912, OTP-12922,
                         OTP-12934, OTP-12935, OTP-12937, OTP-12938,
                         OTP-12940, OTP-12943, OTP-12944, OTP-12945,
                         OTP-12946, OTP-12947, OTP-12948, OTP-12949,
                         OTP-12950, OTP-12952, OTP-12954, OTP-12961,
                         OTP-12962, OTP-12963, OTP-12964, OTP-12965,
                         OTP-12967, OTP-12968, OTP-12969, OTP-12971,
                         OTP-12972, OTP-12973, OTP-12974, OTP-12976,
                         OTP-12977, OTP-12980, OTP-12981, OTP-12984,
                         OTP-12986, OTP-12987, OTP-12988, OTP-12989,
                         OTP-12990
Seq num:                 seq12878, seq12891, seq12900, seq12906,
                         seq12947
System:                  OTP
Release:                 18
Application:             compiler-6.0.1, crypto-3.6.1, debugger-4.1.1,
                         dialyzer-2.8.1, diameter-1.11, erts-7.1,
                         eunit-2.2.11, hipe-3.13, inets-6.0.1,
                         kernel-4.1, mnesia-4.13.1, odbc-2.11.1,
                         public_key-1.0.1, sasl-2.6, ssh-4.1, ssl-7.1,
                         stdlib-2.6, tools-2.8.1, wx-1.5
Predecessor:             OTP 18.0.3

 Check out the git tag OTP-18.1, and build a full OTP system including
 documentation. Apply one or more applications from this build as
 patches to your installation using the 'otp_patch_apply' tool. For
 information on install requirements, see descriptions for each
 application version below.

 ---------------------------------------------------------------------
 --- HIGHLIGHTS ------------------------------------------------------
 ---------------------------------------------------------------------

  OTP-11397    Application(s): ssl

               Add possibility to downgrade an SSL/TLS connection to a
               tcp connection, and give back the socket control to a
               user process.

               This also adds the possibility to specify a timeout to
               the ssl:close function.


  OTP-12622    Application(s): ssh
               Related Id(s): OTP-12671, OTP-12672

               The key exchange algorithms 'ecdh-sha2-nistp256',
               'ecdh-sha2-nistp384' and 'ecdh-sha2-nistp521' are
               implemented. See RFC 5656.

               This raises the security level considerably.


  OTP-12671    Application(s): ssh
               Related Id(s): OTP-12622, OTP-12672

               The key exchange algorithm
               'diffie-hellman-group14-sha1' is implemented. See RFC
               4253.

               This raises the security level.


  OTP-12672    Application(s): ssh
               Related Id(s): OTP-12622, OTP-12671

               The key exchange algorithms
               'diffie-hellman-group-exchange-sha1' and
               'diffie-hellman-group-exchange-sha256' are implemented.
               See RFC 4419.

               This raises the security level.


  OTP-12864    Application(s): kernel, sasl, stdlib

               A mechanism for limiting the amount of text that the
               built-in error logger events will produce has been
               introduced. It is useful for limiting both the size of
               log files and the CPU time used to produce them.

               This mechanism is experimental in the sense that it may
               be changed if it turns out that it does not solve the
               problem it is supposed to solve. In that case, there
               may be backward incompatible improvements to this
               mechanism.

               See the documentation for the config parameter
               error_logger_format_depth in the Kernel application for
               information about how to turn on this feature.


  OTP-12864    Application(s): kernel, sasl, stdlib

               A mechanism for limiting the amount of text that the
               built-in error logger events will produce has been
               introduced. It is useful for limiting both the size of
               log files and the CPU time used to produce them.

               This mechanism is experimental in the sense that it may
               be changed if it turns out that it does not solve the
               problem it is supposed to solve. In that case, there
               may be backward incompatible improvements to this
               mechanism.

               See the documentation for the config parameter
               error_logger_format_depth in the Kernel application for
               information about how to turn on this feature.


  OTP-12864    Application(s): kernel, sasl, stdlib

               A mechanism for limiting the amount of text that the
               built-in error logger events will produce has been
               introduced. It is useful for limiting both the size of
               log files and the CPU time used to produce them.

               This mechanism is experimental in the sense that it may
               be changed if it turns out that it does not solve the
               problem it is supposed to solve. In that case, there
               may be backward incompatible improvements to this
               mechanism.

               See the documentation for the config parameter
               error_logger_format_depth in the Kernel application for
               information about how to turn on this feature.


 ---------------------------------------------------------------------
 --- compiler-6.0.1 --------------------------------------------------
 ---------------------------------------------------------------------

 The compiler-6.0.1 application can be applied independently of other
 applications on a full OTP 18 installation.

 --- Fixed Bugs and Malfunctions ---

  OTP-12967    Application(s): compiler

               Fix get_map_elements register corruption

               Instruction get_map_elements might destroy target
               registers when the fail-label is taken. Only seen for
               patterns with two, and only two, target registers.
               Specifically if we copy one register and then jump.


 Full runtime dependencies of compiler-6.0.1: crypto-3.6, erts-7.0,
 hipe-3.12, kernel-4.0, stdlib-2.5


 ---------------------------------------------------------------------
 --- crypto-3.6.1 ----------------------------------------------------
 ---------------------------------------------------------------------

 The crypto-3.6.1 application can be applied independently of other
 applications on a full OTP 18 installation.

 --- Fixed Bugs and Malfunctions ---

  OTP-12944    Application(s): crypto

               Make crypto:ec_curves/0 return empty list if elliptic
               curve is not supported at all.


 Full runtime dependencies of crypto-3.6.1: erts-6.0, kernel-3.0,
 stdlib-2.0


 ---------------------------------------------------------------------
 --- debugger-4.1.1 --------------------------------------------------
 ---------------------------------------------------------------------

 The debugger-4.1.1 application can be applied independently of other
 applications on a full OTP 18 installation.

 --- Fixed Bugs and Malfunctions ---

  OTP-12911    Application(s): debugger
               Related Id(s): seq12906

               Fix crash when starting a quick debugging session.
               Thanks Alan Duffield.


 Full runtime dependencies of debugger-4.1.1: compiler-5.0, erts-6.0,
 kernel-3.0, stdlib-2.5, wx-1.2


 ---------------------------------------------------------------------
 --- dialyzer-2.8.1 --------------------------------------------------
 ---------------------------------------------------------------------

 Note! The dialyzer-2.8.1 application can *not* be applied
       independently of other applications on an arbitrary OTP 18
       installation.

       On a full OTP 18 installation, also the following runtime
       dependency has to be satisfied:
       -- hipe-3.13 (first satisfied in OTP 18.1)


 --- Fixed Bugs and Malfunctions ---

  OTP-12865    Application(s): dialyzer

               Improve the translation of forms to types.


  OTP-12866    Application(s): dialyzer

               Fix a bug concerning parameterized opaque types.


  OTP-12940    Application(s): dialyzer

               Fix a bug concerning parameterized opaque types.


  OTP-12948    Application(s): dialyzer, hipe

               Fix bugs concerning erlang:abs/1.


  OTP-12949    Application(s): dialyzer, hipe

               Fix a bug concerning lists:keydelete/3 with union and
               opaque types.


  OTP-12964    Application(s): dialyzer
               Related Id(s): OTP-12962, OTP-12963

               Use new function hipe:erts_checksum to get correct
               runtime checksum for cached beam files.


 Full runtime dependencies of dialyzer-2.8.1: compiler-5.0, erts-7.0,
 hipe-3.13, kernel-3.0, stdlib-2.5, syntax_tools-1.6.14, wx-1.2


 ---------------------------------------------------------------------
 --- diameter-1.11 ---------------------------------------------------
 ---------------------------------------------------------------------

 The diameter-1.11 application can be applied independently of other
 applications on a full OTP 18 installation.

 --- Fixed Bugs and Malfunctions ---

  OTP-12879    Application(s): diameter
               Related Id(s): OTP-12475

               Fix relay encode of nested, Grouped AVPs.

               A fault in OTP-12475 caused encode to fail if the first
               AVP in a Grouped AVP was itself Grouped.


  OTP-12902    Application(s): diameter

               Match acceptable peer addresses case insensitively.

               Regular expressions passed in an 'accept' tuple to
               diameter_tcp or diameter_sctp inappropriately matched
               case.


  OTP-12969    Application(s): diameter

               Fix diameter_watchdog function clause.

               OTP-12912 introduced an error with accepting transports
               setting {restrict_connections, false}, causing
               processes to fail when peer connections were
               terminated.


 --- Improvements and New Features ---

  OTP-12871    Application(s): diameter

               Don't report 5005 (DIAMETER_AVP_MISSING) errors
               unnecessarily.

               An AVP whose decode failed was reported as missing,
               despite having been reported with another error as a
               consequence of the failure.


  OTP-12891    Application(s): diameter

               Improve decode performance.

               The time required to decode a message increased
               quadratically with the number of AVPs in the worst
               case, leading to extremely long execution times.


  OTP-12912    Application(s): diameter

               Improve watchdog and statistics performance.

               Inefficient use of timers contributed to poor
               performance at high load, as did ordering of the table
               statistics are written to.


  OTP-12947    Application(s): diameter

               Add service_opt() strict_mbit.

               There are differing opinions on whether or not
               reception of an arbitrary AVP setting the M-bit is an
               error. The default interpretation is strict: if a
               command grammar doesn't explicitly allow an AVP setting
               the M-bit then reception of such an AVP is regarded as
               an error. Setting {strict_mbit, false} disables this
               check.


 Full runtime dependencies of diameter-1.11: erts-6.0, kernel-3.0,
 ssl-5.3.4, stdlib-2.0


 ---------------------------------------------------------------------
 --- erts-7.1 --------------------------------------------------------
 ---------------------------------------------------------------------

 The erts-7.1 application can be applied independently of other
 applications on a full OTP 18 installation.

 --- Fixed Bugs and Malfunctions ---

  OTP-12870    Application(s): erts

               Fix bug in ETS that could cause stray objects marked
               for deletion to occasionally be missed by the cleanup
               done by safe_fixtable(_,false).


  OTP-12901    Application(s): erts

               Fixed VM crash that could occur if a trace port was
               linked to a process, and the trace port terminated
               abnormally while handling a trace message. This bug has
               always existed in the runtime system with SMP support.


  OTP-12934    Application(s): erts

               Instead of aborting, the vm now creates a crash dump
               when a system process is terminated.


  OTP-12943    Application(s): erts

               Fixed a rare emulator dead lock that occurred when
               erlang:process_flag(priority,...) was called by a
               process that was also scheduled for an internal system
               activity.


  OTP-12954    Application(s): erts

               The runtime system on various posix platforms (except
               for Linux and Solaris) could crash when large amounts
               of file-descriptors were in use.


  OTP-12962    Application(s): erts, hipe

               A beam file compiled by hipe for an incompatible
               runtime system was sometimes not rejected by the
               loader, which could lead to vm crash. This fix will
               also allow the same hipe compiler to be used by both
               normal and debug-built vm.


  OTP-12965    Application(s): erts

               Fix bug in maps:merge/2 when called by hipe compiled
               code that could cause vm crash. Bug exists since
               erts-7.0 (OTP 18.0).


  OTP-12968    Application(s): erts

               When tracing with process_dump option, the VM could
               abort if there was an ongoing binary match somewhere in
               the call stack of the traced process.


  OTP-12987    Application(s): erts
               Related Id(s): seq12947

               Fixed possible output deadlock in tty driver when
               hitting "CTRL-C" in a non-smp emulator shell on unix.


  OTP-12988    Application(s): erts

               Fix binary_to_integer to throw badarg for "+" and "-"
               similar to list_to_integer.


  OTP-12989    Application(s): erts

               Suppress warning of unused argument when using macro
               enif_make_pid.


 --- Improvements and New Features ---

  OTP-12945    Application(s): erts
               Related Id(s): OTP-12892

               Changed default clock source used for OS system time on
               MacOS X to gettimeofday() in order to improve
               performance. The system can be configured during build
               to use the previously used higher resolution clock
               source by passing the switch
               --with-clock-resolution=high when configuring the
               build.


  OTP-12971    Application(s): erts

               Added the configure option --disable-saved-compile-time
               which disables saving of compile date and time in the
               emulator binary.


 Full runtime dependencies of erts-7.1: kernel-4.0, sasl-2.4,
 stdlib-2.5


 ---------------------------------------------------------------------
 --- eunit-2.2.11 ----------------------------------------------------
 ---------------------------------------------------------------------

 The eunit-2.2.11 application can be applied independently of other
 applications on a full OTP 18 installation.

 --- Fixed Bugs and Malfunctions ---

  OTP-12952    Application(s): eunit

               Improve success message when 2 tests have passed


 Full runtime dependencies of eunit-2.2.11: erts-6.0, kernel-3.0,
 stdlib-2.5


 ---------------------------------------------------------------------
 --- hipe-3.13 -------------------------------------------------------
 ---------------------------------------------------------------------

 Note! The hipe-3.13 application can *not* be applied independently of
       other applications on an arbitrary OTP 18 installation.

       On a full OTP 18 installation, also the following runtime
       dependency has to be satisfied:
       -- erts-7.1 (first satisfied in OTP 18.1)


 --- Fixed Bugs and Malfunctions ---

  OTP-12948    Application(s): dialyzer, hipe

               Fix bugs concerning erlang:abs/1.


  OTP-12949    Application(s): dialyzer, hipe

               Fix a bug concerning lists:keydelete/3 with union and
               opaque types.


  OTP-12962    Application(s): erts, hipe

               A beam file compiled by hipe for an incompatible
               runtime system was sometimes not rejected by the
               loader, which could lead to vm crash. This fix will
               also allow the same hipe compiler to be used by both
               normal and debug-built vm.


 --- Improvements and New Features ---

  OTP-12963    Application(s): hipe
               Related Id(s): OTP-12962, OTP-12964

               New function hipe:erts_checksum/0 which returns a value
               identifying the target runtime system for the compiler.
               Used by dialyzer for its beam cache directory.


 Full runtime dependencies of hipe-3.13: compiler-5.0, erts-7.1,
 kernel-3.0, stdlib-2.5, syntax_tools-1.6.14


 ---------------------------------------------------------------------
 --- inets-6.0.1 -----------------------------------------------------
 ---------------------------------------------------------------------

 The inets-6.0.1 application can be applied independently of other
 applications on a full OTP 18 installation.

 --- Fixed Bugs and Malfunctions ---

  OTP-12875    Application(s): inets
               Related Id(s): seq12878

               Fix broken socket feature, that is on Linux systems a
               socket may be opened before starting Erlang and then
               passed to Erlang's httpd daemon. This is useful as the
               wrap program can open a privileged port and Erlang does
               not have to be run as root.


  OTP-12898    Application(s): inets
               Related Id(s): seq12900

               Fix broken socket feature, that is on Linux systems a
               socket may be opened before starting Erlang and then
               passed to Erlangs tftp daemon. This is useful as the
               wrap program can open a privileged port and Erlang does
               not have to be run as root.


  OTP-12922    Application(s): inets

               httpc_handler should react properly to cancel requests
               even when the request to be canceled was already
               finished but httpc_manager did not get notified about
               that yet.


 --- Improvements and New Features ---

  OTP-12976    Application(s): inets

               Added format_status function to httpd process to avoid
               sensitive information to be printed in supervisor logs.


  OTP-12984    Application(s): inets

               Return meaningful error reason disregarding whether a
               http proxy is used or not.


 Full runtime dependencies of inets-6.0.1: erts-6.0, kernel-3.0,
 mnesia-4.12, runtime_tools-1.8.14, ssl-5.3.4, stdlib-2.0


 ---------------------------------------------------------------------
 --- kernel-4.1 ------------------------------------------------------
 ---------------------------------------------------------------------

 Note! The kernel-4.1 application can *not* be applied independently
       of other applications on an arbitrary OTP 18 installation.

       On a full OTP 18 installation, also the following runtime
       dependencies have to be satisfied:
       -- sasl-2.6 (first satisfied in OTP 18.1)
       -- stdlib-2.6 (first satisfied in OTP 18.1)


 --- Improvements and New Features ---

  OTP-12864    Application(s): kernel, sasl, stdlib

               *** HIGHLIGHT ***

               A mechanism for limiting the amount of text that the
               built-in error logger events will produce has been
               introduced. It is useful for limiting both the size of
               log files and the CPU time used to produce them.

               This mechanism is experimental in the sense that it may
               be changed if it turns out that it does not solve the
               problem it is supposed to solve. In that case, there
               may be backward incompatible improvements to this
               mechanism.

               See the documentation for the config parameter
               error_logger_format_depth in the Kernel application for
               information about how to turn on this feature.


 Full runtime dependencies of kernel-4.1: erts-7.0, sasl-2.6,
 stdlib-2.6


 ---------------------------------------------------------------------
 --- mnesia-4.13.1 ---------------------------------------------------
 ---------------------------------------------------------------------

 The mnesia-4.13.1 application can be applied independently of other
 applications on a full OTP 18 installation.

 --- Fixed Bugs and Malfunctions ---

  OTP-12972    Application(s): mnesia

               Improved index updates to avoid a timing glitch in
               dirty_index_read.


 Full runtime dependencies of mnesia-4.13.1: erts-7.0, kernel-3.0,
 stdlib-2.0


 ---------------------------------------------------------------------
 --- odbc-2.11.1 -----------------------------------------------------
 ---------------------------------------------------------------------

 The odbc-2.11.1 application can be applied independently of other
 applications on a full OTP 18 installation.

 --- Improvements and New Features ---

  OTP-12935    Application(s): odbc

               New application variable to set timeout of internal
               communication setup between the erlang code and the
               c-port program that interfaces the odbc driver. This
               can be useful if you have an underlying system that is
               slow due to heavy load at startup.

               With this environment variable you can easily bypass
               and tailor odbc to the needs of the underlying actual
               system without changing the configuration. Which is a
               good thing because this value is very system specific.


 Full runtime dependencies of odbc-2.11.1: erts-6.0, kernel-3.0,
 stdlib-2.0


 ---------------------------------------------------------------------
 --- public_key-1.0.1 ------------------------------------------------
 ---------------------------------------------------------------------

 The public_key-1.0.1 application can be applied independently of
 other applications on a full OTP 18 installation.

 --- Improvements and New Features ---

  OTP-12986    Application(s): public_key

               Document enhancements


 Full runtime dependencies of public_key-1.0.1: asn1-3.0, crypto-3.3,
 erts-6.0, kernel-3.0, stdlib-2.0


 ---------------------------------------------------------------------
 --- sasl-2.6 --------------------------------------------------------
 ---------------------------------------------------------------------

 Note! The sasl-2.6 application can *not* be applied independently of
       other applications on an arbitrary OTP 18 installation.

       On a full OTP 18 installation, also the following runtime
       dependencies have to be satisfied:
       -- kernel-4.1 (first satisfied in OTP 18.1)
       -- stdlib-2.6 (first satisfied in OTP 18.1)


 --- Improvements and New Features ---

  OTP-12864    Application(s): kernel, sasl, stdlib

               *** HIGHLIGHT ***

               A mechanism for limiting the amount of text that the
               built-in error logger events will produce has been
               introduced. It is useful for limiting both the size of
               log files and the CPU time used to produce them.

               This mechanism is experimental in the sense that it may
               be changed if it turns out that it does not solve the
               problem it is supposed to solve. In that case, there
               may be backward incompatible improvements to this
               mechanism.

               See the documentation for the config parameter
               error_logger_format_depth in the Kernel application for
               information about how to turn on this feature.


 Full runtime dependencies of sasl-2.6: erts-6.0, kernel-4.1,
 stdlib-2.6, tools-2.6.14


 ---------------------------------------------------------------------
 --- ssh-4.1 ---------------------------------------------------------
 ---------------------------------------------------------------------

 The ssh-4.1 application can be applied independently of other
 applications on a full OTP 18 installation.

 --- Fixed Bugs and Malfunctions ---

  OTP-11531    Application(s): ssh

               Send an understandable disconnect message when the key
               exchange phase can't find a common algorithm. There are
               also some test cases added.


  OTP-12853    Application(s): ssh
               Related Id(s): seq12891

               The third parameter in ssh_sftp:write_file is now
               accepting iolists again. Unicode handling adjusted.


 --- Improvements and New Features ---

  OTP-12230    Application(s): ssh

               First part of ssh test suite re-organization and
               extension.


  OTP-12622    Application(s): ssh
               Related Id(s): OTP-12671, OTP-12672

               *** HIGHLIGHT ***

               The key exchange algorithms 'ecdh-sha2-nistp256',
               'ecdh-sha2-nistp384' and 'ecdh-sha2-nistp521' are
               implemented. See RFC 5656.

               This raises the security level considerably.


  OTP-12671    Application(s): ssh
               Related Id(s): OTP-12622, OTP-12672

               *** HIGHLIGHT ***

               The key exchange algorithm
               'diffie-hellman-group14-sha1' is implemented. See RFC
               4253.

               This raises the security level.


  OTP-12672    Application(s): ssh
               Related Id(s): OTP-12622, OTP-12671

               *** HIGHLIGHT ***

               The key exchange algorithms
               'diffie-hellman-group-exchange-sha1' and
               'diffie-hellman-group-exchange-sha256' are implemented.
               See RFC 4419.

               This raises the security level.


  OTP-12831    Application(s): ssh

               Adding random length extra padding as recommended in
               RFC 4253 section 6.


  OTP-12858    Application(s): ssh

               New test library for low-level protocol testing. There
               is also a test suite using it for some preliminary
               tests. The intention is to build on that for more
               testing of individual ssh messages. See
               lib/ssh/test/ssh_trpt_test_lib.erl and
               ssh_protocol_SUITE.erl in the same directory.


  OTP-12937    Application(s): ssh

               Increased default values for
               diffie-hellman-group-exchange-sha* to Min = 1024, N =
               6144, Max = 8192.

               Added 6144 and 8192 bit default gex groups.


  OTP-12938    Application(s): ssh

               The mac algorithm 'hmac-sha2-512' is implemented. See
               RFC 6668.


 Full runtime dependencies of ssh-4.1: crypto-3.3, erts-6.0,
 kernel-3.0, public_key-0.22, stdlib-2.3


 ---------------------------------------------------------------------
 --- ssl-7.1 ---------------------------------------------------------
 ---------------------------------------------------------------------

 The ssl-7.1 application can be applied independently of other
 applications on a full OTP 18 installation.

 --- Fixed Bugs and Malfunctions ---

  OTP-12974    Application(s): ssl

               Add DER encoded ECPrivateKey as valid input format for
               key option.


  OTP-12980    Application(s): ssl

               Correct return value of default session callback module

               This error had the symptom that the client check for
               unique session would always fail, potentially making
               the client session table grow a lot and causing long
               setup times.


 --- Improvements and New Features ---

  OTP-11397    Application(s): ssl

               *** HIGHLIGHT ***

               Add possibility to downgrade an SSL/TLS connection to a
               tcp connection, and give back the socket control to a
               user process.

               This also adds the possibility to specify a timeout to
               the ssl:close function.


  OTP-12832    Application(s): ssl

               Add application setting to be able to change fatal
               alert shutdown timeout, also shorten the default
               timeout. The fatal alert timeout is the number of
               milliseconds between sending of a fatal alert and
               closing the connection. Waiting a little while improves
               the peers chances to properly receiving the alert so it
               may shutdown gracefully.


 Full runtime dependencies of ssl-7.1: crypto-3.3, erts-6.0,
 inets-5.10.7, kernel-3.0, public_key-1.0, stdlib-2.0


 ---------------------------------------------------------------------
 --- stdlib-2.6 ------------------------------------------------------
 ---------------------------------------------------------------------

 Note! The stdlib-2.6 application can *not* be applied independently
       of other applications on an arbitrary OTP 18 installation.

       On a full OTP 18 installation, also the following runtime
       dependencies have to be satisfied:
       -- kernel-4.1 (first satisfied in OTP 18.1)
       -- sasl-2.6 (first satisfied in OTP 18.1)


 --- Fixed Bugs and Malfunctions ---

  OTP-12946    Application(s): stdlib

               In OTP 18.0, qlc does not handle syntax errors well.
               This bug has been fixed.


  OTP-12950    Application(s): stdlib

               Optimize zip:unzip/2 when uncompressing to memory.


  OTP-12973    Application(s): stdlib

               The stdlib reference manual is updated to show correct
               information about the return value of gen_fsm:reply/2.


  OTP-12977    Application(s): stdlib

               re:split2,3 and re:replace/3,4 now correctly handles
               pre-compiled patterns that have been compiled using the
               'unicode' option.


  OTP-12990    Application(s): stdlib

               Export shell:catch_exception/1 as documented.


 --- Improvements and New Features ---

  OTP-12864    Application(s): kernel, sasl, stdlib

               *** HIGHLIGHT ***

               A mechanism for limiting the amount of text that the
               built-in error logger events will produce has been
               introduced. It is useful for limiting both the size of
               log files and the CPU time used to produce them.

               This mechanism is experimental in the sense that it may
               be changed if it turns out that it does not solve the
               problem it is supposed to solve. In that case, there
               may be backward incompatible improvements to this
               mechanism.

               See the documentation for the config parameter
               error_logger_format_depth in the Kernel application for
               information about how to turn on this feature.


 Full runtime dependencies of stdlib-2.6: compiler-5.0, crypto-3.3,
 erts-7.0, kernel-4.1, sasl-2.6


 ---------------------------------------------------------------------
 --- tools-2.8.1 -----------------------------------------------------
 ---------------------------------------------------------------------

 The tools-2.8.1 application can be applied independently of other
 applications on a full OTP 18 installation.

 --- Fixed Bugs and Malfunctions ---

  OTP-12981    Application(s): tools

               If a module includes eunit.hrl, a parse transform adds
               the function test/0 on line 0 in the module. A bug in
               OTP-18.0 caused cover:analyse_to_file/1 to fail to
               insert cover data in the output file when line 0
               existed in the cover data table. This is now corrected.


 Full runtime dependencies of tools-2.8.1: compiler-5.0, erts-7.0,
 inets-5.10, kernel-3.0, runtime_tools-1.8.14, stdlib-2.5,
 webtool-0.8.10


 ---------------------------------------------------------------------
 --- wx-1.5 ----------------------------------------------------------
 ---------------------------------------------------------------------

 The wx-1.5 application can be applied independently of other
 applications on a full OTP 18 installation.

 --- Improvements and New Features ---

  OTP-12961    Application(s): wx

               Extend AUI functionality.


 Full runtime dependencies of wx-1.5: erts-6.0, kernel-3.0, stdlib-2.0


 ---------------------------------------------------------------------
 --- Thanks to -------------------------------------------------------
 ---------------------------------------------------------------------

 Attila Gulyas, Constantin Rack, Daniel Goertzen, Eric
 Meadows-Jönsson, Jimmy Zöger, Kirilll Zaborsky, Leo Liu, Lukas
 Larsson, Mikael Pettersson, Red, Shane Howley, Stefan Strigler, Yuki
 Ito, eksperimental, tmanevik


 ---------------------------------------------------------------------
 ---------------------------------------------------------------------
 ---------------------------------------------------------------------