aboutsummaryrefslogtreecommitdiffstats
path: root/lib
AgeCommit message (Collapse)Author
2017-02-02Make "~s" fail for Unicode atomsBjörn Gustavsson
26b59dfe67e introduced support for arbitrary Unicode characters in atoms. After that commit, it is possible to print any atom with a "~s" format string: 1> io:format("~s\n", ['спутник']). спутник Note that the same text as a string will fail: 2> io:format("~s\n", ["спутник"]). ** exception error: bad argument in function io:format/3 called as io:format(<0.53.0>,"~s\n", [[1089,1087,1091,1090,1085,1080,1082]]) Being more permissive for atoms is probably beneficial for io:format/2. However, for io_lib:format/2, the new behavior breaks this guarantee in the documentation for io_lib:format/2: If and only if the Unicode translation modifier is used in the format string (that is, ~ts or ~tc), the resulting list can contain characters beyond the ISO Latin-1 character range (that is, numbers > 255). The problem is that you can no longer be sure whether io_lib:format/2 will return an iolist that can be successfully passed to a port or iolist_to_binary/1. We see three solutions: 1. Keep the new behavior. That means that you can get non-iolist data when you use ~s for printing an atom, but a 'badarg' when printing Unicode strings. That is inconsistent, and it delays error detection if the result is passed to a port or iolist_to_binary/1. 2. Always allow Unicode characters for ~s. That would be incompatible, because ~s says that any binary is encoded in latin1, while ~ts says that any binary is encoded in UTF-8. To implement this solution, we could no longer support latin1 binaries; all binaries would have to be encoded in UTF-8. 3. Only allow ~s for atoms where all characters are less than 256. Require ~ts to print atoms such as 'спутник'. We reject solution 1 because it is slightly incompatible and is inconsistent. We reject solution 2 because it too incompatible. Therefore, this commit implements solution 3.
2017-02-01Merge branch 'josevalim/atu8-chunk/PR-1078/OTP-14178'Björn Gustavsson
* josevalim/atu8-chunk/PR-1078/OTP-14178: Add new AtU8 beam chunk
2017-02-01Merge branch 'maint'Dan Gudmundsson
* maint: Updated OTP version Prepare release Fixed crash when a table was deleted during checkpoint traversal
2017-02-01Merge branch 'maint-19' into maintDan Gudmundsson
* maint-19: Updated OTP version Prepare release Fixed crash when a table was deleted during checkpoint traversal
2017-01-31Merge branch 'maint'Hans Nilsson
Conflicts: lib/crypto/c_src/crypto.c lib/crypto/src/crypto.erl
2017-01-31Merge branch 'hans/ssh/speed_dh_keygen/OTP-14169' into maintHans Nilsson
2017-01-31Prepare releaseErlang/OTP
2017-01-31Merge branch 'hans/ssh/increase_benchmark_timetrap' into maintHans Nilsson
2017-01-30Fixed crash when a table was deleted during checkpoint traversalDan Gudmundsson
Set fixtable false will fail on deleted tables, catch that and also report checkpoint deactivate error, so user can see why checkpoint was deactivated and backup fails.
2017-01-30Add new AtU8 beam chunkJosé Valim
The new chunk stores atoms encoded in UTF-8. beam_lib has also been modified to handle the new 'utf8_atoms' attribute while the 'atoms' attribute may be a missing chunk from now on. The binary_to_atom/2 BIF can now encode any utf8 binary with up to 255 characters. The list_to_atom/1 BIF can now accept codepoints higher than 255 with up to 255 characters (thanks to Björn Gustavsson).
2017-01-30ssh: increase timetrap for ssh_benchmark_SUITEHans Nilsson
2017-01-30ssh: optimize kex dh_gex using new crypto functionalityHans Nilsson
2017-01-27crypto: Added optional length to paramlist in generate_keyHans Nilsson
2017-01-27Merge branch 'maint'Ingela Anderton Andin
2017-01-27Merge branch 'ingela/ssl/key-ext-validate/ERL-338/OTP-14141' into maintIngela Anderton Andin
* ingela/ssl/key-ext-validate/ERL-338/OTP-14141: ssl: The certificate path may be used as a source to find intermediate CAs for the CRL ssl: Handle more than one DistributionPoint ssl: Correct ssl_certificate:validate/3
2017-01-26ssl: The certificate path may be used as a source to find intermediate CAs ↵Ingela Anderton Andin
for the CRL
2017-01-26Merge branch 'maint'Hans Nilsson
2017-01-26Merge branch 'hans/public_key/verify_hostname/OTP-13009' into maintHans Nilsson
2017-01-26Merge branch 'hans/ssh/bad_hostkey_sign_kex_dh_gex/OTP-14166' into maintHans Nilsson
2017-01-26Merge branch 'maint'Siri Hansen
2017-01-26Fix observer application crash (#1296)visciang
Fix observer application crash When clicking an HTML-link to a port before the port tab has been opened for the first time, observer would crash since port info is not initiated. This is now corrected. Also, when clicking on an HTML link to a port, and the port does not exist, then pop up an info dialog saying "No such port". OTP-14151
2017-01-26Merge branch 'egil/erts/remove-broken-hash/OTP-13827'Björn-Egil Dahlberg
* egil/erts/remove-broken-hash/OTP-13827: Update test cases for erlang:hash/2 removal mnesia: Remove mnesia_frag_old_hash hash module stdlib: Produce correct warning for erlang:hash/2 erts: Remove erlang:hash/2 from documentation erts: Remove broken hash from Erlang
2017-01-25public_key: pkix_verify_hostname (RFC 6125)Hans Nilsson
2017-01-25ssh: correct host key signature calculationHans Nilsson
2017-01-25Update test cases for erlang:hash/2 removalBjörn-Egil Dahlberg
2017-01-25mnesia: Remove mnesia_frag_old_hash hash moduleBjörn-Egil Dahlberg
The module mnesia_frag_old_hash utilized the broken erlang:hash/2 function which has been deprecated for a long time. Since erlang:hash/2 is now removed there is no point in having this module any more.
2017-01-25stdlib: Produce correct warning for erlang:hash/2Björn-Egil Dahlberg
2017-01-25Merge branch 'maint'Ingela Anderton Andin
2017-01-25Merge branch 'ingela/ssl/crl-validity' into maintIngela Anderton Andin
* ingela/ssl/crl-validity: ssl: Make crls valid for a week instead of 24 hours
2017-01-25Merge branch 'maint'Ingela Anderton Andin
2017-01-25Merge branch 'ingela/ssl/pem-chache-own-process/OTP-13874' into maintIngela Anderton Andin
* ingela/ssl/pem-chache-own-process/OTP-13874: ssl: Move PEM cache to a dedicated process
2017-01-25Merge branch 'egil/percept/remove-application/OTP-14163'Björn-Egil Dahlberg
* egil/percept/remove-application/OTP-14163: ssl: Remove percept from benchmark otp: Don't mention percept in documentation runtime_tools: Remove percept percept: Remove application
2017-01-24ssl: Handle more than one DistributionPointIngela Anderton Andin
2017-01-24ssl: Correct ssl_certificate:validate/3Ingela Anderton Andin
Changes made to ssl_certificate:validate appear to be preventing CRL validation from happening when an id-ce-extKeyUsage extension is present in the cert before the DistributionPoint extension. https://github.com/erlang/otp/blob/448e8aca77dd29ed5b37d56f0700d24ac26a7243/lib/ssl/src/ssl_certificate.erl#L131 See also ERL-338 and PR-1302
2017-01-24Merge branch 'maint'Björn-Egil Dahlberg
2017-01-24Merge branch 'schimulkar/os_mon/linux-on-ibm-z/PR-1309/OTP-14161' into maintBjörn-Egil Dahlberg
* schimulkar/os_mon/linux-on-ibm-z/PR-1309/OTP-14161: Adding s390x support
2017-01-23Merge branch 'maint'Hans Nilsson
2017-01-23ssh: ssh_dbg now reports HELLO msgs and timestampsHans Nilsson
2017-01-23Merge branch 'hans/ssh/optimize/OTP-14160'Hans Nilsson
2017-01-20Merge branch 'maint'Hans Nilsson
2017-01-20Merge branch 'hans/ssh/cuddle_tests' into maintHans Nilsson
2017-01-20ssl: Remove percept from benchmarkBjörn-Egil Dahlberg
2017-01-20runtime_tools: Remove perceptBjörn-Egil Dahlberg
2017-01-20Merge branch 'maint'Björn-Egil Dahlberg
2017-01-20Merge branch 'egil/cuddle-more-tests' into maintBjörn-Egil Dahlberg
* egil/cuddle-more-tests: runtime_tools: Fix utf-8 encoding in LTTng.xml Handle unicode in path in test
2017-01-19ssh: fix mpint-bug in property testsHans Nilsson
2017-01-19Merge branch 'hans/ssh/benchmarks'Hans Nilsson
2017-01-19Merge branch 'maint'Hans Nilsson
2017-01-19Merge branch 'hans/ssh/reduce_decrypt_error_info_leakage/OTP-14109' into maintHans Nilsson
2017-01-19ssl: Move PEM cache to a dedicated processIngela Anderton Andin
The PEM cache handling has proven to be too disruptive of the manager process.