aboutsummaryrefslogtreecommitdiffstats
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 'maint'Sverker Eriksson
2017-02-01Merge branch 'sverker/bin2term-zlib-bug/ERL-340/OTP-14159' into maintSverker Eriksson
* sverker/bin2term-zlib-bug/ERL-340/OTP-14159: erts: Fix binary_to_term for compressed and zlib >= v1.2.9
2017-02-01Update primary bootstrapBjörn Gustavsson
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-31Updated OTP versionOTP-19.2.2Erlang/OTP
2017-01-31Prepare releaseErlang/OTP
2017-01-31Merge branch 'dgud/mnesia/checkpoint-crash/OTP-14167' into maint-19Erlang/OTP
* dgud/mnesia/checkpoint-crash/OTP-14167: Fixed crash when a table was deleted during checkpoint traversal
2017-01-31Merge branch 'maint'Hans Nilsson
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 pull request #1289 from richcarl/intensity-tuning-docSiri Hansen
Add restart intensity howto section to design principles doc OTP-14168
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-25Merge branch 'rickard/ds-20-fix'Rickard Green
* rickard/ds-20-fix: Fix unused warning Change exception for enif_schedule_nif() with dirty flags Remove double check of NifExport when checking process code
2017-01-25Merge branch 'maint'Rickard Green
* maint: Workaround for buggy android implementation of PTHREAD_STACK_MIN
2017-01-25Merge branch 'rickard/android-missing-page-size-workaround' into maintRickard Green
OTP-14165 * rickard/android-missing-page-size-workaround: Workaround for buggy android implementation of PTHREAD_STACK_MIN
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-25erts: Remove erlang:hash/2 from documentationBjörn-Egil Dahlberg
2017-01-25erts: Remove broken hash from ErlangBjörn-Egil Dahlberg
erlang:hash/2 has been deprecated for a while, time to remove it.
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'Björn-Egil Dahlberg
2017-01-25Merge branch 'egil/erts/fix-crashdump-suspend/OTP-14164' into maintBjörn-Egil Dahlberg
* egil/erts/fix-crashdump-suspend/OTP-14164: erts: Fix thread suspend in crashdump
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