aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2019-06-10erts: Fix bad loader optimization of get_tuple_elementJohn Högberg
The following sequence would be wrongly optimized into a i_get_tuple_element2 instruction, reading an element from the wrong tuple: {get_tuple_element,{x,0},1,{x,0}}. {get_tuple_element,{x,0},2,{x,1}}.
2019-05-29Updated OTP versionOTP-22.0.2Erlang/OTP
2019-05-29Prepare releaseErlang/OTP
2019-05-29Merge branch 'hasse/stdlib/chars_limit_bug/OTP-15847/ERL-957' into maint-22Erlang/OTP
* hasse/stdlib/chars_limit_bug/OTP-15847/ERL-957: stdlib: Fix a bug concerning io_lib option 'chars_limit' # Conflicts: # lib/stdlib/test/io_SUITE.erl
2019-05-29Merge branch 'john/update-maint-22-bootstrap' into maint-22Erlang/OTP
* john/update-maint-22-bootstrap: Update primary bootstrap
2019-05-29Merge branch 'bjorn/compiler/fix-beam_ssa_dead-patch/OTP-15845' into maint-22Erlang/OTP
* bjorn/compiler/fix-beam_ssa_dead-patch/OTP-15845: Fix unsafe optimizations where guard tests could be removed
2019-05-29Merge branch ↵Erlang/OTP
'bjorng_ghub/bjorn/compiler/fix-beam_ssa_dead-crash/ERL-956/OTP-15848' into maint-22 * bjorng_ghub/bjorn/compiler/fix-beam_ssa_dead-crash/ERL-956/OTP-15848: Eliminate crash in the beam_ssa_dead compiler pass
2019-05-29Merge branch 'bjorn/compiler/fix-unloadable-code-patch/ERL-955/OTP-15846' ↵Erlang/OTP
into maint-22 * bjorn/compiler/fix-unloadable-code-patch/ERL-955/OTP-15846: Fix loading of Core Erlang code for extracting a map element
2019-05-29Merge branch 'bjorn/compiler/fix-beam_except/ERL-954/OTP-15839' into maint-22Erlang/OTP
* bjorn/compiler/fix-beam_except/ERL-954/OTP-15839: Fix compiler crash in beam_except
2019-05-29Merge branch 'bjorn/compiler/fix-unsafe-type-inference/OTP-15838' into maint-22Erlang/OTP
* bjorn/compiler/fix-unsafe-type-inference/OTP-15838: Fix unsafe negative type inference # Conflicts: # lib/compiler/src/beam_ssa_type.erl
2019-05-29Merge branch 'john/compiler/list_append_type/OTP-15841' into maint-22Erlang/OTP
* john/compiler/list_append_type/OTP-15841: compiler: Fix broken type for erlang:'++'/2
2019-05-29Merge branch 'bjorn/erts/fix-wrong-class/ERIERL-367/OTP-15834' into maint-22Erlang/OTP
* bjorn/erts/fix-wrong-class/ERIERL-367/OTP-15834: Fix sticky class in exception
2019-05-29Merge branch 'bjorn/compiler/fix-receive-patch/ERL-950/OTP-15832' into maint-22Erlang/OTP
* bjorn/compiler/fix-receive-patch/ERL-950/OTP-15832: Eliminate compiler crash when compiling complex receive statements
2019-05-29Merge branch 'bjorn/compiler/fix-freeze/ERL-948/OTP-15828' into maint-22Erlang/OTP
* bjorn/compiler/fix-freeze/ERL-948/OTP-15828: Fix non-terminating compilation
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-28Update primary bootstrapJohn Högberg
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-23Fix sticky class in exceptionBjörn Gustavsson
When catching an exception re-throwing with a changed class, the class could be changed to the original class if the exception got caught and rethrown in (for example) an after block: sticky_class() -> try try throw(reason) catch throw:Reason:Stack -> erlang:raise(error, Reason, Stack) end after ok end.
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-15Updated OTP versionOTP-22.0.1Erlang/OTP
2019-05-15Prepare releaseErlang/OTP
2019-05-15Merge branch 'ingela/ssl-flow-ctrl/ERL-934/OTP-15825' into maint-22Erlang/OTP
* ingela/ssl-flow-ctrl/ERL-934/OTP-15825: ssl: Refactor of OTP 22 code due to patch OTP-15823 ssl: Avoid dialyzer warning ssl: Add test cases for issue reported in ERL-938 ssl: Internal active n must back off when user does not read data ssl: Remove legacy calls to next_record
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-10Updated OTP versionOTP-22.0Erlang/OTP
2019-05-10Prepare releaseErlang/OTP
2019-05-10Eliminate process yield after each call to length/1Björn Gustavsson
After calculating the length of a list, length/1 would accidentally bump all remaining reductions, forcing the process to yield. Correct the calculation.
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-09Updated OTP versionOTP-21.3.7.1Rickard Green
2019-05-09Prepare releaseRickard Green
2019-05-09Merge branch 'rickard/ei-nodename/OTP-15781'Rickard Green
* rickard/ei-nodename/OTP-15781: Increase max number of node name characters to 256
2019-05-09Merge branch 'lukas/fix-run-dialyzer'Lukas Larsson
* lukas/fix-run-dialyzer: otp: Don't error dialyzer script if WARNINGS fail
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-09Merge branch 'maint'Rickard Green
* maint: Bump forward merge script version
2019-05-09Bump forward merge script versionRickard Green
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