Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
* maint:
beam_type: Eliminate compiler crash when arithmetic expression fails
Conflicts:
lib/compiler/src/beam_type.erl
|
|
* bjorn/compiler/beam_type/ERL_829/OTP-15518:
beam_type: Eliminate compiler crash when arithmetic expression fails
|
|
* maint:
Updated OTP version
Prepare release
|
|
* maint-21:
Updated OTP version
Prepare release
|
|
Improve type optimizations
|
|
|
|
* ingela/ssl/test-cuddle:
ssl: Cuddle tests
|
|
|
|
* maint:
syntax_tools: Fix pretty-printing of type funs
|
|
* hasse/syntax_tools/fun_types/ERL-815/OTP-15519:
syntax_tools: Fix pretty-printing of type funs
|
|
* maint:
Fix erl_parse:af_constraint()
Fix erl_parse:af_fun_type()
Add literal character to erl_parse:abstract_type/0 type
|
|
Fixes in erl_parse:abstract_type/0 type
|
|
* maint:
Fix sorting in lists.xml
|
|
* jfw7/stdlib/fix_doc_lists/PR-2049:
Fix sorting in lists.xml
|
|
|
|
* john/erts/prim_file-init-restart/OTP-15495/ERL-821:
Remove an unused variable
Spawn prim_file helper as a system process
|
|
maint-21
* peterdmv/ssl/fix-srp-encode-decode/ERL-790/OTP-15477:
ssl: Fix encoding/decoding of the SRP extension
|
|
* ingela/ssl/enhance-error-handling/OTP-15505:
ssl: Cuddle test cases
ssl: Fix test case
ssl: Fix two invalid gen_statem returns
|
|
* ingela/maint-21/active-once/ERL-371/OTP-15504:
ssl: Guarantee active once data delivery
|
|
* lars/xmerl/bug-in-detect-charset/OTP-15492:
[xmerl] Fix detect charset crash
|
|
* lukas/ssl/benchmark_basic_test:
inets: Decrease benchmark TC timeout
inets: Fix crypto:rand_bytes usage in benchmarks
ssl: Only run a basic fast test in test cycle
|
|
|
|
|
|
Some of the slower machines takes 20-30 minutes to run
one iteration of the payload test.
|
|
Conflicts:
lib/ssl/src/ssl.erl
|
|
Correction of type abstract_expr -> abstract_expr() in erl_parse
|
|
IngelaAndin/ingela/ssl/save-specific-session/OTP-15369
Ingela/ssl/save specific session/otp 15369
|
|
`search/2` was sorted incorrectly.
|
|
* maint:
crypto: Refresh of test case for elliptic curves
crypto: Rename a testcase
|
|
|
|
crypto_SUITE:generate_all_supported -> use_all_elliptic_curves
|
|
* maint:
crypto: New test suite - crypto_bench_SUITE
|
|
See also ERL-815.
|
|
We want to be able to save a specific session to reuse, and make sure
it is reusable immediatly when the connection has been established.
Add client option {reuse_session, SessionID::binary()}
We also do not want clients to save sessions that it did not verify.
Additionaly change behaviour of the client and server to not save sessions
if reuse_session is set to false.
|
|
Modernize test case option handling
|
|
No need for this test case to set a specific cipher suite. An appropriate cipher suite
will be negotiated and it will of course be the same for clients with the same configuration.
|
|
|
|
* peterdmv/ssl/handshake_traffic_secret/OTP-15429: (21 commits)
ssl: Skip TLS 1.3 suites if crypto lacks support
ssl: Update testcase 'encode_decode_srp'
ssl: Fix dialyzer warnings
ssl: Improve AEAD encode/decode
ssl: Refactor state 'negotiated'
ssl: Add 'CertificateVerify'
ssl: Add support for x25519 and x448 in ECDH
ssl: Implement transcript_hash for TLS 1.3
ssl: Fix encoding/decoding of supported_versions
ssl: Check if RSASSA-PSS is supported by crypto
ssl: Reorder default signature schemes
ssl: Create server 'Certificate' message
ssl: Calculate handshake traffic keys
ssl: Add tests for TLS 1.3
ssl: Fix handling of signature algorithms
ssl: Process "supported_versions" before decoding
ssl: Update cipher suite formatting in ssl_logger
ssl: Fix cipher suite selection
ssl: Comment usage of 'state' in TLS 1.3
ssl: Implement TLS 1.3 key schedule
...
Change-Id: Iffeff2e2fefa8af618d6d4a3457b8a9dd9392685
|
|
The compiler would crash when compiling code such as:
(A / B) band 16#ff
The type for the expression would be 'none', but beam_type:verified_type/1
did not handle 'none'.
https://bugs.erlang.org/browse/ERL-829
|
|
Introduce subtraction of types to allow some redundant tests to be
eliminated.
Consider this function:
foo(L) when is_list(L) ->
case L of
[_|_] -> non_empty;
[] -> empty
end.
After entering the body of the function, L is known to be either
a cons cell or nil (otherwise the is_list/1 guard would have failed).
If the L is not a cons cell, it must be nil. Therefore, the test
for nil in the second clause of the case can be eliminated.
Here is the SSA code with some additonal comments for the function
before the optimization:
function t:foo(_0) {
0:
@ssa_bool = bif:is_list _0
br @ssa_bool, label 4, label 3
4:
%% _0 is now a list (cons or nil).
@ssa_bool:8 = is_nonempty_list _0
br @ssa_bool:8, label 9, label 7
9:
ret literal non_empty
7:
%% _0 is not a cons (or we wouldn't be here).
%% Subtracting cons from the previously known type list
%% gives that _0 must be nil.
@ssa_bool:10 = bif:'=:=' _0, literal []
br @ssa_bool:10, label 11, label 6
11:
ret literal empty
6:
_6 = put_tuple literal case_clause, _0
%% t.erl:5
@ssa_ret:12 = call remote (literal erlang):(literal error)/1, _6
ret @ssa_ret:12
3:
_9 = put_list _0, literal []
%% t.erl:4
@ssa_ret:13 = call remote (literal erlang):(literal error)/2, literal function_clause, _9
ret @ssa_ret:13
}
Type subtraction gives us that _0 must be nil in block 7, allowing us to
remove the comparison of _0 with nil. The code for the function can be simplified
to:
function t:foo(_0) {
0:
@ssa_bool = bif:is_list _0
br @ssa_bool, label 4, label 3
4:
@ssa_bool:8 = is_nonempty_list _0
br @ssa_bool:8, label 9, label 11
9:
ret literal non_empty
11:
ret literal empty
3:
_9 = put_list _0, literal []
%% t.erl:4
@ssa_ret:13 = call remote (literal erlang):(literal error)/2, literal function_clause, _9
ret @ssa_ret:13
}
|
|
|
|
|
|
Code generation for 'or' with {z,0} destination could generate duplicate
new labels. The bug was introduced in eb571f8951bd.
|
|
There is no easy way to convert xor or is_record/2 to test operations.
|
|
|
|
When an instruction has been eliminated, the 'succeeded' instruction must
be eliminated.
|