aboutsummaryrefslogtreecommitdiffstats
path: root/release-notes/OTP-20.1.README.txt
blob: 5d0fca0723809bf3b2d65088503c3af224293a41 (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
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
Patch Package:           OTP 20.1
Git Tag:                 OTP-20.1
Date:                    2017-09-26
Trouble Report Id:       OTP-10889, OTP-10927, OTP-13014, OTP-13170,
                         OTP-13704, OTP-14011, OTP-14078, OTP-14181,
                         OTP-14185, OTP-14236, OTP-14344, OTP-14378,
                         OTP-14386, OTP-14412, OTP-14462, OTP-14463,
                         OTP-14464, OTP-14471, OTP-14486, OTP-14488,
                         OTP-14490, OTP-14495, OTP-14499, OTP-14500,
                         OTP-14504, OTP-14506, OTP-14510, OTP-14511,
                         OTP-14512, OTP-14520, OTP-14521, OTP-14522,
                         OTP-14523, OTP-14526, OTP-14527, OTP-14530,
                         OTP-14534, OTP-14535, OTP-14536, OTP-14538,
                         OTP-14539, OTP-14542, OTP-14544, OTP-14546,
                         OTP-14549, OTP-14550, OTP-14552, OTP-14553,
                         OTP-14555, OTP-14556, OTP-14560, OTP-14568,
                         OTP-14571, OTP-14572, OTP-14574, OTP-14588,
                         OTP-14591, OTP-14596, OTP-14597, OTP-14598,
                         OTP-14600, OTP-14606, OTP-14607, OTP-14608,
                         OTP-14609, OTP-14612, OTP-14614, OTP-14618,
                         OTP-14621, OTP-9869
Seq num:                 ERIERL-48, ERL-251, ERL-375, ERL-413,
                         ERL-432, ERL-437, ERL-439, ERL-453, ERL-461,
                         ERL-465, ERL-472, ERL-478, ERL-480, ERL-481,
                         seq13319
System:                  OTP
Release:                 20
Application:             asn1-5.0.3, common_test-1.15.2,
                         compiler-7.1.2, crypto-4.1, debugger-4.2.3,
                         dialyzer-3.2.2, diameter-2.1, edoc-0.9.1,
                         erl_docgen-0.7.1, erts-9.1, et-1.6.1,
                         eunit-2.3.4, hipe-3.16.1, inets-6.4.2,
                         kernel-5.4, mnesia-4.15.1, observer-2.5,
                         os_mon-2.4.3, public_key-1.5, reltool-0.7.5,
                         runtime_tools-1.12.2, sasl-3.1, snmp-5.2.7,
                         ssh-4.6, ssl-8.2.1, stdlib-3.4.2,
                         syntax_tools-2.1.3, tools-2.11, wx-1.8.2
Predecessor:             OTP 20.0.5

 Check out the git tag OTP-20.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.

 ---------------------------------------------------------------------
 --- POTENTIAL INCOMPATIBILITIES -------------------------------------
 ---------------------------------------------------------------------

  OTP-14621    Application(s): public_key
               Related Id(s): ERL-480, ERL-481

               public_key now handles elliptic curve parameters in a
               consistent way so that decoded ECDSA keys can be
               correctly re-encoded.


 ---------------------------------------------------------------------
 --- asn1-5.0.3 ------------------------------------------------------
 ---------------------------------------------------------------------

 The asn1-5.0.3 application can be applied independently of other
 applications on a full OTP 20 installation.

 --- Fixed Bugs and Malfunctions ---

  OTP-14495    Application(s): asn1
               Related Id(s): ERL-437

               Compiling an ASN.1 module using the option {n2n,
               EnumTypeName} when EnumTypeName contains a hypen like
               for example Cause-Misc caused syntax errors when
               compiling the generated Erlang code. This is now
               corrected.


 Full runtime dependencies of asn1-5.0.3: erts-7.0, kernel-3.0,
 stdlib-2.0


 ---------------------------------------------------------------------
 --- common_test-1.15.2 ----------------------------------------------
 ---------------------------------------------------------------------

 The common_test-1.15.2 application can be applied independently of
 other applications on a full OTP 20 installation.

 --- Improvements and New Features ---

  OTP-14462    Application(s): common_test, dialyzer, erl_docgen,
               hipe, kernel, mnesia, observer, runtime_tools, sasl,
               stdlib, syntax_tools, tools, wx

               General Unicode improvements.


 Full runtime dependencies of common_test-1.15.2: compiler-6.0,
 crypto-3.6, debugger-4.1, erts-7.0, inets-6.0, kernel-4.0,
 observer-2.1, runtime_tools-1.8.16, sasl-2.4.2, snmp-5.1.2, ssh-4.0,
 stdlib-3.4, syntax_tools-1.7, tools-2.8, xmerl-1.3.8


 ---------------------------------------------------------------------
 --- compiler-7.1.2 --------------------------------------------------
 ---------------------------------------------------------------------

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

 --- Fixed Bugs and Malfunctions ---

  OTP-14522    Application(s): compiler
               Related Id(s): ERIERL-48

               Fail labels on guard BIFs weren't taken into account
               during an optimization pass, and a bug in the
               validation pass sometimes prevented this from being
               noticed when a fault occurred.


  OTP-14526    Application(s): compiler

               When compiling from Core Erlang, an 'apply' with a
               nested apply in the function position would be treated
               as an invalid call. Corrected. (Thanks to Mikael
               Pettersson for reporting this bug.)


  OTP-14591    Application(s): compiler

               Fixed checking of binary matching in the beam_validator
               module to ensure that potential compiler bugs are found
               at compile-time instead as emulator crash at run-time.


  OTP-14600    Application(s): compiler, stdlib
               Related Id(s): ERL-478

               There could be false warnings for
               erlang:get_stacktrace/0 being used outside of a try
               block when using multiple catch clauses.


 --- Improvements and New Features ---

  OTP-14378    Application(s): compiler, stdlib

               The Erlang code linter no longer checks that the
               functions mentioned in nowarn_deprecated_function
               options are declared in the module.


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


 ---------------------------------------------------------------------
 --- crypto-4.1 ------------------------------------------------------
 ---------------------------------------------------------------------

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

 --- Fixed Bugs and Malfunctions ---

  OTP-14499    Application(s): crypto, erts
               Related Id(s): ERL-251, ERL-439

               On macOS, crypto would crash if observer had been
               started before crypto. On the beta for macOS 10.13
               (High Sierra), crypto would crash. Both of those bugs
               have been fixed.


 --- Improvements and New Features ---

  OTP-13704    Application(s): crypto, public_key
               Related Id(s): PR838

               Extend crypto:sign, crypto:verify, public_key:sign and
               public_key:verify with:

               * support for RSASSA-PS padding for signatures and for
               saltlength setting
               * X9.31 RSA padding.
               * sha, sha224, sha256, sha384, and sha512 for dss
               signatures as mentioned in NIST SP 800-57 Part 1.
               * ripemd160 to be used for rsa signatures.

               This is a manual merge of half of the pull request 838
               by potatosalad from Sept 2015.


  OTP-14504    Application(s): crypto

               A new tuple in crypto:supports/0 reports supported MAC
               algorithms.


 Full runtime dependencies of crypto-4.1: erts-9.0, kernel-5.3,
 stdlib-3.4


 ---------------------------------------------------------------------
 --- debugger-4.2.3 --------------------------------------------------
 ---------------------------------------------------------------------

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

 --- Improvements and New Features ---

  OTP-14464    Application(s): debugger, edoc, et, eunit, observer,
               tools

               Tools are updated to show Unicode atoms correctly.


 Full runtime dependencies of debugger-4.2.3: compiler-5.0, erts-9.0,
 kernel-5.3, stdlib-3.4, wx-1.2


 ---------------------------------------------------------------------
 --- dialyzer-3.2.2 --------------------------------------------------
 ---------------------------------------------------------------------

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

       On a full OTP 20 installation, also the following runtime
       dependency has to be satisfied:
       -- hipe-3.16.1 (first satisfied in OTP 20.1)


 --- Fixed Bugs and Malfunctions ---

  OTP-14572    Application(s): dialyzer, hipe
               Related Id(s): seq13319

               Fix a bug regarding map types that caused Dialyzer to
               go into an infinite loop. A consequence of the fix is
               that compound map keys such as maps and tuples
               sometimes are handled with less precision than before.


 --- Improvements and New Features ---

  OTP-14462    Application(s): common_test, dialyzer, erl_docgen,
               hipe, kernel, mnesia, observer, runtime_tools, sasl,
               stdlib, syntax_tools, tools, wx

               General Unicode improvements.


  OTP-14606    Application(s): dialyzer
               Related Id(s): OTP-14218

               The check for unknown remote types is improved.


 Full runtime dependencies of dialyzer-3.2.2: compiler-7.0, erts-9.0,
 hipe-3.16.1, kernel-5.3, stdlib-3.4, syntax_tools-2.0, wx-1.2


 ---------------------------------------------------------------------
 --- diameter-2.1 ----------------------------------------------------
 ---------------------------------------------------------------------

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

 --- Fixed Bugs and Malfunctions ---

  OTP-14011    Application(s): diameter

               React to nodeup/nodedown when sharing peer connections.

               Service configuration share_peers and use_shared_peers
               did not respond to the coming and going of remote
               nodes.


  OTP-14486    Application(s): diameter

               Fix inappropriate message callbacks.

               An incoming CER or DPR was regarded as discarded,
               resulting in a corresponding message callback (if
               configured) in diameter_tcp/sctp.


  OTP-14512    Application(s): diameter

               Fix handling of 5009 errors
               (DIAMETER_AVP_OCCURS_TOO_MANY TIMES).

               RFC 6733 says that the first AVP that exceeds the bound
               should be reported, but the suggestions in the errors
               field of a diameter_packet record counted AVPs from the
               rear of the message, not the front. Additionally,
               diameter 2.0 in OTP 20.0 broke the counting by
               accepting one more AVP than the message grammar in
               question allowed.


  OTP-14535    Application(s): diameter
               Related Id(s): OTP-13006

               Match case insensitively in diameter_tcp/sctp accept
               tuple.

               Matching of remote addresses when accepting connections
               in a listening transport was case-sensitive, causing
               the semantics to change as a consequence of (kernel)
               OTP-13006.


  OTP-14552    Application(s): diameter

               Fix backwards incompatibility of remote send when
               sharing transports.

               The sending of requests over a transport connection on
               a remote node running an older version of diameter was
               broken by diameter 2.0 in OTP 20.0.


  OTP-14607    Application(s): diameter

               Fix diameter_packet.avps decode of Grouped AVP errors
               in Failed-AVP.

               Decode didn't produce a list of diameter_avp records,
               so information about faulty component AVPs was lost.


  OTP-9869     Application(s): diameter

               Fix handling of Proxy-Info in answer messages setting
               the E-bit.

               RFC 6733 requires that Proxy-Info AVPs in an incoming
               request be echoed in an outgoing answer. This was not
               done in answers formulated by diameter; for example, as
               a result of a handle_request callback having returned
               an 'answer-message' or protocol_error tuple.


 --- Improvements and New Features ---

  OTP-10889    Application(s): diameter

               Let unordered delivery be configured in diameter_sctp.

               With option {unordered, boolean() | pos_integer()},
               with false the default, and N equivalent to OS =< N,
               where OS is the number of outbound streams negotiated
               on the association in question. If configured,
               unordered sending commences upon reception of a second
               message, outgoing messages being sent on stream 0
               before this.

               The default false is for backwards compatibility, but
               false or 1 should be set to follow RFC 6733's
               recommendation on the use of unordered sending to avoid
               head-of-line blocking. There is typically no meaningful
               order to preserve, since the order in which outgoing
               messages are received by a transport process isn't
               known to the sender.


  OTP-10927    Application(s): diameter

               Complete/simplify Standards Compliance in User's Guide.


  OTP-14511    Application(s): diameter
               Related Id(s): OTP-14343

               Add service option decode_format.

               To allow incoming messages to be decoded into maps or
               lists instead of records. Messages can be presented in
               any of the formats for encode.

               Decode performance has also been improved.


  OTP-14521    Application(s): diameter

               Add service option traffic_counters.

               To let message-related counters be disabled, which can
               be a performance improvement in some usecases.


  OTP-14544    Application(s): diameter

               Allow loopback/any as local addresses in
               diameter_tcp/sctp.

               The atoms were implied by documentation, but not
               handled in code.


  OTP-14546    Application(s): diameter

               Add transport option strict_capx.

               To allow the RFC 6733 requirement that a transport
               connection be closed if a message is received before
               capabilities exchange to be relaxed.


  OTP-14555    Application(s): diameter

               Be consistent with service/transport configuration.

               For options for which it's meaningful, defaults values
               for transport options can now be configured on a
               service. This was previously the case only for an
               arbitrary subset of options.


  OTP-14588    Application(s): diameter

               Add service/transport option avp_dictionaries.

               To provide better support for AVPs that are not defined
               in the application dictionary: configuring additional
               dictionaries in an avp_dictionaries tuple allows their
               AVPs to be encoded/decoded in much the same fashion as
               application AVPs.

               The motivation is RFC 7683 Diameter Overload, Indicator
               Conveyance (DOIC), that defines AVPs intended to be
               piggybacked onto arbitrary messages. A DOIC dictionary
               has been included in the installation, in module
               diameter_gen_doic_rfc7683.


  OTP-14596    Application(s): diameter

               Decode application AVPs in answers setting the E-bit.

               AVPs defined in the application of the message being
               sent were previously not decoded, only those in the
               common application that defines the answer-message
               grammar.


 Full runtime dependencies of diameter-2.1: erts-6.4, kernel-3.2,
 ssl-6.0, stdlib-2.4


 ---------------------------------------------------------------------
 --- edoc-0.9.1 ------------------------------------------------------
 ---------------------------------------------------------------------

 The edoc-0.9.1 application can be applied independently of other
 applications on a full OTP 20 installation.

 --- Improvements and New Features ---

  OTP-14464    Application(s): debugger, edoc, et, eunit, observer,
               tools

               Tools are updated to show Unicode atoms correctly.


 Full runtime dependencies of edoc-0.9.1: erts-6.0, inets-5.10,
 kernel-3.0, stdlib-2.5, syntax_tools-1.6.14, xmerl-1.3.7


 ---------------------------------------------------------------------
 --- erl_docgen-0.7.1 ------------------------------------------------
 ---------------------------------------------------------------------

 The erl_docgen-0.7.1 application can be applied independently of
 other applications on a full OTP 20 installation.

 --- Improvements and New Features ---

  OTP-14462    Application(s): common_test, dialyzer, erl_docgen,
               hipe, kernel, mnesia, observer, runtime_tools, sasl,
               stdlib, syntax_tools, tools, wx

               General Unicode improvements.


 Full runtime dependencies of erl_docgen-0.7.1: edoc-0.7.13, erts-9.0,
 stdlib-3.4, xmerl-1.3.7


 ---------------------------------------------------------------------
 --- erts-9.1 --------------------------------------------------------
 ---------------------------------------------------------------------

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

 --- Fixed Bugs and Malfunctions ---

  OTP-14490    Application(s): erts
               Related Id(s): ERL-432

               Changed erlang:apply/2 to raise a badarg exception if
               the second argument is not a proper list. Previous
               behavior was a misleading undef exception.


  OTP-14499    Application(s): crypto, erts
               Related Id(s): ERL-251, ERL-439

               On macOS, crypto would crash if observer had been
               started before crypto. On the beta for macOS 10.13
               (High Sierra), crypto would crash. Both of those bugs
               have been fixed.


  OTP-14523    Application(s): erts

               Fixed bug in enif_whereis_pid/port that could cause
               heap corruption in rare cases.


  OTP-14538    Application(s): erts

               Fix so that trace messages generated when in a dirty
               nif are flushed correctly when the dirty nif is done
               executing.


  OTP-14549    Application(s): erts
               Related Id(s): PR1536

               Fix escape code handling when using ANSI color codes in
               the shell.


  OTP-14574    Application(s): erts

               Upgraded the ERTS internal PCRE library from version
               8.40 to version 8.41. See
               http://pcre.org/original/changelog.txt for information
               about changes made to PCRE. This library implements
               major parts of the re regular expressions module.


  OTP-14597    Application(s): erts
               Related Id(s): ERL-465

               Fixed a bug causing statistics(runtime) to produce
               negative values and a bug in statistics(wall_clock)
               causing it to produce values one second too long.

               statistics(runtime) now also use getrusage() as source
               when available preventing the returned value from
               wrapping as frequent as before.


  OTP-14609    Application(s): erts

               Fixed small memory leak that could occur when sending
               to a terminating port.


  OTP-14612    Application(s): erts

               Fix bug causing VM crash when a module with -on_load
               directive is loaded while erlang:trace(on_load, ...) is
               enabled.


  OTP-14614    Application(s): erts
               Related Id(s): ERL-453

               A warning that the compiler may optimize away atoms
               have been added to the documentation of
               list_to_existing_atom/1 and binary_to_existing_atom/2.


 --- Improvements and New Features ---

  OTP-13170    Application(s): erts, kernel, tools

               Lock counting can now be fully toggled at runtime in
               the lock counting emulator (-emu_type lcnt). Everything
               is enabled by default to match the old behavior, but
               specific categories can be toggled at will with minimal
               runtime overhead when disabled. Refer to the
               documentation on lcnt:rt_mask/1 for details.


  OTP-14185    Application(s): erts

               The zlib module has been refactored and all its
               operations will now yield appropriately, allowing them
               to be used freely in concurrent applications.

               The following functions have been deprecated, but will
               not produce compiler warnings until OTP 21:
               zlib:adler32, zlib:crc32, zlib:inflateChunk,
               zlib:getBufSize, zlib:setBufSize.

               The behavior of throwing an error when a dictionary is
               required for decompression has also been deprecated.
               Refer to the documentation on inflateSetDictionary/2
               for details.


  OTP-14412    Application(s): erts, kernel, tools

               lcnt:collect and lcnt:clear will no longer block all
               other threads in the runtime system.


  OTP-14520    Application(s): erts, tools

               Add erlang:iolist_to_iovec/1, which converts an
               iolist() to an erlang:iovec(), which suitable for use
               with enif_inspect_iovec.


  OTP-14527    Application(s): erts

               When provided with bad arguments, the zlib module will
               now raise named exceptions instead of just badarg. For
               example, not_initialized when using zlib:inflate/2 with
               an uninitialized stream.


  OTP-14553    Application(s): erts

               erlang:halt/2 allows any Unicode string as slogan for
               the crash dump.


  OTP-14598    Application(s): erts

               Add new nif API functions for managing an I/O Queue.
               The added functions are:

               -- enif_ioq_create()

               -- enif_ioq_destroy()

               -- enif_ioq_enq_binary()

               -- enif_ioq_enqv()

               -- enif_ioq_deq()

               -- enif_ioq_peek()

               -- enif_inspect_iovec()

               -- enif_free_iovec()


 Full runtime dependencies of erts-9.1: kernel-5.0, sasl-3.0.1,
 stdlib-3.0


 ---------------------------------------------------------------------
 --- et-1.6.1 --------------------------------------------------------
 ---------------------------------------------------------------------

 The et-1.6.1 application can be applied independently of other
 applications on a full OTP 20 installation.

 --- Improvements and New Features ---

  OTP-14464    Application(s): debugger, edoc, et, eunit, observer,
               tools

               Tools are updated to show Unicode atoms correctly.


 Full runtime dependencies of et-1.6.1: erts-9.0, kernel-5.3,
 runtime_tools-1.10, stdlib-3.4, wx-1.2


 ---------------------------------------------------------------------
 --- eunit-2.3.4 -----------------------------------------------------
 ---------------------------------------------------------------------

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

 --- Improvements and New Features ---

  OTP-14464    Application(s): debugger, edoc, et, eunit, observer,
               tools

               Tools are updated to show Unicode atoms correctly.


 Full runtime dependencies of eunit-2.3.4: erts-9.0, kernel-5.3,
 stdlib-3.4


 ---------------------------------------------------------------------
 --- hipe-3.16.1 -----------------------------------------------------
 ---------------------------------------------------------------------

 The hipe-3.16.1 application can be applied independently of other
 applications on a full OTP 20 installation.

 --- Fixed Bugs and Malfunctions ---

  OTP-14572    Application(s): dialyzer, hipe
               Related Id(s): seq13319

               Fix a bug regarding map types that caused Dialyzer to
               go into an infinite loop. A consequence of the fix is
               that compound map keys such as maps and tuples
               sometimes are handled with less precision than before.


 --- Improvements and New Features ---

  OTP-14462    Application(s): common_test, dialyzer, erl_docgen,
               hipe, kernel, mnesia, observer, runtime_tools, sasl,
               stdlib, syntax_tools, tools, wx

               General Unicode improvements.


 Full runtime dependencies of hipe-3.16.1: compiler-5.0, erts-9.0,
 kernel-5.3, stdlib-3.4, syntax_tools-1.6.14


 ---------------------------------------------------------------------
 --- inets-6.4.2 -----------------------------------------------------
 ---------------------------------------------------------------------

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

 --- Fixed Bugs and Malfunctions ---

  OTP-14510    Application(s): inets

               Make sure mod_log uses the correct status code


  OTP-14530    Application(s): inets

               Correct behaviour of mod_disk_log to proparly handle
               repair options


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


 ---------------------------------------------------------------------
 --- kernel-5.4 ------------------------------------------------------
 ---------------------------------------------------------------------

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

       On a full OTP 20 installation, also the following runtime
       dependency has to be satisfied:
       -- erts-9.1 (first satisfied in OTP 20.1)


 --- Fixed Bugs and Malfunctions ---

  OTP-14571    Application(s): kernel
               Related Id(s): ERL-472

               Processes which did output after switching jobs
               (Ctrl+G) could be left forever stuck in the io request.


 --- Improvements and New Features ---

  OTP-13170    Application(s): erts, kernel, tools

               Lock counting can now be fully toggled at runtime in
               the lock counting emulator (-emu_type lcnt). Everything
               is enabled by default to match the old behavior, but
               specific categories can be toggled at will with minimal
               runtime overhead when disabled. Refer to the
               documentation on lcnt:rt_mask/1 for details.


  OTP-14412    Application(s): erts, kernel, tools

               lcnt:collect and lcnt:clear will no longer block all
               other threads in the runtime system.


  OTP-14462    Application(s): common_test, dialyzer, erl_docgen,
               hipe, kernel, mnesia, observer, runtime_tools, sasl,
               stdlib, syntax_tools, tools, wx

               General Unicode improvements.


 Full runtime dependencies of kernel-5.4: erts-9.1, sasl-3.0,
 stdlib-3.4


 ---------------------------------------------------------------------
 --- mnesia-4.15.1 ---------------------------------------------------
 ---------------------------------------------------------------------

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

 --- Improvements and New Features ---

  OTP-14462    Application(s): common_test, dialyzer, erl_docgen,
               hipe, kernel, mnesia, observer, runtime_tools, sasl,
               stdlib, syntax_tools, tools, wx

               General Unicode improvements.


 Full runtime dependencies of mnesia-4.15.1: erts-9.0, kernel-5.3,
 stdlib-3.4


 ---------------------------------------------------------------------
 --- observer-2.5 ----------------------------------------------------
 ---------------------------------------------------------------------

 The observer-2.5 application can be applied independently of other
 applications on a full OTP 20 installation.

 --- Improvements and New Features ---

  OTP-14386    Application(s): observer

               The following improvements are done to Crashdump
               Viewer:

               -- Reading of crash dumps with many binaries is
               optimized.

               -- A progress bar is shown when the detail view for a
               process is opened.

               -- The cdv script now sets ERL_CRASH_DUMP_SECONDS=0 to
               avoid generating a new crash dump from the node running
               the Crashdump Viewer.

               -- A warning dialog is shown if the node running the
               Crashdump Viewer could potentially overwrite the crash
               dump under inspection.

               -- Bugfix: In some situations, Crashdump Viewer could
               not find the end of the 'Last calls' section in a crash
               dump, and would erroneously mark the crash dump as
               truncated. This is now corrected.

               -- Bugfix: In some situations, process info for a
               specific process would be marked as truncated by
               Crashdump Viewer, even if the crash dump was truncated
               in the binary section - and not related to the process
               in question. This is now corrected.


  OTP-14462    Application(s): common_test, dialyzer, erl_docgen,
               hipe, kernel, mnesia, observer, runtime_tools, sasl,
               stdlib, syntax_tools, tools, wx

               General Unicode improvements.


  OTP-14464    Application(s): debugger, edoc, et, eunit, observer,
               tools

               Tools are updated to show Unicode atoms correctly.


  OTP-14536    Application(s): observer

               Add system statistics and limits to frontpage in
               observer.


 Full runtime dependencies of observer-2.5: erts-7.0, et-1.5,
 inets-5.10, kernel-3.0, runtime_tools-1.8.14, stdlib-3.4, wx-1.2


 ---------------------------------------------------------------------
 --- os_mon-2.4.3 ----------------------------------------------------
 ---------------------------------------------------------------------

 The os_mon-2.4.3 application can be applied independently of other
 applications on a full OTP 20 installation.

 --- Fixed Bugs and Malfunctions ---

  OTP-14560    Application(s): os_mon
               Related Id(s): ERL-461

               On macOS 10.13 (High Sierra), disksup could not grab
               information for any disks that used the new APFS file
               system. That has been corrected.


 Full runtime dependencies of os_mon-2.4.3: erts-6.0, kernel-3.0,
 mnesia-4.12, otp_mibs-1.0.9, sasl-2.4, snmp-4.25.1, stdlib-2.0


 ---------------------------------------------------------------------
 --- public_key-1.5 --------------------------------------------------
 ---------------------------------------------------------------------

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

 --- Fixed Bugs and Malfunctions ---

  OTP-14621    Application(s): public_key
               Related Id(s): ERL-480, ERL-481

               *** POTENTIAL INCOMPATIBILITY ***

               public_key now handles elliptic curve parameters in a
               consistent way so that decoded ECDSA keys can be
               correctly re-encoded.


 --- Improvements and New Features ---

  OTP-13704    Application(s): crypto, public_key
               Related Id(s): PR838

               Extend crypto:sign, crypto:verify, public_key:sign and
               public_key:verify with:

               * support for RSASSA-PS padding for signatures and for
               saltlength setting
               * X9.31 RSA padding.
               * sha, sha224, sha256, sha384, and sha512 for dss
               signatures as mentioned in NIST SP 800-57 Part 1.
               * ripemd160 to be used for rsa signatures.

               This is a manual merge of half of the pull request 838
               by potatosalad from Sept 2015.


  OTP-14181    Application(s): public_key

               Add API function pkix_test_data/1 for facilitating
               automated testing. This is useful for applications that
               preform X509-certifcate path validation of so called
               certificate chains, such as TLS.


  OTP-14236    Application(s): public_key, ssl

               Improved error propagation and reports


  OTP-14534    Application(s): public_key

               RSAPrivateKey version is set to 'two-prime' instead of
               using the underlying enumeration value directly.


  OTP-14608    Application(s): public_key

               Deprecated function crypto:rand_uniform/2 is replaced
               by rand:uniform/1.


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


 ---------------------------------------------------------------------
 --- reltool-0.7.5 ---------------------------------------------------
 ---------------------------------------------------------------------

 The reltool-0.7.5 application can be applied independently of other
 applications on a full OTP 20 installation.

 --- Improvements and New Features ---

  OTP-14463    Application(s): reltool, sasl

               Files generated by release_handler and reltool, which
               might contain Unicode characters, are now encoded as
               UTF-8 and written with format "~tp" or "~ts". If the
               file is to be read by file:consult/1, an encoding
               comment is added.


 Full runtime dependencies of reltool-0.7.5: erts-7.0, kernel-3.0,
 sasl-2.4, stdlib-3.4, tools-2.6.14, wx-1.2


 ---------------------------------------------------------------------
 --- runtime_tools-1.12.2 --------------------------------------------
 ---------------------------------------------------------------------

 The runtime_tools-1.12.2 application can be applied independently of
 other applications on a full OTP 20 installation.

 --- Improvements and New Features ---

  OTP-14462    Application(s): common_test, dialyzer, erl_docgen,
               hipe, kernel, mnesia, observer, runtime_tools, sasl,
               stdlib, syntax_tools, tools, wx

               General Unicode improvements.


 Full runtime dependencies of runtime_tools-1.12.2: erts-8.0,
 kernel-5.0, mnesia-4.12, stdlib-3.0


 ---------------------------------------------------------------------
 --- sasl-3.1 --------------------------------------------------------
 ---------------------------------------------------------------------

 The sasl-3.1 application can be applied independently of other
 applications on a full OTP 20 installation.

 --- Improvements and New Features ---

  OTP-14462    Application(s): common_test, dialyzer, erl_docgen,
               hipe, kernel, mnesia, observer, runtime_tools, sasl,
               stdlib, syntax_tools, tools, wx

               General Unicode improvements.


  OTP-14463    Application(s): reltool, sasl

               Files generated by release_handler and reltool, which
               might contain Unicode characters, are now encoded as
               UTF-8 and written with format "~tp" or "~ts". If the
               file is to be read by file:consult/1, an encoding
               comment is added.


  OTP-14618    Application(s): sasl

               The SASL error logger event handler,
               sasl_report_file_h, will now by default open its log
               file with encoding UTF-8. This can be overridden when
               configuring SASL, see configuration parameter
               sasl_error_logger in the SASL reference manual.


 Full runtime dependencies of sasl-3.1: erts-9.0, kernel-5.3,
 stdlib-3.4, tools-2.6.14


 ---------------------------------------------------------------------
 --- snmp-5.2.7 ------------------------------------------------------
 ---------------------------------------------------------------------

 The snmp-5.2.7 application can be applied independently of other
 applications on a full OTP 20 installation.

 --- Fixed Bugs and Malfunctions ---

  OTP-13014    Application(s): snmp
               Related Id(s): ERL-375

               A bug in the SNMP MIB compiler has been fixed. An
               AUGMENTS referring to a table defined later in the MIB
               did not work.


 Full runtime dependencies of snmp-5.2.7: crypto-3.3, erts-6.0,
 kernel-3.0, mnesia-4.12, runtime_tools-1.8.14, stdlib-2.5


 ---------------------------------------------------------------------
 --- ssh-4.6 ---------------------------------------------------------
 ---------------------------------------------------------------------

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

 --- Fixed Bugs and Malfunctions ---

  OTP-14506    Application(s): ssh
               Related Id(s): PR1503

               Enables the ssh_io module to also accept binary values
               when reading standard_io instead of getting stuck in
               the receive clause.


  OTP-14550    Application(s): ssh
               Related Id(s): PR1533

               Previously, the file owner access permission in
               response to ssh_sftp:read_file_info/2 function was
               always read_write. With this fix, the actual value of
               file owner access permission is added to the returning
               record. That value is calculated from file mode value.


 --- Improvements and New Features ---

  OTP-14568    Application(s): ssh

               A new option modify_algorithms is implemented. It
               enables specifying changes on the default algorithms
               list. See the reference manual and the SSH User's Guide
               chapter "Configuring algorithms in SSH".


 Full runtime dependencies of ssh-4.6: crypto-3.7.3, erts-6.0,
 kernel-3.0, public_key-1.4, stdlib-3.3


 ---------------------------------------------------------------------
 --- ssl-8.2.1 -------------------------------------------------------
 ---------------------------------------------------------------------

 Note! The ssl-8.2.1 application can *not* be applied independently of
       other applications on an arbitrary OTP 20 installation.

       On a full OTP 20 installation, also the following runtime
       dependency has to be satisfied:
       -- public_key-1.5 (first satisfied in OTP 20.1)


 --- Fixed Bugs and Malfunctions ---

  OTP-14556    Application(s): ssl

               Max session table works correctly again


 --- Improvements and New Features ---

  OTP-14078    Application(s): ssl

               Customize alert handling for DTLS over UDP to mitigate
               DoS attacks


  OTP-14236    Application(s): public_key, ssl

               Improved error propagation and reports


 Full runtime dependencies of ssl-8.2.1: crypto-3.3, erts-7.0,
 inets-5.10.7, kernel-3.0, public_key-1.5, stdlib-3.2


 ---------------------------------------------------------------------
 --- stdlib-3.4.2 ----------------------------------------------------
 ---------------------------------------------------------------------

 The stdlib-3.4.2 application can be applied independently of other
 applications on a full OTP 20 installation.

 --- Fixed Bugs and Malfunctions ---

  OTP-14488    Application(s): stdlib
               Related Id(s): PR-1489

               Fix a bug in the Erlang shell where recursively defined
               records with typed fields could cause a loop.


  OTP-14542    Application(s): stdlib

               Make edlin handle grapheme clusters instead of
               codepoints to improve the handling multi-codepoints
               characters.


  OTP-14600    Application(s): compiler, stdlib
               Related Id(s): ERL-478

               There could be false warnings for
               erlang:get_stacktrace/0 being used outside of a try
               block when using multiple catch clauses.


 --- Improvements and New Features ---

  OTP-14378    Application(s): compiler, stdlib

               The Erlang code linter no longer checks that the
               functions mentioned in nowarn_deprecated_function
               options are declared in the module.


  OTP-14462    Application(s): common_test, dialyzer, erl_docgen,
               hipe, kernel, mnesia, observer, runtime_tools, sasl,
               stdlib, syntax_tools, tools, wx

               General Unicode improvements.


 Full runtime dependencies of stdlib-3.4.2: compiler-5.0, crypto-3.3,
 erts-9.0, kernel-5.0, sasl-3.0


 ---------------------------------------------------------------------
 --- syntax_tools-2.1.3 ----------------------------------------------
 ---------------------------------------------------------------------

 The syntax_tools-2.1.3 application can be applied independently of
 other applications on a full OTP 20 installation.

 --- Improvements and New Features ---

  OTP-14462    Application(s): common_test, dialyzer, erl_docgen,
               hipe, kernel, mnesia, observer, runtime_tools, sasl,
               stdlib, syntax_tools, tools, wx

               General Unicode improvements.


  OTP-14471    Application(s): syntax_tools
               Related Id(s): ERL-413

               A process trapping exits and calling erl_tidy no longer
               hangs if an error occurs.


 Full runtime dependencies of syntax_tools-2.1.3: compiler-7.0,
 erts-9.0, kernel-5.0, stdlib-3.4


 ---------------------------------------------------------------------
 --- tools-2.11 ------------------------------------------------------
 ---------------------------------------------------------------------

 Note! The tools-2.11 application can *not* be applied independently
       of other applications on an arbitrary OTP 20 installation.

       On a full OTP 20 installation, also the following runtime
       dependencies have to be satisfied:
       -- erts-9.1 (first satisfied in OTP 20.1)
       -- kernel-5.4 (first satisfied in OTP 20.1)


 --- Fixed Bugs and Malfunctions ---

  OTP-14344    Application(s): tools

               The predefined Xref analysis locals_not_used no longer
               reports unused functions with the -on_load() attribute.

               The new predefined Xref variable OL holds all functions
               with the -on_load() attribute.


  OTP-14500    Application(s): tools

               In fprof when sampling multiple processes and analyzing
               with totals set to true, the output now sums together
               all caller and callee entries which concerns the same
               function. Previous behaviour was to report each
               contributing entry separately.


 --- Improvements and New Features ---

  OTP-13170    Application(s): erts, kernel, tools

               Lock counting can now be fully toggled at runtime in
               the lock counting emulator (-emu_type lcnt). Everything
               is enabled by default to match the old behavior, but
               specific categories can be toggled at will with minimal
               runtime overhead when disabled. Refer to the
               documentation on lcnt:rt_mask/1 for details.


  OTP-14412    Application(s): erts, kernel, tools

               lcnt:collect and lcnt:clear will no longer block all
               other threads in the runtime system.


  OTP-14462    Application(s): common_test, dialyzer, erl_docgen,
               hipe, kernel, mnesia, observer, runtime_tools, sasl,
               stdlib, syntax_tools, tools, wx

               General Unicode improvements.


  OTP-14464    Application(s): debugger, edoc, et, eunit, observer,
               tools

               Tools are updated to show Unicode atoms correctly.


  OTP-14520    Application(s): erts, tools

               Add erlang:iolist_to_iovec/1, which converts an
               iolist() to an erlang:iovec(), which suitable for use
               with enif_inspect_iovec.


 Full runtime dependencies of tools-2.11: compiler-5.0, erts-9.1,
 kernel-5.4, runtime_tools-1.8.14, stdlib-3.4


 ---------------------------------------------------------------------
 --- wx-1.8.2 --------------------------------------------------------
 ---------------------------------------------------------------------

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

 --- Fixed Bugs and Malfunctions ---

  OTP-14539    Application(s): wx

               Do not deprecate
               wxGraphicsContext:createLinearGradientBrush/7 and
               wxGraphicsContext:createRadialGradientBrush/8 which are
               still available in wxWidgets-3.0.


 --- Improvements and New Features ---

  OTP-14462    Application(s): common_test, dialyzer, erl_docgen,
               hipe, kernel, mnesia, observer, runtime_tools, sasl,
               stdlib, syntax_tools, tools, wx

               General Unicode improvements.


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


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