aboutsummaryrefslogtreecommitdiffstats
path: root/lib
AgeCommit message (Collapse)Author
2019-05-29Merge branch 'hans/crypto/enable_aes_ctr/OTP-15829' into maint-22Erlang/OTP
* hans/crypto/enable_aes_ctr/OTP-15829: crypto: Re-enable aes_ctr for openssl cryptolib < 1.0.1
2019-05-29stdlib: Fix a bug concerning io_lib option 'chars_limit'Hans Bolinder
See also https://bugs.erlang.org/browse/ERL-957.
2019-05-28Fix unsafe optimizations where guard tests could be removedBjörn Gustavsson
A repeated test could be optimized away. Example: bar(A) -> if is_bitstring(A) -> if is_binary(A) -> binary; true -> bitstring end; true -> other end. In the example, the `is_binary/1` test would be optimized away, basically turning the example into: bar(A) -> if is_bitstring(A) -> bitstring; true -> other end. Thanks user Marcus Kruse in the Elixir forum for noticing this bug.
2019-05-28Eliminate crash in the beam_ssa_dead compiler passBjörn Gustavsson
The compiler could crash in the beam_ssa_dead pass while compiling complex nested `case` expressions. See the added test case for an example and explanation. https://bugs.erlang.org/browse/ERL-956
2019-05-27Fix compiler crash in beam_exceptBjörn Gustavsson
The compiler would crash in `beam_except` while compiling this function: bar(Req) -> ok = case Req of "POST" -> {error, <<"BAD METHOD ", Req/binary>>, Req}; _ -> ok end. https://bugs.erlang.org/browse/ERL-954
2019-05-27compiler: Fix broken type for erlang:'++'/2John Högberg
2019-05-27Fix loading of Core Erlang code for extracting a map elementBjörn Gustavsson
The following Core Erlang code could not be loaded: 'f'/1 = fun (_1) -> case <_1> of <~{'foo':='foo'}~> when 'true' -> _1 end Loading would fail with the following message: beam/beam_load.c(2314): Error loading function example:f/1: op i_get_map_element_hash p x a u x: no specific operation found https://bugs.erlang.org/browse/ERL-955
2019-05-24Fix unsafe negative type inferenceBjörn Gustavsson
The type optimizer pass (`beam_ssa_type`) could make unsafe negative inferences. That is, incorrectly infer that a variable could *not* have a particular type. This bug was found when adding another optimization. It is not clear how write a failing test case without that added optimization.
2019-05-22crypto: Re-enable aes_ctr for openssl cryptolib < 1.0.1Hans Nilsson
It was accidently disabled in the crypto:supports/0 and /1. It worked however in the encrypt/decrypt functions.
2019-05-21Eliminate compiler crash when compiling complex receive statementsBjörn Gustavsson
Certain complex receive statements would result in an internal compiler failure. That would happen when the compiler would fail to find the common exit block following a receive. See the added test case for an example. https://bugs.erlang.org/browse/ERL-950
2019-05-20Fix non-terminating compilationBjörn Gustavsson
The compiler would not terminate while compiling the following code: foo(<<N:32>>, Tuple, NewValue) -> _ = element(N, Tuple), setelement(N, Tuple, NewValue). The type analysis pass would attempt to construct a huge list when attempting analyse the type of `Tuple` after the call to `setelement/3`. https://bugs.erlang.org/browse/ERL-948
2019-05-15Prepare releaseErlang/OTP
2019-05-15ssl: Refactor of OTP 22 code due to patch OTP-15823Ingela Anderton Andin
2019-05-15ssl: Avoid dialyzer warningIngela Anderton Andin
Maybe we should only have specs for external APIs?! This is a how to write spec problem that we have to address later.
2019-05-15ssl: Add test cases for issue reported in ERL-938Ingela Anderton Andin
2019-05-15ssl: Internal active n must back off when user does not read dataIngela Anderton Andin
TLS connections should not buffer too much application data if they want to benefit from TCP flow control. Certain applications may want to customize the value of internal_active_n as there is a tradeoff between buffering memory and throughput. Conflicts: lib/ssl/src/tls_connection.erl
2019-05-15ssl: Remove legacy calls to next_recordIngela Anderton Andin
Conflicts: lib/ssl/src/dtls_connection.erl lib/ssl/src/ssl_connection.erl
2019-05-10Prepare releaseErlang/OTP
2019-05-09Merge branch 'maint'Rickard Green
* maint: Updated OTP version Prepare release
2019-05-09Merge tag 'OTP-21.3.7.1' into maintRickard Green
=== OTP-21.3.7.1 === Changed Applications: - erl_interface-3.11.2.1 Unchanged Applications: - asn1-5.0.8 - common_test-1.17.1 - compiler-7.3.2 - crypto-4.4.2 - debugger-4.2.6 - dialyzer-3.3.2 - diameter-2.2.1 - edoc-0.10 - eldap-1.2.6 - erl_docgen-0.9 - erts-10.3.4 - et-1.6.4 - eunit-2.3.7 - ftp-1.0.2 - hipe-3.18.3 - inets-7.0.7 - jinterface-1.9.1 - kernel-6.3.1 - megaco-3.18.4 - mnesia-4.15.6 - observer-2.9 - odbc-2.12.3 - os_mon-2.4.7 - otp_mibs-1.2.1 - parsetools-2.1.8 - public_key-1.6.5 - reltool-0.7.8 - runtime_tools-1.13.2 - sasl-3.3 - snmp-5.2.12 - ssh-4.7.6 - ssl-9.2.2 - stdlib-3.8.1 - syntax_tools-2.1.7 - tftp-1.0.1 - tools-3.1 - wx-1.8.7 - xmerl-1.3.20 * tag 'OTP-21.3.7.1': Updated OTP version Prepare release # Conflicts: # OTP_VERSION # lib/erl_interface/doc/src/notes.xml # lib/erl_interface/vsn.mk # make/otp_version_tickets # otp_versions.table
2019-05-09Prepare releaseRickard Green
2019-05-09Merge branch 'ingela/ssl/revert-ctrl-flow'Ingela Anderton Andin
* ingela/ssl/revert-ctrl-flow: Revert "ssl: Add check when to toggle internal active N"
2019-05-08Merge branch 'raimo/inet_crypto_dist'Raimo Niskanen
* raimo/inet_crypto_dist: Rekey also the shared secret Use shared secret to rekey Cycle the keypair by time and count Set socket buffer sizes to avoid handshake deadlock Keep the keypair for the node's lifetime Implement some kind of PEKE to get forward secrecy Use incrementing IV Use Erlang cookie as shared secret
2019-05-08Rekey also the shared secretRaimo Niskanen
2019-05-08Merge branch 'maint'Rickard Green
* maint: Fix bad merge from maint-21 Fix bad merge from maint-21 Updated OTP version Prepare release # Conflicts: # OTP_VERSION # make/otp_version_tickets_in_merge
2019-05-08Fix bad merge from maint-21Rickard Green
2019-05-07Revert "ssl: Add check when to toggle internal active N"Ingela Anderton Andin
This reverts commit 6e190b012dd5a304fc42a5f3bb58ff173a23eb66.
2019-05-07Merge branch 'ingela/ssl/openssl-test-cuddle'Ingela Anderton Andin
* ingela/ssl/openssl-test-cuddle: ssl: Add necessary compliance check
2019-05-07Merge branch 'ingela/ssl/dialyzer-fix'Ingela Anderton Andin
* ingela/ssl/dialyzer-fix: ssl: Fix dialyzer spec
2019-05-07ssl: Fix dialyzer specIngela Anderton Andin
2019-05-07Merge branch 'sverker/ei_set_compal_rel-doc'Sverker Eriksson
* sverker/ei_set_compal_rel-doc: erl_interface: Document ei_set_compat_rel
2019-05-07Merge branch 'hasse/stdlib/optimize_io_format/OTP-15705'Hans Bolinder
* hasse/stdlib/optimize_io_format/OTP-15705: stdlib: Optimize pretty printing of strings with chars_limit stdlib: Optimize printing of maps a bit stdlib: Optimize pretty printing of lists slightly
2019-05-07kernel: Force synchronous port_commands in user/user_drvJohn Högberg
Banging data to a local port was always synchronous prior to Erlang/OTP R16, and these modules relied on that behavior to report that data had successfully been enqueued on the stdout port. This would cause data to be silently dropped if the command didn't run synchronously and the emulator halted before the port received the data. This was fairly rare in practice, but could be seen from time to time on Windows with escripts that ended with a call to io:format/2, such as the one used by the escript_SUITE:create_and_extract test. This is a minimal band-aid to make things reliable again. A more complete fix would add explicit synchronization with the port.
2019-05-07Merge branch 'ingela/ssl/cipher-suite-conversion/ERL-924/OTP-15483'Ingela Anderton Andin
* ingela/ssl/cipher-suite-conversion/ERL-924/OTP-15483: ssl: Add cipher suite convertion functions
2019-05-07Merge branch 'lukas/kernel/inet_db_fix_set_of_non-existing_file/OTP-15806'Lukas Larsson
* lukas/kernel/inet_db_fix_set_of_non-existing_file/OTP-15806: kernel: Fix setting of non-existing file as inet_db resolv_conf
2019-05-07Merge branch 'maint-21' into maintIngela Anderton Andin
* maint-21: Updated OTP version Prepare release
2019-05-07Merge branch 'dgud/mnesia/pr-2216/OTP-15084'Dan Gudmundsson
* dgud/mnesia/pr-2216/OTP-15084: Report stacktrace in non-transactions activity function errors.
2019-05-07Report stacktrace in non-transactions activity function errors.Daniil Fedotov
If an activity function fails with an error, the stacktrace is dropped in non_transaction function try/catch clause. This makes debuging of errors inside a transaction really hard. Transaction activities handle errors and exits differently, non-transaction activities should do the same. Adding the stacktrace to the exit reason when translating errors to exits.
2019-05-07ssl: Add cipher suite convertion functionsIngela Anderton Andin
2019-05-07Merge branch 'hasse/dialyzer/prettier_warnings/OTP-15135'Hans Bolinder
* hasse/dialyzer/prettier_warnings/OTP-15135: dialyzer: Remove quotes around operators dialyzer: Add test cases with indentation dialyzer: Add an --no_indentation option dialyzer: Add parentheses around annotated union elements dialyzer: Fix dialyzer_dataflow:format_args_1()
2019-05-07dialyzer: Remove quotes around operatorsHans Bolinder
2019-05-07dialyzer: Add test cases with indentationHans Bolinder
A smallish selection of already existing tests, run with the indentation option.
2019-05-07dialyzer: Add an --no_indentation optionHans Bolinder
By default Dialyzer tries to improve the readability of warnings. Newlines are inserted before and inside types, signatures, and Erlang code. Sometimes the newlines look misplaced. The raw format (option --raw) is not affected. Use the new --no_indentation option get the old behavior (no inserted line breaks). A note on the implementation. The types &c present in the warning tuples are parsed, and then formatted using erl_pp, the Erlang Pretty Printer. The alternative, to create message tuples with formatted types, turned out to more complicated, and has no real benefits. Also notice that the fixes for binaries (commit 9db8a098) and union elements (commit a1e51d12) are required. As a consequence, messages created before these commits using the --raw option cannot always be indented.
2019-05-07Merge branch 'hasse/stdlib/check_spec_module/OTP-15563/ERL-845'Hans Bolinder
* hasse/stdlib/check_spec_module/OTP-15563/ERL-845: stdlib: Do not allow specs for functions in other modules
2019-05-06Prepare releaseErlang/OTP
2019-05-06Merge branch 'siri/ct/safe-write-log-cache/ERIERL-342/OTP-15758' into maint-21Erlang/OTP
* siri/ct/safe-write-log-cache/ERIERL-342/OTP-15758: [ct] Make sure log cache file is completely written before it is read
2019-05-06Merge branch 'siri/ct/reset_curr_tc/ERIERL-334/OTP-15717' into maint-21Erlang/OTP
* siri/ct/reset_curr_tc/ERIERL-334/OTP-15717: [ct] Cleanup after timetrap timeout or kill during framework call or hook # Conflicts: # lib/common_test/test/Makefile
2019-05-06Merge branch 'siri/ct/fuzzer_support/ERIERL-143/OTP-14746' into maint-21Erlang/OTP
* siri/ct/fuzzer_support/ERIERL-143/OTP-14746: [ct] Remove deprecated call to erlang:get_stacktrace() [ct] Fix bug with faulty suite name in end_per_suite config [ct] Add {testcase,TC,RepeatProps} syntax for repeating test cases [ct] Add post_groups/2 and post_all/3 hook functions # Conflicts: # lib/common_test/doc/src/ct_hooks.xml # lib/common_test/src/ct_hooks.erl # lib/common_test/test/ct_hooks_SUITE_data/cth/tests/empty_cth.erl
2019-05-06Merge branch 'raimo/stdlib/gen_statem-sync-timer-cancel/OTP-15295' into maint-21Erlang/OTP
* raimo/stdlib/gen_statem-sync-timer-cancel/OTP-15295: Rewrite to use synchronous timer cancel
2019-05-06Merge branch ↵Erlang/OTP
'ingela/ssl/backported-ssl-enhancments/ERL-929/ERL-893/PR-2215/OTP-15785' into maint-21 * ingela/ssl/backported-ssl-enhancments/ERL-929/ERL-893/PR-2215/OTP-15785: ssl: Fix cherry-pick mistakes ssl: Refer documentation of HttpPacket from erts ssl: Update type spec of ssl:suite_to_str/1 ssl: Update function ssl:eccs/1 ssl: Fix type specs of ssl_internal.hrl ssl: Fix type specs of internal handshake functions ssl: Fix dialyzer warnings eldap: Fix dialyzer warnings ssl: Fix missing anchor warning public_key: Accept digest types 'sha1' and 'sha' inet: Document type inet:stat_option() ssl: Changed function specs and ssl.xml ssl: Add missing tuple in shutdown reason