Age | Commit message (Collapse) | Author |
|
|
|
erts: Do not use named no_cpuid label in asm
|
|
* bjorn/compiler/fix-stack-init/ERL-1017/OTP-15968:
Ensure that the stack slots are initialized when matching maps
|
|
When matching a map, the compiler could fail to generate code that
would initialize all stack slots (Y registers) properly. Here is a
general outline of code that *could* cause this problem:
foo(Key, Map) ->
Res = case Map of
#{Key := Val} ->
%% Do something with Val here.
.
.
.
#{} ->
[]
end,
%% The stack slot for Val might not have been initialized
%% here if the key was not present in the map.
.
.
.
%% Use Res.
.
.
.
The code generator would wrongly assume that the map matching would
always initialize the stack slot, and if nothing else happened to
force that stack slot to be initialized, it would remain
uninitialized, which would likely crash the runtime system at the next
garbage collection.
`beam_validator` is supposed to find these kind of problems, but a bug
in `beam_validator` prevented it from detecting this problem.
https://bugs.erlang.org/browse/ERL-1017
|
|
into maint
* john/compiler/fix-delayed-type-inference/OTP-15954/ERL-995:
beam_validator: Values referenced by other values must be merged
|
|
bjorng/bjorn/compiler/fix-slow-beam_ssa_dead/ERL-1014/OTP-15966
Avoid extremely long compilation times for huge functions
|
|
https://github.com/bjorng/otp into maint
OTP-15970
* 'bjorn/compiler/length-misuse/ERL-1013' of https://github.com/bjorng/otp:
Eliminate a crash in the type optimizer pass
|
|
https://github.com/bjorng/otp into maint
OTP-15969
* 'bjorn/compiler/fix-no_type_opt/ERL-997' of https://github.com/bjorng/otp:
Fix compiler crash when compiling with +no_type_opt
|
|
|
|
|
|
Compiling this example takes less than a second for OTP 21:
-define(B, {?A,?A,?A,?A,?A}).
-define(C, {?B,?B,?B,?B,?B}).
-define(D, {?C,?C,?C,?C,?C}).
-define(E, {?D,?D,?D}).
f() -> ?E = foo:bar().
The compilation time for OTP 22 is about 10 seconds. Most of the
time is spent in `beam_ssa_dead`.
This commit introduces several optimizations to bring the compilation
time down to about a second.
The most important of those optimizations is limiting the effort spent
searching forward for a joining point for the success and failure
labels for a two-way branch. This change is helped by the change of
representation of variable sets from `ordsets` to `cerl_sets`.
https://bugs.erlang.org/browse/ERL-1014
|
|
|
|
* bjorn/compiler/fix-unsafe-sharing/OTP-15963:
Fix unsafe code sharing
|
|
|
|
* raimo/inherit-listen-options/OTP-15824:
The linger option is not transferred on *BSD
|
|
|
|
To provide more info when analyzing failed test cases
an "event" queue (of max size 10) is added to both the
test MG and MGC. This event queue is printed when the
process exist.
Also, the multi_ack_timeout is wonky, so add anther
platform (sunos) to the skip list...
|
|
* ingela/ssl/test-enhancment:
ssl: Extend tests
ssl: Fix better OpenSSL support in test framework
ssl: Avoid broken ALPN/NPN renegotiation in OpenSSL
|
|
|
|
|
|
All these test work fine with current OpenSSL master
|
|
|
|
|
|
* hans/ssh/early_crash_fail_logging/ERL-990/OTP-15962:
ssh: added log/4
ssh: Fix log problem in early stages of initialization
ssh: Fix potential crash if failure in init of client
|
|
|
|
maint
|
|
|
|
|
|
|
|
If the `no_type_opt` option was given, the compiler would crash when
attempting to compile containing with a `try`...`after` construct,
such as this code:
foo() ->
try
make_ref()
after
ok
end.
To avoid having this bug re-appear, test the `no_type_opt` option
in the test suites.
https://bugs.erlang.org/browse/ERL-997
|
|
https://bugs.erlang.org/browse/ERL-1013
|
|
|
|
|
|
|
|
|
|
Make even deprecated test cases use the tc_try function (so that
all test cases look the same). Also make the skip reason for those
test cases be slightly more readable.
|
|
Make use of the tc_try function(s) in all "active" test cases.
|
|
Add a utility function, tc_try/2,3, for running test cases
in a uniform way.
|
|
Add a sleep to reduce the chance that process exit
has not been "processed" by the nif code.
Also increased the test case timetrap for the
sc_ctrl_proc_exit group of test cases.
OTP-15904
|
|
Adjusted some timeouts...
Also, add time stamp to the 'delivery' printouts.
|
|
* ingela/ssl/test-enhancment:
ssl: Remove NPN test from DTLS interop tests
|
|
OpenSSL does note seem to support NPN for DTLS so
we will have to skip those test
|
|
* peterdmv/ssl/test-improvements:
ssl: Enable TLS 1.3 test groups in FT
|
|
Ask compiler to generate unique label name. Using named label has implications
on optimizer, that may lead to the compilation errors as the following:
pthread/ethread.c: Assembler messages:
pthread/ethread.c:213: Error: symbol `no_cpuid' is already defined
pthread/ethread.c:213: Error: symbol `no_cpuid' is already defined
pthread/ethread.c:213: Error: symbol `no_cpuid' is already defined
|
|
|
|
* peterdmv/ssl/psk:
ssl: Reorder testcases in ssl_api_SUITE
ssl: Fix handshake pause in TLS 1.3
ssl: Implement option honor_cipher_order in TLS 1.3
ssl: Add test for option supported_groups
ssl: Document option supported_groups
ssl: Fix ssl_api_SUITE:connection_information
ssl: Fix property tests for SSLv3
ssl: Update property tests with pre_shared_key
ssl: Implement pre_shared_key extension
ssl: Update property tests with psk_key_exchange_modes
ssl: Implement psk_key_exchange_modes extension
|
|
* ingela/ssl/test-enhancment:
ssl: Move reuseaddr test to tls_api_SUITE
ssl: Avoid devision with zero in ssl_bench_SUITE
|
|
|
|
When one test in ssl_bench_SUITE is run as a
smoke test in the ordinary test runs it might get
problems on windows as time measurement is to coarse
|
|
When cancel'ing a timer, the ok return is either:
ok
or
{ok, Remaining}
The test case did not handle this (expected 'ok').
|