aboutsummaryrefslogtreecommitdiffstats
path: root/lib
AgeCommit message (Collapse)Author
2019-05-22Merge branch 'maint'Sverker Eriksson
2019-05-22Merge branch 'sverker/stdlib/binary-referenced_byte_size-doc' into maintSverker Eriksson
PR-2245 ERL-914 * sverker/stdlib/binary-referenced_byte_size-doc: stdlib: Improve example for binary:referenced_byte_size/1
2019-05-22Merge branch 'maint'Björn Gustavsson
* maint: Fix non-terminating compilation Fix compiler crash when funs were matched
2019-05-22Merge branch 'bjorn/compiler/fix-freeze/ERL-948/OTP-15828' into maintBjörn Gustavsson
* bjorn/compiler/fix-freeze/ERL-948/OTP-15828: Fix non-terminating compilation
2019-05-22Merge pull request #2236 from bjorng/bjorn/compiler/fix-fun-duplicationBjörn Gustavsson
Fix compiler crash when funs were matched OTP-15833
2019-05-22Merge branch 'maint'Hans Nilsson
* maint: crypto: Re-enable aes_ctr for openssl cryptolib < 1.0.1 use correct module name for standard_error
2019-05-22Merge branch 'hans/crypto/enable_aes_ctr/OTP-15829' into maintHans Nilsson
* hans/crypto/enable_aes_ctr/OTP-15829: crypto: Re-enable aes_ctr for openssl cryptolib < 1.0.1
2019-05-22Merge pull request #2243 from bjorng/bjorn/compiler/fix-redundant-testsBjörn Gustavsson
Improve optimization of redundant tests
2019-05-22Merge pull request #2242 from bjorng/bjorn/add-swap-instructionBjörn Gustavsson
Make the swap instruction known to the compiler
2019-05-22Merge pull request #2237 from bjorng/bjorn/compiler/eliminate-beam_exceptBjörn Gustavsson
Eliminate the beam_except pass
2019-05-22Make the swap instruction known to the compilerBjörn Gustavsson
BEAM has had a `swap` instruction for several releases, but it was not known to the compiler. The loader would translate a sequence of three `move` instructions to the `swap` instructions, but only when it was possible to determine that it would be safe. By making `swap` known to the compiler, it can be applied in more situations since it is easier for the compiler than for the loader to ensure that the usage is safe, and the loader shenanigans can be eliminated.
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-21Merge branch 'velimir/kernel/fix-module-name' into maintHans Bolinder
* velimir/kernel/fix-module-name: use correct module name for standard_error
2019-05-21Fix test case `gen_tcp_api_SUITE:t_connect_timeout`Kjell Winblad
This commit makes the test case `t_connect_timeout` in the test suite gen_tcp_api_SUITE more reliable by searching for unused IP addresses in a larger range of IP addresses.
2019-05-21Make the `cpu_sup_SUITE:util_values` test case more reliableKjell Winblad
Previously, the `util_values` test case in the test suite `cpu_sup_SUITE` tested the `cpu_sup:util()` by checking if a process that spins in a loop cause the CPU utilization measured with `cpu_sup:util()` to increase. This was unreliable on test machines that ran other tasks at the same time. This commit tries to make the test case more reliable by skipping the test case if it is detected that the system is doing other work that use a lot of CPU time and starting 100 spinning processes instead of only 1.
2019-05-20stdlib: Improve example for binary:referenced_byte_size/1Sverker Eriksson
2019-05-20Merge branch 'maint-22' into maintIngela Anderton Andin
* maint-22: Updated OTP version Prepare release # Conflicts: # make/otp_version_tickets
2019-05-20Improve optimization of redundant testsBjörn Gustavsson
The `beam_ssa_dead` pass is supposed to eliminate tests that are determined to be redundant based on the outcome of a previous test. For example, in the following example that repeats a guard test, the second clause can never be executed: foo(A) when A >= 42 -> one; foo(A) when A >= 42 -> two; foo(_) -> three. `beam_ssa_dead` should have eliminated the second clause, but didn't: {test,is_ge,{f,5},[{x,0},{integer,42}]}. {move,{atom,one},{x,0}}. return. {label,5}. {test,is_ge,{f,6},[{x,0},{integer,42}]}. {move,{atom,two},{x,0}}. return. {label,6}. {move,{atom,three},{x,0}}. return. Correct the optimization of four different combinations of relational operations that were too conservate. To ensure the correctness of the optimization, also add an exahaustive test of all combinations of relational operations with one variable and one literal. (Also remove the weak and now redundant coverage tests in `beam_ssa_SUITE`.) With this correction, the following code will be generated for the example: {test,is_ge,{f,5},[{x,0},{integer,42}]}. {move,{atom,one},{x,0}}. return. {label,5}. {move,{atom,three},{x,0}}. return. Thanks to Dániel Szoboszlay (@dszoboszlay), whose talk at Code BEAM STO 2019 made me aware of this missed opportunity for optimization.
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-20Merge branch 'maint-21' into maintLars Thorsen
* maint-21: Updated OTP version Prepare release # Conflicts: # OTP_VERSION # lib/xmerl/doc/src/notes.xml # lib/xmerl/vsn.mk # make/otp_version_tickets # otp_versions.table
2019-05-20Merge branch 'lars/fix-sax-parser-bug-during-check-encoding/OTP-15826' into ↵Lars Thorsen
maint * lars/fix-sax-parser-bug-during-check-encoding/OTP-15826: [xmerl] Fix parse bug when checking the character encoding
2019-05-16use correct module name for standard_errorGrigory Starinkin
2019-05-15Merge pull request #2232 from seeekr/patch-1Lukas Larsson
fix typo in gen_statem.xml
2019-05-15Prepare releaseErlang/OTP
2019-05-15Merge branch 'lars/fix-sax-parser-bug-during-check-encoding/OTP-15826' into ↵Erlang/OTP
maint-21 * lars/fix-sax-parser-bug-during-check-encoding/OTP-15826: [xmerl] Fix parse bug when checking the character encoding
2019-05-15Prepare releaseErlang/OTP
2019-05-15[xmerl] Fix parse bug when checking the character encodingLars Thorsen
The parser chrashed when an endmarker was missing when parsing attribute values during the character encoding check.
2019-05-15Merge branch 'ingela/ssl-flow-ctrl/ERL-934/OTP-15825' into maintIngela Anderton Andin
* 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 Conflicts: lib/ssl/src/tls_connection.erl
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-15Merge branch 'maint-21' into maintIngela Anderton Andin
* maint-21: Updated OTP version Prepare release # Conflicts: # OTP_VERSION # erts/doc/src/notes.xml # erts/vsn.mk # lib/ssl/doc/src/notes.xml # lib/ssl/vsn.mk # lib/tools/doc/src/notes.xml # lib/tools/vsn.mk # make/otp_version_tickets # otp_versions.table
2019-05-14ssl: Refactor of OTP 22 code due to patch OTP-15823Ingela Anderton Andin
2019-05-14Eliminate the beam_except passBjörn Gustavsson
The beam_except pass rewrites certain calls `erlang:error/{1,2}` to use specialized instructions for common exceptions such as `{badmatch,Term}`. Move this optimization to `beam_ssa_pre_codegen` and `beam_ssa_codegen`. The main reason for this change is that optimization passes operating on SSA code are easier to maintain than optimization passes working on BEAM code.
2019-05-14Fix compiler crash when funs were matchedBjörn Gustavsson
Code such as the following would crash the compiler in OTP 22: [some_atom = fun some_function/1] The reason is that the fun would be copied (used both in the match operation and as a value in the list), and the copy of the fun would create two wrapper functions with the same name for calling some_function/1. In OTP 21, the duplicate functions happened not to cause any harm (one of the wrappers functions would be unused and ultimately be removed by beam_clean). In OTP 22, the new beam_ssa_type pass would be confused by the multiple definitions of the wrapper function.
2019-05-14Prepare releaseErlang/OTP
2019-05-14Merge branch 'john/tools/fix-cover-register-race/ERL-943/OTP-15813' into ↵Erlang/OTP
maint-21 * john/tools/fix-cover-register-race/ERL-943/OTP-15813: cover: Fix register/2 race on startup
2019-05-14Merge branch 'ingela/ssl/flow-ctrl/ERL-934/ERL-938/OTP-15823' into maintIngela Anderton Andin
* ingela/ssl/flow-ctrl/ERL-934/ERL-938/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 Revert "ssl: Add check when to toggle internal active N" Conflicts: lib/ssl/src/dtls_connection.erl lib/ssl/src/ssl_connection.erl lib/ssl/src/tls_connection.erl
2019-05-14Merge branch 'john/tools/fix-cover-register-race/ERL-943/OTP-15813' into maintJohn Högberg
* john/tools/fix-cover-register-race/ERL-943/OTP-15813: cover: Fix register/2 race on startup
2019-05-13fix typo in gen_statem.xmlDenis Andrejew
2019-05-13cover: Fix register/2 race on startupJohn Högberg
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-09ssl: 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-08ssl: Add test cases for issue reported in ERL-938Ingela Anderton Andin